Subject: Re: Pitching a "Big Tent" for Open Source
Date: Tue, 14 Dec 1999 09:18:18 -0500

Have you looked at  That addresses many of your

Furthermore your idea of a matrix is IMO somewhat misguided.  A properly
maintained project is designed to isolate the bits that need porting from
the bits that don't.  If all goes well (OK, big if, but still) then most
changes automatically work across platforms.  Sure, that ideal is never
really met.  But a close enough approximation is met to make it plausible
to allow projects like Perl, gcc, and Linux to exist across many different
platforms.  You don't have x different versions.  You have one version
which is designed at a low level to customize itself appropriately upon
installation depending on a plethora of factors.  After all pre-processors
exist for a *reason*.

Also you missed the much *harder* problem which is currently facing the
free software community.  Internationalization.  Unlike porting across
hardware/operating system barriers, porting across languages *does* require
substantial modifications to programs.  Many programs are written from the
start in portable languages (eg Perl or Java), or to portable libraries
which significantly reduces portability problems.  But internationalization
requires much more difficult edits and organizing to simplify those edits
is something that few programmers give sufficient thought to.  And the
unfortunate fact is that the same dynamics that discourage a fork in an
active project, also bar the way for the unfortunate would-be translator.
Can we solve this problem?  For a subset of the most interesting projects,
yes.  But overall?

And here again we see why the matrix idea is a worst case that good design
techniques are meant to avoid.  Internationalization is a hard problem,
sure.  But internationalization does not multiply the overall difficulty by
a factor.  Instead in a good design there should be little interaction
between hardware/OS issues and ongoing porting work.  When you fix a buffer
overflow problem on an alpha in English you should not have to go back and
notify the Japanese porter of the problem.  If that is your normal
procedure, then you have ignored decades of research on software
engineering and deserve the consequences!


PS Speaking of internationalization, I am betting that it is 5-10 years on
the outside until we see a scripting language (or macro language) with the
source-code written in Unicode in your choice of language.  (With the set
of keywords translated to be a set of words in your favorite language, and
a minimal grammar.)