As the Scala functional programming language goes from version 2.7.4 to 2.8, the Lift Framework will update to version 2.0 to bring developers many of Scala’s benefits, including a development model that looks like Ruby on Rails.
David Pollak, creator of the Lift Framework, said he originally created Lift after using Ruby on Rails in 2004. When he first used Rails, he said, “I realized I was missing a lot of things from Java land—for example, a stable runtime and the ability to scale on a single box.” But Pollak didn’t want to go back to using Java’s numerous third-party Web frameworks.
Instead, Pollak began searching for a better language to use on top of Java. He found Scala and discovered that it offered many of the benefits he was looking for, but lacked the Web frameworks that are so common in Java. In December of 2006, Pollak wrote the first lines of the Lift Framework, and by February 2007, it was a full-fledged open-source project with multiple contributors.
There are many benefits to using Lift, said Pollak. One of the biggest draws is the security model built into Lift. Pollak used to be CTO of Cenzic, a Web application security company, and he says he learned a lot of tricks to help make Lift safer to use than normal frameworks.
For one thing, cross-site scripting vulnerabilities don’t happen by accident when writing to Lift. Pollak also said that each session created in Lift has an automatically generated unique ID, which can make man-in-the-middle attacks much more difficult to execute against a Lift-based Web application.
“We try to make sure the default ways Lift applications are coded are secure and that the developer has to do something to introduce vulnerabilities,” said Pollak.
Lift is currently in use at Google-owned startup Foursquare and at Xerox. Pollak said that future work on the framework will be focused on making things easier to deal with over time. He said that Scala 2.8 will be a major overhaul of that language.
Version 2.0 of the Lift Framework will take advantage of many of the improvements in Scala. For one thing, developers will be able to assign Web page renderings to be done across multiple threads, which speeds up response time from the server and allows for Web servers to scale across a cluster, said Pollak.