I've been a zone leader with DZone since 2008, and I'm crazy about community. Every day I get to work with the best that JavaScript, HTML5, Android and iOS has to offer, creating apps that truly make at difference, as principal front-end architect at Avego. James is a DZone Zone Leader and has posted 639 posts at DZone. You can read more from them at their website. View Full User Profile

Java: Nothing Without The Community

  • submit to reddit

In The Deal, Stephen Colebourne paints a very accurate picture of how the interaction between Java and it's community works. 

The owner of Java makes a large investment.
The community makes it relevant.

By "owner of Java", I mean Sun, then Oracle.
By large investment, I mean money, development time, marketing and energy.
By relevant, I mean interesting and productive for mass use.

This is a very important point. When people think Java, they are always thinking of more than the JVM and the core JDK. They think about that and "everything else": 

Servlets, JMS, Tomcat, JBoss, Lucene, JMX, Eclipse, Ant, Portlets, Lombok, Devoxx, Javalobby, Axis, JIRA, RESTEasy, Terracotta, Ivy, JSP, TestNG, Grails, Mule, Android, ICU4J, MyFaces, Scala, James, Geronimo, JCS, OFBiz, Jetty, GWT, Websphere, JFreeChart, JavaMail, FastUtil, Xerces, JDBC, Griffon, JProbe, SLF4J, Wicket, XOM, JavaOne, Seam, Emma, HttpClient, EHCache, TheServerSide, Roo, Mockito, HSQL, Guice, FOP, Kindle, Velocity, Clojure, JNDI, Clover, Hadoop, JSF, Jackrabbit, Livescribe pen, Commons, Hibernate, EJB, Tobago, IntelliJ, Jersey, Scalaz, HornetQ, JAX-RS, Lift, Derby, JUnit, Freemarker, JavaME, Mylyn, Gaelyk, MINA, Play, JBPM, Cobertura, Antlr, Artima, Findbugs, Hessian, OGNL, Quartz, Trove, Tales, Javolution, Weblogic, Spring, Maven, QCon, Guava, JPA, Colt, Zing, Pico, JAXB, Applets, Struts, Groovy, JavaFX, Log4J, BluRay, Glassfish, Tapestry, JavaRanch, JRoller, Fusion, Excelsior JET, JAX-WS, BIRT, JDOM, Yourkit, SmartCard, JTA, Fantom, Gradle, Netbeans, OSGi, CXF, JSTL, ActiveMQ, JEDI, Camel, JRuby, ServiceMix, Jython, Joda-Time, and many, many more!

Now that is a staggering list of frameworks, technologies and websites. All of which make Java what we know it is today. All of which make you proud to be a Java developer.

One of Stephen's main points is that the JCP really is important. The investment that Oracle put into pushing Java 7, and subsequent releases, forward are of little value without a community to give Oracle's actions further weight. The problem at the moment is that the lawsuit issues with Google, and the JCP actions that forced Apache to move out, could have a negative effect on the community.

Sometimes it means taking decisions that are against the immediate and obvious business benefit in order to keep the community and ecosystem happy and productive, gaining a bigger business benefit later.

What I hope is that the community hasn't lost hope. While I understand how people may not be so happy with the state of Java, I think that everyone has put too much into the community to do anything like giving up now. The ultimate Christmas present from Oracle would be to somehow resolve the Apache situation, drop the lawsuits and focus on the technology. Wishful thinking perhaps, but I know that the community will keep Java going.   



Wojciech Kudla replied on Mon, 2010/12/20 - 3:44pm

Very nicely put. Unfortunately, Larry doesn't give a shit. It's just all about the benjamins in short term - buy out every valuable piece of software and then make the suckers pay. Simple as that. I think there's no hope for community-driven java under Oracle's wings. It would probably be better for the community (and ASF) to turn to Google. At least they seem to feel what open-source and free software is all about.

Piotr Kochanski replied on Tue, 2010/12/21 - 5:45pm

Java people have to understand one thing: Java & Sun were freak of nature. Sun was a producer of servers and operating system - that was their core bussines. Yet they decided to create a technology that allows to run software on any hardware and any operating system, making their iron/operating system more and more irrelevant.

Sun was so liberal about licencing and was giving Java for free since it never treated it as a core bussines - they were earning on Java nothing comparing to Oracle, IBM and many others.

