COMPARING KICK-ASS WEB
     FRAMEWORKS




                     Matt Raible
               http://raibledesigns.com


  Im...
INTRODUCTIONS

Have you heard of SOFEA?

Are you using GWT?

Experience with Rails?

What do you want to get
from this ses...
Blogger on raibledesigns.com
                                             Father, Skier,
                                 ...
SESSION AGENDA

The Problem with Web Frameworks

SOFEA and SOUI

REST Backends

Rich Frontends

Conclusion

Q and A
THE PROBLEM
HOW DO YOU CHOOSE?
ELIMINATE, DON’T
    INCLUDE
SOFEA & SOUI

SOFEA first introduced in Life above the Service Tier
on 10/12/2007.

  http://www.theserverside.com/news/thr...
SOFEA PRINCIPLES
Decouple the three orthogonal Presentation Tier processes of Application
Download, Presentation Flow and ...
RECOMMENDED
        FRAMEWORKS
DHTML/AJAX frameworks for Modern Browsers

  Handcoded with third party JavaScript librarie...
RECOMMENDED
        FRAMEWORKS
Java frameworks

  Java WebStart (with/without Spring Rich Client)

  JavaFX

Adobe Flash­b...
EPIPHANY AFTER READING ABOUT SOFEA

“I hope to develop with Flex, Grails, GWT or YUI + Struts 2 in the next 6 months.”
htt...
REST

http://www.infoq.com/
articles/rest-introduction




     API
RUBY ON RAILS

REST is enabled by default with Scaffolding

Scaffolding doesn’t support one-to-many UI

ActiveScaffold fixe...
RAILS CONTROLLER
RESTFUL RAILS
GRAILS
Grails 1.x has REST support built-in

Scaffolding does not support REST by default

Adding REST support to Scaffold...
GRAILS CONTROLLER
RESTFUL GRAILS
RAILS VS. GRAILS
http://grails.org/Grails+vs+Rails+Benchmark

   Grails: 40 requests per second, Rails: 32
LANGUAGE
              PERFORMANCE
                                 Time (ms) per iteration

             600



         ...
JOBS IN 2008
             Grails             Rails

500


375


250


125


  0
      LinkedIn        Monster           Di...
JOBS IN 2009
             Grails             Rails

500


375


250


125


  0
      LinkedIn        Monster           Di...
JOBS IN 2010
             Grails             Rails

500


375


250


125


  0
      LinkedIn        Monster           Di...
MY                  NETWORK
                  2008
               Grails         Rails

     400




     267




     133...
MY                  NETWORK
                  2009
               Grails         Rails

     400




     267




     133...
MY                  NETWORK
                  2010
               Grails         Rails

     400




     267




     133...
FLEX + RAILS

Flex Scaffold

   http://www.railslodge.com/plugins/717-flex-scaffold

Flex e-Genial Scaffold

   http://ruby...
GWT + GRAILS

GWT Plugin
  http://grails.org/GWT+Plugin
  Uses Server-side RPC
RequestBuilder and Overlay Types
  ProxySer...
GWT VS. FLEX SMACKDOWN!
TEXT
Left-to-right languages
 unsupported in Flex
DRAWING
 Flex can draw
PRINTING
Flex has issues printing
   from the browser
DRAG N’
    DROP
Flex has easy drag n’ drop
         support
CSS
GWT has CSS support, not
 like Flex’s proprietary
         support
VALIDATORS
     &
FORMATTERS
 Flex has effects, form
layout, validators and
      formatters
JSON SUPPORT
GWT supports JSON out-
      of-the-box
IE6 SUPPORT
 Flex works across all
       browsers
IPHONE
    SUPPORT
GWT works on the iPhone
VIDEO
Flash Video is the absolute
number one video format
        on the web
PERFORMANCE
Making your app “pop”
COMPONENTS
  Tour de Flex
TOOLS
Speed Tracer
   IDEs
PROGRAMMING
   MODEL
“GWT is nothing more
than a JSP Tag Library”

     -- Matt Raible
FLEX

Pros:

   Produces Flash UI

   Funded by Adobe

   Has many successful client stories

   Supports REST easily

Con...
GWT
Pros:

  Write Java => Produces JavaScript
  Easy to learn and develop with standard Java tools

  Vibrant Community
 ...
FLEX VS. GWT

Ajax vs. Flex

   http://anthonyfranco.wordpress.com/2007/06/22/flex-and-ajax-
   friends-or-foes

