Ian said:
why dont we have ONE programming language? .. CROSS PLATFORM .. like English
is the worlds language.
Well, in a sense we already do. And that language is ... wait for it ...
wait for it ... C. Everything ultimately boils down to C, because that's
what nearly all Operating Systems are built with.
In another sense, one language can never really be truly cross-platform
because they have a different set of APIs. If they didn't, then they
wouldn't be the different platforms (reminds me of that Monty Python
sketch. A health inspector says that a chocolate manufacturer can no
longer put the bones in their "crunchy frog" flavoured chocolate. The
manufacturer complains that "but if I took the bones out, they wouldn't
be crunchy").
The good thing about UNIX is that it comes with a compiler, and a lot of
free stuff is readily compilable from sources using a simple sequence
configure
make
make install
OTOH, there seems to be a lot of inelegant plumbing in place to get that
to work. And there's no standard toolchain on Windows.
The problem with C is that it's such a low-level language. That's where
languages like Python and $PET_LANGUAGE fit in. They require less effort
to program in, as they do things like automatic garbage collection, and
so on. Python is very "cross-platform" - it runs most places, and has a
wealth of libraries for people to choose from.
I believe that language like Scheme and Lisp are inherently better than
the scripting languages we have today: Python, Perl, Ruby, PHP,
VBScript, JavaScript, TCL, umm, and a whole lot of others.
One reason for the existence of languages is commercial interest - which
admittedly is about the worst way of coming up with a language. Java is
Sun's pet language project. C# is Microsoft's answer to Java - because
hey, God forbid that Sun should gain any market share. Same with VBScript.
Now, Microsoft /could/ bundle Python with Windows - but it aint gonna
happen.
Scheme48 is a version of Scheme that gets it name from the fact that it
was constructed in 48 hours. Scheme is a very simple language which has
a lot of power. It is easily more expressive than C++, Java, C#, or any
of the other scripting languages I mentioned. Now, Microsoft /could/
have decided that Scheme was the way forward, and decide to write their
own standard-compliant Scheme. They could have had it up and running in
a week. Then, they could have decided to write bindings to their
existing DLLs - a non-trivial undertaking, but with nothing inherently
complicated - and they don't have to provide them all at once - they
could just gradually build and build their collection of
Scheme-compatible libraries.
But of course, that's all too straightforward. And that's why we get
..Net, MFC, C#, and whatever else crap Micorosoft is pushing out.