Slashdot Mirror


On the Horizon: an Apache-License Version of Java

mparaz writes "Geir Magnusson of the Apache Software Foundation announced a J2SE 5 implementation project called 'Harmony.' It covers the virtual machine and the class libraries, and aims to pass the Sun specification. A FAQ is available."

268 comments

  1. great news by Sv-Manowar · · Score: 4, Insightful

    Could this be an essential aid to Tomcat and the increasing number of projects the apache foundation are managing within the Java space, such as ANT. This can only be a good thing

    1. Re:great news by timeOday · · Score: 5, Informative
      If it ever happens, yes... but so far it's just a message on a bulletin board. Implementing the JVM itself is no trivial task, and would take years to reach the performance and stability of Sun's JVM even with huge resources. They have chosen their own unique architecture so I don't think code reuse is in their plan.

      Then there are the class libraries, which have sprawled to a massive scale, and in comparison make implementing the JVM look easy. Look at Wine, which still isn't an alternative for Win32 (only selected applications are supported), after years and years of work. Or Mono, which cannot and probably never will run arbitrary .Net apps.

    2. Re:great news by SillyNickName4me · · Score: 1
      If it ever happens, yes... but so far it's just a message on a bulletin board. Implementing the JVM itself is no trivial task,

      it is indeed far from trivial, tho it does not need to be as complex as SUN made it.

      and would take years to reach the performance and stability of Sun's JVM even with huge resources.

      There are 2 issues here:

      • You don't have to achieve that level of 'quality' on the short term, it has to be 'good enough'. There are many examles where 'good enough' software is extremely succesfull despite there being equivalent software that has a much higher level of quality.
      • This same assumption was held by people developing operating systems. They have been proven wrong repeatedly. A tiny group of individuals with the right mindset and enough of a clue about what they are doing, can develop usable versions of such a system in an amazingly short time.
      They have chosen their own unique architecture so I don't think code reuse is in their plan.

      Luckily not.. Sun's JVM may be stable, but it is also overly complex and a serious resource hog in many cases.

    3. Re:great news by genneth · · Score: 2, Informative

      Actually a JVM is trivial -- it's the class libraries that are difficult. On the JVM front there is Kaffe, Jikes (the JVM bit, not just the javac bit), ikvm, etc. That's just the ones I can remember how to spell. Class libraries however is pretty much restricted to the Sun one and the GNU (attempt at) one.

    4. Re:great news by steve_l · · Score: 2, Interesting

      1. The Apache Portable Runtime will probably be the basis for a lot of the portabliity stuff.

      2. OSS things -like eclipse's SWT windowing toolkit wont need rewriting -they become the test suite as well as part of the distributable.

      3. Things like garbage collection and VM performance could be an area for research. Hopefully it will be a good platform for academic research, stuff we can use.

      4. Testing is the big problem. There are not yet enough public tests to verify JVM 'compliance'. I dont know if apache can get hold of the Java1.5 Test Kit. Sun have given teams access to other TCKs (Axis and Geronimo, for example), so it may be possible. If we can do that, we may have a chance.

      Wine has a harder problem, in that the Win32 is only implicitly specified by the behaviour of the system. Java is a lot cleaner, and was designed for portability from day one. But some bits of the JDK are probably badly specified; that will surface eventually.

      steve loughran.
      (apache member, but not (yet) involved in harmony)

    5. Re:great news by Taladar · · Score: 2, Insightful

      You are right about "good enough" although I think the Sun Implementation is a perfect example of this "good enough" quality and far from perfect.

    6. Re:great news by Master+of+Transhuman · · Score: 2, Insightful


      As for the JVM, do note that the list of people involved includes at least half a dozen with "commercial JVM experience."

      If they come up with a JVM that can implement the core of Java, the existing Java class libraries would presumably not have to be entirely rewritten immediately but would run on the compatible JVM. The class libraries could then be rewritten over time.

      Obviously somebody thinks that Sun is not going to open source Java anytime soon and has decided to up the ante. Given the amount of projects Apache is supporting which are Java based, this is a good idea. It can only improve the spread of these OSS projects if the underlying language is also open source.

      Another concept that should be explored is porting these Java projects to Mono - assuming that Miquel can keep the Mono project from being sued out of existence by Microsoft at some point.

      --
      Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
    7. Re:great news by afabbro · · Score: 3, Insightful
      Flash back to 1993...

      Will anyone ever reimplement the Unix kernel? So far it's just a message on USENET. Implementing the Unix kernel itself is no trivial task and it would take years years to reach the performance and stability of Sun's kernel even with huge resources. They have chosen their own unique architecture so I don't think code reuse is in their plan.

      Then there is /usr/lib, which has sprawled to a massive scale...

      --
      Advice: on VPS providers
    8. Re:great news by h4rm0ny · · Score: 1


      Never mind all that! They named it after me! After me ME MEEEE!!! :D

      --

      Aide-toi, le Ciel t'aidera - Jeanne D'Arc.
    9. Re:great news by wfmcwalter · · Score: 5, Informative
      Well, an elementary JVM is trivial, but a half-decent one has some harder stuff. Assuming they'll want to get Harmony up to the standard of Apache-httpd and Apache-tomcat, the JVM component will be a big job too.

      The bytecode loop and elementary classloader are indeed straightforward (which is why there are so many of them hanging around), and doesn't really get harder between a barely-working JVM and a decent one. Lots of other stuff, however, does:

      • A dumb, blocking, non-generational mark-and-sweep garbage collector is fairly straightforward (handling blocking and native methods wrt GC is a complication, if a manageable one). But for a box serving lots of connections on a busy website, you don't really want half second long pauses while the GC sweeps the whole memory. You really need a generational collector, and you really want one that's either non-blocking (yes, that's hard) or resumable. The nice thing is that the GC is fairly self contained (not entirely, as it interworks with synchronisation and the native method interface) and there are lots of university research groups who have done lots of research on GCs (for java and other languages) so it should be possible either to pick up some research collector or farm the work out to some eager masters students.
      • Efficient management of native synchronisation resources has an important effect on scalability. Mature JVMs go to great lengths to marshall the number of native synchronisation primitives the JVM instance uses (e.g. with some kind of mutex pool, assigning an OS mutex to a java one only when it is in scope). They can work without this for a while, but it needs done eventually. I see Doug Lea is onboard, and this kind of stuff is Doug's meat-and-drink.
      • The verifier is hard to get right. Sun's one is the product of careful design and then of several analyses by third parties. For example, one univerity wrote a verifier from the JVM spec in a formal language (Z or something) and then threw millions of randomly generated program fragments at their one and the Sun one. Where the two differed, the group analysed the program in depth. From this they found dozens of cases where the two verifiers differed materially; most were due to different interpretations of the JVM spec (which, one hopes, resulted in the language of the spec being tightened) but about ten were nontrivial holes in the Sun verifier. Last time I was involved with this (a few years ago) Sun insisted that all Java licencees (even those who had written their own JVM etc. entirely from scratch) run the Sun verifier. Luckily, the verifier is like the GC - it's a subject of ongoing academic research, so there are universities who might be persuaded to do the heavy lifting. And for a trusted enterprise setup you can do without the verifier anyway (it's really only needed for untrusted mobile code like applets or JINI things).
      • But the really big task is dynamic compilation. A bytecode-interpreted system isn't credible for any real application. A JIT will do, at the expense of sluggish performance and drastic memory-munching. A real hotspot-like smart, self-monitoring dynamic compiler is really necessary for a quality JVM. I guess the Harmony folks will spend a lot of effort here, as it's a lot of work and its too tightly bound to your JVM internals to either farm out or to allow you to easily take something off the shelf.
      Still, I hope I've not sounded too negative. It's all doable (python and mono do most of this stuff between them, neither with a vast team) and the lack of a free or open JVM has been an uncomfortable gap between LAMP and tomcat for too long.

      Heck, maybe it's just a strategy to get Sun to open Tiger sooner rather than later.

      --
      ## W.Finlay McWalter ## http://www.mcwalter.org ##
    10. Re:great news by wft_rtfa · · Score: 1

      I agree that this is a huge challenge, as Sun has been working on their VM for over ten years. It will be at least a couple of years before this project has anything useful. However, Apache is not know for creating vaporware, so maybe something very good will eventually come from this.

      --
      :-] :0 :-> :-| :->
    11. Re:great news by SillyNickName4me · · Score: 1

      although I think the Sun Implementation is a perfect example of this "good enough" quality and far from perfect.

      Hehe, I think I have to agree there.

    12. Re:great news by moonbender · · Score: 1

      Dear Slashdot user 722443,

      you are found to be in violation with our clients trademarked name of "Harmony". We are asking you in good faith to cease and desist your infringement.

      Regards,
      Apache Foundation Intellectual Property Department

      --
      Switch back to Slashdot's D1 system.
    13. Re:great news by Derkec · · Score: 1

      Um.. I must be missing something here. There are a number of nice, free JVMs floating about. If these people have time to contribute for free development, couldn't they put it towards something a little more practicle?

    14. Re:great news by Anonymous Coward · · Score: 0

      2. OSS things -like eclipse's SWT windowing toolkit wont need rewriting -they become the test suite as well as part of the distributable.

      I think the first time I import java.swt.widgets.* there will be tears of joy running down my face. If I never have to type awt or swing again it will be too soon.

    15. Re:great news by AstroByte · · Score: 3, Interesting
      Most of your points are right, however, I take issue with the statement that the bytecode loop is trivial. This, I'm afraid, is a widely held misconception :)

      While a simple switch-based interpreter is trivial to implement, it will perform abysmally on modern processors because of the overhead of the computed jumps. Writing an efficient interpreter has been an active research area in itself (see http://www.complang.tuwien.ac.at/projects/interpre ters.html for some good papers). In fact, the difference between a poor interpreter and a good interpreter can be greater than that between an intepreter and a JIT.

      Several improvements over a switched interpreter are possible. Firstly, indirect-threading can be used to minimise dispatch overhead. This can further be improved by moving to direct-dispatching, but this requires rewriting the original bytecode stream. Splitting instruction fetch and address computation via prefetching can also lead to substantial gains, as can the use of "super-instructions".

      Additionally, an interpreter can attempt to do stack-caching (either simple top-of-stack caching or more advanced 2 or more levels). This can be used to overcome the inefficiency of executing stack-based bytecodes on a register-based CPU.

      Many of these techniques move into the grey area between interpreters and JIT compilers. But no commercial VM uses a simple bytecode interpreter. Even with a JIT, modern VMs still initially execute code using the interpreter, only compiling the "hot spots" to native code. With full JIT compilation, the start-up time of the VM becomes prohibitive.

      Many of these techniques are also used in some of the open-source VMs. For example, the interpreter in JamVM, depending on architecture, makes use of direct-dispatching, super-instructions, prefetching, and true, 2 level stack-operand caching. It is many times faster than a simple bytecode interpreter, and it has not been trivial to implement!

    16. Re:great news by Hard_Code · · Score: 1

      Linux HAS already taken a DECADE to provide sufficient functionality, stability, and support (services and infrastructure), and Unix hasn't changed much fundamentally since them (more recently, at least partly due to open source cultivation), while Java has been changing in very major ways, at least every year. So your sarcastic comment isn't all that ironic.

      --

      It's 10 PM. Do you know if you're un-American?
    17. Re:great news by Anonymous Coward · · Score: 0
      Of course the DIFFERENCE between the PARENT comment and YOURS is that the PARENT'S comment was FUNNY and YOURS is NOT.

      You do get a point for your excellent Robert E. McElwaine impersonation, though, so that's something.

    18. Re:great news by Nailer · · Score: 1

      and would take years to reach the performance and stability of Sun's JVM even with huge resources.

      I think you'll find that huge resources would be used to make the JVM better, rather than give it the performance and stability of Sun's JVM.

    19. Re:great news by gremlins · · Score: 1

      um it did take years, no one is saying they can't do it. All we wonder is how long before we can really use it.

      --
      just because your a schizophrenic doesn't mean people arn't really out to get you
    20. Re:great news by Anonymous Coward · · Score: 0
      Flash back to 1993... Will anyone ever reimplement the Unix kernel? So far it's just a message on USENET.

      Linus had a working, if limited, system by the time he posted to Usenet.

      Then there is /usr/lib, which has sprawled to a massive scale...

      Which he didn't reimplement. The GNU replacements were already around, so he reused them.

      In this case, the Apache people have explicitly said they won't use any of the GNU or Kaffe code. What a waste.

  2. Better for the Linux User by MoogMan · · Score: 5, Insightful

    Cool! This will be useful for the majority of Linux desktops, because it means it could be installed as part of a default install, rather than having to download it and install it afterwards (==hell for lots of users).

    1. Re:Better for the Linux User by dtk13 · · Score: 1, Insightful

      yea defanatly especaly people on dial up... its damn hard to download ANYTHING!

    2. Re:Better for the Linux User by Anonymous Coward · · Score: 1, Informative

      It still couldn't be part of OpenBSD though, because of the new more restrictive Apache licence 2.

    3. Re:Better for the Linux User by Chris+Kamel · · Score: 3, Interesting

      Don't you think a reimplementation of the VM is too much of a price to pay for such a small convenience?

      --
      The following statement is true
      The preceding statement is false
    4. Re:Better for the Linux User by petermgreen · · Score: 2, Insightful

      reimplementing stuff that people need but that isn't availible as free software is what made it possible to have a completely free software os.

      sun has imo played a very sneaky trick by making java not truely free software but just free/open enough to keep the demand for a clone at a fairly low level.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    5. Re:Better for the Linux User by IamTheRealMike · · Score: 3, Insightful

      The real question that's on most peoples lips and conspicuously not answered in the FAQ is what is wrong with the GNU implementation. They mention that Classpath and GCJ already exist but fail to mention why these are not open source enough. Red Hat is putting a lot of effort into Free Java - why does Apache feel the need to compete with this?

    6. Re:Better for the Linux User by Anonymous Coward · · Score: 0

      I thought GCJ was a compiler, not a VM?

    7. Re:Better for the Linux User by IamTheRealMike · · Score: 5, Informative

      Right, but so what? It can "run" .class bytecode files by compiling them to native code on the fly, this is how gcjwebplugin works AFAIK. The difference between a VM and compiler is mostly one of semantics, there's no compelling enough reason to reimplement the VM.

    8. Re:Better for the Linux User by Anonymous Coward · · Score: 0

      Ah, cool - thanks for the info :) So to clarify - GCJ can (or could) be used more-or-less transparently in place of a VM?

    9. Re:Better for the Linux User by beardz · · Score: 1

      Such a shame :)

    10. Re:Better for the Linux User by Anonymous Coward · · Score: 0

      Yes.

    11. Re:Better for the Linux User by DrXym · · Score: 4, Interesting
      The same could be said for Kaffe, gcj, classpath et al. And in fact it probably has been, each in their time being heralded as a way to break from Sun.


      Sadly the reality is that no Java is even remotely as reliable or complete as Sun's implementation for the desktop let alone anywhere else. Major work had to be done to gcj just to make Open Office 2.0 run, which hardly speaks for its maturity. And other impls such as Kaffe are missing critical security functionality such as byte code verification. And enterprise level functionality? Forget it.


      Personally I'd love to see a free and open source Java, but its taken years to get this far and its still not there yet.

    12. Re:Better for the Linux User by beforewisdom · · Score: 1

      No insult to you MoogMan, but my reaction is always "WTF?" when gnu/linux people mention downloading and setting up Java as a problem.

      These are often the same people who download entire operating systems and install them by compiling untarred coded.

      I find setting up Java to be one of the more straight forward tasks to do when I set up a new gnu/linux box.

      I think the gnu/linux people have complaints to make, but I don't think it is about ease of setup issues with Java

    13. Re:Better for the Linux User by beforewisdom · · Score: 4, Insightful

      "sneaky" ?

      I really hate to defend Sun,...really, I do, but they are the ones who spent a ton of money and work developing Java.

      They make it available for free of charge.

      what jerks

    14. Re:Better for the Linux User by williamhb · · Score: 2, Interesting

      There is a compelling reason for some VM functionality to become part of the operating system. For a long time, memory management [in terms of making sure one app cannot tread on another app's memory even if it is badly written] has been a function of the OS. Providing garbage collection to ensure that one process cannot expend available memory with leaks (affecting the performance of other processes) is a sensible extension of this.

      Code management probably should be a facility in modern desktop and server operating systems. (But perhaps not small embedded systems). At that stage it makes sense for your distributed binary to be compiled to code for the VM/OS rather than compiled to the VM/OS+CPU combination. The VM, either through compilation at install or JIT compilation can then optimise it for the CPU (hello Gentoo-like optimisation on downloaded packages!).

      Whether Linux should provide that with Mono or Java is an open question. Personally, I would prefer Java [for the selfish reason that I know Java very well], but "both" is probably the right answer. This gives support for both sets of programmers, and some protection against one of the technology-patenters going rampant...

    15. Re:Better for the Linux User by petermgreen · · Score: 1

      java apps can eat up all memory quite easilly if they say forget to remove entries from a global list (in some ways gc can make life worse because you have to make sure all references to an object are gone before the gc will even think about freeing it)

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    16. Re:Better for the Linux User by Taladar · · Score: 1

      Considering the relative lack of success of Java and Mono to provide more than 1% or 2% of the apps the average user has running/installed on his desktop we probably shouldn't integrate any of these into the OS.

    17. Re:Better for the Linux User by petermgreen · · Score: 2, Interesting

      yes i said sneaky i didn't say right or wrong i just said sneaky

      lots of projects are now basing on java and if/when sun (or in the worst case whoever buys it from thier liquidators) start tightning the screws there could be some real pain.

      imo java could really do with a free (as in stallman or freer) implementation that actually works properly. BUT much of the drive to create one is removed by the fact that java and its source are a free (as in beer) download.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    18. Re:Better for the Linux User by Anonymous Coward · · Score: 0

      Further considering that Perl, PHP and python are so widely installed (even by average users) and that there are undeniable and compelling reasons favoring managed code for application development... are you saying we should all run parrot?

    19. Re:Better for the Linux User by Anonymous Coward · · Score: 0

      Its "definately", not "defanatly". :)

    20. Re:Better for the Linux User by Master+of+Transhuman · · Score: 2, Insightful


      So? The world isn't going anywhere (just yet). If it takes another ten years to get a free Java, what's the harm?

      It took over ten years for Linux to be truly useful to people. Should the Linux hackers all have stopped because of that?

      --
      Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
    21. Re:Better for the Linux User by Anonymous Coward · · Score: 0

      > Its "definately", not "defanatly". :)

      Try It's and definitely .

    22. Re:Better for the Linux User by M.+Baranczak · · Score: 1

      my reaction is always "WTF?" when gnu/linux people mention downloading and setting up Java as a problem.

      These are often the same people who download entire operating systems and install them by compiling untarred coded.


      I can't speak for the GP or any of the "same people", this is just my own take on it...

      Sure, I've installed software from a tarball. Would I ever do it if I could get the software through a package manager? Hell no.

      The hassle of installing Java on Linux might be minor compared to some of the other weirdness you have to deal with when setting up Linux, but what really annoys me is that this hassle is totally unnecessary. The only impediment to making Java available through apt or emerge is Sun's insistence on requiring a click-through license that no-one reads anyway.

    23. Re:Better for the Linux User by HiThere · · Score: 1

      Well, in the first place, most C coders aren't interested in Java...the projects are worked on only by a subset of the group that is.

      In the second place, gcj is a complete enough Java to compile OpenOffice.org 1.1 (Red Hat build thier distributables that way). The problem is the closed source libraries which Sun has been guaranteeing are a moving target. And only distributable by Sun.

      Personally, I hope Harmony is successful, but gcj is what I expect to be using (though I *do* have Kaffe installed, and on some systems I have Jikes installed).

      Now personally I fall into the group of people that don't think highly of Java (though I'm barely a C coder...much more Python, Ruby, and D...I really dislike C's use of pointers [I used to be a C coder a few decades ago, right after PL/1]).

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    24. Re:Better for the Linux User by FireBreathingDog · · Score: 3, Insightful
      Garbage collection can't guarantee code that's completely free of memory leaks. You can still leak memory in Java is you have a long-lived data structure (Set or Map, for example) that holds references longer than it needs to.

      Let's say you've got an improperly written session management routine where users are added to a Set when they log in, but there's a bug that forgets to remove them when they log our or their session expires. Over time, you'll start having memory issues.

      Of course, it's still true that there's much less likelihood of leaks in a GC environment.

    25. Re:Better for the Linux User by javabsp · · Score: 2, Informative

      I believe that gcjwebplugin actually uses gij to interpret the byte code. The standard libraries are compiled to native code, but the applet classes aren't.

    26. Re:Better for the Linux User by Joe+Tie. · · Score: 1

      Not to mention that installing from Suns binary will make it invisible to the rest of the package manager, so it won't know you actually have Java installed. So there's the additional step of converting it to a proper package before installing.

      --
      Everything will be taken away from you.
    27. Re:Better for the Linux User by Anonymous Coward · · Score: 0
      How do you mean more restrictive ? All I see is that you get some additional patent rights (Clause seven)as an end user (and as a developer are forced to share your own if you knowingly insert them in the code yourself) and a lot more clarity as to what contributing means.

      And any constructions based on the last part of clause 7 which contrive to show that you now no longer can sue third parties using apache if you have patents of yourself forego the simple fact that the ASF is the entity which is distributing the code - so you never had that option to sue third parties anyway.

      Pv.

    28. Re:Better for the Linux User by pestario · · Score: 0

      No, this would simply mean the distro will be bigger. So unless you are not downloading the distro, the result would be longer wait (whether you like it or not). At least as a separate package, you can install it IF you want to.

      --
      :n
    29. Re:Better for the Linux User by DrXym · · Score: 2, Insightful
      The harm is that Java, which is a massively powerful and useful environment doesn't ship with any non-commercial version of Linux. Yes, you can download it, but no dist except JDS can't use or rely upon it in any way because it is an optional component. Ruby, Python, Perl etc. have their place but they're nowhere near as powerful as Java either in the breadth of applications or speed even.


      Furthermore, the absence of an open source and reliable Java introduces a pile of uncertainty to anyone developing J2EE apps who's investigating what platform to deploy it on. Much as I dislike Solaris, I'd probably use Sun if I were deploying J2EE stuff simply because Sun have obligation to support Linux or ensure the performance is on par with Solaris.


      Just as bad, because there is no open source Java in wide use, Sun can chop and change theirs as they see fit without fear of breaking anything. Just look at the effect that Apache, gcc have on their commercial counterparts to see what I mean.


      So yes time is important. Either Sun needs to open up their Java (or classes) or a viable open source version needs to appear. And by viable I mean totally interchangeable. Ten years delay means billions and billions of dollars that would have been invested in Linux in one form or other go somewhere else.

    30. Re:Better for the Linux User by DrXym · · Score: 1
      The amount of J2EE development is immense and unless Java is properly supported on Linux all that investment will go somewhere else. Yes, Sun support Linux these days, but who's to say they will two years from now? Or if they do that it'll be free? After all Sun have been quite hostile to Linux recently and I'm sure it has occured to them to use Java as a stick to entice people to use Solaris.


      The amount of Java in the corporate domain is huge. And with good reason. J2EE is fantastic and nothing, be it Perl, Ruby, Python etc. even slightly compares to what you can do with Java.


      An open source implementation that was interchangeable would have an immense impact on the takeup of Linux.

    31. Re:Better for the Linux User by alext · · Score: 1

      IBM?

      BEA?

    32. Re:Better for the Linux User by greenrd · · Score: 2, Insightful
      I sincerely doubt they would cut off Linux support within the next decade or so. Seriously. It can't cost that much to support, and the userbase of Java-on-Linux must be huge. Besides, OpenSolaris is going to be open sourced in a few months, so Sun wouldn't make a lot of money if they forced people to switch to Solaris.

    33. Re:Better for the Linux User by Tim+C · · Score: 1

      As opposed to the non-GC way, where you can destroy an object at any time, free its memory, and then segfault when you try to dereference a pointer that still existed elsewhere in the code. (Or try to free() it twice, and bomb out that way)

      Overall, I prefer working in a garbage collected environment. You're right in that having a garbage collector in no way prevents memory leaks though. It means that you can't forget to call free(), but it doesn't guarantee to free the RAM. In fact, any given object may *never* be garbage collected, if the RAM is never needed (depending on the implementation of the garbage collector, VM parameters, etc)

    34. Re:Better for the Linux User by Anonymous Coward · · Score: 0

      Sun does provide an RPM.

    35. Re:Better for the Linux User by HiThere · · Score: 1

      To believe that they will continue supporting Java on Linux for the next couple of decades requires believeing that Sun will continue as an independant entity for that period. I'm willing to consider that as probable, but I wouldn't bet anything I couldn't afford to lose on it.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    36. Re:Better for the Linux User by DrXym · · Score: 1
      Solaris 10 / OpenSolaris is the bait to use Sun hardware which is where Sun makes its money - hardware and support. If people use RHEL, Novell Linux or whatnot, they can buy Dells, IBMs, you name it and none of the money goes to to Sun. Concerning OpenSolaris, I wouldn't get my hopes up about it being comparable to commercial Solaris. Most likely it will be comparable to Fedora - a moving, unsupported target where Sun test stuff before stuffing it in the branded release.

      Now Linux support for Java is a shades of grey thing. Who's to say that Sun won't suddenly declare it to be a "tier 2" platform, or drop Linux altogether knowing IBM will have to pick up support, or stick all the cool optimizations in Solaris and then six months later in Linux. There's lots of things they could do "queer the pitch" in favour of Solaris and I'm sure none of them are particularly pleasant.

    37. Re:Better for the Linux User by Master+of+Transhuman · · Score: 1


      And how would you speed up that ten years?

      First of all, ten years is merely a speculation - I would actually expect a reverse-engineering of Java to be much quicker simply because the "specs" are already fixed. The people coding the new version don't have to reinvent the wheel - they just have to code to spec. MUCH easier than designing the JVM or the class libraries from scratch - no comparison.

      Second, as long as there is a project to produce an OSS Java, people can go ahead and use Sun's Java with some confidence that there will be a migration path at some point to OSS.

      It's ridiculous to denounce the project just because it may take a few years to come to maturity. Better to spend the time worrying about whether Mono can escape a Microsoft lawsuit at some point, or whether .Net will prove to damage the acceptance of Java so much that Microsoft ends up dominating the Internet. The latter two are much more of problem than how long an OSS Java project will take to produce useful code.

      --
      Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
    38. Re:Better for the Linux User by Nailer · · Score: 1

      I think that GCJ is now capable of running the Java elements of OpenOffice 2 is a testament that it is beginning to mature.

    39. Re:Better for the Linux User by kevinx · · Score: 1

      By the time this thing is a stable alternative to the sun JVM, dialup connections will be as common as 8track players.

    40. Re:Better for the Linux User by mpapet · · Score: 1

      I can't believe this was modded insightful!

      It's obvious the dumb moderators equate the free java download with -free- software.

      It's also obvious they don't have any experience marketing a commercial product that uses java. The Java Tax is mighty high.

      This is ample proof that non-free software has nothing to worry about from OSS.

      --
      http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
    41. Re:Better for the Linux User by DrXym · · Score: 1
      I certainly hope so. I think gcj is intriguing and what I've read of gcj, even more so.


      The issue I see is that Mono is stealing a march on "mindshare", paradoxically because there is no .NET for Linux. Because Java has several free commercial implementations, there is less issue (perhaps because less people care about the definition of "free") with replacing them with something like Kaffe or gcj.


      Personally I really hope Java wins. I program .NET and Java and there's nothing between them as languages. It's like comparing a Draper to a Bosch drill to me. What is different is the philosophy and the attachments.


      By philsophy I mean that it is practically heresy to write something platform specific in Java, but it is commonplace in .NET. In fact what I write during my day job doesn't stand a cat's chance in hell of working under Mono, simply because of the number of Win32 / MS dependencies it contains.


      And by attachments I mean the sheer breadth of standards and functionality in Java. Unlike .NET, Sun defines a standard and you can pick between the implementations of that standard. e.g. there are a multitude of JSP implementations. I like that a lot. With .NET you get .NET or nothing at all.

    42. Re:Better for the Linux User by DrXym · · Score: 1

      Apologies, that first line should have said "and what I've read of gcj 4.0, even more so."

    43. Re:Better for the Linux User by Anonymous Coward · · Score: 0

      Way to look retarded. Well done.

  3. Kaffe, Classpath... by otisg · · Score: 3, Informative

    For those too lazy to click through to that blog entry, Kaffe, Classpath and other solutions already exist, and this is not the first.... although coming from Apache carries some weight.

    --
    Simpy
    1. Re:Kaffe, Classpath... by Fefe · · Score: 4, Informative

      Had you bothered to read the blog entry yourself before commenting, you would have noticed that Kaffe and Classpath members are part of this project.

      This does appear to be a consolidation project. We have several contenders for Open Source JVMs under Linux, but most of them lack in some way or the other compared to the Sun and IBM JVMs. So having one up-to-date one instead of five not-quite-there-yet ones is a step forward.

    2. Re:Kaffe, Classpath... by Anonymous Coward · · Score: 3, Informative

      Some Classpath members may be part of this project - but the Classpath code ain't . This is due to the incompatible license. Writing all that java class library code took years. It will be interesting to see whether the Classpath code will simply be lifted (wink, wink) or rewritten from scratch. It's a huge task. The VM, by comparison, is a dime a dozen. Any moderated motivately hobbyist can knock off one in a few months. It may not run quickly, but it will run. The java class libraries' quality and completeness is 99% of the problem.

    3. Re:Kaffe, Classpath... by petermgreen · · Score: 1

      sure but if they can find out who wrote particular peices of code and get permission they can bring it accross.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
  4. basic architectural blueprint by anandpur · · Score: 4, Insightful
  5. reminds me of QT by moz25 · · Score: 2, Informative

    I remember a project called Harmony that had the purpose of being an API-compatible clone of QT but without the license issues: www.kde.org/whatiskde/qt.php. It never got off the ground though.

    1. Re:reminds me of QT by Anonymous Coward · · Score: 1, Informative

      There arent any licence issues with the QT library. QT is Free Software, approved for example by both Debian and FSF.

    2. Re:reminds me of QT by moz25 · · Score: 1

      I meant the license issues at the time. There are no such issues with it now for non-commercial software.

    3. Re:reminds me of QT by at2000 · · Score: 1

      If Sun releases Java under any open source license, then this project may face the same fate. Otherwise why can't it take off like Classpath did?

    4. Re:reminds me of QT by eurleif · · Score: 3, Informative

      There are issues with it for non-commercial software which isn't GPLed. There aren't issues with it for commercial software which is GPLed. GPL != non-commercial.

    5. Re:reminds me of QT by Anonymous Coward · · Score: 1, Informative

      I remember it well... It was hosted on yggdrasil but it's long on. Nothing's ever lost on the net, though. http://web.archive.org/web/*/http://www.yggdrasil. com/~harmony/

    6. Re:reminds me of QT by beforewisdom · · Score: 1

      No motivation. QT is already partially under a GPL

    7. Re:reminds me of QT by Klivian · · Score: 1

      That's not entirely correct, there are NO issues with it for either commercial or non-commercial software as long as such software are open source. For non GPL open source software you use the QPL version of Qt.

  6. Not GPL compatible by petteri_666 · · Score: 0, Troll

    Seems that Harmony will be licenced under Apache License v2.0 so it will not be GPL compatible. So once again Java will not be usable in the free world. Sad to hear.

    1. Re:Not GPL compatible by squiggleslash · · Score: 4, Informative
      In case you're serious, the Apache Sofware License 2.0 is considered a Free license, just not a GPL compatable one. The FSF actually quite likes it:
      This is a free software license but it is incompatible with the GPL. The Apache Software License is incompatible with the GPL because it has a specific requirement that is not in the GPL: it has certain patent termination cases that the GPL does not require. (We don't think those patent termination cases are inherently a bad idea, but nonetheless they are incompatible with the GNU GPL.)
      It's quite probable that once version 3 of the GPL is released, there'll be a strong effort from both sides to get some compatability between the two as incompatable licenses hurt everyone, whatever your ideological differences. Version 3's important because it's the one the FSF has suggested it'll deal with the issue of patents in.

      In the mean time, the Apache group's choice of license for their Java project makes perfect sense given a major, if not the major, use for Java these days is for back-end work of web-fronted applications. Apache's Tomcat sometimes seems to be more popular than Apache itself. (I said seems people, seems); I can't think of any other reason why the Apache people would be organizing this, though it surprises me they're going for J2SE and not J2EE compatability.

      So, no. There's no "Java trap" inherent in developing code for Apache Harmony.

      --
      You are not alone. This is not normal. None of this is normal.
    2. Re:Not GPL compatible by unoengborg · · Score: 1

      Sorry, but nothing prevents you from running Apache License v2.0. on OSes like Linux. Nothing prevents you from shipping Linux distros with such software preinstalled. This is the major problem with the java implementation currently available from Sun.

      Today, there is GPLed java software, I wonder what java that runs on. Running it on a Apache Licenced java engine wouldn't be more of a license violation than running it on Sun java
      as they in most cases do today, exept for a very small amount of programs that actually works on GNU/Classpath.

      --
      God is REAL! Unless explicitly declared INTEGER
    3. Re:Not GPL compatible by hexene · · Score: 3, Informative

      I can't think of any other reason why the Apache people would be organizing this, though it surprises me they're going for J2SE and not J2EE compatability.

      But they are. J2EE is a superset of J2SE, and by adding Apache Geronimo you'd get the complete stack. Admittedly Geronimo is aiming for J2EE 1.4 rather than J2EE 5.0 at the moment, but J2EE 5.0 doesn't really exist yet. ;o)

    4. Re:Not GPL compatible by squiggleslash · · Score: 1
      Excellent! I did not know that. That adds the missing piece for me, thanks!

      That also adds more substance to the explanation of why the ASL2 was chosen in place of the GPL (which the ^G*P$ was upset about.) If it's not merely the fact people want to build projects on it and Apache, but also that it has to interact with another ASL2 project, then there's really no other appropriate license for them beyond non-copyleft ones.

      --
      You are not alone. This is not normal. None of this is normal.
    5. Re:Not GPL compatible by Anonymous Coward · · Score: 0

      Check out jakarta.apache.org. There's an enormous amount of opensource Java software under the Apache umbrella. The amount of GPL Apache stuff is a drop in the bucket comparatively.

      Unfortunately the ridiclous popularity of Apache HTTPD tends to overshadow their java projects, and people aren't aware how huge Apache is in the java world.

      Plus, there's concern and/or confusion about how exactly the GPL interacts with Java projects (nearly all of which "link" to external libs, even if from com.sun.*). RMS himself said at one point that programmers should not use the GPL for Java.

    6. Re:Not GPL compatible by julesh · · Score: 1

      Note that there will actually be no problem implementing GPL projects that use the Harmony runtime. This is because the GPL excludes from its licensing requirements "anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs"; clearly the Harmony runtime will be distributed with the Harmony Java compiler, so this clause will come into effect.

  7. MS-JVM all over again? by Anonymous Coward · · Score: 0

    "...and aims to pass the Sun specification"

    Admittedly, I didn't RTFA. But this sounds like they are going to add features that are not available from Sun's JVM. Microsoft did the same thing. Java is suppose to be compile-once-run-anywhere. I remember the headaches caused by MS-JVM and it's deviations from the Sun spec. Ultimately, MS got the gavel on the wrist for it.

    1. Re:MS-JVM all over again? by Anonymous Coward · · Score: 0

      They mean "pass" as in "comply with", not as in "do more than".

    2. Re:MS-JVM all over again? by ssj_195 · · Score: 1

      I suspect it means "pass the Sun certification", or suchlike i.e. to be sufficiently complete an implementation of a Java VM as to be approved by Sun itself. If this is the case, then this is a very odd choice of words. I'd be very, very surprised if the ASF would try to "embrace and extend" in this way.

    3. Re:MS-JVM all over again? by Master+of+Transhuman · · Score: 1


      Certainly not "in the Microsoft way". "Embrace and Extend" are perfectly all right - as long as the goal is not "Exterminate" which is Microsoft's method.

      --
      Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
    4. Re:MS-JVM all over again? by HiThere · · Score: 1

      I'm certain that they intend to go for Java certification (otherwise why bother), but I'm not certain that they don't intend to extend things. Their primary goal is working in the Apache environment(s), and they might well adopt enhancements that further this.

      That said, this isn't "the MS thing", as the code will be open, and the license will be open. (Not Sun compatible, but nothing is.) Anyone who wants will be able to take it and tweak it, or totally rewrite it. Also, it won't be limited to one platform...still, if they do this, I don't think they should call it Java. Perhaps Sumatra?

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    5. Re:MS-JVM all over again? by MemoryDragon · · Score: 1

      You can add as many features as you want as long as you dont taint the core classes and core namespace. What Microsoft did was to dump their stuff into the java hierarchy and alter some of the core classes, so that the users over time will start to complain why Sun does not follow the standards. The classical we take over approach Microsoft does every time, by making things compatible from the outside, so that marketing has an easy going, and break things left and right so that the developers are bound to their platforms.

  8. Parent uninformed or troll by Chris_Jefferson · · Score: 3, Funny
    The link you post to is the FSF's problem with Java's current licence. Their actual opinion on the Apache License v2.0 is below. It's incompatable due to patent related issues that the GPL doesn't (and probably should) deal with. It's a fine free software license:

    Apache Software License, version 2.0

    This is a free software license but it is incompatible with the GPL. The Apache Software License is incompatible with the GPL because it has a specific requirement that is not in the GPL: it has certain patent termination cases that the GPL does not require. (We don't think those patent termination cases are inherently a bad idea, but nonetheless they are incompatible with the GNU GPL.)

    --
    Combination - fun iPhone puzzling
    1. Re:Parent uninformed or troll by petteri_666 · · Score: 1

      The link was to show where "not usable in the free world"-phrase came from and because this implemention is in conflict with GPL it really don't change the situation from that point of view.

    2. Re:Parent uninformed or troll by Anonymous Coward · · Score: 0

      I really need to read the current draft, but I'd be surprised if the GPL v3 didn't address similiar issues, making the GPL v3 and Apache v2 licences compatable. There's certainly no reason to think of the Apache v2 licence as non-Free though.

    3. Re:Parent uninformed or troll by squiggleslash · · Score: 2, Informative
      If that were true, then Apache wouldn't be usable in the free world.

      The truth is the opposite of your stance. Apache wants a free Java because an enormous amount of back-end web code these days is written in Java. As such, they need a Java interpreter that "plays well" with Apache. That means something licensed under the ASL2, which, like the GPL, is a Free Software license.

      If they licensed it under the GPL, then the question of how well it could legally integrate with Apache would come up.

      Long term the solution to this almost certainly lies in the GPL3, which will alleviate many of the issues that forced the Apache people to put together an alternative license to begin with. But for now, looking at the circumstances, this is one of those rare cases where a license that happens to be incompatable with the GPL is appropriate.

      (And, FWIW, I speak as someone accused of being a GPL zealot on a regular basis. I love the GPL. For most projects, providing the GPL as the license or a license a user can choose as an alternative, seems absolutely appropriate.)

      The ASL2 is a Free Software license. It's not compatable with the GPL, and incompatabilities do undermine freedom, but when choosing between it and the GPL, you have to look at what critical code it will have to interact with. Had they choosen the GPL, it would arguably have undermined freedom far more than the choice they made.

      If you want GPL compatable Java, take a look at GCJ and GNU Classpath. There are people working on both these and Harmony. They are cooperative. This project is helping freedom, not working against it.

      --
      You are not alone. This is not normal. None of this is normal.
    4. Re:Parent uninformed or troll by jrumney · · Score: 1

      GPLv3 will need to be compatible with GPLv2, so I doubt it will address those patent issues the same way as Apachev2 does. It will probably be reworded to allow compatibility with Apachev2 licenses though, so as long as developers have kept the "or later as published by FSF" clause from the GPLv2, their code will automatically become linkable with Apachev2 code.

  9. It's YAFJI!!! by Anonymous Coward · · Score: 0

    Yet Another Fucking Java Implementation!

  10. Re:Divide and Conquer by maharg · · Score: 2, Insightful

    The great beauty of the linux desktop is that it, like all *x desktop windowing systems, is not standardised - and therefore, you don't have to use a bloated implementation. Personally, I use openbox, which as about as far from bloated as you can get (assuming you something a little more sophisticated than twm..).

    Also, the point of the sun specification for Java is (in part) to ensure that the JVM performs consistently across platforms.

    --

    $ strings FTP.EXE | grep Copyright
    @(#) Copyright (c) 1983 The Regents of the University of California.
  11. Re:Divide and Conquer by g2ek · · Score: 1

    doesn't look so much like reinventing the wheel, as you can read in TFA contributers of Kaffe, GCJ and Classpath are interested in participation

  12. Excellent! by multipartmixed · · Score: 3, Funny

    And after it passes the Sun spec, we can fix it to be useful (since we have the source) with a simple header change:

    #define sleep(a) while(0) ..that should eliminate half of the code, decreasing binary size and actually performing. ;)

    --

    Do daemons dream of electric sleep()?
    1. Re:Excellent! by wheany · · Score: 1

      Hahaha, I get it! Java is slow and bloated!

    2. Re:Excellent! by Anonymous Coward · · Score: 0

      The only thing that bugs me about the website in your sig is why would a Fin care so much about Michael Moore? Unless it's supposed to be a parody, in which case; it sucks.

    3. Re:Excellent! by wheany · · Score: 1

      Oh no, Some-Guy-on-the-Internet doesn't like my website!

    4. Re:Excellent! by Anonymous Coward · · Score: 0

      It's FUN to be OT! Michael Moore? Real Ultimate Power? Finland? Parody? Well...
      http://brianx.com/realultimatepower.html

      So... you figure out what this site is a parody of.

  13. All star programming cast! by Anonymous Coward · · Score: 0

    If these dudes are genuinely interested, then this could be one of the best projects of all time. Most of them are very well known in the free software community. The question is - will they use Classpath or try to build their own? The class libraries are 100 times more difficult to write than the VM. That's why most Java projects use Classpath - they all tried re-inventing the wheel themselves and just gave up in frustration.


    These individuals have expressed an interest in participating in the
    architecture and design work. The information in parenthesis indicates
    other community participation or relevant experiences of that individual :

    Guy Churchward (individual w/ commercial VM experience)
    Joakim Dahlstedt (individual w/ commercial VM experience)
    Jeroen Frijters (IKVM)
    Geir Magnusson Jr. (Apache)
    Ricardo Morin (individual w/ commercial VM experience)
    Georges Saab (individual w/ commercial VM experience)
    Bruno Souza (SOUJava)
    Davanum Srinivas (Apache)
    Dalibor Topic (Kaffe)
    Tom Tromey (GCJ)
    Weldon Washburn (individual w/ commercial VM experience)
    Mark Wielaard (Classpath)

    and the following individuals have expressed interest in participating
    as committers for the Apache-licensed implementation :

    Jeroen Frijters (IKVM)
    Ben Laurie (Apache)
    Geir Magnusson Jr. (Apache)
    Ricardo Morin (individual w/ commercial VM experience)
    Bruno Souza (SOUJava)
    Davanum Srinivas (Apache)
    Dalibor Topic (Kaffe)
    Tom Tromey (GCJ)
    Weldon Washburn (individual w/ commercial VM experience)

    These individuals will participate as Incubator Mentors :

    Noel Bergman
    Ben Laurie
    Geir Magnusson Jr.
    Stefano Mazzocchi
    Sam Ruby
    Leo Simons
    Davanum Srinivas

    The following Apache Members will be the sponsoring members :

    Noel Bergman
    Jason Hunter
    Ben Laurie
    Ted Leung
    Geir Magnusson Jr.
    Stefano Mazzocchi
    Sam Ruby
    Leo Simons
    Davanum Srinivas

    The following community members support this effort :

    Danese Cooper
    Brian Goetz
    Doug Lea

  14. Re:Divide and Conquer by multipartmixed · · Score: 4, Insightful

    C *is* cross-platform.

    The system libraries, on the other hand.. well, that has nothing to do with the language. If you want cross-platform code, use cross-platform libraries.

    If you can stick to using only functions in K&R and the POSIX Programmer's Reference Guide, you will find that your code (if written properly) will run damn near anywhere.

    If you want a little more functionality (as much as you need, really) without GUI, adding the Apache Runtime Library will get you there -- portably. Especially under unices and workalikes.

    C++ -- I'm not qualified to comment on that.

    --

    Do daemons dream of electric sleep()?
  15. Their language of choice by Anonymous Coward · · Score: 0

    I just hope they don't write it in Java

  16. Re:Divide and Conquer by Anonymous Coward · · Score: 0

    Yeah, I don't see the point in this much besides licence idiolegy. Why not contribute to GNU Classpath and Kaffe for example? One good Free J2SE implementation would be far more useful than multiple, not-quite-we're-almost-there implementations.

  17. Re:Divide and Conquer by Khalid · · Score: 2, Interesting

    The great beauty of the linux desktop is that it, like all *x desktop windowing systems, is not standardised

    Alas this is also one of its main weakness. I had once high hopes for Linux on the desktop (three of four years ago), but the way I see it now is that its more fragmented than ever. I think it will manage to reach something around 5% share of the market in four or five years, but the bulk of the users will probably just stay with Windowz.

  18. Re:Divide and Conquer by marcosdumay · · Score: 2, Informative

    "C++ -- I'm not qualified to comment on that."

    C++ also have an ANSI standard. So, if you code following ANSI C++ and POSIX, your program should run on every unix (and NT). But C++ compilers are known to not following standars, so it is not that good.

  19. JamVM by Hugo+Graffiti · · Score: 5, Interesting
    I hope they choose JamVM for the VM. It's a fairly new VM but impressively lean and mean (100k executable that still supports the full spec). From the JamVM web site, here is a list of the main features:

    • Uses native threading (posix threads). Full thread implementation including Thread.interrupt()
    • Object references are direct pointers (i.e. no handles)
    • Supports class loaders
    • Efficient thin locks for fast locking in uncontended cases (the majority of locking) without using spin-locking
    • Two word object header to minimise heap overhead (lock word and class pointer)
    • Execution engine supports basic switched interpreter and threaded interpreter, to minimise dispatch overhead (requires gcc value labels)
    • Stop-the-world mark and sweep garbage collector
    • Thread suspension uses signals to reduce suspend latency and improve performance (no suspension checks during normal execution)
    • Full object finalisation support within the garbage collector (with finaliser thread)
    • Garbage collector can run synchronously or asynchronously within its own thread
    • String constants within class files are stored in hash table to minimise class data overhead (string constants shared between all classes)
    • Supports JNI and dynamic loading for use with standard libraries
    • Uses its own lightweight native interface for internal native methods without overhead of JNI
    • JamVM is written in C, with a small amount of platform dependent assembler, and is easily portable to other architectures.
    1. Re:JamVM by Anonymous Coward · · Score: 1, Insightful

      The JamVM code is pretty standard as far as the VM goes. They all have to deal with the same things: the interpreter opcode loop (or JIT if they're masochists), the loader, the threads, hashing, string, base class, gc. If you've seen one Java VM implementation, you've seen them all. Writing the VM is easy - most VM projects are written by single individuals in a year or two. Writing the class libraries is infinitely more difficult and time consuming requiring dozens (if not hundreds) of programmers doing really dull non-flashy coding. Apache Harmony will only succeed if they can motivate indiviuals to basically recode the work that Classpath has already done. I do not think it is possible.

    2. Re:JamVM by shutdown+-p+now · · Score: 4, Informative

      No JIT, though. Which makes it nearly useless on the server, where Java is mostly used.

    3. Re:JamVM by AstroByte · · Score: 1

      Funny, because Sun employs a team of 20+ to work on the VM, and IBM even more. I'll tell them to sack them all, because any semi-decent programmer can knock a VM off in an afternoon. Wake up. A simple VM may take a year, but a high performance VM takes a _huge_ amount of effort. And this is code that is qualitatively different to the class-library. There the problem is sheer quantity. The VM has to deal with high-performance synchronisation, execution, etc. Make even a tiny mistake and you might as well go home. Much of this was research topics only a few years ago. Hardly the province of the amateur coder. JamVM is hardly state-of-the-art, but it's not a trivial VM implementation either.

    4. Re:JamVM by Anonymous Coward · · Score: 0

      JamVM is a nice piece of work, not unlike the first version of Kaffe, or the dozen other VMs coded by individuals. Implementing a JVM is not that tough - Sun has a nice spec saying what all the opcodes do and what the class file format looks like. The heavy lifting is already done for you. If you reliably implement this spec you should get a decent VM in under 100,000 lines of code.

      You can throw a thousand programmers at a VM with a $100 million dollar budget and get - if you're lucky - a 20% speed improvement for Java programs. Basically, given one year a top-class programmer can construct a VM with a JIT that is competitive - i.e., within 50% of the speed of IBM's or Sun's best JIT. But you have NOTHING AT ALL if you do not have 100% compatibility with the hundreds of java library classes - your wonderfully fancy and efficient JIT would be completely useless. Look at all the JVM projects around - there are at least a dozen - and why, pray tell, are they all using Classpath? Because that's the single hardest part of the free implementation of Java. You may think of the class libraries as the easy grunt work, but that's the difference between a useful system and a technically insteresting but perfectly useless system.

    5. Re:JamVM by ploppy · · Score: 1
      You may think of the class libraries as the easy grunt work, but that's the difference between a useful system and a technically insteresting but perfectly useless system

      Actually putting all your efforts into Classpath and nothing into the JVM would result in a free-Java system that is so rediculously slow in comparison to the commercial JVMs that no one will use it. Free Java needs both a complete class library and a fast JVM to be useful.


      You seem to be forgetting that the class libraries may give the required compatibility, but it is largely the JVM which provides the necessary speed.

    6. Re:JamVM by Anonymous Coward · · Score: 0

      This is not a fair assessment of JamVM. It is unquestionably THE fastest non-JIT VM I have ever used, approaching JIT speeds for many operations.

      But why use a non-JIT VM you ask? The JamVM author didn't do JIT not because he couldn't but because he insisted on keeping JamVM small so it'd fit on small boxes (Gumstix, PDAs, etc.).

      BTW, the JamVM author is a former member of Sun's VM team. So yes, he does know what the hell he's doing.

  20. SOUJava? by thisisauniqueid · · Score: 1

    I noticed Bruno Souza of Brasil is involved. He had already set up a project to produce something like this in a group called SOUJava. There are also some people from ClassPath and GCJ involved. Does that mean code will be reused and relicensed from those projects, or is everything being done from scratch? Do they have an expected timeline? The Java standard libraries are HUGE.

    1. Re:SOUJava? by bluGill · · Score: 2, Interesting

      Read the FAQ. In short, the contributors will decide what to do.

      Since most of the people on this project are involved with some other java project, they can at the very lease re-license their own source code, and that might be enough to get most of the other code into the Apache license. One would presume that they also have contacts with most of the other developers, and might be able to talk them into license. That covers the legal issues.

      There is one other issue. These people have experience with one implementation. One presumes that along the way they have learned from their mistakes. They might decide to throw it all away (see mozilla) because now they know how to do it right.

  21. binary compatibility? by palinurus · · Score: 3, Interesting
    I bet they can pull off a really nice VM. The existence of multiple VM implementations has yet to produce the kind of community fragmentation that a lot of people have prophesized, is a credit to the strength of sun's spec writing, and has been good for the platform overall (my java apps, both client and server, run without modification on os x...) I wonder about the class libraries, though.

    It seems like maintaining binary compatibility between serialized classes (esp. for collections and java.lang classes) is essential, at least if you want to do J2EE stuff in the long run. It will be at least a nuisance to, say, reimplement java.util.HashMap in a binary-compatible way without illegally appropriating Sun's IP (something the project seems pretty conscious of in their charter/FAQ).

    It's not impossible, but I think the IP challenge there is the real issue (not to mention the fact that your implementation is going to be constrained to being nearly identical to Sun's, at least in terms of overall strategy, if not line-by-line). If you read Sun's code in one window, and then write the same member variables in the same order in another window, is that copying code or not? And even if you do write something completely different (say, going with the HashMap example), you have to come up with some kind of transformation from your choice of state variables to sun's serialized state variables, which could look pretty nasty.

    I also pity the poor bastard that has to write those AWT libraries...

    1. Re:binary compatibility? by spectrokid · · Score: 1

      I also pity the poor bastard that has to write those AWT libraries...
      Being Apache, question is if they will not concentrate on typical serverside libraries, and drop GUI java.

      --

      10 ?"Hello World" life was simple then

    2. Re:binary compatibility? by julesh · · Score: 1

      It will be at least a nuisance to, say, reimplement java.util.HashMap in a binary-compatible way without illegally appropriating Sun's IP

      Why do you say that? The serialized format is documented fully:

      Serial Data:
      The capacity of the HashMap (the length of the bucket array) is emitted (int), followed by the size of the HashMap (the number of key-value mappings), followed by the key (Object) and value (Object) for each key-value mapping represented by the HashMap The key-value mappings are emitted in the order that they are returned by entrySet().iterator().
      (source)

    3. Re:binary compatibility? by psetzer · · Score: 1

      Any schmuck can make a HashMap, but getting it so that you can take a HashMap from your VM, serialize it, send it to another VM, and then it read it without the values changing around is nontrivial unless you can use the same source code as the other person. As far as the open documentation we've got says, it magically creates a hash value for every object, and every object is magically turned into a serialized form, with the JVM turning them back just as magically. "It just happens." is not really helpful for making a new binary-compatible system.

      --
      "Anyone who attempts to generate random numbers by deterministic means is living in a state of sin." -- John von Neumann
    4. Re:binary compatibility? by M.+Baranczak · · Score: 1

      It seems like maintaining binary compatibility between serialized classes (esp. for collections and java.lang classes) is essential

      I was under the impression that serialized objects were never meant to be portable between different JVMs?

    5. Re:binary compatibility? by Anonymous Coward · · Score: 0

      Nothing in what he has written is magical. Serializing an Object is documented. Serializing an int is documented. Serializing a HashMap is documented.

      You have no idea what you're talking about.

    6. Re:binary compatibility? by palinurus · · Score: 1
      Unfortunately, that documentation is not a full specification of the serialized stream format. For example, where is the load factor and resize threshold of the hashmap stored, according to that documentation? that is part of the map's persistent state, it has to be serialized. i think it's important to recognize the difference between javadoc, which is helpful documentation, and specification, which has a criterion of well-definedness not met by the document you site.

      When you look at the code for java.util.HashMap, there are several fields that are serialized *before* the documented fields, using a call to ObjectInputStream.defaultReadObject(). That's a slightly magical call, in that it reads several fields automatically. Not to mention, that not every serializable class in the SDK has been as thoroughly documented as HashMap in terms of its stream format.

    7. Re:binary compatibility? by MarkCollette · · Score: 1

      I have no idea what James Gosling or whoever at Sun meant when they made Java, but I know that a lot of server side communication, between heterogeneous hosts, assumes that Serialization works portably.

      The only caveat that I know of is that between Java 1.1.x and Java 1.2.x the Serialization format changed, to allow for new functionality.

      Or perhaps you're thinking of the Swing API which does not guarrantee any portability of its Serialisation at all, such as even between different version of the same JVM.

    8. Re:binary compatibility? by palinurus · · Score: 1
      it's not really an issue about compatibility between different JVMs, but between different class libraries running on those JVMs.

      I guess I'm thinking mostly of serialization as an important part of RMI in java; i imagine you'd want your client program, running on the Harmony VM, to be able to communicate with code in an application server (WebLogic or something) running the jrockit VM with sun SDK classes somewhere else.

      in truth, if binary compatibility is not a goal of the project, i suppose you could always use the harmony VM with the Sun SDK class libraries, but then that really limits the usefulness of doing a class library implementation in the first place. there are also parts of the class libraries that work in close conjunction with the VM (java.lang.Reference and subclasses), so it might be a little trickier than just dropping the Sun SDK onto your own VM (I say might; i'm not sure).

    9. Re:binary compatibility? by Anonymous Coward · · Score: 0

      Not all aspects of the serializing the HashMap is documented. JVM implementors basically have to rely on reserve engineering to get the ordering of the class data members right. Do a Google search for yourself and learn something. You have no idea what you're talking about.

    10. Re:binary compatibility? by Wesley+Felter · · Score: 1

      To pass the TCK they can't drop anything.

    11. Re:binary compatibility? by M.+Baranczak · · Score: 1

      perhaps you're thinking of the Swing API which does not guarrantee any portability of its Serialisation at all

      Yeah, that must be what I was thinking of. I haven't done much with serialization, so I wasn't too clear on the details - I just had this vague recollection of reading something about how serialized objects aren't portable. Thanks for clearing that up.

    12. Re:binary compatibility? by julesh · · Score: 1

      JVM implementors basically have to rely on reserve engineering to get the ordering of the class data members right.

      No you don't, javap will tell you the order of the data members. All you'll have to do is guess their meaning, which ought to be obvious from the names. In fact, it's:

      int threshold;
      final float loadFactor;

    13. Re:binary compatibility? by julesh · · Score: 1

      When you look at the code for java.util.HashMap, there are several fields that are serialized *before* the documented fields, using a call to ObjectInputStream.defaultReadObject(). That's a slightly magical call, in that it reads several fields automatically.

      OK, but (a) the ordering of the fields is irrelevant as it is annotated in the stream, and (b) the definitions of the variables that are serialized are easily obtainable from the class metadata of Sun's implementation[1]. In fact, 'javap' tells me they are these:

      int threshold;
      final float loadFactor;

      All we have to do now is guess what's stored in them: not hard.

      Admittedly, some other classes may be harder, but I doubt many are truly problematic. And before you ask, yes, I have worked on the serialization system of a Java reimplementation (although only a subset), so I do know what I'm talking about.

      [1]: Sun does not, I believe, claim any IP protection over this metadata. A lawyer ought to be consulted before following this kind of procedure, though. Failing this, it would be easy to determine the names (and example values) of the fields by examining existing serialized data. If Sun have any rights over that, making a binary compatible implementation would be nearly impossible: merely testing your implementation and correcting it if it failed to load data serialized by Sun's implementation would render it a derivitive of Sun's implementation. I'm pretty sure they don't, though.

    14. Re:binary compatibility? by palinurus · · Score: 1
      Admittedly, some other classes may be harder, but I doubt many are truly problematic. And before you ask, yes, I have worked on the serialization system of a Java reimplementation (although only a subset), so I do know what I'm talking about.

      I wasn't trying to tread into the hostile sort of "you don't know what you're talking about" territory. I brought it up because I've been on more than a few projects where binary incompatibility between different versions of the same class library became a hurdle. I remember one project in particular, with a client running sun 1.2 VM communicating via RMI over a server running microsoft 1.1 VM... (believe me, it wasn't my idea)

      I actually wasn't even trying to call into doubt whether binary compatibility was possible (or "hard"); especially since "not hard" doesn't always translate into "not time consuming". the two real points i was trying for (and maybe didn't articulate clearly enough) are:

      1. trying to reimplement the class library while resisting the temptation of using the readily-available original source as a guide, because of issues like this one, is interesting; and
      2. binary compatibility pushes you strongly in the direction of not providing a radically new implementation for anything

      Neither of these are a reason not to embark on the project. Who wants to do a radically new implementation of HashMap, anyway; it works well. I just like to, you know, discuss.

    15. Re:binary compatibility? by MemoryDragon · · Score: 1

      Could be a good way to get rid of the deprecation bloat which the Sun VM has... For instance why even bother with Vector and Hashmap instead of just implementing the newer collection classes, same goes for the AWT, better just focus on Swing

    16. Re:binary compatibility? by Anonymous Coward · · Score: 0

      And you don't call "javap" reverse engineering? I learn something new every day.

    17. Re:binary compatibility? by julesh · · Score: 1

      No, I don't call using platform standard APIs to view publically available metadata reverse engineering. Class metadata is essentially automatically processable documentation, not code that needs to be reverse engineered to be understood.

  22. Re:Divide and Conquer by Anonymous Coward · · Score: 0

    perhaps it means that bugs will actually be fixed.

  23. Is JamVM reentrant? by Anonymous Coward · · Score: 1, Interesting

    Is JamVM reentrant?

    I've been looking for a small JVM that allows multiple independent instances of itself to be kicked off without interfering with each other.

    1. Re:Is JamVM reentrant? by greenrd · · Score: 1
      Huh? Why should they interfere with each other? I don't know of any JVM that doesn't support multiple processes.

  24. Re:Divide and Conquer by ssj_195 · · Score: 3, Insightful
    What is "fragmented" about it? If you have a computer with more than 256MB of RAM, then you can happily run either KDE or GNOME - the difference is merely one of personal preferences. An application written for GNOME works damn-near perfectly under KDE, and vice-versa, due in large part to the efforts of freedesktop.org. If you are talking about distros, then the only two that a "Joe Sixpack"-type of home user will need to know about are Ubuntu and SUSE (I'd go with Ubunutu, personally). Granted, packages are not interoperable between the two, but since both have good, up-to-date versions of the same software a mouse-click away, who cares?

    I'm sorry, but I'm just really not seeing this supposed "fragmentation" as a barrier to Linux on the desktop.

  25. Re:Divide and Conquer by kfg · · Score: 0

    It's a pretty good maxim, if you're a lion out to have some buffalo for lunch.

    If, however, you write software and don't want to appear on the Microsoft cafeteria menu divide and become unconquerable might be a better one.

    Once this is achieved you can deal with the bloat issue by simply not installing it, something not possible with standarized, monolithic bloat.

    You will achieve full standardization of free software when you achieve full standardization of the human mind. You can easily achieve this by standardizing everybody but me, because I will then procede to shoot myself.

    KFG

  26. Mono Mono Mono by synthespian · · Score: 2, Insightful

    Quit the Java dependency. Head towards open standards.

    How long will it take for the open source community to understand that C# is not only "a Java replacement", but a better technology? How long till people start reading the docs behind C#'s design?

    Let's get this clear: Mono is free software, Java is not!

    My intent is not to troll, but simply point out that, in the long run IMHO we should stick to Mono. Sun had its chance. It's done too little, too late.

    Why all this investment of time on something that doesn't even have a standard by a credible overseer, like ISO, ANSI or ECMA?

    This is perpetuating the Java/Sun dependency. Kick the habit!

    --
    Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    1. Re:Mono Mono Mono by Anonymous Coward · · Score: 0

      Why the fixation with standards committees? When you have a single vendor driving a standard like Sun or Microsoft, the only thing ISO/ECMA will provide is a rubber stamp.

      The great thing about having opensource Java and CLR impementations is that the barriers between them can be made transparent -- imagine combining C# and Java in the same Eclipse project... MS did something like this with VB/J++.

    2. Re:Mono Mono Mono by julesh · · Score: 1

      As somebody who's recently done some C# / .NET programming, I can see where you're coming from. But I'm afraid the platform has a long way to go before it becomes as useful to the open source community as Java. When there is a well accepted platform-independent GUI for it (I've seen GTK#, which is getting there, but the number of projects using it so far seems to be fairly small), when its APIs reach the same level of functionality in areas like 3D graphics, telephony, e-mail manipulation and cryptography as Java's, maybe then you'll be right.

      I reckon it'll take about 3-5 years before it catches up.

    3. Re:Mono Mono Mono by DickBreath · · Score: 1

      It will take some time for Mono to catch up to Java. But so far, everything I've seen is impressive. Having recently read the C# language specification, I found that I really liked it much more than the Java programming language. I also loved that the VM is designed for non-Java languages, including tail-recursion.

      Whoever is second in designing a copy of someone else's work is always able to fix lots of little mistakes in the copied work.

      There are a few things that, IMHO, are important for Mono.

      Mono needs to complete the Windows.Forms implementation. This will make it possible for Windows developers to trivially port their software to Linux.

      Mono also needs to be included, out of the box, in several widely used Linux distributions. This way, Joe Fourpack can just download and run applications written for Mono (or .NET).

      Similarly, Java needs to be included by default, but this has always been a problem because, only some commercial distributions could include it if they took a license from Sun. Hopefully, a complete open source implementation of J2SE will appear to solve this problem for Java.

      So far, Apache Harmony is just a proposal. There have been efforts to create an open source Java since well before Mono or even dot-net. The fact that we still don't have an open Java is a testament to how large a project it is to create one. Considering how fast Mono was developed and how far it has come, it may well replace Java.



      On a different Off Topic....
      I have lost all faith in the slashdot moderation system. The parent post is not flamebait. It is just an opinion, well written and well stated. I have seen a number of horribly unfair moderations in the last few months. I even reported one to Taco, and was punished for it. Apparently moderation really is all about whether you agree with the message rather than about the quality of the message.

      --

      I'll see your senator, and I'll raise you two judges.
    4. Re:Mono Mono Mono by Master+of+Transhuman · · Score: 1


      While I agree that having many Java projects ported to Mono might be a good thing, I see the same problem with Mono as with Java - the primary implementor is a corporation - and unlike Sun, this one has a major problem with ANY kind of competitor.

      We have yet to see whether Miquel can keep Mono going in the face of a Microsoft lawsuit.

      In my view, both this project and Mono are good ideas and should be pursued (along with Perl and the other scripting languages) - and it would be nice if someone came up with yet another language that is even better and has no dangling strings to a major corporation.

      In any event, the Apache Project supports many Java-based projects and having a totally free Java is obviously a good idea from their standpoint.

      And as usual with OSS, if you don't like it, don't participate.

      --
      Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
    5. Re:Mono Mono Mono by Anonymous Coward · · Score: 0

      Mono is just Java with minor alterations.
      Maybe this Harmony project can process file.java as Java and file.cs as C#. That would be real
      harmony.

    6. Re:Mono Mono Mono by HiThere · · Score: 2, Insightful

      In 17 years I'll trust the current Mono implementation to be free from MS traps.

      Do you remember the GIF patent affair? The traps don't need to be in an obvious place to be dangerous. Compuserve didn't intend any problems when it allowed the gif format to be standardized, then, after it was common a third party steps in and says "Now about my patent rights...". While I'm fairly certain that Compuserve was innocent in this affair, I don't feel the same way about MS. I expect that they have this already set up, with a patent pool agreement covering them against their partner.

      I could be wrong, but MS isn't a trustworthy partner, and Mono is taking their bait. It *could* be innocent this time, but that's not the way to bet.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    7. Re:Mono Mono Mono by synthespian · · Score: 1

      My point being that if big shots like Apaches don't jump on this bandwagon, it'll take longer than necessary.

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    8. Re:Mono Mono Mono by synthespian · · Score: 1

      I have lost all faith in the slashdot moderation system. The parent post is not flamebait. It is just an opinion, well written and well stated.

      Thank you. In fact, when I posted, I was expecting to be moderated as flamebait. What happens is a statistical phenomenom: the nature of the topic is such that it's bound to atract Java fans, or at least outnumber the other non-fan group. Therefore, I get modded down as flamebait. And just yesterday, I got mod points...

      I really don't see a way out of this. Maybe mod points have to be assigned weights, take into account how often someone points, and on what number of topics (consider that the topics are already somewhat categorized by slashdot), considering if he/she is an all around good poster (because this would avoid all-around posters just to get more weight for their mod points). An all-around good poster would be considered /by this community/ someone who deserves more weight. So if he/she mods me as flamebait, that's different than Java fanboys flooding to this thread and modding me down as flamebait.

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    9. Re:Mono Mono Mono by synthespian · · Score: 2, Insightful

      Mono is just Java with minor alterations.

      On the surface. However, on the Common Language Runtime, there's huge difference. You're one of those people who haven't read anything substantial on Mono, and dismiss it quickly on wrong premises.

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    10. Re:Mono Mono Mono by julesh · · Score: 1

      But Apache are already well-and-truly on the Java bandwagon. Look at the projects listed on the front page of www.apache.org; about a third of them are Java related. An Apache Java implementation is hardly a surprise, and I don't see them getting involved in .NET related work in the foreseeable future (except potentially to incorporate an ASP.NET implementation in the httpd project).

    11. Re:Mono Mono Mono by synthespian · · Score: 1

      I meant C#. Sorry if I didn't express myself very well.

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    12. Re:Mono Mono Mono by synthespian · · Score: 1

      Do you remember the GIF patent affair?

      I'm sorry to say, you're distorting facts. The problem with GIF was that Unisys had a patent for the LZW compression algorithm, an algorithm used by GIF. The fact that the GIF standard was open and public only caused trouble because GIF was widely deployed with patented algorithm. There was a patent, and no one knew about it. Pick up any not-so-old book on compression, and you will see LZW. See here for more info on the GIF controversy.

      What Mono has is an ECMA standard. This is entirely different. What they do is a clean room implementation. So, anything people say about MS claiming patent rights on Mono is just FUD, and probably boils down to prior art and the open standard published in a widely-known standards body. Seems hard to hold up in court...This is why a standard by a overseer like ISO, ANSI or ECMA is so important. This is not your de-facto-standard-via-implementation phenomenom, like Perl, Python, etc. This is different: big players, industry, corporations, etc. And no libre software license to go with it.

      OTOH, as someone said in another thread, what if another company buys Sun Microsystems? What happens to the dear JCP? It all goes down the drain, because there's no garantee.

      So, to sum it up, Java is a liability to the libre software community.

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    13. Re:Mono Mono Mono by HiThere · · Score: 1

      But that's precisely the kind of connection I'm forseeing. Consider that MS may well have a deal with some company that allows them to use some particular patent. This doesn't help you, clean room implementation or not. Clean room implementations help against copyright infringement claims, not against patent claims.

      Certain of the OSI licenses offer limited protection against this kind of patent claim, e.g. the GPL prohibits distribution under that license unless the recipients have the right to modify and redistribute the code, and the MPL requires that the software be accompanied by a document listing all known encumberances of the software, which would require listing patents that you knew the work infringed upon (whether licensed or not). Other OSI licenses make no such provisions (e.g., Sun's new license that they intend to employ on OpenSolaris...where during the re-write process they explicitly removed the section of the MPL requiring notification of any known encumberences).

      Java implemented by a group indepedently of Sun is no less free of copyright restrictions than Mono is. Classpath and gcj are such an implementation. If they are used as the basis of Harmony, then Harmony will be a similar independent implementation, and similarly free of copyright problems. It is also likely to be free of patent problems, as much of Java dates to before software was widely patented.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    14. Re:Mono Mono Mono by jechidah · · Score: 0

      Why dont you and Miguel go fuck each other ? I would then like to see you both cry "Mono!" in extasy as you are violated again and again when Microsoft joins in on the fun.

  27. Java Rivals by Doc+Ruby · · Score: 2, Insightful

    Pentiums didn't become really high-performance and free of notorious bugs until AMD made Pentium instructions run on a competing processor. Maybe Java needs more competition among virtual processors to see more innovations reach consumers.

    --

    --
    make install -not war

  28. Re:Divide and Conquer by synthespian · · Score: 1

    The great beauty of the linux desktop is that it, like all *x desktop windowing systems, is not standardised

    Actually, this sucks. It's supposed to be a Unix-like system. But people write source code full of Linuxism. As a result, some stuff is hard to port to a BSD system (a much more reliable aproximation of Unix).

    If what you're defending was such a great idea, people wouldn't have created stuff like the LSB.

    --
    Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
  29. optimism by YoungHack · · Score: 2, Interesting

    Wow, I hope this goes well. I've for years felt that Java got a lot of things right (and a few things wrong). But I'll take a C program every time over a Java implementation.

    Why? Because I believe in free software, and I try to use free software. While I might have a practical bone in me that would install Sun's no-cost JVM, it doesn't come packaged with my Linux distro.

    If you want to develop for Java, there's this huge impediment to distributing your software. You've got to get the end user to thunk down an enormous environment first to support it.

    And it doesn't always go well. That's why so many vendors ship with their own JVM. When I installed Oracle last summer, they had done exactly that. Only their bundled JVM didn't work. I ultimately discovered that I could get the software to function by excising that JVM and putting Sun's current offereing in its place. But I would describe the experience as a nightmare, and a less-experienced person would have found it hopeless.

    A common platform, with a free license, that can be packaged by my favorite Linux distro is exactly what Java needs.

    Go team.

  30. How? by Anonymous Coward · · Score: 0

    Why could we expect Apache to do what no of the other free Java implementations have been able to do so far? Don't misunderstand me, I would really like to have a complete Free Java implemantation, that could be used as a drop-in replacement for Sun's, but unfortunately, all current implementations still are far for complete, especially for graphical applications using AWT, Swing, applets and so on...

    1. Re:How? by Master+of+Transhuman · · Score: 1


      Why do people complain about the "current" implementations?

      Did you use Java the day it came out?

      OSS does not spring full-blown into the world. If it takes ten years to get a useful free Java, like it did Linux, what's the problem? You going somewhere?

      --
      Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
  31. Re:Divide and Conquer by Anonymous Coward · · Score: 0

    why use a dying os like bsd ?

  32. Harmony could use Parrot by mattr · · Score: 5, Interesting
    I'm just someone not involved in language development, and so I'm sorry if I'm out of line. Most developers in language X just sit back in admiration at the olypmian efforts of language, compiler, vm or kernel designers. But I would like to humbly suggest that Harmony people talk with the parrot people. Parrot already has a java bytecode converter proof of concept, initial code, will run on tons of platforms, and has perl and python people too. It is GPL compatible and licensable under the Perl Artistic License.

    The reason I suggest this is that it would appear that the main purpose of the Harmony project is to create a vibrant, inclusive community. In that case, the open source world, Harmony, and Parrot, plus users of java, perl, python, ruby and tcl (for starters) can all benefit by combining two disparate groups of all-star programmers working in potentially complementary areas.

    If any parts of the Harmony project can use parts being developed for Parrot, much time would be saved and the quality of both projects could increase. In addition, it would likely be easier for the Harmony project to meet its stated goals of collaboration and sharing of runtime components, etc. to do so with parrot. The Parrot FAQ also talks a bit about VM development, including working with a JVM, it sure sounds like there is some overlap with Harmony.

    Perhaps the Parrot people don't need any help (I doubt they would say so though) and maybe the Harmony VM people can't stand the idea of not building from ground zero, or using only the Apache license and nothing else. If any of these three maybes are true then it is a sad story.

    Also, I may be out of line but it sounds like parrot will enable sharing of code from different languages at runtime. If so that will just magnify what Harmony is trying to do in terms of bringing people together.

    So humbly I would like to say that the ideas of creating a specification and reference implementation, and promoting collaboration and sharing of modular code sounds wonderful, and focusing on these and not wasting time reinventing the wheel could be a great move for Harmony, and contribute to refocusing the brainpower of the free software world, in the spirit of the Harmony and Parrot projects.

    My guess is that Harmony has some really smart people and they are also well aware of the Parrot effort. Maybe some are already involved for all I know. Any comments one way or the other?

    1. Re:Harmony could use Parrot by Anonymous Coward · · Score: 0

      Parrot is pretty much the Duke Nukem of the opensource world -- vaporware extreme. Maybe when Perl 6 comes out in 2007 or 8, the java people could look at it, but until then it would seem like a blackhole in any project.

      Futhermore parrot is a very different design than the JVM. (register vs stack-based).

    2. Re:Harmony could use Parrot by Anonymous Coward · · Score: 2, Informative

      Good idea, but i think Parrot is designed for dynamically-typed lanuages (perl, python, ruby), wheras java, c# are statically typed.

      Why your own virtual machine? Why not compile to JVM/.NET?
      http://www.parrotcode.org/faq/

    3. Re:Harmony could use Parrot by MemoryDragon · · Score: 1

      Wake me up the day, when parrot is not vaporware anymore... Same goes for Perl6 which has been in the planning stage longer than has been Ruby existing.

    4. Re:Harmony could use Parrot by curunir · · Score: 2, Insightful

      It sounds like you're essentially suggesting that open source create something similar to the .NET CLR. It's an interesting idea, but it would be really difficult to get everyone to work together and agree on design details. .NET has the advantage that Microsoft gets to make all the decisions, so when an implementation choice would favor one language over another, they decide based on which language will make them more money. Open source projects won't subjugate themselves when it comes to these kinds of decisions. It could very easily end up in a situation where everyone argues and nothing ever gets done right or done at all.

      Something like that stands a much better chance of happening if someone just goes off and does it. It would be neat if this new JVM includes an extension mechanism that allows people to write JIT compilers for other languages. But I just don't see Java users getting behind a runtime that doesn't place Java concerns ahead of all else. So I think it's doubtful that Parrot itself would ever end up being used as the basis for a new JVM.

      --
      "Don't blame me, I voted for Kodos!"
    5. Re:Harmony could use Parrot by 1110110001 · · Score: 1

      It's funny people think parrot is vapoware altough it can even run PHP code with pint. So they already made a huge step. Of course the last steps in getting it ready take longer. But they're working on it and I think 2007 is a good target for a first stable release.

      Still I agree it doesn't fit Java's needs and I don't want to see parrot doing Java stuff. Keep it simple.

      b4n

  33. Compatibility by Kjella · · Score: 1

    It's quite probable that once version 3 of the GPL is released, there'll be a strong effort from both sides to get some compatability between the two as incompatable licenses hurt everyone, whatever your ideological differences.

    You can bet the GPLv3 will need it. I think the FSF will quickly find that it is next to impossible even for them to overcome the momentum of GPLv2, because many people have cut the "or later" part. Doesn't it seem wierd to license code under a license you don't even know what is? Anyway, that means there's a solid bulk of code with missing/dead (in the literal sense too) developers whose code can't be relicensed (assuming the GPLv3s changes are acceptable to everyone, might also be an interesting question).

    Kjella

    --
    Live today, because you never know what tomorrow brings
  34. So this is "cool"... by kryps · · Score: 2, Insightful


    ... and open-source Solaris is "vaporware" even though there is no/nada/nil code available for the Apache J2SE 5.0 implementation. Some people need to have their heads screwed on right.

    -- kryps

    1. Re:So this is "cool"... by Anonymous Coward · · Score: 0

      Let's wait 6 months after the announcement of Apache's J2SE before tagging it vaporware...rather than your 6 minutes.

    2. Re:So this is "cool"... by HiThere · · Score: 1

      Yah, it's vaporware. So?

      You think that this is vaporware means that Sun's open-source Solaris isn't?

      You think that this is "cool" means that Sun's open-source Solaris should be?

      Vaporware and cool are orthogonal. Open Source Solaris lost it's chance at "cool" when Sun chose the license they did. It may, eventually, become interesting, or possibly useful. For now it's un-cool vaporware being promissed by a company with a split personality.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    3. Re:So this is "cool"... by kryps · · Score: 1
      Open Source Solaris lost it's chance at "cool" when Sun chose the license they did.
      Huh? They chose/created an OSI-approved license and already released dtrace sourcecode under it.

      You are the usual informed Slashdot reader so I am sure you know that many Apache projects (especially Java projects) originated from Sun-donated sourcecode and that many major contributors of the ASF are employed by Sun. You know that there would not be such a thing as OpenOffice if Sun had not bought StarOffice and released the source code?

      I do think that Sun probably made some bad business decisions that will force them out of business earlier or later. But the constant uninformed Sun bashing is really getting on my nerves.

      -- kryps
    4. Re:So this is "cool"... by SEE · · Score: 1

      Open Source Solaris lost it's chance at "cool" when Sun chose the license they did.

      Huh? They chose/created an OSI-approved license

      This is not 1998 anymore.

      To quote the OSI's own statements on license proliferation:

      "Interference between different open-source licenses is now perceived as a sufficiently serious problem that OSI has become as a victim of its own earlier success."

      "OSI has long been aware that license proliferation is a problem. The steps that we have already taken have not headed off enough licenses. But we exist to serve our community, and our community -- from both the hacker and suit sides -- has been telling us loud and clear that it wants this problem solved."

      "We will have another, overarching criterion in mind: promoting the reusability of code, and discouraging licenses which, while strictly OSD-conformant, nevertheless tend to create semi-gated communities attached to a single firm or vendor."

      "These licenses put a hard brake on the growth of development communities around their products without actually delivering measurable advantages in revenue, market control, or risk management."

      "We do not expect the Preferred category to hold any real surprises. Because the vast majority of the more than sixty thousand open-source projects fall under a very few well-established licenses such as GPL, BSD, and MIT, it is unlikely that a more than a few hundred projects would actually be inconvenienced even if we were to deprecate a score of other licenses."

  35. Re:Divide and Conquer by Anonymous Coward · · Score: 0

    That hasnt been true for years.

    Since 2003 there have been enough high-quality compilers that achieve a near-perfect compliance to the standard that people actually use the features the language offers.

    Besides, just look at boost and QT :)

  36. I'm rooting for them, but by beforewisdom · · Score: 2, Insightful

    I'm rooting for them, but that is a huge project.

    There is no shortage of half finished FOSS implementations of Java.

    I'll believe it when I see it, and I will be grateful to Apache for making it happen.

  37. Final Nail In Mono's Coffin by Anonymous Coward · · Score: 0

    Thank god, this puts an end to the Mono fiasco.

    1. Re:Final Nail In Mono's Coffin by julesh · · Score: 1

      Thank god, this puts an end to the Mono fiasco.

      Err, I doubt it. I don't really think anyone is using mono rather than Java because of licensing problems. There are already free implementations of Java that are just as useful as Mono is; the only problem with them is that they're severely lagging behind Sun's Java implementation in terms of new features and APIs.

    2. Re:Final Nail In Mono's Coffin by Anonymous Coward · · Score: 0
      Err, I doubt it. I don't really think anyone is using mono rather than Java because of licensing problems.
      True enough. People use mono because they want to be the first up against the wall when Microsoft descends with its patent attorneys.
  38. Re:Divide and Conquer by mpcooke3 · · Score: 1

    Heh.

    Or put another way "C" is theoretically cross platform but in practice it isn't.

  39. Open Sourced VM Engine by hackus · · Score: 1

    I just did a backflip. :-)

    This is great news!

    I have several reasons why I like it:

    1) The future financial stability of SUN Microsystems I think is pretty Dark. I think that because SUN is losing on all fronts with its RISC hardware to AMD/IBM's/Motorola's efforts in 64 bit computing during the past couple of years.

    2) Although the best thing I love from SUN is the JCP org, it is not a gurantee that it will continue if SUN is purchased by another corporate entity.

    Quite frankly, as SUN's financial posture has weakened over the years, as a Java developer that thought has given me and my customers the willies.

    3)The impact of 2 on the OS community would allow a major frontal assualt to free corporate data from Microsoft to collapse in server rooms all over the world.

    It would be a new DARK AGE in computing. Dogs and cats would be sleeping with each other and regular reboot scripts for servers and 3AM calls for network admins would become common place. :-)

    The loss of the JCP and license restructuring would kill a major reason to deploy build and utilize corporate data in a free way with trading partners by imposing possible licensing fees on existing projects.

    4) Java and Linux are so "synergistic" (Can I say that?) in how they complement each other in so many ways in our fight to free corporate data from microsoft, that I can't begin to describe them all.....OK well, I will try. :-)

    Axis Web Services: I can deploy a axis sql query service on a old Fox pro app server and use it free of charge through a Linux app server. Saving corporate HQ in the process by getting data that was otherwise locked up to customers 24/7.

    Hurray!

    I don't need to budget to get data where it needs to go, just add another button on a web page and repatriot a OLD windows 2000 server to the cause of running Apache Tomcat/Axis and we are good to go. (Did I mention the old server all of a sudden Microsoft refuses to support with 2K runs twice as fast just with Linux on it??? Did I mention it is more secure? Did I mention I have the source code?)

    Why, why OF COURSE I did!

    Hurray!

    Then of course, there are the hero moments in all this where everyone says:

    Hackus? Hackus help us please!!

    Why of course I will, lets format the windows partition and begin...

    Hurray! :-)

    -Hack

    --
    Got Geometrodynamics? Awe, too hard to figure out? Too bad.
    1. Re:Open Sourced VM Engine by Anonymous Coward · · Score: 0

      1) The future financial stability of SUN Microsystems I think is pretty Dark. I think that because SUN is losing on all fronts with its RISC hardware to AMD/IBM's/Motorola's efforts in 64 bit computing during the past couple of years.

      SUN isn't sleeping. It is currently in process of changing their business model (and that's why they're flirting with OSS), heavily restructuring and outcourcing as well.
      I would bet my left little finger nail on SUN being here and sound for next 10+ years. (And I would bet it against M$ft achieving this;-) )

  40. Why not have Sun do it? by beforewisdom · · Score: 1

    Sun has been making noise now and then about open sourcing Java.

    Why not push them toward putting their money where their mouth is?

    Ask them ( or better yet, ask IBM ) to release the java implementations they already have built under an apache license.

    If that is still too liberal for them offer to help in writing a new OS license that will give SUN the control they want.

    1. Re:Why not have Sun do it? by Master+of+Transhuman · · Score: 2, Insightful


      If Sun ever does do a completely OSS license, projects such as this are likely to be the cause.

      That alone justifies the project.

      --
      Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
    2. Re:Why not have Sun do it? by matfud · · Score: 1

      Sun's implementation of java is open source. The source for the runtime is included in the jdk. The source for the VM (1.5 only) is available on their web site. You can do what you want with it as long as you do not distribute your changes. If you want ot distribute your changes you have to contribute them back to Sun (Under a shared copyright agreement).

      I think you ment that it is not released as open source under your favortie license.

      matfud

    3. Re:Why not have Sun do it? by Anonymous Coward · · Score: 0

      Better yet, IBM?

      IBM's JVM has a history of being extremely unreliable as compared to Sun's. It has improved recently, but even now has special "issues"...

    4. Re:Why not have Sun do it? by lachlan76 · · Score: 1

      I think he was just confusing Open Source and Free Software.

  41. The usual point that comes up with this issue. by beforewisdom · · Score: 2, Insightful

    Whenever open source and Java come up in a thread someone will always make the point that keeping Java under Sun's control prevents it from being bastardized.

    The example of C starting out as a multiplatform language always comes up.

    This reasoning may be correct, or it may not be.

    I know python implementations are not exactly the same across platforms. There are some things I can do on linux with python that I can't do on windows.

    Are there any examples of multiplatform, open source languages out there, running, that do not require the program to learn about platform specific issues?

    1. Re:The usual point that comes up with this issue. by Anonymous Coward · · Score: 0

      One word: Perl.
      There are lots of extensions and libraries in Perl, but the core language is still under control of a closed group, which avoids language decay. The proponents of this Java thing should take a look at the political organization of the Perl development.

    2. Re:The usual point that comes up with this issue. by HiThere · · Score: 1

      The only one I can think of is Squeak. And it makes you do everything internal to it.

      Someone above mentioned Perl, but I would wager that the graphic and sound libraries are system specific. With Squeak that isn't true. (OTOH, I've always found the limitations of Squeak...it's Smalltalk language + it's "do everything inside me" + certain limitations of the graphics toolkit ... to be too large a price to pay.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    3. Re:The usual point that comes up with this issue. by mykdavies · · Score: 1

      If you're happy using wxWidgets, there are now bindings for Squeak (http://homepage.mac.com/rgayvert/wxsqueak.html).

      And of course Squeak has an incredible web development framework - Seaside (http://seaside.st/). Try the tutorial -- you will be blown away!

      There is a lot of interesting development happening in Squeak at the moment; if you've not played with it in the last couple of years, it's well worth giving it some attention. If you're having trouble getting into Squeak, have a look at some of the tutorial material on http://minnow.cc.gatech.edu/squeak/377 .

      --
      The world has changed and we all have become metal men.
    4. Re:The usual point that comes up with this issue. by Anonymous Coward · · Score: 0

      Whenever open source and Java come up in a thread someone will always make the point that keeping Java under Sun's control prevents it from being bastardized.

      This is utter bollocks. A reimplementation can "bastardise" Java just as much as a fork of Sun's code. In fact, it's more likely, because of unintentional bugs existing in newly-written code compared with the already stable code from Sun.

      If Sun really wanted to protect Java, they'd open-source their implementation so that reimplementations wouldn' be necessary.

      The example of C starting out as a multiplatform language always comes up.

      There are practically no differences between the C language and standard libraries on one platform, and the C language and standard libraries on another platform.

      I know python implementations are not exactly the same across platforms. There are some things I can do on linux with python that I can't do on windows.

      That's the nature of developing for multiple platforms. Some things are just different in their very nature.

      Are there any examples of multiplatform, open source languages out there, running, that do not require the program to learn about platform specific issues?

      C.

    5. Re:The usual point that comes up with this issue. by ajwitte · · Score: 1

      As long as you avoid unix-isms like fork(), the major open-source scripting languages (perl, ruby, python, ...) seem to be very multiplatform.

      In ruby (the one I am most familiar with) some of the "platform-specific" APIs have no effect on platforms that don't support them (eg, chmod on Windows).

      The rest of the platform-specific APIs (eg fork) simply cannot work on certain systems. These are documented as such.

      Of course, they could be omitted altogether (this seems to be the Java approach... as far as I know you can't fork() in standard Java) but I don't see how this approach is any better then providing platform-specific APIs for those who need them and who know their application will only need to run on a certain platform (for example, a server application) or who are willing to detect and adjust for different platforms at compile or run time.

      --
      chown -R us ~you/base
    6. Re:The usual point that comes up with this issue. by Anonymous Coward · · Score: 0

      There are also things you can do on windows with python that you can't do on linux, like the win32 api. Eg call a COM interface to QuickBooks.

  42. Surely this must be an IBM plot? by hauk · · Score: 1

    Several of those that are behind this proposal are either associated with IBM or works for IBM. Also factor in, that for many years now IBM has wanted SUN to open source Java without luck. So this is the solution? Good luck I say, what we see here is the prelude of yet another OSS fiasco like GNU's HURD.

  43. And I remember by Julian+Morrison · · Score: 2, Insightful

    ...that project Harmony was the reason TrollTech chose to GPL (as versus seeing their strategic role usurped by an LGPL workalike). At which point Harmony dried up as redundant. So while it didn't per se do much, its historic impact isn't negligible.

  44. Re:Divide and Conquer by Anonymous Coward · · Score: 0

    Wrong. Download APR and you have cross-platform C.

  45. Re:Divide and Conquer by jonwil · · Score: 1

    You can also use the Mozilla Netscape Portable Runtime Library, that is cross-platform (on at least Windows and just about anything Unix). And, IIRC it is triple licenced GPL/LGPL/MPL so you can take it and use it in a GPL program no problems.

  46. One thing their FAQ doesnt mention by jonwil · · Score: 2, Interesting

    Is why they cant/wont take code from one or more existing JVMs and libraries and use it as a base.

    We have GNU classpath
    GNU GCJ
    And others

    Why havent we seen anyone take the good bits from all the different Open Source java projects and work on ONE free JVM that will sucessfully pass the Sun J2SE compatibility test (and therefore be a 100% implementation of JAVA)

    Personally, the fact that no Open Source program comes even close to being able to pass the J2SE compatibility test is why I dont write anything in JAVA.

    Most of my code is written in C and C++ with some stuff in Assembler of various kinds.

    1. Re:One thing their FAQ doesnt mention by NetCow · · Score: 1

      Why havent we seen anyone take the good bits from all the different Open Source java projects
      Because of that little thing one calls license.

  47. Last thing Perl6 project needs... by Ars-Fartsica · · Score: 1

    The last thing I want to see is the Perl6 project weighed down by another goal. Its bad enough people are wasting so much time toying around with Pugs, which regardless of what you read is throwaway code, yet seems to be capturing the interest of most of the posts on the perl6 lists.

  48. Begun the VM wars have by Anonymous Coward · · Score: 0

    Parrot? GIJ? This new implementation?

  49. Effort outweights benefits by rexguo · · Score: 2, Interesting

    IMHO I feel the effort can be better spent on helping Mustang (1.6) and Dolphin (1.7) to be better than if Sun did it alone. Just fixing the outstanding bugs that's been on the bug parade is a great service to the Java community. I admire the spirit of wanting to reimplement Java, but this almost feels like a 'Netscape' to me.

    --
    www.rexguo.com - Technologist + Designer
    1. Re:Effort outweights benefits by Anonymous Coward · · Score: 0

      I agree exactly. But the bugs would fixed more quickly if Sun let us. Not the JVM by itself, only the class libraries. Lots of internationalization bugs remain and would be fixed in no time.
      This way, Sun would have more time to dedicate themselves to hardware adaptations and optimizations which will be needed soon for the Cell processors.

    2. Re:Effort outweights benefits by rexguo · · Score: 2, Informative

      Fortunately Sun does let us fix bugs now.

      Take a look at this article:
      I fixed the JDK!

      This guy submitted code fixes and actually got accepted by Sun and rolled into Mustang code!

      --
      www.rexguo.com - Technologist + Designer
    3. Re:Effort outweights benefits by HiThere · · Score: 1

      OK. You help Sun then. No problem.

      This is Free Software (well, FOSS anyway) and that means that you work on the project that appeals to you. Since I don't trust Sun as far as I can throw it (the whole company!) I won't be advocating for them, but you can.

      Were I to push for any one program, I'd push Classpath, but plausibly the Harmony project will eventually be as useful, and it won't be under a restrictive license. I'm certainly not about to tell people not to work on it.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  50. Ha! by Anonymous Coward · · Score: 0

    Sure, FUD on the Linux front. Maybe it's true? What a mindfuck. How can a company with really bright minds be better than tripped out hippies working for free? Impossible.

  51. Windows Focus by bigbinc · · Score: 0
    If windows is not the target operating system. I see failure or at lease non-support.

    Guys, I would suggest really focusing on windows.

    --
    ---- Berlin Brown http://www.newspiritcompany.
    1. Re:Windows Focus by mccalli · · Score: 2, Insightful
      If windows is not the target operating system. I see failure or at lease non-support.

      Windows isn't where the main focus of Java use is. True, deployment of GUI apps is getting nicer with webstart and what have you, but the real focus is on the server side. And that means Linux and Solaris.

      The Sun Solaris JVM, for example, is an utter pig to tune. It requires some of the most obscure settings imaginable, and by the time you're finished learning some virtual machine backwards you may as well have written it for the metal anyway (disclaimer: I develop in Java, the apps I write tend to need passable processing done with latencies of under a millisecond. The machines we use are big).

      With Apache themselves being primarily on the server side, I would have thought they'd be concentrating on the various Unix derivatives first - with particular focus on Linux and Solaris.

      Another interesting point - IBM have tended to use the Apache foundation to get open source code to the world through. I wonder if they're thinking of donating as much as they can (by license) of their own JVM?

      Cheers,
      Ian

    2. Re:Windows Focus by mattyrobinson69 · · Score: 1

      if your using windows you obviously dont care about licenses. also, whats the point in a good jvm if your going to be using a crap os?

    3. Re:Windows Focus by bigbinc · · Score: 0

      "Windows isn't where the main focus of Java use is.." "And that means Linux and Solaris..." Based on what information. I see Linux deployments, yes, but I see way more windows installs. Remember Java represents a pretty big chunk of the developer market. Do you honestly believe that most java developers are only programming on Linux or Solaris? Or not to mention Java runtime installs? Plus, Linux has been standoffish due to the licensing issue with Sun's current license, for example the Debians and Gentoos. And, Solaris? Are people still using Solaris? Oh that is right, Sun opened Solaris because they are making so much money off the product? To the other poster, Windows being a crap-os. If you don't like Windows, good for you. You are smart, nobody uses windows. Why don't we port Java to Plan-9, I heard it is pretty good. ..Troll.

      --
      ---- Berlin Brown http://www.newspiritcompany.
  52. Re:Divide and Conquer by ckaminski · · Score: 1

    No, the real problem I see, is that we have a number of Windowing Toolkits running. Once upon a time, you would be running only X11. In some cases, you'd be running Motif-based apps too. Now, you're running X11, Motif, custom widget apps like mplayer and xmms, GTK and KDE, in multiple different versions.

    I've got 2GB's of memory, and starting a gnome desktop with a few KDE apps (k3b mostly), my system consumes a half a GB of memory before I start my services (apache, postgres, mysql, etc.) or applications.

    Evolution and firefox are the principle desktop memory gobblers.

  53. As a c programmer, I have one word for you: by fyngyrz · · Score: 2, Insightful
    Python.

    I love Python. I left Java by the wayside when I found Python. I love the sparse look and feel, I love the strength of the language, I love the fact that I don't have to deal with 1000 different indentation styles when I read other people's code, I hugely appreciate all the python modules people have written that implement everything from databases to graphing packages.

    And Python is all over the place, installed and ready to run. My old RH9 system has Python; my Mac has Python; my Windows box has Python.

    Python. C when you have to have the performance, certainly. Python otherwise. :-)

    --
    I've fallen off your lawn, and I can't get up.
    1. Re:As a c programmer, I have one word for you: by Anonymous Coward · · Score: 0

      My workplace has a significant infrastructure built on EJB architecture, and JDBC (Oracle, bound via Hibernate).

      We have some Python modules in production, but what does Python offer here? Despite widespread misinformation about EJB being a poor architecture choice, it works damned well for us. So our development language is chosen by default, for the enterprise tier at least. Everywhere else, we can and do use any language that can talk XML-RPC and/or sockets.

      But what does Python offer that would lure an enterprise architect away from EJB? Schemas with thousands of peristent objects, hundreds of concurrent connections, and wall-sized charts showing relational constraints and business logic, here, not just some blog site or web photo app.

    2. Re:As a c programmer, I have one word for you: by fyngyrz · · Score: 1
      I don't know enough about Oracle to tell you what you can, or can't, do there, but if it is transactions you are concerned with, I use PostgreSQL which allows rollback/commit of blocks of transactions -- and Python connects just fine with PostgreSQL.

      Since Oracle is your target, you should probably be asking this question of the Oracle developer.

      I have used Python for small things, and I have used it for very large things, and parts of very large things. I've never run into any issues with the language other than speed, and frankly I've not really run into that either, because if I think it might be an issue, I work in C. I certainly don't have any impression that Java is better for larger jobs in any way, shape or form by virtue of the language itself. Familiarity with the language and availability of tools and familiarity with those tools could make either Java or Python a better choice at any particular point... the message I was responding to was talking about availability/default installation of Java being spotty, and since Python is almost everywhere these days, and a lot more pleasant to write in for me, I spoke up about it.

      --
      I've fallen off your lawn, and I can't get up.
  54. Pugs is the only interesting thing in Perl6 by Anonymous Coward · · Score: 0

    Without Pugs the Perl6 project would be completely dead. At least someone has finally taken it upon himself to do something instead of just endlessly blathering about it. And why do you think that the Haskell code is throwaway? It will likely outlive Parrot. Pugs can target any backend for Perl6 without significant difficulty.

  55. Re:Divide and Conquer by ssj_195 · · Score: 1

    This is certainly unsatisfactory, but I don't see it as a problem, myself. It's worth noting that I can load up KDE, Firefox and a bunch of Konqueror File Manager instances, gaim (which does not used Qt, I don't think), two tabbed Konsoles, a Swing/Java app I wrote for myself, the Gnome System Monitor etc on my 256MB laptop and not touch swap (in fact, I botched the install and forget to add a swap partition - doh!). Don't give too much credence to the reported memory usage; things are much more complex than the numbers reported, and remember that Linux does not like having RAM free (as it is viewed as wasteful) so expands its (apparent) memory consumption according to how much is available.

  56. Hate to say it, but... by Anonymous Coward · · Score: 0
    I would love to have a high-quality open-source Java 5 implementation. If such a thing existed I would never use the Sun JRE again. If there were an open-source JRE, I'm sure someone (maybe me!) would implement a module for it so that Swing would be rendered in Qt and would look like a native KDE app. That would be fantastic.

    But, this is a monstrous undertaking. Kaffe has been working on this for years, and they still don't have real production-ready VM and their classpath is still far behind Java 5. Gnu CLASSPATH has been working on building just the classpath component and they are still far behind Java 5, especially in the areas of Swing.

    Just writing a VM that's as good as Sun's is a huge multi-year effort and that's only the beginning. I unzipped (but did not look at) Sun's classpath and it's 6561 files and 1,885,024 lines of code! And that's not counting the JVM which probably is also a huge base of tricky code. A very good developer might write about 200 lines of fully-debugged code per full-time day of fast coding. If the open source implementation ends up with about the same line-count (which it may or may not) and if it doesn't re-use any existing code (which it probably would reuse quite a bit), they would need 9400 days of full-time very fast developer time to get the classpath done. That's THIRTY-SEVEN FULL-TIME WORK YEARS! Just to write the classpath!

    So, I hate to say it, but... I don't think it's going to happen.

    I wish Sun would just open-source Java. I'm sure their execs don't think that matters but it is something which is truly holding back Java from breaking out.

    1. Re:Hate to say it, but... by Master+of+Transhuman · · Score: 1


      Yet another person who doesn't get it...

      Did you use Linux the day it came out?

      Or Java for that matter?

      "It's gonna take years! " SO WHAT? It took Linux over ten years to be a truly useful OS - did you tell Linus and the others to stop ten years ago because "you don't think it's gonna happen"?

      "Thirty seven full time work years!" SO WHAT? The project starts with a couple dozen people to begin with - how many more will join if it gains traction? Two hundred? Cuts your estimate to peanuts, doesn't it?

      The point is not how long it takes (provided we're talking years, not decades) but the end result will either be a free Java - or force Sun to truly OSS Java. Either result is a victory.

      --
      Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
    2. Re:Hate to say it, but... by Anonymous Coward · · Score: 0
      Well, what are the odds that they are going to somehow find 200 really competent developers willing to work on this thing full-time for the next two years? Plus project managers to keep it on track? Zero. It won't happen unless maybe IBM and Oracle and Apple get together and fund it. It would take several millions in funding. And if it takes them more than two or three years to get to being Java 5, what's the point? By that time Java application developers will be writing for Java 1.8 or whatever.

      Sorry, this task is too monstrous for them to accomplish within a timeframe where the result would have any relevance to people actually writing and using Java apps. This situation is not like the Wine situation, where the API is fairly static (all you need to do is implement Win 98) or Linux, where you get to define the API as you go along, and Linux is not trying to catch up with anything.

      Undertaking this quest head-on is going to result in some pretty cool software and a cool JRE that will handle some things, but it's not going to get us a full replacement for Sun's current JRE. Not at all. If they want to get an Apache license JRE, these are some of the things they need to do:

      • Attempt to get Kaffe to dual-license the code that it already has, and perhaps fork it if necessary. This gets them a stable and reasonably good JVM right now, plus most of the classes they need to run stuff.
      • Attempt to get Gnu to dual-license the CLASSPATH project. Again, this gets them 75% of the way done.
      • Attempt to get Sun to license them parts of Sun's Java distro. Maybe Sun won't open-source the entire thing but maybe they would license parts of it. Anything would help.
      • Work on IBM, Oracle and Apple to try to get funding and support for this project. I don't believe this project can succeed without such funding.
      There have been half a dozen serious open-source JRE projects over the years (Kaffe, Gnu CLASSPATH, gcj, and several others). None of them have ever caught up with Sun's JRE and so none of them have ever gotten much momentum. The solution is not to start yet another such project which is looking at 40 developer-years of work to get into a usable state, but rather to do some open-source political and licensing work to try to leverage what we already have.

      I personally would love to have such a thing and if my biz ever makes enough money that I can afford to do it, I'm going to spend my own time working on Kaffe or CLASSPATH, and maybe also hire some developers to work on those projects, but I'm not optimistic about this.

      You give the example of Linux developing over the years with hundreds of developers, but I must say, right now hundreds of the most active Linux developers are being paid full-time by major corporations to do so. Same is true of all the really large OS projects out there, like OpenOffice, Mozilla, etc. I really do not think that building an open-source JRE from scratch is possible without significant corporate backing.

  57. Wait until Sun gives you trouble by iamacat · · Score: 1

    You can take their shared source, port it to your platform - far easier than writing a new VM, get the port certified and release it. Look at blackdown.org for example. If you want to "embrace and extend" the VM, just make sure your new language is activated via an optional switch and is not called "Java". I don't see a problem with Sun's license unless you are Microsoft or a hobbyist who wants to distribute a VM without compatibility concerns. Then yes, you should write/have written code from scratch.

  58. Re:Divide and Conquer by Master+of+Transhuman · · Score: 4, Insightful


    I shouldn't have posted above while I had mod points, since this troll crap is modded "Insightful" by the Windows trolls moderators and other idiots.

    Look, stupid, this is not just a "licensing fetish" (although as has been discussed, there is a perfectly good reason for Apache to not use the GPL or like Sun's license.)

    The point of this project is to provide a compatible free Java that Apache can use to underpin its numerous Java-based projects.

    It's an excellent idea - unless Sun ever comes out with a truly OSS license. And if they do, it will probably be because such a project is gaining traction.

    --
    Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
  59. Version catchup..... by ComatoseSentry · · Score: 1

    The main problem with this is that sun is already working on the next version of java (v6/mustang) which is in beta at this time. So Apache will always be (at least 1) version behind the current release from sun, and will always be playing catchup....

    1. Re:Version catchup..... by Master+of+Transhuman · · Score: 1


      Again - SO WHAT?

      Apache needs something to underpin their numerous Java projects. That stuff runs on what is current Java. So if it takes five years to get a free Java JVM and class libraries, it's no big deal. Even if the Java-based projects move ahead to newer versions of Sun's Java, they won't do so immediately nor completely, so the Apache project can catch up enough to be useful for the Apache Java-based projects.

      Also, while Sun is working on the next version of Java, any new project can just watch that and plan for it while doing the basic stuff. It's no different than any other software project - just because you're starting from scratch doesn't mean you can't integrate the new stuff. In fact, it's better if you ARE aware that a new version is coming out.

      --
      Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
    2. Re:Version catchup..... by ComatoseSentry · · Score: 1

      We are currently are planning to move up to v6 as soon as it ships (it contains many enhancemnts that our products will benefit from) just as we did with v5, so if apache dont have a version 6 available - then SO WHAT? we cant use it, our customers cant use it. THATS WHAT.

    3. Re:Version catchup..... by MemoryDragon · · Score: 1

      Guess it is more a long term strategy to fortify the foundation of the jakarta project. Although very unlikely because IBM and others are behind the VM as well, if the VM goes down the drain the jakarta project will have another foundation to build upon.

    4. Re:Version catchup..... by HiThere · · Score: 1

      One thing that originally turned me away from Java is that applications kept becoming obsolete. I like to pick a language/library version and be able to depend on it for a few years. I'll grant you that AWT was too limited, and that Swing was too slow (is it still?)

      Sun's rules determined that nobody else had the right to distribute the language. This meant that I couldn't depend on keeping a program working. If they change the specs, then I can't distribute the version I was using to my clients.

      You see that Sun already making 1.5 obsolete is a good thing. Perhaps you should think again. C was (essentailly) stable from the 70's until 1999. C++ has been having problems because it's been slow to be standard adhereing, but the standard has been stable for a long time (I haven't been watching, so I can't count the years). Ada was stable for the last decade.

      I'll admit that Python has changed rapidly, but it has concentrated on maintaining backwards compatibility. For the last several years any program working on the current version would continue to work on the current version.

      Ruby has also changed a bit, but it's less than 10 years old, so that's not surprising. It's currently coming up for it's first major redesign, and Matz has indicated that he doesn't want to do any more incompatible changes after this round (called Rite).

      All of these languages (at least in principle) allow you to pick a version, stick with it, and distribute your version to your customers. Java is the sole exception to this rule.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    5. Re:Version catchup..... by Master+of+Transhuman · · Score: 1


      Fine - and if ninety percent of your customers don't have version 6 installed five minutes after it comes out, what do you do?

      Go out of business?

      Just because YOU intend to take advantage of the latest and greatest doesn't mean everybody else will.

      And as I said, there's nothing stopping Apache Java from catching up fast enough to be useful.

      --
      Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
    6. Re:Version catchup..... by rdean400 · · Score: 1

      Sun's new development approach is to roll out less disruptive changes more quickly. This means it will be easy to stay close to the current technology.

      As far as rolling out 6.0 immediately, that may work in the hobbyist world -- it doesn't work in the business world. There would have to be significant performance or developer productivity enhancements to make it worth the investment of revalidating applications on the new VM.

  60. Great news ! by lord_rob+the+only+on · · Score: 0

    I hope Classpath license will become compatible with Apache license, so that it will help both projects. As FAQ says :

    13) Does this compete with Kaffe and Classpath?

    People from Kaffe and Classpath are helping start this project! Their experience in the open source VM and class library is invaluable, and they bring problems that the larger architecture community discussion can help solve.

    We will have an implementation under the Apache License, but we think of this as complementary rather than competitive. And when we solve a few small license interoperability issues, we expect we'll be able to complement each other even more.

  61. Interesting project name.. by salimma · · Score: 3, Interesting

    .. does anyone else get a déja vù from the KDE-sponsored attempt to clone Qt back in the non-QPL 1.x days?

    --
    Michel
    Fedora Project Contribut
  62. Re:Divide and Conquer by mpcooke3 · · Score: 1

    Wrong.I downloaded it, my c program still isn't cross-compatible.

    Oh i see, you want me to rewrite my entire program to use this library!

  63. Sort of misleading by nurb432 · · Score: 1

    its not really a 'version' of java, its aiming to be java compliant.

    Topic makes one think SUN is making an *offical* version with the new license.

    Still, if they get blessed as compliant, this is a good thing for the free world..

    --
    ---- Booth was a patriot ----
  64. Re:Divide and Conquer by Anonymous Coward · · Score: 0

    If you'd ever tried to write a large cross-platform Java app, you'd know that your description of C also fits Java.

  65. Re:Divide and Conquer by FooBarWidget · · Score: 1

    Motif apps? Are you kidding? There are as many Motif apps on Linux as FLTK apps on Windows. And don't get me started on the tons of different custom controls in Windows apps...

  66. Re:Divide and Conquer by Anonymous Coward · · Score: 0

    The great beauty of the linux desktop is that it, like all *x desktop windowing systems, is not standardised - and therefore, you don't have to use a bloated implementation.

    How the fuck is this insightfull ?! IT'S FUCKING OFF-TOPIC !!

  67. Moderators with their Java agenda by Anonymous Coward · · Score: 0

    How is a post by someone who's actually done some usefull simple arithmetic on this project get modded low as 0?

    Are the Java fanboys the ones with mod points here?

    Does it hurt when you count?

  68. Asset buying solves this entire issue by Anonymous Coward · · Score: 0

    IBM could buy the Java related technology as an asset purchase from Sun and solve this whole issue by open sourcing it afterwards.

    I'd like to see the current open source Java tools/VM efforts be redirected into the Mono C# CLR VM project.

    This will force Sun to adopt more open licensing of their technology.

    There is enough room for an eventuall merging of the back end/byte code interperters for Java, C# Mono, Perl, PHP and Python.

    The VM should be open sourced and BSD equivalent licensed so that the major parties involved are guaranteed a future development path that is IP lawsuit free.

    This would allow IBM, HP, Sun, etc. buy in for the long term.

  69. Pugs is useless for real production uses by Ars-Fartsica · · Score: 1

    Pugs is incredibly slow, slower than any 5.x release of Perl. Its in Tcl territory. The way Pugs is built, it is unlikely to get much faster, hence it is useless to anyone who really uses perl on a daily basis, which is why they should stop indulging it and move on.

    1. Re:Pugs is useless for real production uses by resiak · · Score: 1

      Pugs is not meant for production uses. Its goal is, as I understand it, to bootstrap the Perl6 compiler, which will be written in Perl6.

    2. Re:Pugs is useless for real production uses by Anonymous Coward · · Score: 0

      Pugs is slow only because its Perl6 AST is interpreted in Haskell. If Pugs targets a faster backend, it will be considerably faster. Pugs' Haskell parser is very quick indeed. There may not be a need to rewrite the frontend in Perl6.

    3. Re:Pugs is useless for real production uses by Ars-Fartsica · · Score: 1
      Pugs is slow only because its Perl6 AST is interpreted in Haskell.

      As I said, it is slow because of how it is built. If it was rewritten it wouldn't be Pugs, it would be something else.

    4. Re:Pugs is useless for real production uses by Anonymous Coward · · Score: 0

      The Haskell Perl6 parser is fast. The backend is easily retargetted. Your ability to understand this is slow.

  70. Sun may die...but Java will live forever by cyranoVR · · Score: 1

    I think that the most important ramification of this announcement is that Java will not die should Sun falter.

    The fact is, a lot of Fortune 500 corporations are nervous that Sun's waning profits and recent legal problems will result in their Java code being unsupported. Furthermore, they are seriously looking at Windows Server 2003 and Longhorn as a an alternative to their current Solaris and Unix solutions. As a result, there is currently a lot of hype about .NET, and .NET programming is currently the hot skill set.

    Well, I think an open source Apache implementation of Java 5 will reverse the current course. Look at the continuing popularity of Apache httpd. The marriage of Java with the IT "brand recognition" of the Apache Foundation is a slam dunk that will ensure Java's perpetuity.

    I just hope they can resist the temptation to look in the Src.zip that comes with every Java SDK ;^)

  71. C#-2.0 has uint, Java hasn't uint. by Anonymous Coward · · Score: 0

    C# has good syntaxic sugar!

  72. Re:Divide and Conquer by multipartmixed · · Score: 1

    More correctly -- C code can be cross platform, if you care to make it so.

    The problem is programmers who don't.

    When I write code which I intend to be portable, I usually use the man pages from at least one other OS as my reference for the system libraries, if it's outside of the POSIX realm. Well, that's how I used to. A little more than 2 years ago I switched all new projects to APR and haven't looked back. Damn stuff even runs on Windows without tweaking.

    Of course, I also use fairly strict typing (lots of typedefs, enums, consts) and throw several compiler warning flags to let me know when I'm being dumb. Like comparing signed and unsigned, promoting pointers to greater alignmnent, etc. But 7 years of hacking mostly-SPARC has got me pretty good at that -- they're a lot pickier than Intel boxes. The only thing that gets me now and then are endian issues -- but those aren't language specific, anyhow.

    --

    Do daemons dream of electric sleep()?
  73. Miguel's take on Harmony by truth_revealed · · Score: 1
  74. Am I missing something? by Klortho · · Score: 1

    Why doesn't Sun just make J2SE open-source? They give it away, anyway. I think, originally, it was to maintain control away from the likes of Micro$oft, but now, MS has gone their own way.

  75. Re:Divide and Conquer by mpcooke3 · · Score: 1

    I have, and actually i found it ported well from windows to linux and solaris.

    The only thing is the paths on windows as people don't usually use cross platform or relative paths.

    The only time i had issues was in the early days of java with applets. But my experience of moving large web applications is that it is relatively easy. In fact i've had more problems switching JVMs within a platform than switching platforms - one thing that got me was some people had started to rely on the collection ordering which happened on the SUN JVM to always stay in the same order but on the IBM one recreating the same collection did not maintain ordering, which was fair enough there were no guarantees in the specs.

    On the other hand back in the days i wrote some J++ code for windows my god it was the WORST i have EVER experienced, just getting it to run on all versions of windows took weeks not hours. detecting network connections without triggering a RAS dialup across 95->2k was hilariously difficult.

  76. compiled java? by Crag · · Score: 1

    Wouldn't it be better to compile to native code then?

    I guess I don't understand the point of JIT. If performance matters, compile to native. If not, use a VM. Why bother with the middle ground?

    1. Re:compiled java? by shutdown+-p+now · · Score: 1

      JIT is 'compiling to native'. It just compiles at run-time, and thus (potentially) can use certain information not available to a conventional compiler (most notably, profiling information) to better optimize code.

    2. Re:compiled java? by Anonymous Coward · · Score: 0

      Which, as we now know, never happens.

  77. Class library is more valuable than the VM by Anonymous Coward · · Score: 0

    Free Java needs both a complete class library and a fast JVM to be useful.

    Gee, ya think?

    You seem to be forgetting that the class libraries may give the required compatibility, but it is largely the JVM which provides the necessary speed.

    You seem to be forgetting that a VM that runs something incorrectly but really fast is useless. Getting a VM to perform within 50% of Sun's JVM's speed is trivial, and within 20% of Sun's JVM's speed would take another year of work by a single talented programmer. Writing a 100% compatible Java 1.5 class library would take 100 developers around 5 years if they were working on it fulltime. On a dollar value basis the class libraries are worth 100 times as much as the VM technology due to the amount of work involved. Try to think less like a programmer and more like a business person.

    1. Re:Class library is more valuable than the VM by ploppy · · Score: 1
      Try to think less like a programmer and more like a business person.

      Now that's below the belt... I didn't flame you... :-)

      I don't know what's more offensive: being called a mere programmer or the suggestion that a business person is somehow better placed to make value judgements.

      Speaking from experience (and I do have a lot of experience in this), places work better when everyone is respected for what they do. Each to their own and everyone doing what they do best etc. Companies, in my experience, tend to fail when one group starts to make all the decisions based on an acquired sense of inate superiority.

      Getting back to the question at hand, I dispute your figures, and I can't help feeling you have an axe to grind against JVM developers. Speaking from a business point of view, JVM companies tended to use JVM performance/technology as _the_ differentiator. Everyone used the Sun class libraries, but offered their own or vastly improved JVM. From a purely business point of view that makes the JVM the most important piece of technology because it is what pursuaded a customer to buy their solution.

    2. Re:Class library is more valuable than the VM by Anonymous Coward · · Score: 0

      No company (other than Sun) makes any serious money off of selling JVMs only (serious = more than $1M/year). It's a dime a dozen technology. Sun does make money from licensing its class libraries to IBM and BEA to be included in their appservers products - even though both BEA and IBM have their own JVMs without the class library they would be useless. The class libraries are worth much more than the JVM due to the fact it requires a 100X as many programmers to produce. Sun reportedly spent a billion bucks in R&D on Java - break that down into salaries for the JVM group versus the rest of the Java developers. You might have 10 people working in the core JVM group versus hundreds in the class library group. Do the math.

  78. Re:Divide and Conquer by Anonymous Coward · · Score: 0

    Different JVMs are different platforms (since the JVM is the platform). The problems you are describing back up what I was saying about cross-platform Java. Sun's claims of Write Once Run Anywhere are nonsense... you write it once and end up testing it on every JVM and realising that they are all bloody different in subtle tricky and fantasically irritating ways. This process will, in time, reduce you to bitter ranting on slashdot about how much Java sucks and how Sun's claim are all marketing crap.

    Just look at me!

  79. Re:Divide and Conquer by mpcooke3 · · Score: 1

    sure jvms are "A" platform but in this context I was talking about different hardware architecture platforms in that send running the sun JVM across all the hardware platforms actually gives you remarkably good portability these days.

    Atleast in my experience.

  80. Re:Divide and Conquer by Anonymous Coward · · Score: 0

    I know what you were talking about, but you missed the point. In the Java context, the different JVMs are *the* platforms, not the different computer architectures. If you run an app on Sun's JVM on Linux and try it on Sun's JVM on Windows you'll find yourself plesantly surprised at how well it works. Try it across different JVMs, and it's a different, irritating, finicky, pain-in-the-arse story.

    You won't hear Sun using this tagline in the their marketing though: "JAVA... portable only if you use our software". The fact is, Microsoft defines cross-platform as Windows NT, Windows XP, Windows 2000 etc etc and Sun does much the same thing (albeit with significantly less humbug and flat-out lying)..

  81. Re:Divide and Conquer by mpcooke3 · · Score: 1

    The message i originally replied to was talking about cross-platform C. I was just pointing out that if you have a C program and a java program and you want to move them to a different OS or hardware platform the java program can be moved easily and the C can't.

    The C program will probably have to be rewritten to make use of some cross-platorm library and then you'll probably find you don't have all the libraries you need. Almost by definition a java program will run on any underlying hardware/OS platform.

    I don't disagree about the JVM and marketting issues but that is a whole separate issue as would be portability of c code across C compilers for example.

  82. Who needs Java, anyway? Use Python. by drapmeyer · · Score: 1

    This is good news, basically, but who needs this? There are better languages available that have been completely open for decades. May I mention Python?

  83. Mono is lab-only ! by Anonymous Coward · · Score: 0

    If mono is "so great", why is MS then still doing .net ? Why are they not simply moving down to mono ?

    Maybe because, mono is a small subset of a platform and does not cover all the features of a real complete platform.

    Mono is nice, but if can not compete with MS .net.
    Just because MS will never open all its specification. They have just open some small pieces so that the MS zeelots can stay adicted to their MS technologies and the sooner or the later will come back to the real MS platform : windows !

    Mono can not compete with Java, or it is like comparing the DOS with the latest linux liveCD distro ;-)

    Ok, kidding aside, .net is loosing its momentum, and people are realizing it is nothing more but Java, with MS links added. Actually, the only reason most people are staying with .net is VS ! Because those people are adicted to VS (which is a good tool), but as soon as you become an expert with .net you realize that "things are not that easy as you have been told" and start hammering things manually. Then the headaches starts, but it is tool late, and the only way out for you is aspirin tabs.

    It is all about choice.

    I've choosen my machine, my OS, my applications, my development tools and they are all OSS ! Now I will have also my Java VM that will be OSS, so the entire stack will be opensourced :)

    Make your choice ;-)