Future of desktop development: Java, Mono, C++, ?


News: Future of desktop development: Java, Mono, C++, ?

  1. Havoc Pennington has written about the future of desktop development, and the cross roads that some of the major projects are at (GNOME, Mozilla, OpenOffice.org, Evolution). He writes about the various choices moving forward, and the issues behind those choices.


    In the Linux desktop world, there's widespread sentiment that high-level language technologies such as garbage collection, sandboxed code, and so forth would be valuable to have and represent an improvement over C/C++.

    Several desktop projects are actively interested in this kind of technology:

    GNOME: many developers feel that this is the right direction
    Mozilla: to take full advantage of XUL, it has to support more than just JavaScript
    OpenOffice.org: has constantly flirted with Java, and is considering using Java throughout the codebase
    Evolution: has considered writing new code and features in Mono, though they are waiting for a GNOME-wide decision
    Just these four projects add up to probably 90% of the lines of code in a Linux desktop built around them.

    For some time now, Novell (previously Ximian) has been hacking on the Mono project to reimplement the .NET framework. Mono has been widely associated with GNOME, but many people are unaware that the projects are unrelated. GNOME has never adopted Mono as its future path - no one has even formally proposed Mono adoption. Novell has pledged that it won't use Mono in GNOME (or GNOME components such as Evolution) until a formal discussion takes place.

    No Rewrites Please

    None of the huge desktop projects are considering a one-pass rewrite to a new language; managed code can invoke C/C++ code, so there is an evolutionary path where newly-written code can be managed. This allows gradual refactoring.

    Read more at http://ometer.com/desktop-language.html

    Commentary from the community

    James Strachan in Java, Mono, or C++? - time for open sourced Java?

    Dion Almaer in Open Source projects ponder move from C/C++ to Java/.NET/other

    Threaded Messages (53)

  2. Unfortunately the GNOME folks continues to make bad decisions. Their insistence on developing a desktop environment in C is the chief among them. This was largely dictated by their choice of toolkit, GTK+. This implements OO semantics in C - the result is *VERY* ugly and quite tedious to understand. Additionally their component solution is CORBA based - they even developed thier own ORB (ORBit) to handle the performance issues. Consequently the componentization of Gnome is spotty at best. This can largely be considered a failed effort as it remains very problematic to create and assemble component applications on Gnome.

    Now they want to start implementing parts GNOME in MONO... What the hell are these people thinking about - its not like they are not intelligent, they just keep making the *WRONG* technical decisions. C# without .Net is like Java without most of the class libraries and certainly without J2EE. Additionally there is no advantage beyond the ECMA standardization of the language can be derived from this decision. In my mind, C# does not add enough to programming semantics to be seriously considered as a Java replacement. It does go some way to address the issues in C/C++.
  3. Besides the fact, as mentioned in the article, why the heck should we help Microsoft by supporting one of their core technologies? This has happened before with OS/2 and look where it got them! Most developers never considered writing specifically for OS/2 because Windows software ran fine on OS/2 because of the Win32 API emulation. Microsoft just had to wait until 99% of the developers were accustomed to the Win32 API and start chaning it at such a pace that OS/2 could never keep up. The end result is in the history books. So why are some people even considering running the same risk? It just makes me want to slap Sun even more for not wanting to open up Java. (Not that I can't see their POV but it would be such a shame to let go to waste any opportunity of Java becoming a big part of Linux/GNOME/KDE or OSS in general)
  4. Microsoft is untrustworthy[ Go to top ]

    I agree with you - there are just so many reasons to be very suspicious about hitching your cart with to the C# horse. As you rightfully point out, this will indirectly help Microsoft since it will be introducing more people to their technologies... There is no way this can challenge MS because of the control issues that you mention and the fact that they can throw resources at this indefinitely. As you rightly point out, if IBM was not able to keep up with MS with OS/2, then a bunch of part timers certainly can't. And I mean absolutely no disrepect to the Mono guys.
  5. You want to slap Sun?[ Go to top ]

    You want to slap Sun? Why not Ximian, for causing what some see as such a colossal waste of effort?
  6. No mention of Guile/Scheme[ Go to top ]

    Suprising that there is no mention of the functional language side of things in this. Guile is maturing nicely and Scheme in general has a lot of very interesting features. Surely it should at least be considered?
    After all, the other big desktop utility EMACS is written in lisp and has blazed a trail all of its own!
  7. I think Scheme, and all kinds of LISPs in general, while being some of the oldest languages in existence, are also way ahead of their time. All the popular languages are "stealing" features, one by one, from functional languages. The result is a mess. Why not just go straight to the source and use the real thing?

    There is one problem. Scheme in particular was meant as a "research" language. That's a shame. While Scheme standard is small and elegant, it has no teeth for the real world, like IO, etc. What ends up happening is all the Schemes and LISPS end up with incompatible parts and that slows the adoption of the language in the real world. In the real world you need to talk to databases. You need libraries to do graphics. You need GUI widgets. You need cross-platform compatibility (where is that in Guile?). You need legacy support.

    I love Scheme! I think it's the best language ever. The problem is, the custodians of the language have killed it for the rest of the world by designating Scheme as a toy^H^H^Hresearch language for eternity. I'd love to use Guile for everything, but is it crossplatform? Does it have libs to talk to PostgreSQL? Are they version 2.3.5 or like in Ruby land?
  8. Modern libraries exist[ Go to top ]

    Most scheme implementations either come with libaries or bind directly to C/C++. Note that the article was suggesting that these projects would continue to use their own GUI libraries irrespective of choice of language.
    Personally I'd be more concerned about threading support.
    Guile is intended AFAIK to be cross platform but also is focussed on embedding like any control language so uses the host's GUI library. It is also focussed very strongly on integration with existing libraries via the native interface functionality.

    BTW, my experience of ruby libraries is that they are generally more mature than their version would suggest - whether this is down to the language or the type of person who adopts it I don't know ;-)
  9. No mention of Qt??[ Go to top ]

    And why not Qt ??
  10. I do not understand why Pennington insists that an open source implementation of the JVM is a necessary condition for Java to flourish as a development standard.

    Open source and open standards both solve similar problems. Unlike C#/.NET, Java (language & platform) is a complete open standard. Implementations of that standard need not necessarily be open source for open source projects to target this platform.

    I am satisfied with the free (as in puppy) offerings of IBM, Sun, and BEA.
  11. Not to put words in their mouths or to misrepresent them, these are the same people who started a new desktop environment project because the current project (KDE) was then based on a non-free (similiar to JDK licensing tho.) toolkit. These people are fervent in their opposition to any kind of proprietary licensing. As far as I am concerned, I took a look at the C infrastructure and it was *HORRIBLE*. I cannot stress this enough - If I am going to contribute my time freely, its not going to be in a medieval dungeon of a development environment.

    PS. And yes, I do contribute to an open sources project: babeldoc.
  12. Re: viable open source JVM[ Go to top ]

    I'm with Paul-Michael - I'm not sure an open-source JVM is truly needed, especially more than one. Sun should be giving much more support to Java on Linux with their new (and apparently successful so far) Java Desktop System and Java Enterprise System.

    I still don't understand the need for Mono -- isn't the point of .NET to allow apps to communicate with web services (an open messaging protocol) regardless of the client or server??? Keep writing normal linux-native clients/servers or Java clients/servers and communicate with .NET stuff using those web services!! DUH!

    And, begging to differ with Havoc, I prefer KDE over Gnome, and I think a lot of other people do, too. Ignoring KDE when talking about a linux desktop is poor judgement, IMO. I don't use linux much, and have used both desktops and just prefer KDE, and I read about both from a programming perspective and it's a rare bird that says he/she truly likes programming for Gnome.

    Like some others posting already, I'm not wrapped around the axle with advocating a specific desktop or toolset or licensing scheme. I'll admit I'm no fan of Microsoft, though, and I would like to see Java go further on linux from both client and server perspectives, but know it's a tough road. Doing anything on linux is tough, IMO, but getting better.

    Getting off the whole licensing kick would probably do more good for open source than anything else. It's thoroughly annoying to see news stories every month about somebody who screamed bloody murder because to software packages have "incompatible" licenses. Get over it!
  13. Re: viable open source JVM[ Go to top ]

    Say what you want about the viability of Mono. However, Mono simply rocks! Have you guys tried it yet? If not, and since this is suppose to be a scientific community, then I reccommend that you download and intall it on your linux machine. Writting desktop application just rocks! Just try some of the the sample apps that come with the download so you can see what I am talking about.

  14. I am a chinese java developer with 7+ year java experience and poor english. I do not think that I need a open source JVM! I just need a free and standard JVM such as SUN’s JVM! I hate those who ask more from SUN such as IBM(it make profit from java but destory SUN’s profit and also destory our java group’s profit). I want to ask those despicable companies: why not aim at our corporate enemy such as M$ or make our corporate group bigger? Why just aim at ourself and destroy our group’s profit?
  15. lol: zealots abound on all sides[ Go to top ]

    enough said
  16. To open JVM would demolish the compatibility and Java
    would be only dominated by IBM just for their own profits.
  17. The biggest reason we need an Open Source JVM is so that the distros can ship a fully fledged and certified JVM without being in conflict with any licensing restrictions.

    This is not really a problem for the more commercial Distros, I think SuSe ships with a Sun JVM but the open source Distros such as Debian and Gentoo cannot ship any of the Certified JVMs.

    So basically you need to first need to download and install a JVM before being able to use it, so if Gnome used Java, you would have to do a download and post install of Java and only then try to get Gnome up and running. Not exactly a nice way to have an install and OS and desktop environment is it...
  18. it's not just ethical problems[ Go to top ]

    the biggest problem with java not being open source (and here i mean for example GPL, LGPL, X11,BSD or something like that) is that you CAN NOT link gpl stuff to them. for example if the gnome people wanted to use java to develop gnome apps, they would like to use their GTK toolkit with java. but it is not that simple, because some GNOME stuff can be under GPL, which is very specific about what you can link it to. look at sun: they support/contribute to the gnome platform, but they also have problems when they want to enhance it with gnome (because they just can't bind java to the most of it). so the problem is mostly with binding java to other non-java technologies.
  19. Helping MS[ Go to top ]

    Like other posters I don't understand the drive to enable C# development on Linux. Clearly it would be a scoop for Microsoft to have additional commoditization of C# applications (and developers) through the support of the Linux community, increasing the value of the entire network of existing and future C# applications, platforms and developers. I am sure lending Microsoft a helping hand to fortify their monopoly is the last reason C#/Mono proponents would cite, but what is the reason then? Is C# that much better a language than Java? Does it have superior tools? Or is it something else I am missing?
  20. it's not just ethical problems[ Go to top ]


    AFAIK, most of the library stuff in GNOME is LGPL, not pure GPL so there are no linkage problems with it. Besides, even if it was pure GPL, there would still be no problems calling into it from Java, as long as your application is GPL too, or am I mistaken?

    If you think otherwise, please warn:
    - Java-Gnome (http://java-gnome.sourceforge.net/)
    - Richard Dale of QT/KDEJava (http://developer.kde.org/language-bindings/java/qtjava.html)

    that they have based their work on a shaky ground (using Java to call into LGPL/GPL code).
  21. Must dependencies for a GPLd product also be released under the GPL?

    For instance, the fact that the Win32 API is not GPLd does not proclude me from writing GPLd software for Windows(TM).

    The way I understand the GPL, only works based on or linked with a GPLd product must themselves be released under the GPL.

    Therefore, why can't the GNOME folks write a GTK/JNI/Java layer that targets the Sun JDK? (or would this offend their ideological "purity")
  22. JRE free for redistribution[ Go to top ]

    Maybe I am wrong, but I thought Sun's JRE was freely redistributable. Of course, if you plan to run JSPs, then you would need a Java compiler which is not part of JRE, but then as a Linux desktop for the average consumer, I do not see much of a demand for JSPs. Java applications would run just fine. To run Eclipse IDE, for example, you only need a JRE.

    Also, developers would have no problem downloading the latest JVMs. I am not compalining that I have to download the JVM.
  23. Re: JRE free for redistribution[ Go to top ]

    I agree - I think the JRE is freely redistributable, which I believe it is bundled into many linux distros. The issue seems to be the SDK (compiler, tools, etc). But I agree, I have no problem downloading and using the SDKs. As long as linux makes it easy to download/install, that is.

    Since the SDKs are free to download, free to use, and the "binary output" (.class, .jar, etc) is freely redistributable (and hey, it runs on different OSes!), what good would there be in having an open-source version of the same SDK? It would just introduce compatibility bugs, encourage forks (from well-meaning developers, I'm sure, but it's WRONG! Write a new language instead, for goodness sake!), and be a collosal waste of programming hours that could be better devoted elsewhere.

    Just because you *can* do it, doesn't mean you should. And just because there's "millions of open-source developers in the community across the world" doesn't mean those resources are infinite and should tackle every hare-brained project that comes along. If we're to "let the market decide" whether an open-source Java SDK is needed, my market vote is "NO". I'm already wasting time fighting this lame idea. I'll blame it on the people who think each and every piece of software in the world should be GPL, and if it's not GPL they won't touch it with a 10-foot pole. Get real, people. Open source and community development are good things, but GPL isn't the way to solve all software problems.
  24. (it is a trick question.."

    Miguel de Icaza: "Compiling our program.
    So I begun with a small Java program, I had to Google for Hello World, since I did not remember much of Java, and I have to say, I am still not comfortable with the classpath thing..."


    Rolf Tollerud
  25. Re: Miguel on Java... Interesting[ Go to top ]

    Rolf, thanks for the link. Interesting reading. I would say that it doesn't seem any better than just using the Sun Java SDKs, since you still have to use Mono (an extra dependency) and it's not cross-platform (is it even cross-linux, or would the .exe need to be recompiled for each distro, version of Mono, verison of the kernel, etc.?). But, one thing I don't know about is how easy and efficient it is to build GUI apps using the mono libraries that are getting included. Are they any better than AWT, Swing, or SWT? (each has it's ups/downs) I'm intrigued, but I'm not sold on what it's benefit is (that is, to write programs using Miguel's method).

    Thanks again for the info. Others should be visiting that link and commenting, too!
  26. the Mono team is alert[ Go to top ]

    It is just to show that Miguel de Icaza does not miss any trick.
    If ever C# is to succed on Linus, there must be an easy migration path and gradual refactoring from Java. They are also in preperation for porting the XAML. BTW, here is another link you might find interesting, by Miguel.

    Rolf Tollerud
  27. the Mono team is alert[ Go to top ]

    - "My particular decefit is that I can resist everything, except the latest fashions :("
    - "OO is out, WS in"
    - "Java? this is so last week!!"
    - "You must follow the fashion"
    - "Platon says...."
    - "Carefully handcrafted applications... a jewell!"
    <List goes on>

    Just got back home and noticed that most "technical arguments" from our favourite troll sound very similar to the kind of talking you can find in "Queer eye for the straight guy" reality show... I was laughing my guts off!!!

    If you wanna mark me as noisy, it's fine with me... hahahahah :-P O realize it is not a techie post... but just could not help it. :-P

  28. poor guy[ Go to top ]

    millions of developers over the world use java classpath efficiently and just because he does not like it... what a lame reference!
  29. classpath is a good thing[ Go to top ]

    millions of developers over the world use java classpath efficiently and just because he does not like it... what a lame reference!
    Yeah, the alternative is something like the Win32 COM machine-global registry - which is the basis for a lot of the infamous "DLL hell" phenomena of that platform.

    The problem with global registries is either the last component (of a particular type) registered wins or else have to come up with versioning schemes. These versioning schemes never seem to pan out in practice, though, do they? (Of those doing .NET development I'd like to know if you really bother to use the versioning system of the GAC and specifically depend on it. IMHO it's much simpler to juse do .NET private assemblies and let a .NET application run in full isolation.)

    The thing about Java classpath is every Java program can have essentialy its own private classpath - which makes for wonderful application isolation and thus software application stability. Via the classpath it's more straightforward to insure that a Java program runs with versions of components that it's known to work well with.

    One thing that history has now well demonstrated is that the Win32 COM global registery was a very bad idea.
  30. Well if you reason with yourself for a while you eventually will convince yourself that you have right. The classpath is one of the most stupid - almost comical idiotic things in Java. You just have to choose namespaces in .NET (as 99% do) to have the same application isolation than Java without any global cache.

    Neither do you have the problem with 30 or so different Java VM that clutters your hard disk (as every downloaded program comes with one :)
    Neither do you have the problem with every new "Open Source" release that breaks backward compatibility.

    Rolf Tollerud
  31. Rolf,

    Are you trying to sell namespaces as versioning mechanism? LOL

    This reminds me on another Microsoft "solution" - to version explicitly the COM interfaces changing their names, so you have D3DDevice3, D3DDevice4, D3DDevice5 and D3DDevice7 (perhaps now they are up to 9 :-)

    In this regard I somebody said "there is an obvious, simple and wrong solution to each complex problem".

  32. There are a number of problems with Microsoft becoming too big. If Java and Open Source zealots try to attack this problem with untruths (=lies) like "Microsoft makes inferior products" or Microsoft is criminal" or Microsoft does not have right to respect" then your effort will be in vain. The time has passed when it is possible to manipulate the IT community. The maxim "everything is allowed in a just cause", the just cause being the demise of Microsoft does not work- on the contrary it will backfire.

    The truth is, as everybody capable of independent though can reason out in 5 minutes, is that "Microsoft makes far better products", Microsoft is less criminal than most people and companies" and Microsoft have earned a great deal of respect. If you could only admit that, then we maybe could try to find some solution to the real problem.

    Rolf Tollerud
  33. "There are a number of problems with Microsoft becoming too big" well, at least you show some honesty. Are you refering to all those lame bugs around in almost any version of any software that MS sells? I realize software may be buggy but not THAT BUGGY.

    Microsoft is less criminal than most people and companies :-P Yeah!!! release the kidnapper since he is lees criminal than a murderer!! The logic measure should be to lock both of them up... am i right? (since you love logic so muchhhhhhhhh!!!)

    Microsoft have earned a great deal of respect not mine, and it is worth my weight in gold!!!

    Annnyways... let's cut the crap!!! What does the above have to do with the Classpath thing?? Can you not provide enough technical arguments and just go for making noise (Look!! Look!! The Moon is full!!!)

    Bye M-O-R-O-N
    (If you think hard you may discover what the acronym stands for)

    ps. everything is allowed in a "just" cause- is that smart? well, is MS smart for funding the SCO legal demands against Linux users???
  34. If Java and Open Source zealots try to attack this problem with untruths (=lies) like "Microsoft makes inferior products" or Microsoft is criminal" or Microsoft does not have right to respect" then your effort will be in vain.
    Did I said any of these, did you actualy read my post?
    The time has passed when it is possible to manipulate the IT community.
    Yet you fail to realize it cause it seems that you try to do just that.
    The truth is, as everybody capable of independent though can reason out in 5 minutes, is that "Microsoft makes far better products"
    The truth is that Microsoft makes good enough products, though they are far from perfect.
    Microsoft is less criminal than most people and companies" and Microsoft have earned a great deal of respect. If you could only admit that, then we maybe could try to find some solution to the real problem.
    I admit that MS is a big respectable company. They plan their corporate strategy to make the best possible profits. Nothing wrong with all this, until you start reading their user manuals which scream PROPAGANDA. I feel personally offended by the MS style of writing and treating me like a moron who can't tell crap from food.

    And what was that real problem you say? In my previous post I just made a note that the namespaces are not exactly meant for versioning.
  35. progress[ Go to top ]

    If you read Roger Voss original post it was he that talked about the Java classpath and "DLL hell" in the same breath. But if you want I can divide the issue into two.

    1) Classpath".By the "idiotic and ridiculous classpath" I am referring to the lame idea of tying the class names and hierarchy with the file system, causing untold grief to hundreds of 1000's of beginners.

    2) Version conflict. Java has a greater trouble with version conflicts between different VM's that MS ever had with "DLL hell". But the difference is that MS has solved their DLL problem with .NET while Java still have the same problem.

    Rolf Tollerud
  36. progress?[ Go to top ]

    1) Classpath".By the "idiotic and ridiculous classpath" I am referring to the lame idea of tying the class names and hierarchy with the file system, causing untold grief to hundreds of 1000's of beginners.
    That's interesting, because this was one of the few things I actually got right from the first time. Do you suggest that pouring all files in a single directory is better? Btw, if it's your style of working, you don't have to change it - the compiler creates the output structure for you (though I prefer to keep my packages in different folders.) If your grief is about the output being spread in different folders, well this seems to be pretty straightforward compared to registry with CLASSID for each interface and another GUID for each COM server.
    2) Version conflict. Java has a greater trouble with version conflicts between different VM's that MS ever had with "DLL hell". But the difference is that MS has solved their DLL problem with .NET while Java still have the same problem.
    Actually in ideal world, the problem shouldn't exist to begin with. The registry is designed to keep multiple versions of each component if each application instantiated exactly the version it was designed for it would be ok. Unfortunately, in the real world there are just too many versions to test with (anybody know how many versions of comctl are out there?) So the applications instatiate the controls by "short name". All nice and fine, since the APIs are compatible. Except for the times when it doesnt work.

    As for the .NET solution, most projects I've seen deploy their applications in a single folder. In this folders you have a few files, each of them containing more or less encapsulated set of classes and some metadata. Does it remind you of something?

    Since the assemblies are in the same folder, there's no need of classpath, but you can easily do this in java if you specify the jar's dependencies in the manifest (yet very few people do this.)

    Let me tell you what will happen next. After 1-2 major releases of .NET, MS would suggest everybody should move to their brand new super-mega-release of long-horn-net-KSink++/2 featuring the long craved by the community implementation of RFC2324. It would break compatibility just like Java2 did, but hey - your GUI frontend would still be running!

    Then the more sensible developers would start making fuss about the need to run applications requiring different versions of .NET and (in the best case) MS would catter to their needs by providing an embeddable .NET environment, much like SUN's JRE.

    And in 12 years, you would get to a state, where each application would package it's own .NET environment just in case to avoid conflicts.

    Of course I might be wrong and MS could be the only exception to the rule...

  37. Hi Dimiter,

    Mentioning the future? When I do that I usually get bashed thoroughly :)
    But I don't mind talking about the future.

    It is incredible to me that you and the "Java camp" in general do not see what is coming up. Theserverside has opened TSS.NET, and Javalobby? Look,

    Henk van Jaarsveld: "Why not DEVELOPER lobby (without java)"

    Rick Ross: "I completely agree, but I thought it would be better to move stepwise towards that. I did, however, acquire the domains developerlobby.org and developerslobby.org"

    How many was at JavaOne last year? Will there be a JavaOne this year?
    The Gnome desktop? Subject of this thread and called "Java desktop" by Sun for some reason, they are discussing remaking it with C# and GTK#! (Sun will not take lightly to that :-). It will happen.

    There no less than 3 different ways to obtain an easy migration path and gradual refactoring from Java to .NET, depending on your needs.

    1) Precompile the Java code directly into .NET code with IKVM.
    2) Open it directly i Visual Studio.NET if it is 1.1 compatible.
    3) Use Microsoft's Java-to-C# Converter

    Why is it not so easy to convert the other way? Because Java is a subset of C# of course. C#/.NET is the natural evolution path for Java developers.

    Do your kids care about if they are feed with money earned on the java, .NET or any other platform?

    See the writing in the wall.

    Rolf Tollerud
  38. Rolf,

    Why don't you just leave us alone and post your comments on TSS.NET ? I don't see any advantage in reading that kind of M$-monomaniac pieces of sh*t. We (i-e the readers of theserverside.com) are waiting for parctical information about our enterprise domain. "Your enterprise Java Community" this is it.


  39. no arguments, apparently[ Go to top ]

    gilles: "..information about our enterprise domain"

    The title of this thread is:
    "Future of desktop development: Java, Mono, C++, ?"

    Rolf Tollerud
  40. Do your kids care about if they are feed with money earned on the java, .NET or any other platform? Ok, if your kid DOES NOT care about having his/her baby bottle funded with java-money... why are you so histerycal? if you baby DO care about .NET-money... shouldn't you be discussing at tss.net? why arent you there? lack of interesting stuff to share with your MS-peers?

    We know you dont like Java and are teenager-like fan of MS. OK, good on you. Why do you keep coming here? Is it rational? Do you come here just for the satisfaction of proving yourself able to write and moving your lips at the same time? Again... Does your baby care? Would he be proud of you?

    So buddy, come easy, relax, we do need sometimes a clown around to make us laugh from time to time since our WORK is quite demanding and stressful. But you aren't that clown. Sorry, you are doing your best but you aren't. Just get over it.

    If you want to share technical arguments in a civilized manner, OK, YOU ARE WELCOME. Otherwise, You will be just our second-rate troll.

    I just wonder why TSS.COM does not cut you off DESPITE ALL PEOPLE REQUESTING THEM TO DO SO. Maybe... some vested interest?

    Now...back to work!!
  41. Classpaths, beginners, versioning[ Go to top ]


    Yes, classpath does cause some *beginners* to trip up when they first start programming in Java, but that doesn't mean it's bad, just that it's not obvious right away and it needs to be learned. I really don't think the Microsoft's scheme is any better, and if you ask me there's even more to learn (more APIs, the registry, more layers, etc.) with more possibilities of trip-up.

    And it's not just the "DLL hell" problem that Microsoft has had, but registry issues, cleanup of files scattered around the HD, and broken shortcuts. Taken as a whole, in my personal experience I've had much more trouble with poorly written software for Windows than I've had with Java. That might be because I know Java well enough, but when I do have problems the fix for Java software is usually much easier than the fix for Microsoft software.

    I have versioning conflicts with both Java and Microsoft. But it's much more likely that I can run a Java 1.0 GUI client program on my PC today than a GUI client program written for Windows 95. Yes, Java does have some issues with versioning, and so does Microsoft-based programs, but it's less an issue with the design of the technology than the capability of the programmer to write his/her software correctly.

    And with Java you can usually fix the problem very quickly with a tweak or download of the appropriate version of a library, whereas with Windows software (.NET or otherwise) you have registry cleanup to deal with (if you don't uninstall the software in order to 'fix' it), and most likely a rebuild of the software. And there's likely a lot more dependecies to deal with than with a Java program, which increases complexity, as well as more APIs to learn/remember/master.

    Java has two good things going for it right now -- server-side java using .WAR and .EAR files significantly reduces deployment issues related to classpath; and Java WebStart (for client-side software) now appropriately manages both JVMs and software versions without resorting to a global registry that is difficult if not impossible to manage by hand. And I don't think that Miguel's process of getting a Java client written using Mono/IKVM was easier than the standard Java way. Plus, you end up with a .EXE file and you're stuck -- if you want to patch the software you have to rebuild and replace the whole thing or use a complicated patching program, either of which is a pain.

    These are my opinions, of course, and based on my experiences using and programming with Sun-based Java, I feel more comfortable using it and programming with it than I do with Microsoft/.NET/Mono. I'll still investigate and try out Microsoft/Mono now and then and keep myself open to changing my opinions, but at the moment I know where I stand and you haven't managed to give me good enough reasons to think Microsoft does installation/management/versioning any better than Java.

    I'd rather hear more convincing arguments and descriptive details than statements like "idiotic and ridculous" or "lame idea". Why do you say those things and how can you back them up with useful details? Thanks for your input, though.
  42. nothing for those with a faint heart[ Go to top ]


    It is the current situation that is interesting, will Gnome be done in C#, as Miguel de Icaza wants, or will it be done with Java as Staffan Gustafsson outlines? This is the 10 000 dollar question, a kind of blackmail from Open Source. "If you do not release Java we will use the Microsoft clone".

    When I started with programming I had no idea that I would be involved in a thriller scheme that makes a Hollywood movie look like an afternoon tea party. A real cliff-hanger! And then some people say that life in IT is boring :)

    IMO, Open Source has come to roads end. If they choose Java, Linux is almost certain to fail- On the other hand if they choose Linux- then they have to abandon Java!

    We have to wait for the sequel- try not to bite your nails..

    (Who is the helpless heroine in this movie?)

    Rolf Tollerud
  43. Open Source is not at road's end...[ Go to top ]

    Open Source has come to roads end. If they choose Java, Linux is almost certain to fail- On the other hand if they choose Linux- then they have to abandon Java!
    I'm not sure what gave you the impression that Open Source is hanging in the balance. Open Source, Linux, and Java have coexisted peacefully for years and years. I don't expect any of them to suddenly wither and die. And I certainly don't think that a software project like Gnome has the power to make or break Java.

    Yeah, there's been some ranting from GPL advocates over licensing, but they don't have any power over anyone to make people use or not use a software technology, much less one like Java that has proven itself to be successful in both the Commericial and Open Source realms and appears to be growing. What the GPL advocates are hoping to gain is more mindshare for the GPL that they would hope to use as leverage on even more technologies and software projects. You have to remember that the GPL was created with as much a political agenda as a practical one. But the "Open Source" community seems to be able to thrive on more licenses than just GPL or even GPL/LGPL, so GPL is certainly not the be-all/end-all of software licensing.

    And your logic escapes me -- how are Java and Linux equivalent and why on earth would "Open Source" want to choose between them? Saying that the Gnome project is the totality of the "Open Source" community would be a faulty assumption. There's as much "Open Source" software running on Windows and MacOS as there is on Linux. KDE and other desktops are just as popular as Gnome is. Java runs on all three major desktop OSes. Linux is *not* a desktop environment, Gnome is *not* Linux, Java is just a programming language, and you're doing apples-to-oranges-to-strawberries comparisons.

    And you still haven't submitted any proof or evidence of your assertions. Do you have links to news articles, interviews, market research, project roadmaps, SourceForge statistics, or anything else to back up your claims.

    Here's a couple of SourceForge stats on programming language: http://sourceforge.net/softwaremap/trove_list.php?form_cat=160. Java has 11,000+ projects, and C# has about 1300, which is less than both Visual Basic and Assembly, of all things. C and C++ of course have more than Java with about 13,000 each, but that's only about 15% difference. GPL has a 70% share of the "OSI Approved" licences on SourceForge (http://sourceforge.net/softwaremap/trove_list.php?form_cat=14), so it's definitely strong. Now if you look at projects by Operating System (http://sourceforge.net/softwaremap/trove_list.php?form_cat=199), things get interesting. The POSIX family, which inlucdes Linux, has 31,000 projects, Microsoft has 19,000, and 'OS-Independent' has 19,000, too. If you look into POSIX, you'll find that Linux has a hair under 20,000 projects -- nearly the same as Microsoft and 'OS-Independent'.

    Oh, BTW, did you notice that the most active project on SourceForge this week is "Azureus - BitTorrent Client - A Java Based BitTorrent Client"? #7 is "Compiere ERP + CRM Business Solution", which is also a Java-only project. #14 is a Java-only game. Looking across the list, it's evident there is a large mix of project types and technologies. #20 is a Visual Basic tool!

    But, of course, SourceForge isn't the only place where open-source projects live. Plenty live on their own websites. Java.net has a SourceForge-like setup with CVS and everything, and many projects choose to live there instead of SourceForge. And all of this ignores the commercial side of things, which has a lot to do with just how large a user and programmer base any one language, OS, or technology has.

    I'm sure you've done your homework, though, Rolf, and have plenty of details to add to the conversation. I'd rather hope you're not just making outrageous statements but have plenty of useful points to add to a constructive discussion.
  44. Hi Gerry,

    Didn't you read Staffan Gustafsson post? We need to move on
    It is not only about Gnome, Gnome is only the start.

    Staffan: "In 2-4 years, Microsoft will deliver an all/mostly managed environment, giving the developers on the MS platform a high productivity environment. Both on the client side(avalon), command line (monad) and on the server side (indigo/asp.net)"

    It is all about how Linux shall meet this challenge. Do you really think Java will be up to it? Icaza doesn't appear to think so.

    Gerry: "Java has 11,000+ projects, and C# has about 1300"

    You just forgot a little important bit of info, that Sourceforge is in essence an "enemy country" to MS developers, and that they have their own "Sourceforge" at Workspaces. Why don't you add the 5805 .NET projects (more then 4000 C#) at Workspaces in just one year to the list?

    Rolf Tollerud
  45. Steffan makes some interesting points, I agree. But I think he overstates the threat of Microsoft somewhat. And trying to galvanize the Open Source community to back just one technology just won't happen because it's nature is to be driven by diversity. Steffan is thinking from a vendor or standards-group viewpoint, which just won't happen in Open Source land. It's like pushing string, herding cats, etc.

    It may just be me but I don't think that Longhorn will be any more successful than Windows XP, and my bet is early on it will be less so. With each OS Microsoft has had an increasingly tough time trying to get people to upgrade or to select a new PC that has the new OS installed instead of the old OS they're replacing.

    And the fact that Longhorn will likely, from what I understand, not be natively backward compatible with WinXP and prior, that means people will have to run their older apps in emulation mode (MS owns Virtual PC) or purchase/upgrade their apps to a native Longhorn version. That is going to give people a lot more pause, and they'll be weighing their options and their pocketbook much more carefully. But I'm sure Longhorn will have some really cool technology and lots of whiz-bang features. I would never suggest that ANY OS be banned outright, and I agree with the general open-source philosohy of "let the market decide", so I'm all for giving Longhorn a shot at the limelight. I just think Microsoft has a much tougher job this time.

    In the interim, I agree that Linux has a long ways to go to be considered a better option, but I think that by the time Linux will have made itself quite comparable. Investment by companies and government into Linux is increasing every day. Sun just announced they plan a 3D desktop environment, obviously planned to rival Longhorn. Novell is back in the game with SuSE and is hoping to steal Microsoft's playbook and become even more of a player than Red Hat.

    I didn't know about the Workspaces community. But I did say previously that there are lots of personal websites and other places where Open Source development takes place. But please don't ignore the fact that I called out the fact that there are 19,000+ Windows projects, and about the same number of OS-independent projects, a large amount of which we could safely predict run well on Windows. I'd hardly call SourceForge enemy territory for Windows/MS developers. There's certainly no restrictions or drawbacks for Windows/MS projects being hosted there, unless you think of CVS as one (which some do), and not any text on the site that implies they aren't welcome, either.
  46. Danger of Longhorn[ Go to top ]

    ... And the fact that Longhorn will likely, from what I understand, not be natively backward compatible with WinXP and prior, that means people will have to run their older apps in emulation mode ...
    This is (unfortunately??) not correct. Win32 apps will run just as they do on XP today. They just don't get the wiz-bang features of Longhorn.

    Gerry, you are correct that I don't have a full understanding of how the thinking goes in the Open Source community.

    What I do see is that Microsoft, for the first time ever in my opinion, is getting it's act together. End to end.

    And I strongly beleive that both Linux and java as technologies has their futures threatened by Microsoft dominance, if they don't provide a compelling alternative to Longhorn. Maybe I do overstate the danger of Longhorn, but I'd hate to be proven correct just by us not getting our act together in time...


  47. nothing for those with a willy[ Go to top ]

    Rolf: (Who is the helpless heroine in this movie?)

    Um ... let me guess ... it's you?

    Rolf, you really confuse me sometimes, but now I see where it's coming from.


    Cameron Purdy
    Tangosol, Inc.
    Coherence: Clustered JCache for Grid Computing!
  48. Oh then. I see I have to spell it out. I forgot that not everybody can imagine that it is possible to see things from both sides! Well, from your side it looks like this:

    Open Source is the common decent people
    MS is the villain the has lured the people
    Sun is the Hero
    Java is the Heroine.

    So I give you this task,

    Describe how it looks like from my point of view :)

    Rolf Tollerud
  49. Microsoft is less criminal than most people and companies
    Surely, Rolf, you are kidding. Most companies haven't been found guilty of serious violations of the Sherman Antitrust Act! Any company with a slogan such as "Dos ain't done 'till lotus don't run" has serious ethical issues.

    Remember the Frog and the Scorpion fable - its in their nature.
  50. sometimes I have scruples..[ Go to top ]

    You know, now and then I take pity on the Java community, what a terrible year for Java and shall I come here and bash the already lying? Why did I hack upon the Java class path- its stupid but after all only a bagatelle, Rolf you are mean..

    But then comes a post like yours again and all reservations pass away!

    No mercy.

    Rolf Tollerud
  51. hahaha, you just have leaces....[ Go to top ]

    shall I come here and bash the already lying? poor buddy, he does not have anything better to do than "bashing the one already dying". Ethical?

    I just wonder if his curremt behaviour is caused by some horrible thing that happened when he was a kid... <Buddy, get over it... Santa claus DOES NOT exist>

    No mercy Why TSS.COM DOES NOT CUT THIS TROLL OFF? mmmm... VERY, VERY suspicious...
  52. Hey Rolf,

    how is your java-like MVC web framework open source project going at gotdotnet's "workspaces"? Any news about it? Any source code already posted? ;)

    Good to see that after bashing open source community so much, your mind has changed and you decided to join the fun! I am sure you're going to change your mind about other things too. Welcome to the real world!

    Henrique Steckelberg
  53. as if the .NET Runtime were[ Go to top ]

    any different.

    I think it´s even worse: Like not implementing features on Windows XP, but still including them in the Runtime...
  54. We need to move on[ Go to top ]

    I think Havoc's thoughts must be taken under serious consideration.

    I think there are a number of things to consider.

    1. Productivity in a managed language is much higher than it is in for example C.
    2. In 2-4 years, Microsoft will deliver an all/mostly managed environment, giving the developers on the MS platform a high productivity environment. Both on the client side(avalon), command line (monad) and on the server side (indigo/asp.net)
    3. To compete with that Linux, as a platform, need an equally productive environment. If that is Java or C# doesn't might not matter from this perspective (although I hope for java, as I'm working for a company building one of the JVM's.
    4. Choosing C# might help Microsoft in some way, by removing the "only runs on windows" argument.

    I personally believe it is critical for the Linux community to realize the need for a managed main stream programming language. In the long run, it's the only way to stay competitive compared to the Microsoft platform.

    I java is choosen, (or maybe before it can be) there are a number of obstacles to overcome. Licencing (The licence from Sun does not allow us to go Open Source for example) is one big issue. Another is that a lot more expressiveness might be needed in some cases (the java.lang.Process does not even give you access to a pid, for example). This however should be easy for the Open Source community to overcome.

    But I ask all of you to not just dismiss what Microsoft is doing in Longhorn as vaporware, but to start perceive is as something that requires action from our part. I've been tracking thier longhorn plans fairly closely, and it is _not_ something we can safely ignore.

    Start asking "What counter measures should we put up?"

    My answer would be to integrate the Java platfrom more closely in the Linux platform, and provide a unified Java/Linux alternative to what Microsoft provides. This is not a path without obstacles, but it is the best I can come up with.