Slashdot Mirror


Miguel de Icaza Talks About Mono

Matthew Revell writes "Miguel de Icaza defends Mono and talks about its future relationship with the Gnome desktop, in the latest LugRadio. The leader of the open source implementation of .NET says no one is forced to use Mono but he hopes it will make life easier for open source developers. "

31 of 596 comments (clear)

  1. Re:well.. by suso · · Score: 4, Funny

    Shouldn't mono be a story for the day after Valentine's day?

  2. Patent issues? by Anonymous Coward · · Score: 5, Informative

    he hopes it will make life easier for open source developers.

    I thought the problem was that Microsoft told everybody that they didn't have any patents on C# or .NET, but they are actually a licensee of somebody else who has patents on it? Miguel dodged the question on this one by simply stating that it was a reimplementation rather than licensing .NET from Microsoft.

    Listening to the audio, the things on the horizon are Windows Forms and incremental improvements (tuning). People are porting applications today, usually you can just copy the binary, but ignorant Windows developers do things like screw up path separators, assume case-insensitive systems, etc.

    1. Re:Patent issues? by farnz · · Score: 4, Insightful
      Define case-sensitivity for all users, such that the case rules stay the same no matter what locale I use. I happen to be English, so I can cope with a US-ASCII filesystem, and US-ASCII collating rules. If you're Danish, you have a different set of collating rules, and the mechanisms for a case insensitive comparison are different; it gets even worse when we introduce Chinese, Japanese, Korean, Russian, Greek and other languages which don't use the Latin alphabet into the mix.

      Putting Unicode rules into the kernel is also painful; the collation rules for Unicode are huge and messy, and this relies on all users selecting the same Unicode compliant encoding (note that CJK users tend to prefer 2-byte encodings like UTF-16, while Latin alphabet users tend to prefer single-byte encodings like UTF-8).

      Far easier to have the kernel say that a given byte ('/') is a directory separator, another byte ('\0') is the end of file name character, and leave user apps to interpret the byte stream. Then, I can use UTF-8 freely, and it's fine; a Japanese user can use Shift-JIS, and while his filenames look wrong to me, I can select any file he can create. In a case-insensitive system, he can create files that have different names in Shift-JIS, but are differentiated only by case in UTF-8 or ISO 8859-1.

  3. .NET is a litigation nightmare waiting to happen by Anonymous Coward · · Score: 4, Interesting

    The prospect of GNOME becoming dependant was the straw that broke the camels back and made me switch to XFCE, keep the .NET patented API out of GTK!

  4. Why I love mono by adolfojp · · Score: 4, Informative

    C# is one of the best ECMA compliant languages today. When used with open source libraries it is a very powerfull developement tool. It is only quasi ilegal when you use the microsoft libraries wich you DON'T need to use.

    For rapid application developement under Linux I'll take C# and mono any day.

    Cheers,
    Adolfo

  5. Mono And Linux by WombatControl · · Score: 4, Informative

    I've tried Mono, and while I've little desire to move from Python over to Mono, it's a very well done project. The GTK bindings are quite nice, and C# as a language is much, much, much easier to work with than Java.

    The big "if" is whether or not Mono can become to popular without Microsoft trying to pull the plug. However, even if that does happen, C# is an ECMA standard. There are plenty of native Linux libraries that can be used in place of the Microsoft classes. For developing GUI applications under Linux, you're not going to use the Windows.Forms libraries anyway, you're going to use GTK. Mono can stand on its own as a good RAD language for developing graphical applications for GNOME.

    I know it's fashionable to bash MS at every turn (and as a Mac/Linux user I do all the time), but C# is a nice language and the .NET libraries are infinitely better than the cruft of Win32/MFC and the other mess of libraries that Microsoft used to shove down programmer's throats. Mono has done an excellent job of taking those libraries and making them work on Linux.

    Even without the Microsoft libraries, Mono still provides a good framework for RAD under Linux and GNOME. If we can make it as easy as possible to transition between Windows programming and Linux programming it only helps propagate Linux.

    1. Re:Mono And Linux by miguel · · Score: 4, Informative

      If comparing C# 1.0 vs Java 1.4:

      * Attributes.
      * Support for unsafe code.
      * P/Invoke vs JNI is a fairly big difference.
      * Operator overloading, which on the .NET Framework is used with good taste.

      If comparing C# 2.0 vs Java 1.5:

      * Iterators (yield keyword).
      * Anonymous methods.
      * Fixed buffers
      * Generics for value types (Java only has generics
      for reference types, everything else must be
      "boxed", the Int vs "int" problem).

      Now, from a pure usability standpoint, I like
      the tiny things like:

      * `mono program.exe' runs your program, no need to
      pass a class name, or a path or setup the cp to
      run.

      * The layout of my files is not constrained to
      one-file, one-class and the file system hierarchy
      does not have to match the namespaces I have
      chosen.

      Miguel.

    2. Re:Mono And Linux by LDoggg_ · · Score: 4, Insightful

      java -cp %CLASSPATH%;C:\AppDir\lib\library1.jar;C:\AppDir\l ib\library2.jar;C:\AppDir\lib\library3.jar -Xms32M -Xmx512M -jar myjar.jar is the equivilent. Or have you never written any real Java programs?

      You do realize that it is possible to place global third party libraries in a common location right? Try /jre/lib/ext/
      Or do all Mono programs only use standard APIs?

      --

      "If they have both, tell them we use Linux. And if they have that, tell them the computers are down." -Dave Chapelle
  6. Re:Is he really a big cheese by Trigun · · Score: 5, Informative

    Miguel is the lead developer for gnome, and his pet project was creating a .NET framework for linux. It has since grown to be more than a pet, gaining the backing of Novell. It is not the easiest thing to get running on your system, but by far not the hardest.

    It needs to be defended for a number of reasons. Linux zealotry (why would people move from Windows if all the software is cross platform?), laguage zealots (IMHO, C# is a nice language to program in, but the java guys scream bloody hell) and people afraid of MS putting the legal smack down on Linux over API issues,just to name a few.

    Personally, I think that Miguel's reliance on WINE is a mistake, but we have discussed this here, and it does have immediate benefits for the windows.forms and directX stuff. I know people who are programming frontends on both Windows and Linux, using a combination of the GTK interface and Windows.forms, and they love it.

  7. Re:MONO is a disaster. by Frymaster · · Score: 4, Interesting
    All it does is to legitimize microsofts attempt at monoplizing another market

    wrong. mono is about "embrace and extend"... the same technique that microsoft has been using for years to swallow or crush competing technologies.

    it's nice to see redmond on the receiving end of this formula for once, don't you think?

  8. Re:Is he really a big cheese by wizbit · · Score: 5, Informative

    WINE support was abandoned in favor of their own SWF implementation, and it's been that way for a while in the development releases. They're developing their own implementation because, yes, it makes things less portable and less stable.

  9. Re:SWF by Burb · · Score: 4, Informative

    Just FYI, the portable.net project has some kind of System.Windows.Forms implementation. Don't know how good it is, though.

    --

  10. Re:.NET is a litigation nightmare waiting to happe by Anonymous Coward · · Score: 5, Informative

    Here is Miguel's answer to GNOME becomig depentdant on MONO: http://mail.gnome.org/archives/gnome-hackers/2002- February/msg00031.html

  11. Leaving out half the community? by m50d · · Score: 4, Insightful

    Don't get me wrong, I think mono is a great idea. But I'm worried about how closely tied it is to gnome. Not because of it taking over gnome, but because of it ignoring KDE. I think they should try and get more of the Qt stuff in there, Qt# at least should be in the standard mono dist. Otherwise you just split everyone.

    --
    I am trolling
  12. Re:MONO is a disaster. by mr.+marbles · · Score: 4, Interesting

    Good idea, lets promote and assist the "industry" in deciding to use this tool by NOT POINTINT OUT there is a better cross-platform tool out there but BY HELPING to legatimize this propietary toolset by allowing Microsoftzilla to say "see its multi-platform too" in their marketing materials.


    Fact is there are no better cross-platform tools out there for development, or at least that is the opinion of the users and developers of Mono. People develop and use Mono not because they think to themselve "Hey man, It's Microsoft! They've got to know better," they used it because the same cycle of C/C++ plus a bunch of toolsets are painful to use. Use whatever you want, I like Python myself. What I don't like is this negative FUD campaign against Mono.

  13. Parent NOT Troll! by Lysol · · Score: 4, Interesting

    While very, er, direct, parent has a point.

    It is 100% true that GNOME was founded that way. And I believe, more than anything, that the plunge into .NET by the Mono team steers straight into a darker and deeper pit than anything that would have been experienced in Qt.

    I've said it over and over that Miguel and crew have done a remarkable job. Really. But the biggest flaw in their tower is the fact that it's a spawn of Microsoft. I can completely understand their target of a langauage/platform that they know will succeed. But we all know Linux/FOSS to M$ is all about FUD, embrace and extend, etc... How many times has anyone from M$ talked about working with the GNOME/Linux community vs. destroying or crushing it? Plus, now that Miguel is part of Novell who do you think is going to prevail in court? On that one, I'm gonna put my bet on the company with $40bln in the bank (and that ain't Novell). Anyone up for the 'M$ pummels Novell again' show?

    Until M$ comes out with an open source license for .NET, Miguel and the Mono guys are walking on really thin ice.

    For myselft, years back I started dabbling in C# thinking I'd broaden my programming knowledge. But I have to say that I prefer Java over C# as C# is just too Microsoft and there's something about the feel of it that gives me goosebumps. Like my old, really old, yukky VB days.

    Plus, while most people don't care, I can't separate the poilitics from the code on this one.

  14. Choice of GUI toolkit by HogynCymraeg · · Score: 4, Interesting

    I remember hearing that GTK# was the way to go WRT the default mono toolkit. Bad idea. GTK on windows is pretty bad. However, I found this project which makes wxWidgets available to mono. Why oh why would you want to use gtk# over wxWidgets (which in turn uses native UI)?

    1. Re:Choice of GUI toolkit by miguel · · Score: 5, Informative

      Gtk# on Windows uses the UXTheme API, which will
      make Gtk+ look like every other app on the system.

      The feel in Gtk+/Win32 is already emulating the
      host OS, so you get both look and feel.

  15. Re:How Much .NET Can I use? by Adhemar · · Score: 4, Informative

    On Linux, you can use the Apache module mod_mono .

    It is available on the Mono project's download page.

    It allows Apache to serve ASP.NET pages by proxying the requests to a slightly modified version of our XSP called mod-mono-server that is installed along with XSP.

    It doesn't work on the Windows version of Apache yet, but work is in progress to make that work, too.

  16. Re:MONO is a disaster. by Lysol · · Score: 4, Insightful

    What I don't like is this negative FUD campaign against Mono.

    Dude, it's not so much against Mono & co. - they're our peoples. I think they've done a great job. However, it is against M$ and their history and mindset. Until they start acting like there's a world where many types of languages and platforms can exist on their own merit, instead of wanting to own everything, then I won't trust them and I'll have to cast a skeptical eye towards anything berthed from Redmond. When was the last time Guido pronounced <insert Ballmer or Gates soundbite of the week here>?

    Besides, I speak not from the typical /. zealot perspective, but someone who left the M$ camp years ago after being continually burned by the platform and development environment. They haven't changed and if anything, have only extended their reach increased their lock-in. I'll never go back.

  17. Re:MONO is a disaster. by KhaZ · · Score: 5, Interesting
    ... Perhaps I'm missing something.

    This post, and all it's subposts, really anger me. From what I understand, .NET is an ECMA standard. This can be verified here: http://msdn.microsoft.com/net/ecma/. They even post a C# specification, so really anyone with the talent can implement it.

    As such, how does this "legitimize microsofts attempt at monoplizing another market with yet another windows-only product exactly similar to an exsisting [sic] multi-platform product"?

    1) It's not Windows-only since MONO runs on linux.
    2) It doesn't legitimize any attempt. http://www.mono-project.com/about/licensing.html does not state anything about an 'evil' Microsoft licensing scheme, or invasion of Microsoft bed bugs into your code:
    "The C# Compiler is released under the terms of the GNU General Public License (GPL). The runtime libraries are under the GNU Library GPL 2.0 (LGPL 2.0). And the class libraries are released under the terms of the MIT X11 license.".


    Perhaps I fail to see the "licensing minefield created by Miguel", as the fact that it's an open standard, and that the MONO licensing itself isn't restrictive, pretty much subverts that.

    On a final note: even if all my points are completely off base, and wrong: I ask you one thing: When did we turn from software developers who seek the 'best' solution to 'X' people?

    "I'm a Mac person."
    "I'm a Linux person."
    "I'm a Windows person."
    "I'm an X person."

    Since when did it become about branding yourself with something, over choosing the best technology for the job? Half the sub-posts here are all about not choosing the tech because it 'feels too Microsofty'. C# was built by Anders Hejlsberg, who designed Pascal, and Delphi, both successful languages in their own right: and Borland technologies.

    Oh no! Now the anti-Borland people aren't going to use C#!

    When will this nonsense stop? We're all so anti-being branded, unless we do it to ourselves. Pick the RIGHT solution: not the one you've been known to cower behind.

    --
    - - - -

    KickingDragon

  18. Why Mono is necessary for the Linux/UNIX world by Tillmann · · Score: 5, Insightful

    Hi,

    I can perfectly understand that many hate Mono simply because of the fact that it was Microsoft who designed .NET. That is a valid argument; however, it must be considered that Mono is something that, in the future, is really required for the Linux/UNIX world.

    I suppose that those bashing Mono have never actually worked with C#. Personally, I'm really an anti-MS guy, but at work I was basically "forced" to use C#, and I must admit, it absolutely rocks. It is simply a much more productive language than C or C++, especially for GUI development. When you get a specific task, you're simply much more likely to get it done and get it stable within a given time in C#. The biggest productivity gain (besides the syntax candy, like foreach loops) comes from the garbage collection. Sure, other languages like Java have that, too. But, as far as typical DESKTOP applications are concerned, Java has failed to gain popularity both with users and developers (I suppose the major reason is that Sun took way too long to finally allow Java GUI apps to integrate themselves seemlessly in the desktop by adapting a "native" look & feel; but that's another issue).

    Linux apps have done a great job in the past years in getting competitive to their Windows counterparts. So, if Linux wants to stay competitive with Windows in the future as well, there must be a similarly productive language for GUI development on Linux. Standard C/C++ with GTK+ and QT can certainly compete with the horrors of MFC easily. But, in my opinion, not necessarily with the combination of C#/Windows.Forms, as far as speed of development is concerned.

    Also, if we want to see more commercial applications to run on Linux, there must be a way to easily develop portable GUI apps. Imagine you're the boss of a smaller software company. You develop Windows apps, your customers all use Windows (welcome to the real world!). Maybe 3% of your customers consider switching to Linux. And now you're starting that new software project that must be finished within a certain time. What are you gonna do? Buy QT, and tell your developers to start learning it? Use GTK, with all related problems on the Windows platform, and tell your developers to start learning it? Nope, that's not what the typical boss is gonna decide. He'll let the developers use what they're used to, M$ visual studio, where they can click together the GUI. He'll tell the 3% of the customers that Linux isn't supported.

    And this is exactly what may change with Mono!

    And talking about the patent issue: Giving up on Mono because of potential patent issues would mean giving up on the patent issue itself. Mono could be the best "bad" example how software patents support a monopoly and limit interoperability. The fight against software patents isn't over yet. At least not in Old Europe.

    bye,
    Till

  19. Re:MONO is a disaster. by Omega1045 · · Score: 5, Interesting
    I really disagree with your point. If anything, Mono helps fight MS. One way that MS locks people onto Windows is with proprietary developer kits and languages like VB and Visual C++. These rely on Microsoft libraries. When a company develops some custom software with ASP, VB or VC++ they are locked into Windows (with the exception of some 3rd party stuff that lets you run some of ASP on Linux, Wine, etc).

    MS Actually let .NET and C# become ISO standards unlike many of their past developer tools and languages. So when a large company develops an ASP.NET application and then decides that they don't want to have to continue support IIS or Windows, they now have a choice to migraite to Linix!

    Mono provides choice for those that are currently developing for the Windows platform. So does Java. Mono is FOSS. Is Java?

    I am currently working on a project that uses C# for the GUI. Our customers use Windows workstations, so we are writing software for Windows. We are actually moving away from Java which was the old language of choice at my company. You may argue the reasoning behind this, but it is the decision that was made and we are using C# instead of Java. I am hopefull that a more mature Mono (in a year or so with full System.Windows.Forms) may provide us with a way to run our client programs on Linux workstations, if requested by a customer. Mono will give us back some of the choice we lost moving away from Java.

    Mono creates great competition for Java. Perhaps this will be another reason for Sun to finally make Java FOSS. Competion is a good thing.

    --

    Great ideas often receive violent opposition from mediocre minds. - Albert Einstein

  20. Python and QT by codepunk · · Score: 4, Insightful

    So what exactly is this going to get me over say something like using Python and the soon to be released gpl qt for windows? Python is a way more productive language than either C#,C,C++, java or VB so what is the benefit?, I just don't see it.

    --


    Got Code?
  21. Re:MONO is a disaster. by aled · · Score: 4, Informative

    From what I understand, .NET is an ECMA standard. This can be verified here: http://msdn.microsoft.com/net/ecma/. They even post a C# specification, so really anyone with the talent can implement it.

    Perhaps you should read your own link. Only C# and CLI are ECMA approved standard. The other 80% of .Net (aprox.) is Microsoft property.

    --

    "I think this line is mostly filler"
  22. Re:MONO is a disaster. by miguel · · Score: 5, Informative

    Hello,

    You are wrong, Microsoft has not done anything
    to prevent code from running on Mono.

    There is the real problem that we do not
    implement all the class libraries, specially those
    that are being phased out like EnterpriseServices
    and Message Queuing. But then again, those are
    really marginal tools which were complex to use,
    so its not really a problem.

    The other bit is COM support, which we do not
    support as there is really no "COM" to talk to
    in Unix anyways.

    Miguel.

  23. Re:Published does not mean free of patents by miguel · · Score: 4, Interesting

    The problem with patents is that they will cover
    the concepts, not the implementation.

    So the reality is that any modern implementation of
    anything remotely interesting will infringe in
    a bogus patent. You write a hundred lines of code
    and you are infringing someone.

    In my opinion, we can fight bad patents or we can
    move into a safer industry, like selling panties.

    But in particular, if you are talking about ASP.NET
    the question you must ask yourself are:

    * Do I use any concepts that exist in the .NET
    Framework in my code? If so, should I remove the
    feature?

    * Did the concepts in ASP.NET (or any other
    technology) exist prior to the .NET Framework?

    Remember that you must be thinking "concept" and
    not "implementation", because a patent is much
    broader than that.

    I believe there is very little new under the sun,
    and that prior art can be found for all the
    interesting parts of the .NET Framework. If I
    didnt, I would be selling soap.

    Miguel.

  24. Re:Server side Java for multiple platforms is not by miguel · · Score: 5, Funny

    Hello,

    Yes, "Java has a hell more production sites
    than Mono". This is whats wrong with this
    argument: if "having more production sites" is the
    metric to choose a technology over something new
    then we would still be running code in assembler
    and Cobol. After all, there were more production
    systems written in those than in C, C++ or Java
    when these languages came out.

    Love,
    Miguel.

  25. Cross platform apps and scripting by Rhalin · · Score: 5, Interesting

    Mono may be a reimplementation of an MS product, even looking at the source, you'll notice a folder full of *nix implementations of windows API calls. But what does it really matter if it does the job you need it to?

    I started looking into it a few weeks ago when a project I was (am) working on required a scripting engine that could handle running scripts from anonymous sources, id est untrusted.

    We went through a large range of languages: python, perl, angelscript, php, lua, etc etc but ended up with a few rather large problems in all of them: either lack of sandboxing and protecting a system from the effects a script could have, or lack of documentation and user friendlyness for those who may not be too familier with programming (yes, we have to consider them)

    One of the dev's on the team brought up that .Net includes a set of security features that help to lock down scripts fairly tight, the problem being, our app has to be cross platform. This started us looking into Mono, which doesn't implement all the security features -yet-, but by our planned release date, they should be done, or very close.

    Another thing to consider, is that Mono will run any CIL compiled code, meaning that we can support a virtually innumerable count of languages, with very little excess implementation (find a compilier and link it into the project).

    So now we have: cross platform scripting (with sandboxing eventually), and the ability to present the users/programmers of the scripts with the syntax they are most comfortable with using.

    Not only that, but Mono is going to save us a fortune on our development costs, because we may be able to drop Qt GUI implementation from our project roadmap, which averaged about $6000 for each developer(Qt Enterprise with QSA), I believe, and had some -major- limitations on what you could use thier scripting language for (for example, you're not allowed to use it to expose features of Qt itself to the scripter, which may be neccisary for our project)

    Mono does the job, fits our specs almost perfectly, saves us money, and is built on CIL ECMA standards. What more -could- we ask?

  26. what's the alternative? by jeif1k · · Score: 4, Insightful

    I thought the problem was that Microsoft told everybody that they didn't have any patents on C# or .NET, but they are actually a licensee of somebody else who has patents on it?

    Well, let's be precise. C# and .NET are two different things.

    C# is an ECMA standard with features that are found in dozens of other languages. There is no indication that there is anything patentable about it. In fact, if you look at the C# specification, it is clear that they have been careful to avoid patents that Sun owns on Java (yes, Java is patent encumbered).

    Then there is .NET. It is a huge collection of APIs, many of them Windows specific. In a trial balloon, Microsoft has attempted to patent the totality of those APIs. What the significance of that patent is going to be isn't clear--it may not be worth the paper it is written on.

    So, what's the upshot of it all? You can't avoid the risk of patent infringement no matter what language you use. However, at this point, it is pretty clear that C# exposes you to no greater risk than other languages. As for .NET, you don't have to use it: most open source applications developed in Mono are written using the Gnome APIs, not the .NET APIs.

    It's not an ideal world, but if you want a reasonably popular and practical natively compiled language with garbage collection and reflection, your choice basically comes down to C# and Java. Java is completely owned by Sun: Sun owns the specifications, Sun holds many patents on it, and Sun effectively can control who may implement Java and who may not (they have chosen not to exercise that control vis-a-vis implementations like gcj and classpath yet, but if they want to, they can). C# may not be the ideal choice, but it's the best you are going to get.

  27. Re:.NET is a litigation nightmare waiting to happe by bonch · · Score: 4, Informative

    From the licensing FAQ section of Mono's own website:

    "Question 131: Could patents be used to completely disable Mono (either submarine patents filed now, or changes made by Microsoft specifically to create patent problems)?

    First some background information.

    The .NET Framework is divided in two parts: the ECMA/ISO covered technologies and the other technologies developed on top of it like ADO.NET, ASP.NET and Windows.Forms.

    Mono implements the ECMA/ISO covered parts, as well as being a project that aims to implement the higher level blocks like ASP.NET, ADO.NET and Windows.Forms.

    The Mono project has gone beyond both of those components and has developed and integrated third party class libraries, the most important being: Debugging APIs, integration with the Gnome platform (Accessibility, Pango rendering, Gdk/Gtk, Glade, GnomeUI), Mozilla, OpenGL, extensive database support (Microsoft only supports a couple of providers out of the box, while Mono has support for 11 different providers), our POSIX integration libraries and finally the embedded API (used to add scripting to applications and host the CLI, or for example as an embedded runtime in Apache).

    The core of the .NET Framework, and what has been patented by Microsoft falls under the ECMA/ISO submission. Jim Miller at Microsoft has made a statement on the patents covering ISO/ECMA, (he is one of the inventors listed in the patent): here.

    Basically a grant is given to anyone who want to implement those components for free and for any purpose.

    The controversial elements are the ASP.NET, ADO.NET and Windows.Forms subsets. Those are convenient for people who need full compatibility with the Windows platform, but are not required for the open source Mono platform, nor integration with today's Mono's rich support of Linux.

    The Mono strategy for dealing with these technologies is as follows: (1) work around the patent by using a different implementation technique that retains the API, but changes the mechanism; if that is not possible, we would (2) remove the pieces of code that were covered by those patents, and also (3) find prior art that would render the patent useless.

    Not providing a patented capability would weaken the interoperability, but it would still provide the free software / open source software community with good development tools, which is the primary reason for developing Mono.

    The patents do not apply in countries where software patents are not allowed.

    For Linux server and desktop development, we only need the ECMA components, and things that we have developed (like Gtk#) or Apache integration.

    Question 132: Is Mono only an implementation of the .NET Framework?

    Mono implements both the .NET Framework, as well as plenty of class libraries that are either UNIX specific, Gnome specific, or that are not part of the .NET Framework but people find useful.
    Credits"

    Additionally, I don't see any objections to Java being used in the Linux world. And yet:

    - Both are backed by software giants
    - Both companies have traditionally been fiercely proprietary
    - Both of them offer a new language/platform.
    - While C# is now an ECMA standard, Java is still architected by Sun's engineers (even though Sun can claim that they have a "community" process
    for extending the language/specs)
    - Both have patents of various aspects of the implementation.
    - Both have proprietary implementations in the market.
    - Both have evangelists eager to win converts to the new platform.
    - Both the corporations are profit driven.

    So why is Java okay?