Beyond Java - Bruce Tate [26]
Erik Hatcher: Java's Success
Coauthor of Java Development with Ant
Erik coauthored Java Development with Ant and Lucene in Action (http://lucenebook.com/). He commits on several open source projects, primarily at the Apache Software Foundation where he also serves as a member. Erik once kayaked with Bruce, barely living to tell the tale.
What do you like best about Java?
EH: It has lots of built-in capabilities and a cornucopia of third-party (meaning open source for me) libraries.
What don't you like?
EH: I sympathize with newcomers to the Java "platform." We all know Java the language is pretty easy to grasp, and that makes it seem like it won't be too hard, but in reality, you cannot build even the most trivial utility in Java without a pretty hefty learning curve.
CLASSPATH gets us all, for example; even the "experts." To really do something useful you have to learn tons more—Ant, servlet containers, JMS, JDBC, and a zillion other things. It scares me just to think of this massive beast I've somehow spent the last five years of my life on.
How does Java hold you back?
EH: I don't feel held back with it personally, but I often feel that it takes more time than it should to accomplish a particular task.
What would prompt (or did prompt) you to move away from Java, or .NET?
EH: If Ruby had a component-oriented web framework with Ajax-capable components, and there was a port of Lucene to Ruby, I'd be able to build my current projects entirely there. I expect that to happen sometime this year!
* * *
[*] Dates taken from "The Java Platform, Five Years in Review"; http://java.sun.com/features/2000/06/time-line.html. © 1994-2005 Sun Microsystems, Inc.
Community
The most critical crown jewel for Java is the community. Said another way, Java's market share makes it the 500-lb. gorilla who can sleep anywhere he chooses. Java's community is as massive as it is diverse:
Vendors across the industry support Java. Though Sun is the inventor, IBM is perhaps the most important Java supporter.
Enterprise developers use Java to do almost everything. Java is at once a mobile computing platform, a web-based applications language, a systems language for enterprise-plumbing code called middleware , and everything in between.
Hobby programmers flock in droves toward open source projects. Once the black sheep of the open source community, Java has now become the dominant player.
Standards also play a significant role in enterprise computing. From the beginning, the core Java vendors have collaborated to establish standards. Servlets, EJB, and JSP were three of the most influential standards of this decade. To fend off the image that Java was growing increasingly proprietary, they established a community process.
Java has characteristics that many of us take for granted. You can find good Java developers everywhere. No one ever gets fired for choosing Java. It's mature and ready for outsourcing. You can get education. You can buy components. You can often choose between many implementations of a standard. You can do many things for free. I could go on, but the point is clear. Java's community makes enterprise development safe.
The Importance of Open Source
Everyone wants to build a monopoly for the inevitable benefits of market domination, but the power behind Java's community goes well beyond riding the coattails of market leadership. And one piece of the community, open source software, increasingly defines the Java experience.
In the beginning, open source software powered the servlet revolution through Tomcat. Then, we learned to build with Ant , and test with JUnit , and continuously integrate with products like Cruise Control. Later, Struts software changed the way that we organize web-based user interfaces, and Hibernate led a resurgence in transparent persistence. You could easily argue that the most compelling innovations