HOME

TheInfoList



OR:

Lift is a
free and open-source Free and open-source software (FOSS) is software available under a Software license, license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term ...
web framework A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build a ...
that is designed for the Scala programming language. It was originally created b
David Pollak
who was dissatisfied with certain aspects of the
Ruby on Rails Ruby on Rails (simplified as Rails) is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web pa ...
framework. Lift was launched as an
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
project on 26 February 2007 under the Apache License 2.0. A commercially popular web platform often cited as being developed using Lift is Foursquare.


Design goals and overview

Lift is an expressive framework for writing web applications. It draws upon concepts from peer frameworks such as Grails,
Ruby on Rails Ruby on Rails (simplified as Rails) is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web pa ...
, Seaside,
Wicket In the sport of cricket, the term wicket has several meanings: * It is either of the two sets of three Stump (cricket), stumps and two Bail (cricket), bails at each end of the Cricket pitch, pitch. The Fielding (cricket), fielding team's playe ...
and Django. It favors convention over configuration in the style of Ruby on Rails, although it does not prescribe the
model–view–controller Model–view–controller (MVC) is a software architectural pattern commonly used for developing user interfaces that divides the related program logic into three interconnected elements. These elements are: * the model, the internal representat ...
(MVC)
architectural pattern Software architecture pattern is a reusable, proven solution to a specific, recurring problem focused on architectural design challenges, which can be applied within various architectural styles. Examples Some examples of architectural patte ...
. Rather, Lift is chiefly modeled upon the so-called "View First" (designer friendly) approach to web page development inspired by the Wicket framework. Lift is also designed to be a high-performance, scalable web framework by leveraging Scala actors to support more concurrent requests than is possible with a thread-per-request server. As Scala program code executes within the
Java virtual machine A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally descr ...
(JVM), any existing
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
library and
web container A web container (also known as a servlet container; and compare "webcontainer" ) is the component of a web server that interacts with Jakarta Servlets. A web container is responsible for managing the lifecycle of servlets, mapping a URL to a pa ...
can be used in running Lift applications. Lift web applications are thus packaged as WAR files and deployed on any
servlet A Jakarta Servlet, formerly Java Servlet is a Java software component that extends the capabilities of a server. Although servlets can respond to many types of requests, they most commonly implement web containers for hosting web applicat ...
2.4 engine (for example, Tomcat 5.5.xx,
Jetty A jetty is a man-made structure that protrudes from land out into water. A jetty may serve as a breakwater (structure), breakwater, as a walkway, or both; or, in pairs, as a means of constricting a channel. The term derives from the French la ...
6.0, etc.). Lift programmers may use the standard Scala/Java development toolchain including IDEs such as
Eclipse An eclipse is an astronomical event which occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ...
,
NetBeans NetBeans is an integrated development environment (IDE) for Java (programming language), Java. NetBeans allows applications to be developed from a set of modular software components called ''modules''. NetBeans runs on Microsoft Windows, Windows, ...
and
IDEA In philosophy and in common usage, an idea (from the Greek word: ἰδέα (idea), meaning 'a form, or a pattern') is the results of thought. Also in philosophy, ideas can also be mental representational images of some object. Many philosophe ...
. Dynamic web content is authored via templates using standard
HTML5 HTML5 (Hypertext Markup Language 5) is a markup language used for structuring and presenting hypertext documents on the World Wide Web. It was the fifth and final major HTML version that is now a retired World Wide Web Consortium (W3C) recommend ...
or
XHTML Extensible HyperText Markup Language (XHTML) is part of the family of XML markup languages which mirrors or extends versions of the widely used HyperText Markup Language (HTML), the language in which Web pages are formulated. While HTML, pr ...
editors. Lift applications also benefit from native support for advanced web development techniques such as
Comet A comet is an icy, small Solar System body that warms and begins to release gases when passing close to the Sun, a process called outgassing. This produces an extended, gravitationally unbound atmosphere or Coma (cometary), coma surrounding ...
and
Ajax Ajax may refer to: Greek mythology and tragedy * Ajax the Great, a Greek mythological hero, son of King Telamon and Periboea * Ajax the Lesser, a Greek mythological hero, son of Oileus, the king of Locris * Ajax (play), ''Ajax'' (play), by the an ...
. The main characteristics of Lift applications are: *Resistant to common vulnerabilities including many of the
OWASP The Open Worldwide Application Security Project (formerly Open Web Application Security Project) (OWASP) is an online community that produces freely available articles, methodologies, documentation, tools, and technologies in the fields of Io ...
. *Fast to build, concise and easy to maintain. *High performance and scale in the real world to handle big traffic levels. *Interactive like a desktop application.


History

The stable version 1.0 of Lift was released on 26 February 2009 (two years after initiation of the project). Lift 2.0 was released in June 2010. David Pollak, the original creator of Lift, discussed the release of Lift 2.0 on the popular
FLOSS weekly Leo Laporte (; born November 29, 1956) is the former host of '' The Tech Guy'' weekly radio show and founder of TWiT.tv, an Internet podcast network focusing on technology. He is also a former TechTV technology host (1998–2008) and a technology ...
podcast. Lift reached five years of continuous development on 26 February 2012.


References


Further reading

* * * * *


External links

* *
Asta4D: Lift inspired Java port
{{DEFAULTSORT:Lift (Web Framework) Web frameworks Scala (programming language) Cross-platform software
Virtual machine In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
Free software programmed in Scala Software using the Apache license