Use the Be...
FLEX VS. AJAX
PERFORMANCE




 http://www.jamesward.com/census
JOBS IN 2008
             GWT             Flex

600


450


300


150


  0
      LinkedIn     Monster          Dice
JOBS IN 2009
             GWT             Flex

600


450


300


150


  0
      LinkedIn     Monster          Dice
JOBS IN 2010
             GWT             Flex

600


450


300


150


  0
      LinkedIn     Monster          Dice
MY                     NETWORK
                     2008
                   GWT            Flex


 700


 525


 350


 17...
MY             NETWORK
             2009
           GWT            Flex


 700


 525


 350


 175


     0
         Loca...
MY             NETWORK
             2010
           GWT            Flex


 700


 525


 350


 175


     0
         Loca...
PRETTY GRAPHS
PRETTY GRAPHS
PRETTY GRAPHS
PRETTY GRAPHS
PRETTY GRAPHS
PRETTY GRAPHS
MAILING LIST TRAFFIC
           Rails    Grails          GWT          Flex




October 2009




               0   750    ...
MAILING LIST TRAFFIC
       Rails    Grails          GWT          Flex




May 2010




           0   750       1500     ...
STACKOVERFLOW
         Tagged Questions (June 7, 2010)



                                                15000


        ...
STACKOVERFLOW
              Tagged Questions (June 7, 2010)



                                                     90000
...
GRAILS
http://grails.org

Apache 2.0 License

Active Community @

http://grails.org/Community

Recommended Books:

  Getti...
RUBY ON RAILS

http://rubyonrails.org

MIT License

Active Community @

http://rubyonrails.org/community

Recommended Book...
ADOBE FLEX
http://www.adobe.com/products/flex

Flex SDK under Mozilla Public License

Active Community @ http://tech.groups...
GOOGLE WEB TOOLKIT
http://code.google.com/webtoolkit

Apache 2.0 License

Active Community @ http://groups.google.com/grou...
CONCLUSION
What if there is no “best” web framework?
HOW TO CHOOSE?

Prioritize a list of features that are important to your
application.

Pick 3-4 frameworks and do a 1-week...
O N E S T O WAT C H
Google Sitebricks and Play! framework
QUESTIONS?

Contact Information

  http://raibledesigns.com
  http://twitter.com/mraible

Download Presentation

  http://...
Comparing Kick Ass Web Frameworks
Comparing Kick Ass Web Frameworks
Upcoming SlideShare
Loading in...5
×

Comparing Kick Ass Web Frameworks

18,952

Published on

What's the best Web Framework? It's a question developers often ask when they begin they begin a new project. This session will take a cynical look at four web frameworks that make developers happy: Rails, Grails, GWT and Flex.

APIs are easy to create with both Rails and Grails, but which one scales better? Rich UIs can be created with GWT or Flex, but do both offer end users the same user experience? This session looks at the pros and cons of each framework and will help you decide which
framework might work best for your application.

Published in: Technology
0 Comments
14 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
18,952
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
446
Comments
0
Likes
14
Embeds 0
No embeds

No notes for slide

