Petreley on Ximian and Mono
An Anonymous Coward writes: "Bad Ximian. In this week's Infoworld opinion piece Nicholas Petreley points out how Ximian's .Net Clone, Mono, may very well be the "Destroy Open Source" Trojan horse that Microsoft has been desperately seeking. Thanks Nick for the wake up slap. We needed it." I don't understand how Ximian expects to succeed either. Lots of other companies have attempted to co-exist with Microsoft in a similar fashion, and they all lasted right up until the instant Microsoft decided to squash them.
It solves many problems of the current systems:
- you have a single API for all programming languages (which
admittedly all get quite similar because they all have to support various
OO-features, exceptions and so on). Currently it is only theoretical
possible to program for Gnome or KDE in a scripting language. In reality you
will get only half of the APIs and it means a lot of trouble for the end
user.
.net also comes with a unified format for things like API
documentation (that is written in XML and generated by the compiler itself).
- You dont have trouble any more if you use a non-x86 platform. This could
bring real freedom in the platform choice.
- Things like buffer overflows will be very rare (they are still possible
because you can use pointers, but you rarely have to use them and your code
is marked as insecure).
I think it is desirable to have something like this, and if MS releases the specs for it and you get some interoperability for free this is a good opportunity. Even the design of the CLR (Common language runtime) alone is such a huge effort that the free software community just saves much time by adopting it. And the base library looks very nice, they even have unix-like things in it, for example support for perl-style regular expressions. Something that is still missing in the Java (even if they announced regex support for a future release)... Speaking of Java, I dont think that it is an alternative:- It is definitely not more 'free' than the
.net stuff (if MS really
submits the specs to ECMA)
- The JavaVM is quite limited to Java as language. Yes, there are other
languages for the JavaVM, but the VM isnt really flexible enough and you
dont have things like pointers available which you need for system
programming.
- Java's performance sucks because of several design mistakes (ok, they
are only mistakes if you see it from a performance point-of-view, you could
also argue that Java's design is cleaner). MS got several things right that
cause the bad performance of object-oriented Java projects:
- they do
not make every method virtual
- there is an alternative to heap-allocated
and garbage-collected objects (small objects can be allocated on the stack
and are passed-by-copy)
- they made some restriction into their IL (intermediate language) that
Java's bytecode doesnt have and result in faster/easier code generation.
Both are stack-oriented, but in IL the stack must have the same depth at
every jump-point
Of course, there are also ugly parts inThere's a good article on kuro5hin about this very issue......
They both made a very critical mistake early on that falls along the lines of this statement:
"Lets build our desktop to look like Windows, because thats what people are used to."
Wrong. I can't speak for GNOME, but for KDE let me rephrase:
"Let's build the best desktop possible for developers (us) and users alike, modeled after both present functionality and new ideas."
it immediately commits you (and your project) to a life of constantly playing second fiddle..
Open source projects don't care about taking ideas. They take and they add. KDE has a launch button and task bar, made famous by Win95. It also has a desktop menubar, popularized by MacOS. Minimizing, shading, dockapp swallowing, system tray, desktop icons, multiple desktops. It's all there. Anything cool you've ever used, and then some, is there. Here's a recent scenario: a coder is sitting at his computer wishing he had a sidebar in Konqueror -- you know, something like what is in Internet Explorer 6 and Mozilla. Does he live the rest of his life without such a feature? Making some sort of sacrifice to use Linux? Of course not! He duplicates the feature in Konqueror. The point is that it doesn't matter where the idea comes from. If it is useful, it is added. That's how Open Source projects work.
Rather than try out new ideas, take a few risks here and there, and rethink the ways in which things have always been done, they both followed like puppy dogs into the same bloody mess. Now both are stuck. The defacto standard Linux GUI is now roughly equivalent to a Windows desktop from seven years ago. Clap at your leisure.
Right... and could you open a remote file from within the included Windows text editor 7 years ago? And would selecting the "save" option cause it to be uploaded back to the remote location? Did you have a command prompt that supported scrollback and multiple tabbed sessions? Could you disable popup windows, but keep the rest of Javascript in your web browser? Could you log your windowing events to stderr? Can you do any of this with even the latest version of Windows? I think not.
refine that departure into a stable, usable, likeable model. They didn't do that. Now they're paying the price, and have no one to blame but themselves.
The KDE libraries are a desktop perfection. I fail to see this price they are paying.
Proudly posted from Konqueror.
-Justin
Psi - ICQ-like Jabber client