COMPARING JVM WEB        FRAMEWORKSMatt Raiblehttp://raibledesigns.com      Images by Stuck in Customs - http://www.flickr....
INTRODUCTIONSYour experience with webdevelopment?Your experience with JavaEE development?What do you want to getfrom this ...
Blogger on raibledesigns.com                                             Father, Skier,                                   ...
SESSION AGENDAThe Problem with Web FrameworksThe CandidatesComparison PointsThe MatrixConclusionQ and A                   ...
THE PROBLEM              © 2011, Raible Designs
HOW DO YOU CHOOSE?                © 2011, Raible Designs
E L I M I N AT E , D O N ’ T I N C L U D E
© 2011, Raible Designs
© 2011, Raible Designs
... while Id *love* to see life made simpler for Java webdevelopers, and a lot of the things happening in Struts2 aregoing...
JAMES GOSLING ON JSF  http://www.youtube.com/watch?v=9ei-rbULWoA#t=47m                                                    ...
2007: 6 IMPORTANT          FACTORSRequest, Component or RIA FrameworkEase of DevelopmentProject CommunityProject Future an...
CHOOSING A          FRAMEWORKChoose a short list of frameworks to prototype with.Create an application prototype with each...
2011: NOW THERE’S 201. Developer Productivity2. Developer Perception3. Learning Curve4. Project Health5. Developer Availab...
2011: COMPARISON POINTS7. Templating8. Components9. Ajax10. Plugins or Add-Ons11. Scalability12. Testing Support          ...
2011: COMPARISON POINTS13. i18n and l10n14. Validation15. Multi-language Support (Groovy / Scala)16. Quality of Documentat...
2011: COMPARISON POINTS19. Mobile / iPhone Support20. Degree of Risk                              © 2011, Raible Designs
COMPARISON MATRIX http://bit.ly/jvm-frameworks-matrix                                       © 2011, Raible Designs
MATRIX RESULTS   Grails     Spring MVC   Rails     GWT    Vaadin   Wicket   Tapestry   Struts 2     Stripes   Play   Flex ...
MATRIX RESULTSGrails (17.5)GWT (17)Ruby on Rails (17)Spring MVC (17)Vaadin (15.5)Tapestry and Wicket (15)                 ...
WEIGHTED MATRIX                  © 2011, Raible Designs
WEIGHTED RESULTSGrails (90)Spring MVC (85)Ruby on Rails (82.5)Vaadin (82.5)Play (82.5)GWT (80)                       © 201...
RATINGS LOGIC1. Developer Productivity2. Developer Perception3. Learning Curve4. Project Health5. Developer Availability6....
RATINGS LOGIC7. Templating8. Components9. Ajax10. Plugins or Add-Ons11. Scalability12. Testing Support                    ...
RATINGS LOGIC13. i18n and l10n14. Validation15. Multi-language Support (Groovy / Scala)16. Quality of Documentation/Tutori...
RATINGS LOGIC19. Mobile / iPhone Support20. Degree of Riskhttp://raibledesigns.com/rd/entry/how_i_calculated_ratings_for  ...
DAVID POLLACK’S         LIFT RATINGSDeveloper Productivity: Lift gets a 11, Rails gets a 5,most Java-based frameworks get ...
PETER THOMAS’S        PERFBENCHSeam / JSF vs. Wicket Performance Comparison  January 2009: Seam 2.1.1 and Wicket 1.3.5  Av...
PETER THOMAS’S        PERFBENCHOn the Seam / JSF side, the 20 sessions each take upabout 800 KB adding up to around 16 MB ...
PETER THOMAS’S        PERFBENCHPeter’s Observations:  Grails was far more productive than Tapestry 5.  Grails still has so...
PROS AND CONS                © 2011, Raible Designs
GRAILSPros  Easy dynamic language transition for Java Developers  Groovy  Plugins for all types of applicationsCons  Groov...
GWTPros  Write Java => Produces Optimized JavaScript  Easy to learn and develop with standard Java Tools  Vibrant Communit...
RUBY ON RAILSPros  Easy to learn and understand for Web Developers  Lots and lots of documentation  Passionate CommunityCo...
SPRING MVCPros  Easy Configuration with Annotations and Conventions  Integrates with many view options seamlessly: JSP/JSTL...
VAADINPros  Uses GWT API for developing view.  Vibrant Community and company backing.  Excellent Themes and Layouts suppor...
WICKETPros  Great for Java Developers  Tight binding between pages and views  Active community - support from creatorsCons...
TAPESTRYPros  Live Class Reloading  Development emphasis on performance and scalability  Excellent Exception ReportingCons...
LANGUAGE              PERFORMANCE                                 Time (ms) per iteration             600             400 ...
JOBS IN 2011 (US)Grails   GWT   Rails   Spring MVC   Tapestry   Wicket   Vaadin         700         525         350       ...
DEVELOPER SKILLS (US)Grails      GWT   Rails   Spring MVC    Tapestry   Wicket   Vaadin         11,000         8,250      ...
PRETTY GRAPHS                © 2011, Raible Designs
PRETTY GRAPHS                © 2011, Raible Designs
PRETTY GRAPHS                © 2011, Raible Designs
PRETTY GRAPHS                © 2011, Raible Designs
PRETTY GRAPHS                © 2011, Raible Designs
PRETTY GRAPHS                © 2011, Raible Designs
PRETTY GRAPHS                © 2011, Raible Designs
MAILING LIST TRAFFIC           GWT             Rails         Grails          Play        Tapestry   Wicket   January 2011 ...
JSF LIST TRAFFIC              PrimeFaces                RichFaces               MyFaces          Majorra (RI)    January 2...
MAILING LIST TRAFFIC              GWT              Rails            Grails               Play          PrimeFaces   Januar...
MAILING LIST TRENDS   JRuby           Ruby on Rails                           © 2011, Raible Designs
MAILING LIST TRENDS   JRuby           Ruby on Rails                           © 2011, Raible Designs
MAILING LIST TRENDS                   Grails                              TapestrySource: http://markmail.org             ...
BOOKS ON AMAZON     Grails    GWT   Rails    Spring MVC   Wicket         Tapestry 5     VaadinJanuary 2011               0...
2010 RELEASES                     As of October 28, 2010             0   6             12             18   24   Grails    ...
STACKOVERFLOW           Tagged Questions (March 8, 2011)                                                    40,000        ...
STACKOVERFLOW          Tagged Questions (February 15, 2011)                                                       6,000   ...
STACKOVERFLOW          Tagged Questions (February 15, 2011)                                                      100000   ...
STACKOVERFLOW         Tagged Questions (February 15, 2011)                                                     4000       ...
STACKOVERFLOW         Tagged Questions (October 28, 2010)                                                    80000        ...
FRAMEWORK POPULARITYSource: ZeroTurnarounds Java EE Productivity Report 2010                                              ...
CONCLUSIONWhat if there is no “best” web framework?                                                         © 2011, Raible...
DON’T LISTEN TO ME!                  © 2011, Raible Designs
CHOOSE YOUR OWN!Prioritize a list of features that are important to yourapplication.Pick 3-4 frameworks and do a 1-week sp...
QUESTIONS?Contact Information  http://raibledesigns.com  http://twitter.com/mraibleDownload Presentation  http://slideshar...
Upcoming SlideShare
Loading in...5
×