Transcript of "Comparing Kick Ass Web Frameworks"

  1. 1. COMPARING KICK-ASS WEB FRAMEWORKS Matt Raible http://raibledesigns.com Images by Stuck in Customs - http://www.flickr.com/photos/stuckincustoms © 2010, Raible Designs © 2010 Raible Designs
  2. 2. INTRODUCTIONS Have you heard of SOFEA? Are you using GWT? Experience with Rails? What do you want to get from this session?
  3. 3. Blogger on raibledesigns.com Father, Skier, Cyclist Founder of AppFuse Web Framework Connoisseur Who is Matt Raible?
  4. 4. SESSION AGENDA The Problem with Web Frameworks SOFEA and SOUI REST Backends Rich Frontends Conclusion Q and A
  5. 5. THE PROBLEM
  6. 6. HOW DO YOU CHOOSE?
  7. 7. ELIMINATE, DON’T INCLUDE
  8. 8. SOFEA & SOUI SOFEA first introduced in Life above the Service Tier on 10/12/2007. http://www.theserverside.com/news/thread.tss? thread_id=47213 SOUI introduced by Nolan Wright and Jeff Haynie in early November 2007. http://www.infoq.com/news/2007/11/soui- death-of-mvc2
  9. 9. SOFEA PRINCIPLES Decouple the three orthogonal Presentation Tier processes of Application Download, Presentation Flow and Data Interchange. This is the foundational principle of SOFEA. Explore various Application Download options to exploit usefully contrary trade- offs around client footprint, startup time, offline capability and a number of security-related parameters. Presentation Flow must be driven by a client-side component and never by a server-side component. Data Interchange between the Presentation Tier and the Service Tier must not become the weakest link in the end-to-end application chain of data integrity. Model-View-Controller (MVC) is a good pattern to use to build the Presentation Tier.
  10. 10. RECOMMENDED FRAMEWORKS DHTML/AJAX frameworks for Modern Browsers Handcoded with third party JavaScript libraries Google Web Toolkit  TIBCO General Interface Builder XML Dialects for Advanced Browsers XForms and XHTML 2.0 Mozilla XUL Microsoft SilverLight/XAML
  11. 11. RECOMMENDED FRAMEWORKS Java frameworks Java WebStart (with/without Spring Rich Client) JavaFX Adobe Flash­based frameworks Adobe Flex OpenLaszlo
  12. 12. EPIPHANY AFTER READING ABOUT SOFEA “I hope to develop with Flex, Grails, GWT or YUI + Struts 2 in the next 6 months.” http://raibledesigns.com/rd/entry/re_life_above_the_service
  13. 13. REST http://www.infoq.com/ articles/rest-introduction API
  14. 14. RUBY ON RAILS REST is enabled by default with Scaffolding Scaffolding doesn’t support one-to-many UI ActiveScaffold fixes one-to-many, supports REST and adds Ajax
  15. 15. RAILS CONTROLLER
  16. 16. RESTFUL RAILS
  17. 17. GRAILS Grails 1.x has REST support built-in Scaffolding does not support REST by default Adding REST support to Scaffolding http://fbflex.wordpress.com/2008/05/15/rest-service-xml-output-in- grails-via-content-negotiation/ Scaffolding insufficiently supports one-to-many UI One-to-many support possible if you modify templates http://www.stainlesscode.com/site/comments/ grails_one_to_many_scaffolding
  18. 18. GRAILS CONTROLLER
  19. 19. RESTFUL GRAILS
  20. 20. RAILS VS. GRAILS http://grails.org/Grails+vs+Rails+Benchmark Grails: 40 requests per second, Rails: 32
  21. 21. LANGUAGE PERFORMANCE Time (ms) per iteration 600 400 200 0 Java C++ JRuby Python Groovy PHP http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython- jruby-groovy/
  22. 22. JOBS IN 2008 Grails Rails 500 375 250 125 0 LinkedIn Monster Dice
  23. 23. JOBS IN 2009 Grails Rails 500 375 250 125 0 LinkedIn Monster Dice
  24. 24. JOBS IN 2010 Grails Rails 500 375 250 125 0 LinkedIn Monster Dice
  25. 25. MY NETWORK 2008 Grails Rails 400 267 133 0 Located within 50 miles of Denver (80210)
  26. 26. MY NETWORK 2009 Grails Rails 400 267 133 0 Located within 50 miles of Denver (80210)
  27. 27. MY NETWORK 2010 Grails Rails 400 267 133 0 Located within 50 miles of Denver (80210)
  28. 28. FLEX + RAILS Flex Scaffold http://www.railslodge.com/plugins/717-flex-scaffold Flex e-Genial Scaffold http://rubyforge.org/projects/flexscaffold WebORB for Ruby on Rails http://www.themidnightcoders.com/weborb/rubyonrails/index.htm <mx:HTTPService id=”...” url=”...” resultFormat=”...” HTTPMethod=”...” result=”...”/>
  29. 29. GWT + GRAILS GWT Plugin http://grails.org/GWT+Plugin Uses Server-side RPC RequestBuilder and Overlay Types ProxyServlet handy for development http://raibledesigns.com/rd/entry/ developing_and_testing_gwt_client RestyGWT and Restlet
  30. 30. GWT VS. FLEX SMACKDOWN!
  31. 31. TEXT Left-to-right languages unsupported in Flex
  32. 32. DRAWING Flex can draw
  33. 33. PRINTING Flex has issues printing from the browser
  34. 34. DRAG N’ DROP Flex has easy drag n’ drop support
  35. 35. CSS GWT has CSS support, not like Flex’s proprietary support
  36. 36. VALIDATORS & FORMATTERS Flex has effects, form layout, validators and formatters
  37. 37. JSON SUPPORT GWT supports JSON out- of-the-box
  38. 38. IE6 SUPPORT Flex works across all browsers
  39. 39. IPHONE SUPPORT GWT works on the iPhone
  40. 40. VIDEO Flash Video is the absolute number one video format on the web
  41. 41. PERFORMANCE Making your app “pop”
  42. 42. COMPONENTS Tour de Flex
  43. 43. TOOLS Speed Tracer IDEs
  44. 44. PROGRAMMING MODEL “GWT is nothing more than a JSP Tag Library” -- Matt Raible
  45. 45. FLEX Pros: Produces Flash UI Funded by Adobe Has many successful client stories Supports REST easily Cons Not Search Engine Friendly Doesn’t render HTML content well Doesn’t print well by default No Zero Turnaround w/o IDE
  46. 46. GWT Pros: Write Java => Produces JavaScript Easy to learn and develop with standard Java tools Vibrant Community Zero Turnaround in Development Mode Cons: You have to know Java Slow to compile and test with GWTTestCase More like a JSP Tag Library than a web framework
  47. 47. FLEX VS. GWT Ajax vs. Flex http://anthonyfranco.wordpress.com/2007/06/22/flex-and-ajax- friends-or-foes Use the Best Tool for the Job Open Web: Ajax Video and Rich Media: Flex HTML Rendering: Ajax Vector Graphics and Bitmap Manipulation: Flex Accessibility: Flex
  48. 48. FLEX VS. AJAX PERFORMANCE http://www.jamesward.com/census
  49. 49. JOBS IN 2008 GWT Flex 600 450 300 150 0 LinkedIn Monster Dice
  50. 50. JOBS IN 2009 GWT Flex 600 450 300 150 0 LinkedIn Monster Dice
  51. 51. JOBS IN 2010 GWT Flex 600 450 300 150 0 LinkedIn Monster Dice
  52. 52. MY NETWORK 2008 GWT Flex 700 525 350 175 0 Located within 50 miles of Denver (80210)
  53. 53. MY NETWORK 2009 GWT Flex 700 525 350 175 0 Located in or near Denver
  54. 54. MY NETWORK 2010 GWT Flex 700 525 350 175 0 Located in or near Denver
  55. 55. PRETTY GRAPHS
  56. 56. PRETTY GRAPHS
  57. 57. PRETTY GRAPHS
  58. 58. PRETTY GRAPHS
  59. 59. PRETTY GRAPHS
  60. 60. PRETTY GRAPHS
  61. 61. MAILING LIST TRAFFIC Rails Grails GWT Flex October 2009 0 750 1500 2250 3000
  62. 62. MAILING LIST TRAFFIC Rails Grails GWT Flex May 2010 0 750 1500 2250 3000
  63. 63. STACKOVERFLOW Tagged Questions (June 7, 2010) 15000 11250 7500 3750 GWT 0 Grails Flex Rails
  64. 64. STACKOVERFLOW Tagged Questions (June 7, 2010) 90000 67500 45000 22500 JavaScript 0 PHP Java C#
  65. 65. GRAILS http://grails.org Apache 2.0 License Active Community @ http://grails.org/Community Recommended Books: Getting Started with Grails Grails: A Quick-Start Guide Programming Groovy
  66. 66. RUBY ON RAILS http://rubyonrails.org MIT License Active Community @ http://rubyonrails.org/community Recommended Books: Agile Web Development with Rails Rails for Java Developers
  67. 67. ADOBE FLEX http://www.adobe.com/products/flex Flex SDK under Mozilla Public License Active Community @ http://tech.groups.yahoo.com/group/ flexcoders Recommended Books: Flexible Rails Flex 3 in Action Flex on Java
  68. 68. GOOGLE WEB TOOLKIT http://code.google.com/webtoolkit Apache 2.0 License Active Community @ http://groups.google.com/group/ Google-Web-Toolkit Recommended Books: GWT in Action GWT in Practice Google Web Toolkit Solutions
  69. 69. CONCLUSION What if there is no “best” web framework?
  70. 70. HOW TO CHOOSE? Prioritize a list of features that are important to your application. Pick 3-4 frameworks and do a 1-week spike with each, developing the same application. Document and rank each framework against your list of features. Calculate and choose!
  71. 71. O N E S T O WAT C H Google Sitebricks and Play! framework
  72. 72. QUESTIONS? Contact Information http://raibledesigns.com http://twitter.com/mraible Download Presentation http://slideshare.net/mraible
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×