Posted by johnreynolds
on June 21, 2004 at 6:17 AM PDT
The Java community can learn from NASA's shuttle and Rutan's Spaceship One
Throughout the 1950s significant advances were made in the aerospace field, building on the scientific and technological breakthroughs from the previous decade of war. Innovations were incremental, with carefully laid out programs to test and develop new rockets and supporting infrastructure. Then in 1957 the Soviet Union launched Sputnik. Overnight, space exploration went from a fringe interest of scientists and engineers to a social phenomenon that captivated the world. As a result, the carefully laid plans to develop space (like the X20 DynaSoar ) were scrapped in favor of a no-holds-barred Herculean effort to get to the moon and back.
We did get to the moon, and it was a fantastic time to be alive. Unfortunately, the "new wore off" and after a few trips we never went back. By itself, that is kind of sad, but what is really sad is that we ended up essentially back where we had started. The rockets that we developed for going to the moon were only good for going to the moon. With the exception of Skylab 's use of some surplus vehicles, the mighty Saturn V never flew again. The big rocket simply wasn't appropriate for any other use, and commercial launches reverted to the older Atlas and Delta rockets from the late 1950s.
NASA's follow-on to the Saturn V was the miraculously complex Space Shuttle . This beautiful spacecraft wowed the world, but it never met any of its major objectives. Launches were not cheaper. Launches were not more frequent. Missions were not safer. On top of that the system was so incredibly complex that it required an army of support staff and billions of dollars just to keep it running.
We wanted a space plane to zip into orbit on a whim. That is not what NASA's shuttle delivered.
Meanwhile, on the fringes, space enthusiasts kept plugging away. They saw past the PR and the hype of the shuttle and the international space station , and they quietly went about making progress where they could. Many times they demonstrated better ways of doing things (like the Delta Clipper ), but sadly the space enthusiasts never managed to get the recognition or support from the main-stream.
Hopefully Burt Rutan and Paul Allen's Spaceship One will reinvigorate the renegades to keep fighting the good fight.
J2EE was created in an environment similar to the space race between the USA and the USSR. The explosive phenomenon of the World Wide Web created unprecedented excitement and opportunities, and Java proponents rushed to develop a platform to meet the demand. Carrying the analogy further, some would say that there was even an "Evil Empire " to race with.
Unfortunately, the platform was somewhat complex, unwieldy, and not a pretty thing to behold. The platform was overkill for many applications. The platform introduced complexity. Some of the published "Best Practices" contained more propaganda then pragmatism. Big money backed the platform and big reputations were put on the line.
Meanwhile, on the fringes, the restless kept plugging away. Some criticized EJB containers and came up with leaner alternatives (like Spring and Pico ). Some deplored CMP, lamented JDO, and produced lightweight POJO persistence solutions (like Toplink and Hibernate ). Others moaned about JSP and came up with alternate display technologies (Velocity ) and powerful MVC frameworks (Struts , Tapestry ). Even major vendors strayed beyond the spec to enhance Java web development (Beehive's Java Controls and Page Flows ).
On second thought, perhaps the J2EE restless weren't the fringe after-all. Perhaps they were closer to the heart of J2EE, and perhaps that is why we have a good chance to avoid the NASA mistake. We don't have to build a Space Shuttle.
As Bruce Tate points out in his EJB 3 article, there is much to praise and much to be cautious about in the proposed changes to EJB. Similarly, in Hans Bergsten's article on JSF and JSP we learn that JSF has a lot to offer, but that JSF interaction with JSP is a bit tricky to get right.
We need to be careful as we go about retooling J2EE. We do want to get back to the moon, but we also want to go to the stars. Fortunately, our odds are pretty good. Many of the Java restless now participate in the Java Community Porcess , and indications are good that they are setting the course. Maybe NASA should follow suit and listen to Burt Rutan.