There are 3 types of programming languages:

  1. created or heavily supported by a company, which is monetizing on it (eg. C#/Microsoft, PHP/Zend)
  2. 100% backed by community + original creator (eg. Python, Scala, Ruby)
  3. languages maintained by standard bodies (these languages are usually older then most of us, and they creation is almost a legend ;) - C/C++, Fortran, etc.)

Sun was a single specimen in a special 4th category: we create technology, that allows other to make huge money - Sun never managed to attract sane managers, who were clever bussinesman (this can be a compliment, in fact ;)). But the technology has caught up - somehow Sun managed to attract brilliant engineers, as a result the community emerged. And that community killed Sun: all these ASF, IBM, Spring Source guys, etc. who were kicking Sun as strong as they could (make Java open source, give that for free, give this for free, JCP is bad, ble, ble, ble, etc.).

Company without reasonable bussines model can not survive, so the Sun is gone (for me it's a pity). Now everything is back to normal, Larry has a heavy hand when it comes to incomes, so Java must be profitable, even if community has to be sacrificed.

Gilbert Herschberger replied on Tue, 2010/12/21 - 10:04pm in response to: Piotr Kochanski

"Sun was a single specimen in a special 4th category: we create technology, that allows other to make huge money [...]"

No, Sun Microsystems is not a freak of nature, nor something one-of-a-kind. Stuff like this happens every day. See also Greece, BP, Enron and WorldCom. When a business fails, we are correct to wonder why. Some say that Sun failed because it went too far in giving away their software. Some say that they did not go far enough. I believe that Sun never fully embraced the idea of putting their trust in a Java community. Ask Rick Ross. The JavaLobby was started because Sun did not listen. Now Oracle does not listen. What's new?

Rather, Sun failed because it adopted a bad plan. It tried to be something else and failed.

Open source, free license and community supported software is a protection against a failed business. By definition, Java is none of these things. The Java platform is owned by Oracle. It is not owned by the Java community. Oracle has the legal right to do with Java whatever it chooses, whether you like it or not.

Throughout the history of the software industry, there are two broad categories of software products. Let's assume for a moment that the only possible motivation to create technology is in order to make lots of money. On one hand, there is a commercial off-the-shelf software product, something you might use to get your work done (and make lots of money). On the other, there is a software development product. You use a software development product to (1) get your own work done (and make lots of money), (2) develop commercial off-the-shelf software (and make lots of money), and (3) develop a software development product (and make lots of money). Hey, why can't we do all three?

When you do all three, you compete with your customers. That is like walking a tightrope. It can be done; but few can do it successfully. Java is an operating system. Android is an operating system. Google is a customer and competitor of Oracle. How exactly is that going to work?

But your assumption that we are only motivated by money is misplaced. In the software industry, there is free and commercial license software. Some are motivated by the simple joy of serving the community. Some free license software explicitly enables others to make lots of money. For just one example, Apache Software Foundation has worked long and hard to refine a free software license so that greed is not the only possible motive for developing great technology.

If only Apache were an example of creating great technology, Sun Microsystems would not be in a category all by itself. Sun is not unique in its creation of not-for-profit software. Your fourth category might be the largest category in terms of the number of different companies, governments and organizations building software so that others can make money. Software companies motivated only by greed are a very loud minority.

Gilbert Herschberger replied on Tue, 2010/12/21 - 10:20pm

As you may know, Oracle owns Java. Legally, that is the end of the discussion. Because Oracle owns it, they can do with it whatever they choose. You are not required to like it.

Therefore, one always have one of the following choices: beg, borrow, steal

1. Beg. You could agree to Oracle terms and conditions. You could go on enjoying Java technologies and all of the benefits. You could acknowledge that Oracle is not required to listen to its non-paying customers--if it so chooses. While working within Oracle's rules, you could try to influence its decision.

2. Borrow. You could choose to attach yourself to some other vendor or community. You could give up your Java technologies and use something else. Unless you have forgotten, Java was neither the first technologies nor will it be the last.

3. Steal. If you cannot find a vendor or community, you could start one. Start from scratch and build a software development platform faster, easier, simpler than Java. Compete with Java technologies.

In other words, Java is still something without "the community".

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.