LAS VEGAS—Rod Johnson, an outspoken member of the open-source community, rallied Java developers to wave their Java flags high but to look beyond Java and hone their business and communications skills as they look for new opportunities in a world where Java and Microsoft Corp.s .Net reign as the top platforms for developers.
Johnson, who is based in London and is the founder of the open-source Spring application framework, showed a kindler, gentler side during a keynote at TheServerSide Java Symposium here Friday.
Though Johnson has been critical of J2EE (Java 2 Platform, Enterprise Edition), he said he now sees it as the premier platform for development, and he gave an audience of developers advice on technologies to watch and opportunities to pursue, and tips on how to proceed to make Java and J2EE a stronger alternative to Microsofts .Net.
“J2EE today is in a very healthy state, with ongoing innovation and successful execution,” Johnson said. “I am much more optimistic about J2EE today than at the first TheServerSide Java Symposium in 2003.”
At the outset of his talk, Johnson said that “neither I nor any of my colleagues will be dressing up as film characters,” taking a crack at JBoss Inc. CEO Marc Fleury, who with members of his staff, dressed up as the Joker and other villains from the Batman comic strip and movies.
Touting J2EE, Johnson said, “project success is now much more likely, much more predictable. J2EE is well-placed to take on Microsoft and .Net.” Years before, Johnson said he considered .Net much more of a threat.
In addition, Johnson listed several technologies for developers to watch, including the Inversion of Control and dependency injection design patterns; unit testing and TDD (test-driven development); O/R (object/relational) mapping; post struts 1.x Web technologies such as JavaServer Faces, Spring Model-View-Controller and Tapestry, and value-add Web technologies such as Apache Beehive; and the rich client space.
Johnson also told developers to hone their skills that bring leverage, such as frameworks and methodologies, and to “look beyond Java” and work on communications skills and business skills.
“One key element to success is framework-oriented development,” he said. “You choose a set of technologies, decide which is appropriate and you use it. This is a huge gain for developers. This is something that means the death of the in-house framework.”
Meanwhile, Johnson said TDD is becoming more widespread and widely adopted because it can be done with smaller teams.
Johnson also questioned the notion of applying standards for every technology. Speaking on the recent skirmish regarding Java persistence, Johnson said, “What would have happened if O/R mapping had not been standardized in Java? We wouldnt have lost two to three years with entity beans and we wouldnt have wasted six to 12 months with the JDO/EJB3 [Java Data Objects/Enterprise JavaBeans] war.”
Indeed, he said, “Clients are much less interested in the spec issue than we are. Standardization here is essentially a way of imposing some peoples choices on others. There is no ideal one-size-fits-all thing.”
Johnson emphasized the emerging significance of AOP (aspect-oriented programming), particularly in light of the decision to merge the IBM-led AspectJ open-source project with the BEA Systems Inc.-led AspectWerkz project.
“AOP usage and understanding is growing,” Johnson said. “Adoption is growing” and developers are using aspect-oriented programming to go places where object-oriented programming cant.
To get better adoption for AOP, “we need more success stories, better tools support and to clear up the FUD [fear, uncertainty and doubt] around AOP. Hopefully, all of this will be advanced by the merger of AspectJ and AspectWerkz,” Johnson said.
The merger brought together two of the leading AOP implementations, leaving Spring AOP and JBoss AOP. However, Johnson said Spring interoperates with AspectJ and “convergence is going to continue, leaving one converging solution and one proprietary solution in JBoss AOP.”
Yet Johnson said he does not see a need to set standards in the AOP space.
“Its hard to see what a benefit to AOP standardization would be,” he said. “JCP [Java Community Process] standardization is not really appropriate for AOP.”
However, Johnson said he thinks AOP holds significant implications for the application server.
“AOP will change the way we think about app servers,” he said. “Were going to see an evolution from a monolithic container to a service integration point. Services will be available separately, and app server vendors will continue to try to move up the stack.”
Johnson also discussed the value of open-source software to development projects, but he looked at it from the perspective of what open source is not. “Open source is not about getting something for nothing, or changing the world by giving things away,” he said. “Software is a business. Complex software projects need a viable economic model behind them. Open source is becoming more like traditional business. And its not about making closed-source obsolete,” he said. “Open source will probably steadily encroach on commercial software,” but it will take a long time, he said.
What open source is about is “community, pride, freedom of information, a close relationship to users, and easier debugging,” Johnson said.
“A well-run open-source project is probably an easier path to good software products, but it needs the exact same conditions as a commercial software product,” he said.
Moreover, Johnson said he thinks “it is unwise and expensive to build a J2EE application today without using at least some open-source software.”
Johnson said open-source software tends to get “too easy a ride today.” He said you have to look at total cost of ownership when deciding what technology is best for your purposes.
Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.