Comparing JVM Web Frameworks - TSSJS 2011

23,924

Published on

Comparing JVM Web Frameworks Presentation from TheServerSide Java Symposium 2011. Compares many different JVM-based web frameworks, ranks them based on 20 different criteria and compares the Pros, Cons and other stats of the top 5.

Published in: Technology
3 Comments
21 Likes
Statistics
Notes
  • Some corrections to slide 36 (Vaadin Pros/Cons):

    1) There is no ’pro version’ of Vaadin. Vaadin is 100% free with Apache license. Just launched ’Vaadin Pro Account’ is a support offering.

    2) Vaadin communication mechanism is in fact JSON based. In practice this does not matter too much as it is only an internal thing - there are API:s for the communications.

    3) Vaadin scales quite well (around 10.000 concurrent users per web server). For details, see http://vaadin.com/wiki/-/wiki/Main/Vaadin%20Scalability%20Testing%20with%20Amazon%20Web%20Services
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Because if a framework includes a JS library, you're stuck with that version. For example, Tapestry has a particular version of Prototype built-in and you can't upgrade or downgrade it.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Why Ajax 3rd part library in Spring can be a good thing ?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
23,924
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
514
Comments
3
Likes
21
Embeds 0
No embeds

No notes for slide

Comparing JVM Web Frameworks - TSSJS 2011

  1. 1. COMPARING JVM WEB FRAMEWORKSMatt Raiblehttp://raibledesigns.com Images by Stuck in Customs - http://www.flickr.com/photos/stuckincustoms © 2011 Raible Designs
  2. 2. INTRODUCTIONSYour experience with webdevelopment?Your experience with JavaEE development?What do you want to getfrom this session?Experience with Grails,GWT, Rails, Spring MVC,Wicket, Tapestry or Play? © 2011, Raible Designs
  3. 3. Blogger on raibledesigns.com Father, Skier, CyclistFounder of AppFuse Web Framework Connoisseur Who is Matt Raible? © 2011, Raible Designs
  4. 4. SESSION AGENDAThe Problem with Web FrameworksThe CandidatesComparison PointsThe MatrixConclusionQ and A © 2011, Raible Designs
  5. 5. THE PROBLEM © 2011, Raible Designs
  6. 6. HOW DO YOU CHOOSE? © 2011, Raible Designs
  7. 7. E L I M I N AT E , D O N ’ T I N C L U D E
  8. 8. © 2011, Raible Designs
  9. 9. © 2011, Raible Designs
  10. 10. ... while Id *love* to see life made simpler for Java webdevelopers, and a lot of the things happening in Struts2 aregoing that way -- it wont be me doing it.Ive gone over to the dark side :-) and much prefer to developin Rails -- for the conciseness mentioned above, but alsobecause I dont ever have to do a "build" or "deploy" stepduring my development cycle any more. But you guys andgals need to be reminded that *this* is the kind of thing youare competing against if you expect to attract Railsdevelopers ... or to avoid even more "previously Java webdeveloper" defectors like me :-). -- Craig McClanahan, 10/23/2007 http://markmail.org/thread/qfb5sekad33eobh2 © 2011, Raible Designs
  11. 11. JAMES GOSLING ON JSF http://www.youtube.com/watch?v=9ei-rbULWoA#t=47m © 2011, Raible Designs
  12. 12. 2007: 6 IMPORTANT FACTORSRequest, Component or RIA FrameworkEase of DevelopmentProject CommunityProject Future and RoadmapMaintenanceTechnical Features © 2011, Raible Designs
  13. 13. CHOOSING A FRAMEWORKChoose a short list of frameworks to prototype with.Create an application prototype with eachframework.Document findings and create a matrix withimportant criteria.Create presentation to summarize document.Deliver document, presentation andrecommendation. © 2011, Raible Designs
  14. 14. 2011: NOW THERE’S 201. Developer Productivity2. Developer Perception3. Learning Curve4. Project Health5. Developer Availability6. Job Trends © 2011, Raible Designs
  15. 15. 2011: COMPARISON POINTS7. Templating8. Components9. Ajax10. Plugins or Add-Ons11. Scalability12. Testing Support © 2011, Raible Designs
  16. 16. 2011: COMPARISON POINTS13. i18n and l10n14. Validation15. Multi-language Support (Groovy / Scala)16. Quality of Documentation/Tutorials17. Books Published18. REST Support (client and server) © 2011, Raible Designs
  17. 17. 2011: COMPARISON POINTS19. Mobile / iPhone Support20. Degree of Risk © 2011, Raible Designs
  18. 18. COMPARISON MATRIX http://bit.ly/jvm-frameworks-matrix © 2011, Raible Designs
  19. 19. MATRIX RESULTS Grails Spring MVC Rails GWT Vaadin Wicket Tapestry Struts 2 Stripes Play Flex JSF Lift 1813.5 9 4.5 0 Rating © 2011, Raible Designs
  20. 20. MATRIX RESULTSGrails (17.5)GWT (17)Ruby on Rails (17)Spring MVC (17)Vaadin (15.5)Tapestry and Wicket (15) © 2011, Raible Designs
  21. 21. WEIGHTED MATRIX © 2011, Raible Designs
  22. 22. WEIGHTED RESULTSGrails (90)Spring MVC (85)Ruby on Rails (82.5)Vaadin (82.5)Play (82.5)GWT (80) © 2011, Raible Designs
  23. 23. RATINGS LOGIC1. Developer Productivity2. Developer Perception3. Learning Curve4. Project Health5. Developer Availability6. Job Trends © 2011, Raible Designs
  24. 24. RATINGS LOGIC7. Templating8. Components9. Ajax10. Plugins or Add-Ons11. Scalability12. Testing Support © 2011, Raible Designs
  25. 25. RATINGS LOGIC13. i18n and l10n14. Validation15. Multi-language Support (Groovy / Scala)16. Quality of Documentation/Tutorials17. Books Published18. REST Support (client and server) © 2011, Raible Designs
  26. 26. RATINGS LOGIC19. Mobile / iPhone Support20. Degree of Riskhttp://raibledesigns.com/rd/entry/how_i_calculated_ratings_for © 2011, Raible Designs
  27. 27. DAVID POLLACK’S LIFT RATINGSDeveloper Productivity: Lift gets a 11, Rails gets a 5,most Java-based frameworks get a 1 or less.Developer Perception: Every web framework gets a 1. Learning Curve: Lift gets a 2.Job Trends, yep, its zero.* Matts scale is 0-1 and my ratings are on Matts scale, except mine goes to 11. http://lift.la/my-take-on-matt-raibles-spreadsheet © 2011, Raible Designs
  28. 28. PETER THOMAS’S PERFBENCHSeam / JSF vs. Wicket Performance Comparison January 2009: Seam 2.1.1 and Wicket 1.3.5 Average page response time in milliseconds © 2011, Raible Designs
  29. 29. PETER THOMAS’S PERFBENCHOn the Seam / JSF side, the 20 sessions each take upabout 800 KB adding up to around 16 MB total. Onthe Wicket side the 20 sessions add up to around 1.5MB.+ Lots of banter between Peter and Seam developers@ http://bit.ly/3X50Gc © 2011, Raible Designs
  30. 30. PETER THOMAS’S PERFBENCHPeter’s Observations: Grails was far more productive than Tapestry 5. Grails still has some ways to go in terms of performance. Overall, Wicket is fastest, with Tapestry coming a close second. Wicket takes up the least amount of heap. Session usage of the Seam + JSF combination is significantly higher compared to the rest. © 2011, Raible Designs
  31. 31. PROS AND CONS © 2011, Raible Designs
  32. 32. GRAILSPros Easy dynamic language transition for Java Developers Groovy Plugins for all types of applicationsCons Groovy learning targets Java Developers Stack traces are horrendous Knowledge of underlying frameworks not required, but helpful © 2011, Raible Designs
  33. 33. GWTPros Write Java => Produces Optimized JavaScript Easy to learn and develop with standard Java Tools Vibrant CommunityCons You have to know Java Slow to compile, difficult to test More like a JSP Tag Library than a web framework © 2011, Raible Designs
  34. 34. RUBY ON RAILSPros Easy to learn and understand for Web Developers Lots and lots of documentation Passionate CommunityCons Slightly less performant by default Dynamic language means more tests Development Tools and Debugging © 2011, Raible Designs
  35. 35. SPRING MVCPros Easy Configuration with Annotations and Conventions Integrates with many view options seamlessly: JSP/JSTL, Tiles, FreeMarker, Excel, PDF, JSON Excellent REST SupportCons Instant reload not built-in, need JRebel or Spring Roo No open development process, need to be SpringSource Ajax requires 3rd-party library (can be a good thing!) © 2011, Raible Designs
  36. 36. VAADINPros Uses GWT API for developing view. Vibrant Community and company backing. Excellent Themes and Layouts support.Cons Large memory footprint, state stored in session. Doesn’t use JSON for communication. Commercial backing with Pro version. © 2011, Raible Designs
  37. 37. WICKETPros Great for Java Developers Tight binding between pages and views Active community - support from creatorsCons No Jobs or Developers Stateful by default HTML Templates live next to Java code by default © 2011, Raible Designs
  38. 38. TAPESTRYPros Live Class Reloading Development emphasis on performance and scalability Excellent Exception ReportingCons No Jobs Prototype baked in for JS Library Annotations vs. Conventions © 2011, Raible Designs
  39. 39. LANGUAGE PERFORMANCE Time (ms) per iteration 600 400 200 0 Java C++ JRuby Python Groovy PHPhttp://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython- jruby-groovy/ © 2011, Raible Designs
  40. 40. JOBS IN 2011 (US)Grails GWT Rails Spring MVC Tapestry Wicket Vaadin 700 525 350 175 0 Dice © 2011, Raible Designs
  41. 41. DEVELOPER SKILLS (US)Grails GWT Rails Spring MVC Tapestry Wicket Vaadin 11,000 8,250 5,500 2,750 0 LinkedIn © 2011, Raible Designs
  42. 42. PRETTY GRAPHS © 2011, Raible Designs
  43. 43. PRETTY GRAPHS © 2011, Raible Designs
  44. 44. PRETTY GRAPHS © 2011, Raible Designs
  45. 45. PRETTY GRAPHS © 2011, Raible Designs
  46. 46. PRETTY GRAPHS © 2011, Raible Designs
  47. 47. PRETTY GRAPHS © 2011, Raible Designs
  48. 48. PRETTY GRAPHS © 2011, Raible Designs
  49. 49. MAILING LIST TRAFFIC GWT Rails Grails Play Tapestry Wicket January 2011 0 750 1500 2250 3000* Spring MVC and Vaadin use Forums, which don’t provide this data. © 2011, Raible Designs
  50. 50. JSF LIST TRAFFIC PrimeFaces RichFaces MyFaces Majorra (RI) January 2011 0 500 1000 1500 2000* ICEfaces uses Forums, which don’t provide this data. © 2011, Raible Designs
  51. 51. MAILING LIST TRAFFIC GWT Rails Grails Play PrimeFaces January 2011 0 575 1150 1725 2300* Spring MVC and Vaadin use Forums, which don’t provide this data. © 2011, Raible Designs
  52. 52. MAILING LIST TRENDS JRuby Ruby on Rails © 2011, Raible Designs
  53. 53. MAILING LIST TRENDS JRuby Ruby on Rails © 2011, Raible Designs
  54. 54. MAILING LIST TRENDS Grails TapestrySource: http://markmail.org GWT © 2011, Raible Designs
  55. 55. BOOKS ON AMAZON Grails GWT Rails Spring MVC Wicket Tapestry 5 VaadinJanuary 2011 0 50 100 150 200 © 2011, Raible Designs
  56. 56. 2010 RELEASES As of October 28, 2010 0 6 12 18 24 Grails GWT RailsSpring MVC Vaadin © 2011, Raible Designs
  57. 57. STACKOVERFLOW Tagged Questions (March 8, 2011) 40,000 30,000 20,000 10,000Grails 0 GWT Rails Spring MVC Vaadin © 2011, Raible Designs
  58. 58. STACKOVERFLOW Tagged Questions (February 15, 2011) 6,000 4,500 3,000 1,500Spring 0 GWT Grails Wicket Tapestry © 2011, Raible Designs
  59. 59. STACKOVERFLOW Tagged Questions (February 15, 2011) 100000 75000 50000 25000Java 0 Scala JRuby Clojure Groovy © 2011, Raible Designs
  60. 60. STACKOVERFLOW Tagged Questions (February 15, 2011) 4000 3000 2000 1000Scala 0 JRuby Clojure Groovy © 2011, Raible Designs
  61. 61. STACKOVERFLOW Tagged Questions (October 28, 2010) 80000 60000 40000 20000Java 0 PHP .NET Python Ruby © 2011, Raible Designs
  62. 62. FRAMEWORK POPULARITYSource: ZeroTurnarounds Java EE Productivity Report 2010 © 2011, Raible Designs
  63. 63. CONCLUSIONWhat if there is no “best” web framework? © 2011, Raible Designshttp://www.gladwell.com/2004/2004_09_06_a_ketchup.html
  64. 64. DON’T LISTEN TO ME! © 2011, Raible Designs
  65. 65. CHOOSE YOUR OWN!Prioritize a list of features that are important to yourapplication.Pick 3-4 frameworks and do a 1-week spike witheach, developing the same application.Document and rank each framework against your listof features.Calculate and choose! © 2011, Raible Designs
  66. 66. QUESTIONS?Contact Information http://raibledesigns.com http://twitter.com/mraibleDownload Presentation http://slideshare.net/mraible © 2011, Raible Designs
  1. A particular slide catching your eye?

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

×