Thanks to the Lift Committers:
Burak Emir -
Diego Medina -
Peter Petersson -
David Bernard -
Kris Nuttycombe -
Matt Farmer -
Maciek Starzyk -
Philipp Schmidt -
David Pollak -
Alex Boisvert -
Debby Meredith -
Stepan Koltsov -
Alex Payne -
Marius Danciu -
Indrajit Raychaudhuri -
Lee Mighdoll -
Andreas Joseph Krogh -
Ross Mellgren -
Vassil Dichev -
Antonio Salazar Cardozo -
Carsten -
Joe Barnes -
Dave Whittaker -
Ján Raška -
Jonas Bonér -
Eric Torreborre -
Jonathan Hoffman -
Julien Wetterwald -
Franz Bettag -
Viktor Klang -
Daniel Green -
Jorge Ortiz -
Torsten Uhlmann -
Steve Jenson -
Mads Hartmann Jensen -
Timothy Perrett -
Francois Bertrand -
Tyler Weir -
Reuben Doetsch -
Derek Chen-Becker -
Jeppe Nejsum Madsen -
Chris Wilkes -
Harry Heymann -
Heiko Seeberger -
Al Thompson
A Word from a Lift supporter
If you want to use this stuff to make the world function better (pun
intended) and do so in a great team, email: paul.dale@elemica.com
Elemica employs more Lift committers than anyone else
About @dpp
Founded Lift web framework
Wrote a bunch of commercial spreadsheets
Crazy passionate lawyer-trained tech dude
The Lift codebase is more than 8 years old
Top 3% of team size, commits, velocity, age
More than a software project: Volunteer effort
'Hello, Joe' & Rubyconf 2006
Mocking another language turned me off.
As did disdain for types and "Enterprisey" things.
Googled "Functional language, jvm"
Found Scala
Best of Ruby and Java
Java interop "Just Worked"™
Seemed like the best thing EVER!!
Scala 2.2 days
Very small community (wiki included most members)
Friendly, mostly academic
Jon Pretty: the commercial user
Me: Mostly Web Dev
Had done a couple of (proprietary) web frameworks
Spring (the hotness at the time) sucked
So, I decided to do my own web framework... for Scala
Pre-Lift: Scala with Sails
ORM and some Rails-like controller stuff... and Textile
Dec 7, 2006 - Feb 2007
Lift name from Roger Rohrbach from Gabble.
Runner up: Escalate
Not to be left out in the “doing cool things on the web”, is a fairly
new framework for Scala (another highly functional language with some similar features to Erlang and Smalltalk) called lift. There’s an interesting post by the author showing a twittr clone he claims can scale to
handle twittr’s traffic with only 2 machines thanks to message
persistence with the Actor based model.
lift stresses security, developer productivity, ease of deployment, ease of maintainability, performance, and compatibility with existing systems.
Lift's description, today
Lift applications are:
Secure
Developer centric
Designer friendly
Scalable
Modular
Interactive like a desktop app
Early Stuff
Steve Jenson, Alex Boisvert, and I lived a few blocks from each other
I vowed never to do a release ... only broke vow once
David Bernard (another twin dad)
set up the build process, system, and infrastructure
Innovation Games
Luke Hohmann wrote about serious games to play with business folks
Hired me to put browser-based multi-player games online
Forcing function for Lift's Comet... in IE 6
Stuff at SAP
Innovation Games played at SAP
Needed to integrate with some of SAP's systems
Tried (and failed) to excite SAP about Scala
Scala-tools.org & Scala-blogs.org
One day at SAP, IMed with David Bernard
He suggested an official Maven repo -- thus Scala-tools.org
And a shared Scala Blog: Scala-blogs.org... hosted at Blogger as an homage to @stevej
Bay FP
Was sole Scala rep at first meeting
All the functional web framework folk in one place
Ev's Thing
Ev Williams incubated Twitter and a bunch of other stuff out of a south park office
Had an idea and asked Steve Jenson to do a prototype
Steve asked me to help him do it in Lift... got to visit the Twitter offices and get to know Twitter engineers
Silicon Valley Code Camp
Presented Scala and Lift over years
Met Java Posse and Bill Venners
Eishay Smith from LinkedIn... convinced switch from Groovy to Scala
Twitter
Invited to me help out with issues
Martin and I did full frontal assault to get Twitter to adopt Scala
For a while, Lift ran the public timeline service
Scala Lift Off
First in SF 2008... tipping point for Scala @ Twitter
Held 5 events over 3 years in SF and London
Open Space conference oriented to community sharing
ESME
Behind the firewall, corporate Twitter-style communication thingie
James Governor hooked me up with Richard Hirsch, Darren Hague and others in the SAP ecosystem... and Vassil Dichev joined the merry bunch.
Demoed Lift-powered ESME to 6,000 SAP developers in Nov 2008
First Scala-based Apache project in 2009
JavaOne 2009
50% attendance drop vs. 2008
Lots of Scala and Lift presentations
Scala and Lift books (3 total) all in top 10 at bookstore sales
AMPLab Scala Preso
"We are teaching a class on highly productive parallel programming languages tu/th 2:30-4 and would love to have a talk on scala.
Are you possibly interested and avaialble?
More about the class can be found at
http://parlang.pbwiki.com"
Spent an afternoon discussing Ruby vs. Scala and distributing JVM bytecode to a cluster
This group went on to build Spark
Lift Firsts
Maven & CI
Thanks to Chris Wilkes, Lift was the first Scala project to use Maven
Lift had its own repo... but was soon shared with the community as scala-tools.org
Thanks to Indrajit and Derek, Lift had a cross-Scala-version build system
Had the first Jenkins system and code review system in Scala-land
Git & GitHub
Lift initially hosted at Google Code
2008: got taken to lunch by the Octocats
Git changed the way the community discussed features
Code of Conduct
Informal in the beginning
Codified in 2011
Led to a really excellent community
DOM Templating
Templating via DOM re-write rather than String vomit
More secure
Liberally borrowed CSS Selector Transforms from Enlive
Heisted by certain eponymous Haskell projects
DOM writing the hotness in JS frameworks, eg ReactJS
Misc Tech Stuffs
Futures in Scala... and fast fail on collection of Futures
Parallel and lazy page render
Non-core-library Actors in Scala
Automatic Async support (including by return type)
Lift going forward
Lift 3 is alive
Breaking changes to fix cruft... much of the cruft 8 year legacy of @dpp
Streaming promises, Futures everywhere, Single Page Apps
Curated by Antonio, Matt, and Diego
Community
Continues to be strong and warm
Linear participant growth, flat question frequency
New committers (Hi Joe) continue to add new energy
A Decade of Lift?
Yes!
Will Lift have a massive growth spike? No.
Likely to be Eiffel-like...
Myths and Such
Lift's documentation is out of date and sucks
Yes! This is entirely my fault. And many Lift folks have tried to address the issue... in vain.
@dpp quit Scala and Lift
Lift grew beyond a BDFL. I recognized this and made myself intentionally a much quieter voice in the community. I still make my living doing Lift, Scala, and Clojure work.
@dpp is a nice guy
I can be
@dpp is a real bastard
I am very clear about my expectations and consequences. And I don't bluff.
Lift is stateful
Wrong. Lift has well defined and very graduated stateless to stateful rules. See above about being very clear.
Lift doesn't do Async
Beyond wrong. Lift has the best Async support of any web framework.
Lift is Servlet-only
Wrong. Marius Danciu wrote an abstraction layer for Lift requests. Jordan West and I did a Netty-Lift adapter in an afternoon and Franz Bettag has improved on it.
Lift is HTML only
Wrong. Lift has the best REST support around including a unified synchronous/async support based on return type.
Lift makes you us its JavaScript
Wrong. Lift has a series of abstractions over plumbing and default implementations... but build your own.
Meta
Biggest Lift-related mistake?
Not being opinionated enough about there being one way to do things in Lift. Second: crappy documentation.
Would you do it again?
In a heartbeat
Why?
I've met truly spectacular people and built wicked cool stuff!