Friday, April 11, 2003

Having accidentally missed a Paul Graham essay (the topic of the previous post), I figured I'd be happier if I went and made sure I hadn't missed many. I hadn't, although I note he's written yet another essay about language design.

For those of you who don't know, which is damned near everybody, Paul Graham is a Lisp resource of the first magnitude. He wrote the textbook on ANSI Standard Lisp, and his book "On Lisp" covers in more depth how to think in Lisp/write idiomatically in Lisp/be a Lisp native than anything else I've ever written. He really is The Man.

Unfortunately, he hasn't yet learned the central lesson of RMS ... the set of people who want to learn/know/use Lisp is vanishingly small. No amount of proselytizing will convert the vast majority of software developers into Lisp guys. It just doesn't work that way. Eric Raymond (go read everything he's ever written, by the way) noted this same thing about RMS a while back, although I haven't been able to track it down via Google yet.

Mr.Graham also looks down his nose at Java, and C (and C++) to a lesser extent. In fact, in his essay Beating the Averages, he states that there is a continuum of language power/expressivity such that some languages occupy higher places on the lattice than do others. Lisp, of course, sits at the pinnacle. Java comes in for a real beating in nearly every essay he writes.

And yet ... Java is everywhere. How did that happen? I'll posit my opinion, and it's a remarkably simple one:
Java forces you to play well with others


That's it. There isn't any magic ... just the fact that all the bits and pieces are required to fit together without serious blood loss. Sure, you can get libraries written in C with well-documented headers, but they're woefully OS-and-version dependent. C++? The language standard specifies that symbol mangling is implementation-dependent because the committee knew that trying to force one single object model/memory layout on everybody at this late date was going to be organizational suicide ... so you not only have to have the right OS at the right version, but also the right compiler also at the right version. Perl, Python, Tcl, and Ruby are all doing pretty well in places, but none of them have serious corporate buy-in, for reasons which I completely do not know.

Lisp? There's a bit of lip-service paid in the standard to what they call "FFI", but the reality is that Lisp expects everything in the entire world to be loaded (in source form) into the current image. Sure, the libraries you can find/buy will work, but that's because the vendor has to give you the source. Not many vendors really want to do that.

And so we come to Java. Run-time linking works because it's specified in the standard exactly how it has to work, and Sun is quite serious about prosecuting people who call their product "Java" that doesn't hew quite closely to the standard. Hey, look! We can write servlets, and web apps, and SOAP services, and sell the damn things to people using any old J2EE container and we don't give a good goddamn whose container they're using because run-time linking works.

I can sell/give away a JAR file full of Java classes and interfaces with embedded documentation, and my clients can just drop it into their copy of JBuilder, IntelliJ, VAJ, or even EMACS. Compilation works, context-sensitive help works ... it's just shocking.

Don't misunderstand me here ... I don't particularly like the language. It gets in the way far too often for a language that does so little to help you out. The real truth, though, is you don't have enough time to write all the infrastructure and support you can have via download if you just put up with the warts.

I have no doubt whatsoever that Mr.Graham's Lisp-based e-commerce solution is clean, sparse, elegant, tasty, and more absorbant than anything I'll ever write. I, however, can get to the finish line faster than he can because I can download stuff written by IBM (representing untold man-years of effort) and nail it to stuff written by the Apache group (representing more untold man-years of effort) and then nail that to stuff written by Object-Refinery. My finished work product isn't nearly as pretty as Mr.Graham's but it only took me a week. What was your time to market again?
Hey! I missed a Paul Graham essay from earlier this year.

I've read it twice now, and I continue to be strongly conflicted over this paper. On the one hand, it creates a tremendous resonance in me; I hated my school years from sixth grade on, although it was much better from tenth grade because my high school placed a huuuuge premium on aggregate performance on national standardized tests, such as the SAT and the AP exams.

I hated school so badly that I was (and still am) determined not to let my daughters suffer through the same things. I am completely in favor of homeschooling them both right up until they turn 18 and decide they want to go to college and drink too much. My wife, however, feels that she can't teach them effectively, so wants to put them in good private schools. Given that I'm the primary earner in the family (and consequently not home to bear the obligation of mentoring full-time), my eldest (5 years old) is in a private pre-K, and will probably be in a private kindergarten this fall. Believe me when I say this does not make me happy, but she seems to really enjoy being around her classmates, so I can only hope she'll wind up sitting at the "A" table when the time comes.

On the other hand, this essay also carries with it a whiff of sour grapes, as well as the subtle flavor of a well-coddled self-esteem. Poor Paul Graham (and me) ... those horrible heathens didn't recognize how truly superior we were, refused to acknowledge that we were already travelling down the road they were only dimly aware they had to follow, why we were true leaders! We deserved their respect and admiration, and they were the doody-heads for not giving it to us! Wah! We demand our just due! Wah!

Ahem.

On the third hand (yes, I'm an alien), he's exactly on the money (I opine) with his analogy of school personnel to prison wardens. Public schooling is nothing if not relentless in its demand that students sit down, shut up, and do as they're told. It's horrible, but unlike Paul, I don't see a mechanism for improving that except taking the kids out of the situation. He seems to hold some hope that the system isn't irredeemable, but he didn't say how he thought it gets fixed. In the meanwhile, my daughter goes to school four days a week and I hope each day that she doesn't ever have to put up with the cruelty and spitefulness that I did.
And here's a review in English for the little tanks. Oooh .... I've got to get a couple or four of them right quick.
How's your Japanese reading these days? Good enough for this toy? I'm having trouble finding all the characters in my J->E dictionary, but what I've translated so far looks super-dee-duper.
How come it took this long for the M.S.S./Monty Python to be made so clearly?
Today I received a spam (as yet unopened) with the subject "Iraq: God's Plan?" Now I must admit I'm a big fan of General Franks and the CENTCOM general staff, but isn't that a bit over the top? I mean, they're still just professional military personnel, plain ol' homo sapiens sapiens just like the rest of us.

Thursday, April 10, 2003

Holy crap! Cats and dogs are expected to begin cohabitating immediately, now that Microsoft is leaping on to the open source bandwagon.
It appears that I'm the last guy in the world to link to this make your own freeway sign applet. Requires Java 1.4 (as far as I can tell) to work.
I keep saying I need to take a look at Maven, since it appears there's quite a lot of movement towards it as a build tool. Here's IBM's take on it.

As an aside, I always thought project management was about managing the project goals, requirements, stakeholders, and schedule. How surprised I am to find out that project management really only means "smarter build tool". Who knew?
Holy f*cking crap, that's insanely hard.

Wednesday, April 09, 2003

Only about six months ago (see! I'm getting less irrelevant by the minute!), Chuck Cavaness wrote an article about Struts best practices. Excellent stuff, that.
I still occasionally go look at the Sitemeter stats to see who's coming to the page, and what they were looking for. Most of the stuff is more-or-less normally bizarre, but this just blew me away.

According to Google.co.kr, we're the sixth best hit for "f*cking my brother's wife".

Holy crap. Since I don't have a brother, they must be looking for you, Lee. Better watch your back.
I lurv Homestar Runner. I do I do I do.

Also, am I the only person who doesn't understand why Cartoon Network isn't offering them a production deal? WTF?
ScrappleFace: Looting Suddenly Stops in Baghdad. Oh, my aching sides.
Hooray for Brigadier General John Kelly, United States Army. Thanks to Tim Blair for finding this loverly article.

Tuesday, April 08, 2003

The Tech Report has a review of the NVIDIA GeForce FX 5800 Ultra. I really need to start saving up, don't I?

Monday, April 07, 2003

I'm only a year out of date, it appears. I just found an article about web application development comparing XMLC and JSP. I now officially have my curiousity bit latched high, and I must now go poke around a bit.

Sunday, April 06, 2003

Our weapons technology is so amazing, we now actually need (and have) bombs that don't explode.