Re: Confused about the platform runtime discussion going on in the blogs



On Sun, 2004-03-21 at 19:00 -0800, aigiskos wrote:
> Hi,
> 
> Not being a blogger (yet) myself and reading the very
> interesting discussions going on between hp, miguel,
> lupus, and others regarding managed code, I'm a bit
> confused.  Hopefully, someone will be kind enough to
> lend me a clue about what's going on (and thanks in
> advance!).
> 

Terms for the uninitiated:

Language: the subset of english used to tell the computer how to process
information.

Virtual Machine (VM): An idealized computation model used to achieve
(among other things) cross language and platform portability. Languages
can be translated to a common VM instead of specific machines, which
also allows multiple languages to share a common environment.

Object/Type system: a protocol for describing and sharing program data
or data types so different programs or languages can inter-operate.

Library: a common set of frequently used functions and data types made
available to eliminate programming tasks covered by the library. In this
case both Java and .NET provide comprehensive core libraries. Using the
Object system, .NET libraries are able to share its core libraries with
any other language. The Java libraries currently only work with Java.

Java platform: Java language, Java VM, and Java libraries.
.NET platform: C# language, Common Language Runtime VM, Common Language
Infrastructure Object system, and .NET libraries.

Java is wholly controlled by Sun, but there is a pretty decent community
around it, and Sun is pretty open about the development of the language.
The JVM is completely proprietary.

Core parts of .NET are standardized under an international standards
organization (ECMA), and are protected therein as a proper standard,
while many other parts are non-standard.

There are free software implementations of the Java class libraries (GNU
CLASSPATH), and VMs but none are completely Sun compatible. There is a
complete free software implementation of the ECMA covered parts of .NET
(Novell mono).

The discussion for the uninitiated:

As I understand the discussion, this is largely about the politics of
several large companies, namely Microsoft, Novell, and Sun. There *is* a
technical aspect: newer/higher-level languages increase productivity by
a certain degree, and are generally nice to have. But the discussion has
been hijacked from the technical arena by the fact that the afore
mentioned giants are making moves that will someday affect us, so its
better to consider the issues now, than to be caught off guard later.

Specifically: Sun has invested itself in Java and Linux, and wants to
leverage its proprietary language and VM on Linux. Similarly, Novell has
invested in mono (.NET reimplementation) and Linux, and wants to
leverage its free software VM implementation with ECMA standard C# on
Linux. And neither would appear to accept the other becoming a standard
platform on GNOME+Linux. The divergent forces in these companies, in
Havoc's view, threaten to fragment the community unless some compromise
is reached before things get out of hand.

Of course the whole situation is complicated by Microsoft, who
"invented" the .NET platform and intends to leverage the technology to
do some apparently impressive/cool stuff with its next OS due out 2007+.
Despite the core technology supposedly available on reasonable and non-
discriminatory terms, there is also a fear that Microsoft may somehow
torpedo mono with patents at a future time.

Microsoft's .NET looks from afar like a very bold and intelligent move
to consolidate the whole windows environment into a powerful framework
where data and objects are can be easily and uniformly passed around
from program to program using any language and prove a very information
rich operating system. If free software has no reply by the time this
"wonder platform" comes to pass, we could look as if we cannot innovate
against proprietary software. If we cannot unite two influential
contributors to GNOME (Sun and Novell) and create a next generation
platform to counter Microsoft, our efforts could splinter and loose
ground.

But, whats really the most important thing about the whole debate is
asking ourselves what we want, and at what cost. Should we alienate Sun,
or Novell, or both? Should we leave things as they are, and let the
future decide our direction? Or should we create our own platform, using
existing tools such as Perl and Python? These are very good questions,
and I don't know if anyone has mentioned something that has convinced me
that they have the answers. What I am convinced about is that the
community is the strength of free software, and this debate is part of
the reason why, no matter the outcome, we will remain stronger than
microsoft, sun, or novell, could possibly imagine.

Hope what I've said helps some. I'm posting to d-d-l since I think there
is room for opinions from non-blogging people, so lets please *try* to
keep on the topic of the future of the GNOME desktop from a developers
point of view. (Heres hoping its not a flame fest! ;))

ps. Please correct any technical inaccuracies, I'm not trying to spread
FUD.

Cheers,
Ryan




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]