Many of the previous comments are correct, but seem to miss one main point...
The issue here is not "let's write GNOME applications in Java/C#/ Perl/Python/Ruby". This is something that can be easily done now, with any of those languages.
The issue is "let's integrate a virtual machine in the GNOME system libraries, so that GNOME reusable components can be written in a language that is more abstract/expressive/safe/productive than C".
The issues about the type safety of languages, IMHO, should be looked at from this perspective.
In some cases it is perfectly appropriate developing an application in a language that is not statically type safe, while in other cases it is better to have a type safe language. Each application developer can pick his own choice, and be happy with it. It can be also perfectly acceptable to have different VMs supporting different languages for different applications.
On the other hand, for reusable components, the requirements are more stringent. Moreover, if you want to have true reusable components, ease of interoperability with other technologies is a must.
What Microsoft is doing internally, with .NET, is replacing COM and DCOM as a technologies for writing components with a more modern way of doing things (.NET assemblies and remoting). They will have the advantage of a very coherent system when the migration is completed (longhorn), and a very easy and incremental migration path for ISVs in the meanwhile.
If I got it correctly, it is because he was seeing this potential in the .NET standard that Miguel started the mono project; he tought that those benefits would apply to a free platform (GNU/Linux/GNOME) as well.
In my opinion, for individual applications the problem of "standardizing on one VM" is not an issue. Each application writer picks his own choice, and everything works anyway, just like we are doing now.
It is when you want to have a coherent system, and reap the benefits of a more modern platform also at the system component level, that you need to pick a choice globally to avoid fragmentation.
At this point, the only options are Parrot, Java and mono (for the sake of completeness, also portable .net, but this counts as a .NET reimplementation like mono). Everybody has his opinion on the subject... for me, Parrot is not ready, and Java is not free enough. Besides, .NET is very, very well tought out, and generally technically superior.
Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds