The Coming War Over the Future of Java
snydeq writes "Fatal Exception's Neil McAllister writes about what could be the end of the Java Community Process as we know it. With the Apache Software Foundation declaring war on Oracle over Java, the next likely step would be a vote of no confidence in the JCP, which, if the ASF can convince enough members to follow suit, 'could effectively unravel the Java community as a whole,' McAllister writes, with educators, academics, and researchers having little incentive to remain loyal to an Oracle-controlled platform. 'Independent developers could face the toughest decisions of all. Even if the JCP dissolves, many developers will be left with few alternatives,' with .Net offering little advantage, and Perl, Python, and Ruby unable to match Java's performance. The dark horse? Google Go — a language Google might just fast-track in light of its patent suit with Oracle over Android."
Reader Revorm adds related news that Oracle and Apple have announced the OpenJDK project for OS X.
You know, this is very puzzling. Why hasn't FOSS come up its own managed runtime+language stack?
It's certainly not for a lack of engineering talent.
Procrastination? Lack of vision? Or is open source just too tribal and fragmented to coordinate on something so big and cross-disciplinary?
Not to mention that C# already has a ton of useful features that are, at best, planned for Java 7 and 8 (or later).
I've done significant cross-platform .Net/mono development and 99% of the stuff "just works". I'd argue that Mono is actually a better cross-platform development environment than Java *right now*. Java often requires tweaks because different builtins work differently on different platforms, even though they're not supposed to.
This is exactly why Oracle has to stop what it's doing. ByOhTek has exactly the same mentality as most Windows developers/shops, i.e., the view that now Java is embroiled in lawsuits while Mono is stable and safe. Microsoft would never lock you into a platform.
Incidentally, I've worked in Java and .NET. Visual Studio is a big disappointment when you been working in NetBeans or Eclipse. Maybe I just don't see the appeal.
Not trolling, but is Java really worth the fight at this point? Years ago it had the promise of the 'programming panacea' but now it's just another programming language. Yes, it's deeply ingrained in the internet and server landscapes, but that isn't going to change if Oracle wants to start charging fees for integration with their middleware and for some advanced utilities.
The mobile/embedded world is a different animal but Google certainly has something in the works to dodge the Android uses Java mess. Once Google releases a new VM that avoids the Java comparisons the rest of the mobile/embedded world will transition to it and leave Oracle holding an empty bag.
It won't be easy but look at how far Android developers have come in the short time Android has been available. Google isn't flawless but they won't want to pay any licensing and they'd rather spend the cash on developing an alternative.
Its not harder than a OO lang. However finding good help *is* harder. One reason i had to pick java over the many languages I have used was its reasonably easy to find people who know it. Not so much for Scheme or Haskell.
The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
Well it never had the promise of the "programming panacea". But really all this shouting is really just everyone fighting over the "its mine" java pieces.
When java first came out there was no JCP. Sun just decree what was and what was not "java" (with some hilarious results). The parts of the "for" pay JVM have *always* been this way (Jrockit), but some features are going to be made free. And finally we have a proper apple/"java" JVM. Its lots of good news for people in the know.
99% of the comments and cries of the death of java are clearly said by people who just don't work with java as its really done (at least commercially). This is a storm in a tea cup, meet the new boss, not as bankrupted as the old boss.
My only hope is that the patents get ruled invalid. Hopefully that will pave the way for more software patent invalidation.
The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
I'm sick of reading slashdot stories and comments that compare dissimilar languages with Java. What makes Java interesting, useful, and modern is the JVM; these comparisons between language features alone are ridiculous. Most of the languages suggested as alternatives in Java-related posts in the last month are merely interpreted. Python, ruby, perl, etc. are all modernish, high-level languages with dynamic typing. They all run (primarily) on their slow, crippled interpreters. This has numerous drawbacks including problematic multithreading (c.f. the arguments about python's GIL and workarounds over the years), if it's even attempted (in perl, separate processes are the only reliable way to do concurrent programming).
And now Slashdot compares Go to Java. Go is certainly interesting, but it's not in the same space as Java. Java is a portable, networked, object-oriented *application* language. It removes a lot of hassles not necessary to tinker with when writing applications. It has useful, established APIs (servlets, EJBs) for building large-scale enterprise applications. Go compiles to machine code and is therefore not portable. Go doesn't allow inheritance. Go is a language that tries to solve a different problem than Java has solved. Go is no replacement.
Java is by no means the end of all languages and runtimes, but it has set the bar pretty high. It would be wonderful for other projects to adopt Java's features and improve and extend them. It'd be awesome if such an efforts weren't completely nullified by having Microsoft as its boss.
For the naive (and the dude who argues that python is a suitable replacement for Java), below is a list of features Java provides:
Java's JVM does true multithreading. The memory model is tight, efficient, and predictable. The language includes useful mechanisms for writing for concurrency (everything from traditional locking mechanisms to concurrent data structures and the convenient "synchronized" keyword). Productive, predictable concurrency is possible in Java and not in many other languages.
The JVM offers other benefits, including security. The class verifier can sort out malicious code before it's executed. The class loader can check roles granted to a piece of code and a cryptographic signature and decide not to run code on that basis. Even if a piece of code gets loaded and executed, it's sandboxed. Talking about these features is usually relegated to discussions about java applets, but their relevance to other applications is noteworthy.
Java includes a lot of well-organized, stable libraries for doing everything from handling HTTP requests and crafting responses to doing cryptography. Its collections API has many data structures that just aren't present in other languages without looking to a third party.
Finally, the JVM makes naive code fast. One can write reasonably expressive, straightforward code and expect that the hotspot compiler will optimize it. It's a boon for getting maintainable, quality code out-the-door quickly.
I too am bothered by Oracle's litigiousness, but running away from Java isn't a solution. We need alternatives, that's for sure, but the availability of such is a lot more limited than the average slashdotter seems to think.
http://www.theregister.co.uk/1999/07/18/analysis_how_ms_used/
.NET, WISE for Mono, Java for POSIX (though not mentioned in this article by name)
It's just a little bit of history repeating.......
Just swap Win32 for