I just started reading OnLisp and hit this quote:
Why wait for hindsight? As Montaigne found, nothing clarifies your ideas like trying to write them down. Once you’re freed from the worry that you’ll paint yourself into a corner, you can take full advantage of this possibility. The ability to plan programs as you write them has two momentous consequences: programs take less time to write, because when you plan and write at the same time, you have a real program to focus your attention; and they turn out better, because the final design is always a product of evolution. So long as you maintain a certain discipline while searching for your program’s destiny—so long as you always rewrite mistaken parts as soon as it becomes clear that they’re mistaken—the final product will be a program more elegant than if you had spent weeks planning it beforehand.
I've always heard "design is 90% of the job. You have to have a good design in place before writing anything."
This quote from OnLisp is a radical paradigm for me (being an engineer
who designs things). My question to you is does this apply in
practice? In the real world when the rubber hits the road, can you
program this way and develop good software used by lots of people?
yes and no. The problem is that such opinion is not a scientific opinion. It can't be verified or denied.
Any dynamic lang, such as Python, PHP, Ruby, Mathematica can be said the same thing. And, prob more so for functional langs.
The langs that this cannot be done, is C, Java, where the lang is inflexible, low level, or requires big structure that's hard to change.
if you want software engineering books, i suggest try some books that are based on statistical survey, as opposed to some dignitary's “opinion” or current fashion & trends that comes with a jargon. These type of books are a dime a dozen, every year, they come and go. The stastical survey approach takes major understaking and cost. The opinion type any motherfucking “guru” can write. e.g. Paul Graham has you buy into certain concept of “hackers” fucker and claim they are like “painters”. Certain Gabriel wants you to believe in poetry and C is the last language. (see Book Review: Patterns of Software http://xahlee.org/PageTwo_dir/Personal_dir/bookReviewRichardGabriel.html ) Certain Gosling wants you to believe Java is the last lang on earth that'll wipe out Microsoft (circa 1998). And about 2001 the perlers in particular certain Christiansen wants to push forward “Defensive programing”, where coding is taken as a defense against bugs.
( look at the eXtreme Programing fuckheads's traffic history:
Pascal Costanza wrote:
> Yes. There are actually complete software development methodologies
> built around these ideas. Google for "extreme programming" and "agile
> software methodologies".
Pascal Costanza is a Common Lisp fanatic. Note here, that eXtreme Programing is one of the snake oil, that ran like rampant wild fire in the industry around 2002, with many books published on it on the supposed motherfucking hip Software Engineering practices, but today you don't hear much of it. I haven't looked at “Agile programing” agile my ass, but it is probably a waste of time.
... what society overwhelmingly asks for is snake oil. Of course, the snake oil has the most impressive names —otherwise you would be selling nothing— like “Structured Analysis and Design”, “Software Engineering”, “Maturity Models”, “Management Information Systems”, “Integrated Project Support Environments” “Object Orientation” and “Business Process Re-engineering” (the latter three being known as IPSE, OO and BPR, respectively).” — Edsger W Dijkstra (1930-2002), in EWD 1175: The strengths of the academic enterprise.
you want to be a good programer? Study math, the math of programing, and master the langs and protocols and tools you use. You want to climb the tech industry ladder? get better at people, learn politics. You want to be rich? Study business. Chances are, you are a coding geek, and at heart you dna is not geared to be interested in politics or business, and you'll never be rich or big ceo just because of that.
See also: Why Software Suck.
Today, i happened to run across a blog on the eXtreme Programing FUCK.