[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Omaha.pm] Perl-golf -- zero-pad an IP address.



Great link.  I particularly loved this question/answer:

(man, I wanted to paraphrase all this, but it all builds up so well, any 
 attempt at paraphrasing just weakens the message...)
(appologies to those reading on fixed width mail readers.  Cut and paste
 it into your favorite word wrapping enabled application.)

-------start quote-------
Builder AU: In an interview a few years ago you said that "Programming is a Dark Art, and it will always be". Don't you think with the advent of Model Driven Development that this thought of programming being a dark art will cease to exist?

Damian Conway: Well, I guess we can always hope. But no, I don't think MDD (or even AMDD) is the silver bullet. It seems that every few years a new development technique is hailed as the start of the Programming Renaissance, the Golden Age of Scientific Software Development. And none ever is. Stored instructions. Assemblers. High-level languages. Structured programming. Functional programming. Logic programming. Object- oriented programming. 4GLs. Model-View-Controller. Visual programming. UML. Extreme Programming. And despite them all, operating systems and applications are buggier, less reliable, less secure, and less usable than ever.

Of course, the problem is not in these development tools. It's in us. All of these approaches are based on a false premise, the same desperate illusion that every programmer clings to: that the universe of problems to be solved is homogeneous, and that our task as programmers is predictable enough for one approach, one methodology, one language, one standard library to fit all problems.

But the real world isn't like that -- no matter how much our politicians and our religious leaders and our advertising executives would like us to believe it. Our world is complex, and inconsistent, and piecemeal. And it's the same in the virtual worlds in which programmers work.

The second half of that quote is: "The programmer is fighting against the two most destructive forces in the universe: entropy and human stupidity. They're not things you can always overcome with a 'methodology' or on a schedule."

If we're talking specifically about Module-Driven Development, the underlying fallacy this time is that real problems are always susceptible to being modelled accurately enough. Or at all. Whereas the quotation points out that the universe is governed by entropy -- the tendency for disorder, lack of pattern, and non-conformance to coherent models all to increase over time.

And that same tendency is present in every human system and all our organisations, which grow and diversify and adapt under a myriad of conflicting influences and demands, until they collapse under the weight of their own internal contradictions and stupidities.

So, for the programmer, reality is constantly outstripping, outsmarting, and out-weirding our ability to model it. And that fundamental limitation is only made worse by the fact that we build systems that are to be used, controlled, operated, maintained, and extended by human beings: creatures of consummate inconsistency, self-contradiction, and irrationality. So not only can't you model your proposed system accurately, you can't even model the expected usage of your system. And the final nail in the coffin is that your system has to be designed and built by the self-same inconsistent, contradiction-wracked, irrational humans (i.e. you). So you can't even reliably model the development of the system.

There is no silver bullet. Because not every problem is a werewolf. Some are vampires -- for which you need the wooden stake of OO design or the garlic of functional decomposition. Some are demons -- for which the sacred rites of M-V-C may be the cure. And many problems aren't really classifiable at all: just Frankensteinian amalgams of unrelated parts, cobbled together by some crazed developer. In which case your only option is to grab your favorite text editor, roll up your sleeves, descend into the darkness, and start hacking. 
-------end quote-------



-Scott

-----Original Message-----
From: omaha-pm-bounces@pm.org [mailto:omaha-pm-bounces@pm.org]On Behalf
Of Jay Hannah
Sent: Sunday, January 30, 2005 11:14 PM
To: Perl Mongers of Omaha, Nebraska USA
Subject: Re: [Omaha.pm] Perl-golf -- zero-pad an IP address.



On Jan 30, 2005, at 10:46 PM, Daniel Linder wrote:
> And that is just why I love Perl -- compactness when needed, or
> verboseness when warranted...

Ya. Here's Damian pointing out how much overhead "hello world" has in 
Java:

http://www.builderau.com.au/program/0,39024614,39160082,00.htm

j

_______________________________________________
Omaha-pm mailing list
Omaha-pm@pm.org
http://mail.pm.org/mailman/listinfo/omaha-pm