Open Source Project Gives Java Devs a 'Lift'
- By John K. Waters
Some might question whether there's a need for another Web application framework following the recent consolidation of the upstart Merb project with the Rails 3 effort, but the creators of the open-source Lift Framework project aren't letting that stand in their way. They have released the first version under the Apache 2.0 software license as it celebrates its second anniversary this week.
Lift is breaking new ground in a number of areas. It's built on a new programming language called Scala, developed by Swiss computer scientist Martin Odersky. Currently a professor at Ecole Polytechnique Federale de Lausanne, Odersky has deep roots in Java. He is co-designer of Java generics and the original author of the current javac reference compiler.
Odersky describes Scala as a general purpose programming language "designed to express common programming patterns in a concise, elegant, and type-safe way." It's actually a JVM language, so it integrates with features of object-oriented and functional languages, and it's fully interoperable with Java. Scala developers can use Java libraries and deploy to Servlet Containers.
The Lift Framework itself was created by David Pollak, former chief technology officer at Web application security firm Cenzic. A longtime developer with numerous commercial projects in Ruby on Rails under his belt, Pollak was dissatisfied with the current crop of Web application frameworks, and the recent consolidation of Merb with Rails only decreased the options for developers.
In his Web Framework Manifesto, Pollak lays out his argument for a new Web framework. "The existing Web frameworks suffer from a wide variety of problems, conceptual and implementation-wise, that make [it] way too much work for the Web developer, the deployment guys, the folks who do application maintenance, and/or the end users," he wrote.
Although it so far lacks backing from a large company, there are now more than a dozen developers working on the open-source Lift project across Asia, Europe, and the United States, according to its supporters. This small band of devoted developers has so far put approximately 20 applications of Lift into commercial production.
Among those is the intriguing "Buy a Feature," a real-time, interactive, serious game designed to allow product managers "to learn from their customers through play." The application runs in a browser without add-ins, and was built in less than one man-year using Lift and the Scala programming language, according to its co-creators, Pollak and Dan O'Leary, chief technology officer of Enthiosys, a Mountain View, Calif.-based software management consulting and training firm. When deployed on a standard J2EE app server and a dual-core AMD Opteron-based system, the "game" supports 2,000 simultaneous players.
Lift may be new, but its fans are ardent. "If you are a Web developer, you should learn Lift," eBay developer Michael Galpin said in a statement. "Even if you don't wind up using it every day, it will change the way you approach Web applications."
Darren Hague, SAP Mentor and ESME team lead, is especially enamored with Lift. "It's an absolute no-brainer as the choice of framework for the Apache ESME project," he said, especially its, "Comet-made-easy philosophy.
ESME is the Enterprise Social Media Experiment, a scalable "microsharing platform" that allows people to meet and discover one another in a business process context. Comet -- sometimes called Ajax Push or two-way-Web -- is a Web app model in which a Web server pushes or streams data to a browser without the browser polling the server for fresh content. (Meebo and Gmail's GTalk are examples). Hague calls this "an intriguing approach for enterprise applications in the SAP world." (Lift-based applications run unchanged on the SAP's NetWeaver CE Java application server.)
Scala creator Odersky is another fan of the framework. "It's great to see Lift reaching the 1.0 milestone," he said, "as this is a proof point of the maturity of Scala as a software platform."
Lift's creator acknowledges that it has been "too nascent for the mainstream thus far," but Pollak asserted that it "has quietly become indispensable for the developers of the next generation of consumer Web and enterprise development projects that involve highly interactive Web sites."
Version 1.0 of the Lift Web application framework is available now for download from the project Web site here.
John K. Waters is a freelance writer based in Silicon Valley. He can be reached
at [email protected].