Languages, runtimes, discussions and passions

Apart from vi vs. emacs (or rather XEmacs!), there’s nothing that can make passions fly high as a good, old-fashioned language debate I’ve got a book published by Baen that collects the first few years of Jerry¬† Pournelle’s Chaos Manor columns for Byte. And those are already stiff with language debate: byte-code (then called p-code) vs. natively compiled code. Easy Basic vs. manly Fortran…

It started with Miguel de Icaza talking big about his pet project, Mono. I think mono is a fundamentally stupid and wasteful idea, but that’s Miguel’s specialty. After all, he’s the person who started Gnome when the FSF already had the beginnings of a perfectly fine desktop environment, namely GNUStep, and the Free software world in general a perfectly fine desktop environment in KDE. Havoc Pennington’s answer is more interesting (even though Havoc Pennington is so blinkered that he really doesn’t seem to know KDE exists and should be reckoned to be part of the equation), and the discussion that followed was nice, too.

Perhaps the best comment was by Graydon Hoare, who arrived, in Components and Text, at a very fundamental truth. Language doesn’t matter, as long as there’s text, code text, because translating from one computer language to another is often easy enough. It’s worth reading.

Of course, given the way projects, or rather, packages, live, flourish and die in the wild and open world, no amount of posturizing will ever change anything fundamentally. Just like creating a new ‘unifying’ GUI toolkit will never mean that the other choices disappear, just that there’s another choice, creating a new platform will not unify anything. In this, Havoc is sounder than Miguel, but still… You cannot really ‘move’ anything in this world, you can only add new stuff, and hope that the old layers slowly die over time.

No call for unification will ever unify anything (especially not if it comes from one of the original fragmenters) — at best, it’ll add another viable option. In fact, this particular proposal, which dates from 2000, is the perfect proof of my contention.

Not that I care about fragmentation: that’s the way of the world, and even though I think Miguel silly for starting Gnome and Evolution, I am thankful to the KDE time for developing Konqueror, instead of trying to work with Mozilla, and I am glad the Kate developers have had the courage to produce yet another text editor. Besides, I am working on Krita, which is, at the moment, a mere shadow of the Gimp. (But I have Plans!)

Anyway, when you look at KDE, which has great bindings to Python, and workable bindings to Ruby, Perl, Objective C, C and Java — besides an ecmascript binding and a javascript binding, it’s clear that Havoc’s wish has already been granted: it is possible to create applications and core components for a free desktop in a managed language without penalties. Sure, there’s work to be done, and, in the end, it turns out that working with C++ isn’t all that hard…