2004-03-21 (Sunday)

by havoc

Miguel summarizes my argument as “we need to pick Java to avoid
fragmentation,” I’d put it more generally “we need to pick a viable
compromise,” again my attempt to summarize options people have brought

  • Stick to C/C++ for the forseeable future; possibly enhanced
    by UNO or XPCOM or equivalent.
  • Build a third language and platform set based on Parrot, Perl, Python, and other
    open source technologies.
  • Open source Java subset as I proposed.
  • C# plus GNU Classpath – Java platform with C#/Mono
  • C# plus third platform – C#/Mono syntax/VM plus a new open
    source platform.
  • C# and IKVM – choice of syntax, running on Mono, with
    either GNU Classpath or a new open source platform.

Why do we “need to pick”? Because until we pick something we are
picking Stick to C/C++ by default, but not really acknowledging
it; and so in fact have been holding off on technologies such as UNO
and XPCOM that could improve C/C++ on the grounds that we might in
principle move to a managed language instead. If Java and Mono are
clearly not going to get consensus, let’s seriously consider PyGTK and

i.e. right now we’re just waiting indefinitely for I’m not sure what –
is there something we can go ahead and do?

Regarding cross-platform development: I think we need an open source
abstraction layer. Using Microsoft APIs directly isn’t the way to do
this. Longhorn does not force you to write the entire app in
C#, it forces you to invoke the CLR-based APIs at some level; which
can be done indirectly, in the “Windows backend” of a portable

(This post was originally found at http://log.ometer.com/2004-03.html#21.3)

My Twitter account is @havocp.
Interested in becoming a better software developer? Sign up for my email list and I'll let you know when I write something new.