[linux-elitists] DOTGNU

Jason Spence thalakan@lightconsulting.com
Thu Dec 27 02:07:19 PST 2001

On Thu, Dec 27, 2001 at 08:31:40PM +1100, Jeff Waugh developed
a new theory of relativity and: 

> Why? The CLR is a far better, and far more future-proof (read: programmer's
> ego proof) technology. "Java" is as silly a marketing mix of technologies as
> ".NET", only when you get down to it, it's just one language, lots of
> policy, and lots of Sun Microsystems buy-in.
> So, whilst Don may choose his non-rounded-scissors C++, I'll happily hack
> away in Python, Perl, C, C++, Java, whatever is appropriate for the task...
> Whilst they all talk to each other via the CLR, Don can write more bindings.

This reminds me of the time that I had to write a fatal() function in
an application again (because solaris doesn't use glibc (so err()
doesn't work)).

I realized that I probably should have stole it from an earlier
application, so I went back and grabbed the code...

It was the same function.  Character for character.  I'd written it a
dozen times and I'll bet I'll write 12^12 times more.

That's when it really hit me.  Stuff, really important stuff, is
missing from POSIX libc.  The amount of crap I see in applications
just to make portable development possible (and the number of similar
but subtly-different solutions to the mystery of the Missing Utility
Function) is absurd.

But CLI isn't the answer either.  There's stuff it isn't going to
support.  Important stuff like open distributed computing paradigms.
Stuff to query process status and resource usage.  Mono is going to
use extensions to support it, but that's not 100% portable.  Oops.

And Java isn't the answer either.  Anybody notice that their socket
interface is missing a couple important methods for completion
notification?  How about the Java 1.3 "oops, our threading model was
broken and we have a 5 year old design flaw" depreciation fun?  Oh,
and no regexes, sorry.  You'll have to write that tokenizer using
StreamTokenizer, buddy.  Don't worry, it's only about 4x as much code.


Someone should do a doctorate paper on the APIs developers write to
create a portable runtime library for their application.  You know,
like the wacky 100 line portable version of open(3) that every program
has so that they can open a file on all the platforms that are out
there?  Yeah, that portable runtime library.

Mozilla would be a good start.

Then compare Informix and Oracle's source.  I'll bet that the utility
libraries do basically the same things with different APIs.

Then look at everything else.  Figure out a common set of needed
functionality (even if it's 10,000 entries big).

Then codify the APIs and submit them to ISO.

I would rather have a 50 megabyte system runtime and 20% smaller
application binaries than having all my applications load 6 different
widget sets and 23 ways to parse the command line into core.

 - Jason

Magnocartic, adj.:
	Any automobile that, when left unattended, attracts shopping
		-- Sniglets, "Rich Hall & Friends"

More information about the linux-elitists mailing list