Java is dead.
A lot of developers have thought they were too hip for Java, but I still liked it. I implemented SAX in Java first of all, and have developed software in Java and encouraged my enterprise customers to use it for many years, sometimes in 9-figure projects at Fortune-500 companies — it’s a great, mature platform, with a lot of tools for managing large projects and development teams, and it has unit-testing and IDE support that is second to none.
But now, Oracle (which recently bought Sun) has decided to sue Google for using Java in Android, even though (a) Sun long ago open sourced Java, and (b) Google built its own VM anyway. I very much hope that Oracle will suffer the same humiliating, crushing, well-deserved defeat that the SCO group suffered when it went after Linux with its own bogus law suits, but it will take years for that to happen. The Android and Blackberry mobile operating systems will be fine, and Java (of a sort) will live on there (though I still recommend web apps instead of phone apps), but the days of Java and Eclipse in the enterprise are finished.
In the meantime, there are lots of open alternatives to Java, and the litigation risks of using Java have suddenly become far too high. In my consulting work, I’ll reluctantly have to advise customers not to use Java for any new projects, and to consider migrating older projects to a different platform. If you’re a big company or government, you just can’t afford the risk that Oracle will come after you, too.
I’m sorry the end was so sudden and messy, but still, it was a great 15 years. Thanks to James Gosling and all the other people in the Java community for the memories and opportunities.
Jeez, Dave. Can you say over-reaction? Very disappointing.
From what I read the point of contention is the use of an an alternate VM, not the language itself. I’m sure your enterprise customers can sleep soundly.
Moreover, you are comparing apples to oranges when it comes to the (in)famous SCO lawsuit: they never showed to have any merit, but this patent dispute might, in which case they will settle instead of killing the goose that lays golden eggs.
Bob: you must have noticed that Java was already in trouble. 10 years ago, Java attracted the brightest and creative new people. Now, most of your fellow Java gurus, like Bruce Tate, long-ago jumped ship, and it’s almost impossible to get talented developers under 30 excited about Java (though I still meet many young ‘uns who love Python — ¿¡Python!? — go figure). There will always be Java work in my lifetime, like there will always be Cobol and Fortran work, but with no one less than James Gosling writing that Oracle bought Sun only to get at the Java patents, I suspect most future Java work will be maintaining or enhancing aging applications, not writing new ones.
angler: Java-the-platform vs. Java-the-language matters from a technical perspective, but this is a legal problem. Sun owned patents covering all aspects of the Java ecosystem, but rarely tried to use them. Now, Oracle has made it clear that it bought Sun only to use as a patent farm (as backed up by Gosling’s link above).
There are lots of ways to define “dead” — perhaps my definition (a platform sapped of its creative energy and momentum, with an aging developer base, used mainly in legacy apps) isn’t the same as yours. Perhaps Oracle will realize, as angler wrote in his/her comment, that it’s gutting its golden goose, and will pull back the knife before the incision is fatal (if it’s not already too late). It will take a couple of years to find out if I’m right; in the meantime, if you’re a Java specialist, I recommend adding one or two new arrows to your career quiver, just to be safe.
I don’t think your customers have much to worry about unless they are creating their own JVM – I have worked with a lot of large enterprise customers, and haven’t seen any of them do this yet. 🙂
Interesting thoughts! Most of the people I know that are doing Java usually have those big enterprise corporation clients. I´m certainly not a Java expert, but I what´s your opinion on the next big thing? Towards which direction should their two arrows point? 🙂
Jonas: I think we’re seeing a split between the backend and the frontend, and maybe less of a demand for general-purpose languages like Java that are good at both. On the frontend, I’m seeing a surprising amount of demand for PHP-based CMSs like Drupal. The backend, though, is up for grabs — I don’t think I’d want to use PHP for something like that, even with talented developers.
So what do you think is next? They’re some good options in the scripting space–Python especially–but I can’t think of any languages that combine Java’s performance, ease of development, and broad support that aren’t themselves built on top of the Java VM. C#/.NET is closest, but that’s just jumping out of the frying pan and into the fire. The only surprise is that Oracle tried this stunt before Microsoft did.
I think it may be time to give D and Go a serious look.
The enterprise-y people will eventually congregate around one of the options, and then start filling it in with all the tools they miss from their Java days.
I’ll probably avoid Go and C# — I’m wary of committing to another BigCorp’s language, even when the company is as benign as Google — but I’ll take a look at D, will give Python a third chance, and will fish around through some of the other new-ish languages out there. I like PHP for web work, but I can’t see it ever growing into a good back-end or middleware language. Ruby still repels me, but perhaps I should try to be more open minded.
The lawsuit is about Google’s use of the desktop version of Java, which is not licensed for use on smartphones. I do not see that it implies future lawsuits over the Java language. Nor do I see Oracle suing their customers for building in-house apps using Java. That would be shooting themselves in both feet.
Bill: good points, but when the owner of open-source software (like Java) starts using patents to attack the software’s users, it’s time to fight or run. Google’s big enough to stand and fight Oracle, but the rest of us will be safer diving behind the bar and waiting it out.
Oracle has the ability to hurt any Java user: by suing them directly (if they’re big enough to justify the effort), or by suing their vendors and forcing Java out of the products. When they’ve dropped the patent bomb once, I see no reason to trust that they won’t do it again.
Why do you over exaggerate this issue by making statements like Java is Dead. This is a patent fight between two Goliaths about the JVM and it’s use in the mobile space – Android specifically. Here is a summary of the complaint:
The actual compliant (via Engadget), filed in U.S. District Court in Northern California, goes a little deeper than the press release, and hints that Google itself is not the problem, it’s the device manufacturers. It claims that the device manufacturers must obtain copyrighted versions of the Java platform to use on Android devices. “Such use is not licensed,” it says, adding that Google has “induced, caused, and materially contributed to the infringing acts of others by encouraging, inducing, allowing and assisting others to use, copy, and distribute” these copyrighted works.
( source: http://moconews.net/article/419-the-skinny-on-the-oracle-google-lawsuit-over-androids-use-of-java/)
This has nothing to do with Java in Corporate America which is where Java is predominantly being used today. So, if you had correctly stated that Java may be Dead in the mobile space on Android, then I would agree with your perspective and that is a valid point to pontificate about.
I absolutely disagree with you going around telling your Customers to run from Java. That is fear mongering and all you are doing is misleading people, and that, in my opinion, is wrong and hurts our industry.
Thanks for the comment, Bret.
If Oracle publicly promises not to sue anyone for using Java — at least the Open Source versions — I’ll happily retract everything I wrote in this posting, reinstall the Eclipse icon on my desktop, and even release new versions of some of my free Java-based libraries.
Hmmm. People largely don’t care about Java except for those who have invested too much time in this dying/dead/Cobol-like language. Discussing it is basically like commenting on a 5 year old thread in a forum.. We are re-raising the undead lol. That’s how dead it is.
If Java is dead then the other languages that are supposed to take it over are stillborn. How come so many developers pronounce Java dead as they busily collect programming languages as if they were butterflies. The reality is that all those languages are great in specific domains but are usually poor general purpose solutions, and even more importantly, have complexities that Java deliberately avoided (which allows the not-so-talented corporate/government developers to be productive in large teams).
According to the figures Java is experiencing a stabilizing rebound (probably the release of pent-up demand in the enterprise, that was initially delayed due to economic uncertainty). See the following :
But don’t let the figures stop the pronouncements of “Java is Dead” (so don’t use it!) or that obscure language , with tiny developer market share, is going to take over. That is just not going to happen in the Real World and the change that knocks Java off its perch will take a decade or more.
Pingback: Mo’ Java… « Srazash's World
Java is suffering a death-by-a-thousand cuts by bad Java developers more than anything else, and Eclipse and similar tools provide a catalyst for this, though they can’t be held entirely responsible.
Projects such as Maven, Google App Engine, Spring, JPA and the Servlet standards seem unable to use actual Java language constructs.
Their design choices introduce run-time errors which should actually be compile-time errors and create a thicket of XML which is impossible to navigate or debug, all to essentially manage jars on your classpath – something which is already quite adequately defined by the java specification!
Subsequently a million projects are born to attempt to overcome the new modes of failure which are possible by introducing bloated tools and plugins to handle the unnecessary complexity.
Actually working on your code becomes a secondary activity, compared to dealing with badly documented conventions which weren’t needed in the first place.
When two or more of these projects are simultaneously trying to manage your classpath, you’d better look out. It’s almost as if there were contributions in these community processes which were DESIGNED to trigger a Java death spiral.
If Oracle were a grown up company, rather than a school bully, they would be setting a new direction, away from Sun’s laissez faire community process, and increasing the value of Java a thousandfold, by implementing and forcing through standards to meet the modern needs of an enterprise (dependency management, persistence, web service) which actually demonstrate the use of the Java language!
The best reference example for me is Guice, which uses Java code for dependency management instead of the bizarre XML and other serialised formats fostered by other projects – formats which simply help the authors show off that they went to Parsers 101, and along the way destroy the value inherent in the design choices of the Java language.
There isn’t any one particular lguanage that is more friendly than another, it really depends upon the way you choose to use the one you select.The thing to consider is this Search engines spider web sites and they index the *static results* of the pages they vist So, if you are using a server-side script to generate a page, the search engine will index the resulting HTML, *not* the script that generated it.Depending upon what you’re using the script to do, this can cause interesting indexing results, especially if you’re depending upon user inputs to generate page content.Again though, the choice of scripting lguanage is up to the programmer and their comfort level. I personally recommend PHP, simply because it’s open-source, very wide spread, and easy to use.
Guess what, 3 years later, time proved that you spoke out of your *ss.
And you forgot the basic: Java is MORE THAN A PROGRAMMING LANGUAGE. It’s actually three things: a programming language, a runtime environment, and a level playing field software ecosystem.
In fact, one can create Java apps without writing a single line of Java code, by using any of the many JVM languages: Jython, JRuby, NetRexx, Clojure, Scala, Ceylon, etc
Dr Dobbs, late 2012
“Why have so many languages, including Ruby, Groovy, and Python, been ported to Java? Mainly because it’s much easier to target one platform (Java code, in this case) and rely on the multiplatform JVM to host it than it is to write interpreters for each operating system”
JVM languages are booming: RedHat’s Ceylon, JRuby, Scala, Clojure, NetRexx, and more..
Oracle has been good to Java, despite early fears
Under Oracles stewardship, SAP, IBM, Twitter, Apple and AMD joined the OpenJDK project. Oracle made OpenJDK 7 the Java7 reference implementation, they are investing in OpenJDK 8 which will be the basis for Java 8, and Java 9 will come after that. They also released JavaFX 2.0 under the open source GPL license as OpenJFX, plus they continued the investment in Netbeans, despite Oracle having its own, closed source IDE, JDeveloper.
More importantly, most of Oracle’s desperate, unfounded lawsuits have fizzled out over the past three years, so Java is becoming safe to use again. We’re lucky there was a rich company like Google on our side, willing to fight them (for its own reasons, of course).