Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Lift Introduction

Lift Introduction

Lift and Scala presentation at Silicon Valley Code Conf (10/09/2011 @ Foothill College)

Indrajit Raychaudhuri

October 16, 2011
Tweet

More Decks by Indrajit Raychaudhuri

Other Decks in Technology

Transcript

  1. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC •

    Secure • Interactive • Designer Friendly
  2. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC •

    Secure • Interactive • Designer Friendly • Scalable
  3. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC •

    Secure • Interactive • Designer Friendly • Scalable Super Easy !!
  4. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC About

    Us • Dave Briccetti • Veteran software developer • Teacher in love with programming • Indrajit Raychaudhuri • Active Lift committer • Hacker trying to do programming
  5. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC The

    Project • Started by David Pollak (@dpp) in 2006 • Community (> 3000 members in ML) • Committers from around the world • Stable master philosophy
  6. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC The

    Project • Developers ≠ Plumbers • Best concepts from other frameworks
  7. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC The

    Project • Open Source (Apache 2.0 License) • Ready on a JVM near you • Full Java EE compliance • Works in all modern servlet containers • Batteries included (user replaceable)
  8. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC The

    Project • Best implementation on JVM for Comet Ajax REST Templating
  9. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC •

    Definitive strategy tackles OWASP Top 10 • So you don’t have to bother Secure Lift
  10. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC •

    Definitive strategy tackles OWASP Top 10 • So you don’t have to bother Secure Lift “.name *” #> “<script>alert(‘hi’);</script>”
  11. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC Interactive

    Lift • Great support for Comet and AJAX • Great REST Support • Parallel Rendering of Snippets • Lazy Rendering of Snippets
  12. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC Interactive

    Lift • Great support for Comet and AJAX • Great REST Support • Parallel Rendering of Snippets • Lazy Rendering of Snippets serve { case "api" :: "user" :: AsLong(id) :: _ XmlGet _ => <b>ID:{id}</b> case "api" :: "user" :: AsLong(id) :: _ JsonGet _ => JInt(id) }
  13. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC Interactive

    Lift • Great support for Comet and AJAX • Great REST Support • Parallel Rendering of Snippets • Lazy Rendering of Snippets
  14. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC Interactive

    Lift • Great support for Comet and AJAX • Great REST Support • Parallel Rendering of Snippets • Lazy Rendering of Snippets // HTML <div class="lift:FetchTicker?parallel=true"> Ticker server #1: <span class="ticker">The Ticker</span> </div> // Snippet object FetchTicker { def render = { Thread.sleep(500 millis) // The call ".ticker" #> Thread.currentThread.getName // The result } }
  15. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC Interactive

    Lift • Great support for Comet and AJAX • Great REST Support • Parallel Rendering of Snippets • Lazy Rendering of Snippets
  16. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC Interactive

    Lift • Great support for Comet and AJAX • Great REST Support • Parallel Rendering of Snippets • Lazy Rendering of Snippets // HTML <div class="lift:LazyLoad"> <span class="lift:LongTime"> I started this computation at <span id="start">start</span> and it completed at <span id="end">end</span>. </span> </div> // Snippet object LongTime { def render = { val start = now Thread.sleep(randomLong(15 seconds)) "#start" #> start.toString & "#end" #> now.toString } }
  17. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC Designer

    Friendly Lift • Step 1: Get designers to write pure XHTML, HTML5 • Step 2: There isn’t any!
  18. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC Scalable

    • Fast path for handling REST/Ajax/Comet • No additional layers (e.g. bolt-on security) • Foursquare and UK Guardian serve millions of pages a day with Lift
  19. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC Summary

    • Tremendously secure • Highly Interactive Web apps simple • Very friendly to designers • Successful large scale deployments
  20. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC Resources

    • Source [github.com/lift] • Books • Simply Lift [simply.liftweb.net] • Exploring Lift [exploring.liftweb.net] • Wiki [wiki.liftweb.net] • Mailing List [googlegroups.com/group/liftweb]
  21. Copyright © 2011 Lift Web Framework, Worldwide Conferencing, LLC Smarter

    Java • Runs on JVM, interoperated with any JVM language • Functional (and OO too!) • It’s a lot easier than you think • Stories from the trenches