Steve Yegge on Dynamic Languages

Ovid on 2008-05-12T13:51:58

Steve Yegge transcribed an excellent talk he gave on dynamic languages. It's incredibly thought-provoking and worth reading all the way through. And for the pseudo-obligatory Perl content, here is one of his comments on marketing:

I mean, like, Perl was a marketing success, right? But it didn't have Sun or Microsoft or somebody hyping it. It had, you know, the guy in the cube next to you saying "Hey, check out this Perl. I know you're using Awk, but Perl's, like, weirder!"

And for the Big Bucket of Fail, a someone named "dibblego" had this to say about Yegge's pre-emptive apology regarding some of his colorful comments:

Steve,
Some of these people are more likely to be offended by your compulsion to pass severely under-qualified comment on the topic; something you have done more than once before. The offense comes about because it is almost deliberately misleading to others who might have the desire to learn and are not in a position to know any better and may mistake your pseudo-scientific nonsense with warranted factual claims.

I say "almost deliberate" because I am more inclined to believe your desire to continue doing this is a result of your ignorance rather than malice.

Here's a tip for you kids: "dibblego" might be right, but we'll never know since he never bothers to back up his assertions. Hell, if you're going to be rude, at least be rude with some meat on, will ya?

On another note, Yegge commented that many issues with Java generics require relatively newer programmers to have at least an implicit understanding of covariance and contravariance. These deal with the substitutability of return types and parameters in OO systems and, and, and ...

Boom!

Here's a tip for language designers: if an oft-used feature of your language requires a deep understanding of comp-sci/math, programmers are going to get it wrong. Here be dragons. It's OK to allow things to require advanced concepts, but not for common code that you hope to spread to the masses.

For extra credit, try to find a clear, concise explanation of covariance and contravariance (and invariance, while you're at it) that your typical Jack in the Box programmer is going to be willing to read, much less understand.

On a side note, I still think it would be good to have a "Just Enough Theory" book for programmers that explains the basics they need to know to prevent the "beat them to death with Knuth" fantasies. I don't expect a new programmer to understand why restricting first order predicate logic to horn clauses is considered (by some) to be a weakness, but they had better know about loose coupling and cohesive functions.


Perl is weirder

jinx+ on 2008-05-12T16:01:17

I remember Steve asking a list at work how to do a recursive find/replace on a file tree with Perl since he barely knew a lick of it. He got 3 answers. He picked the worst, most verbose, and hardest to use as the best choice.

This was also during a time when Steve's dev group was foisting a horrible Java piece of crap on the customer service department which took 18 months to reach 25% of the coverage of the previous command line C and Perl tools it was supposed to replace; it was also too slow to use half the time. After another miserable, service busting year of limping along on the God forsaken thing it was finally shot in the head, rolled in the ditch and everything was redone from scratch in Perl as a web app.

Too Easy!

chromatic on 2008-05-12T17:52:22

He picked the worst, most verbose, and hardest to use as the best choice.

It is practically impossible to teach good programming to students that have had a prior exposure to Java: as potential programmers they are mentally mutilated beyond hope of regeneration.

Re:Too Easy!

grink on 2008-05-12T22:50:56

Speaking from personal experience, coming from a Java/C-style strict typing background and moving into Perl CAN be very difficult.

Essentially you feel _guilty_ for not ensuring everything is of the "right" type instead of "going with the flow".

Combine type paranoia (will the code combust at runtime if I don't pin down every detail?!) with a penchant for over-engineering problems and you have the recipe for a very unpleasant, overly-verbose muck-up.

Re:Too Easy!

chromatic on 2008-05-13T00:26:13

Hey, I switched from Java to Perl too, mostly because I compared how much work it was to send mail from Java in 1998 with how easy it was to send mail from the shell, and then decided to use something slightly more cross-platform than whatever the default shell was on HP-UX 9.

Re:Too Easy!

Ron Savage on 2008-05-13T02:09:32

True. And the exact same thing used to be said about Cobol programmers! And Fortan programmers, and...

At least we now know Java is Cobol designed by and for accountants.

Re:Too Easy!

Aristotle on 2008-05-15T10:45:41

I think there’s a quote trying to be coined in there. Maybe “Classes are to Java programmers as GOTO is to BASIC kids”? Hm, not catchy enough.

Re:Too Easy!

Ovid on 2008-05-15T12:02:06

Interfaces are to Java what machines are to Rube Goldberg.

Re:Too Easy!

chromatic on 2008-05-15T17:10:23

When the only tool you have is Java, every problem looks like a FactoryFactory.

Re:Too Easy!

Aristotle on 2008-05-15T17:52:52

That doesn’t convey the punchy idea that I was hoping to capture, though: that casting every task and problem as a class hierarchy is just as brain-damaged as casting every control flow as IF GOTOs.

Re:Too Easy!

chromatic on 2008-05-15T23:10:01

Ontology recapitulates zymarikology?

This one goes out to all of the Greek-speaking philosophy-loving ex-biologists in the audience. (I really tried to work the word "contravariance" in there, but yeesh.)

Re:Too Easy!

Aristotle on 2008-05-16T10:10:09

LOL!

You get some bonus points for that. The only problem is almost nobody will know what you’re talking about.

Just Enough Theory

chromatic on 2008-05-12T17:53:52

I still think it would be good to have a "Just Enough Theory" book for programmers that explains the basics they need to know to prevent the "beat them to death with Knuth" fantasies.

Most of them wouldn't buy it, and most of those who did wouldn't read it.