Comparing JVM Web Frameworks - Rich Web Experience 2010

6,186 views

Published on

Comparing JVM Web Frameworks Presentation from The Rich Web Experience 2010. 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
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,186
On SlideShare
0
From Embeds
0
Number of Embeds
239
Actions
Shares
0
Downloads
165
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Comparing JVM Web Frameworks - Rich Web Experience 2010

  1. 1. COMPARING JVM WEB FRAMEWORKS Matt Raible http://raibledesigns.comImages by Stuck in Customs - http://www.flickr.com/photos/stuckincustoms © 2010 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 or Tapestry? © 2010, Raible Designs
  3. 3. Blogger on raibledesigns.com Father, Skier, CyclistFounder of AppFuse Web Framework Connoisseur Who is Matt Raible? © 2010, Raible Designs
  4. 4. SESSION AGENDAThe Problem with Web FrameworksThe CandidatesComparison PointsThe MatrixConclusionQ and A © 2010, Raible Designs
  5. 5. THE PROBLEM © 2010, Raible Designs
  6. 6. HOW DO YOU CHOOSE? © 2010, 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. © 2010, Raible Designs
  9. 9. © 2010, 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 © 2010, Raible Designs
  11. 11. JAMES GOSLING ON JSF http://www.youtube.com/watch?v=9ei-rbULWoA#t=47m © 2010, Raible Designs
  12. 12. 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. © 2010, Raible Designs
  13. 13. 2007: 6 IMPORTANT FACTORSRequest, Component or RIA FrameworkEase of DevelopmentProject CommunityProject Future and RoadmapMaintenanceTechnical Features © 2010, Raible Designs
  14. 14. REQUEST, COMPONENT OR RIAAre you developing... ... a consumer facing site? ... a desktop-like, application? ... a media-rich site?If the framework is built for state-fulness, should youuse it in a stateless architecture? © 2010, Raible Designs
  15. 15. TYPES OF APPLICATIONSHigh-traffic, internet facing, infinite scalabilityIntranet-based, behind the firewall, few usersProducts, to be maintained for 5-10 yearsLegacy BackendOthers? © 2010, Raible Designs
  16. 16. TYPES OF FRAMEWORKSRequest Based Frameworks Struts 2, Spring MVC, Rails, StripesComponent Based Frameworks JSF, Tapestry, GWTRich Internet Applications FlexOne Size Fits All Grails © 2010, Raible Designs
  17. 17. DO THEY MATCHUP?High-traffic, internet facing, infinite scalability Request-based frameworksIntranet-based, behind the firewall, few users Component-based frameworksProducts, to be maintained for 5-10 years Largest Community, Most Vendor SupportLegacy Backend Same Language as backend © 2010, Raible Designs
  18. 18. 2010: NOW THERE’S 201. Developer Productivity2. Developer Perception3. Learning Curve4. Project Health5. Developer Availability6. Job Trends © 2010, Raible Designs
  19. 19. 2010: COMPARISON POINTS7. Templating8. Components9. Ajax10.Plugins or Add-Ons11.Scalability12.Testing Support © 2010, Raible Designs
  20. 20. 2010: COMPARISON POINTS13.i18n and l10n14.Validation15.Multi-language Support (Groovy / Scala)16.Quality of Documentation/Tutorials17.Books Published18.REST Support (client and server) © 2010, Raible Designs
  21. 21. 2010: COMPARISON POINTS19.Mobile / iPhone Support20.Degree of Risk © 2010, Raible Designs
  22. 22. COMPARISON MATRIX http://bit.ly/jvm-frameworks-matrix © 2010, Raible Designs
  23. 23. COMPARISON MATRIX http://bit.ly/jvm-frameworks-matrix © 2010, Raible Designs
  24. 24. MATRIX RESULTS Spring MVC Rails GWT Grails Wicket Struts 2 Stripes Tapestry Flex Play JSF Vaadin Lift 1813.5 9 4.5 0 Rating © 2010, Raible Designs
  25. 25. MATRIX RESULTSGrails (17.5)GWT (17)Ruby on Rails (17)Spring MVC (17)Tapestry (15)Vaadin (15) © 2010, Raible Designs
  26. 26. WEIGHTED MATRIX © 2010, Raible Designs
  27. 27. WEIGHTED RESULTSGrails (90)Spring MVC (85)Ruby on Rails (82.5)Vaadin (82.5)Play (80)GWT (80) © 2010, Raible Designs
  28. 28. RATINGS LOGIC1. Developer Productivity2. Developer Perception3. Learning Curve4. Project Health5. Developer Availability6. Job Trends © 2010, Raible Designs
  29. 29. RATINGS LOGIC7. Templating8. Components9. Ajax10. Plugins or Add-Ons11. Scalability12. Testing Support © 2010, Raible Designs
  30. 30. RATINGS LOGIC13. i18n and l10n14. Validation15. Multi-language Support (Groovy / Scala)16. Quality of Documentation/Tutorials17. Books Published18. REST Support (client and server) © 2010, Raible Designs
  31. 31. RATINGS LOGIC19. Mobile / iPhone Support20. Degree of Riskhttp://bit.ly/jvm-webfwk-ratings-logic © 2010, Raible Designs
  32. 32. PROS AND CONS © 2010, Raible Designs
  33. 33. 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!) © 2010, Raible Designs
  34. 34. 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 © 2010, Raible Designs
  35. 35. 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 © 2010, Raible Designs
  36. 36. 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 © 2010, 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 © 2010, 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 © 2010, 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/ © 2010, Raible Designs
  40. 40. JOBS IN 2010 (US)Spring MVC GWT Rails Grails Tapestry Wicket 600 450 300 150 0 Dice © 2010, Raible Designs
  41. 41. DEVELOPER SKILLS (US) Spring MVC GWT Rails Grails Tapestry Wicket 11,000 8,250 5,500 2,750 0 LinkedIn © 2010, Raible Designs
  42. 42. PRETTY GRAPHS © 2010, Raible Designs
  43. 43. PRETTY GRAPHS © 2010, Raible Designs
  44. 44. PRETTY GRAPHS © 2010, Raible Designs
  45. 45. PRETTY GRAPHS © 2010, Raible Designs
  46. 46. PRETTY GRAPHS © 2010, Raible Designs
  47. 47. PRETTY GRAPHS © 2010, Raible Designs
  48. 48. MAILING LIST TRAFFIC Rails Grails GWT Play TapestrySeptember 2010 0 1000 2000 3000 4000* Spring MVC uses Forums, which don’t provide this data. © 2010, Raible Designs
  49. 49. MAILING LIST TRENDS JRuby Ruby on Rails © 2010, Raible Designs
  50. 50. MAILING LIST TRENDS JRuby Ruby on Rails © 2010, Raible Designs
  51. 51. MAILING LIST TRENDS Grails TapestrySource: http://markmail.org GWT © 2010, Raible Designs
  52. 52. BOOKS ON AMAZON Spring MVC Rails GWT Grails Tapestry 5 WicketOctober 2010 0 50 100 150 200 © 2010, Raible Designs
  53. 53. 2010 RELEASES As of October 28, 2010 0 4 8 12Spring MVC GWT Rails Grails Tapestry © 2010, Raible Designs
  54. 54. STACKOVERFLOW Tagged Questions (October 26, 2010) 30,000 22,500 15,000 7,500Spring MVC 0 GWT Grails Tapestry Rails © 2010, Raible Designs
  55. 55. STACKOVERFLOW Tagged Questions (October 26, 2010) 25,000 18,750 12,500 6,250Spring 0 GWT Grails Tapestry Rails © 2010, Raible Designs
  56. 56. STACKOVERFLOW Tagged Questions (October 28, 2010) 80000 60000 40000 20000Java 0 Scala JRuby Clojure Groovy © 2010, Raible Designs
  57. 57. STACKOVERFLOW Tagged Questions (October 28, 2010) 80000 60000 40000 20000Java 0 PHP .NET Python Ruby © 2010, Raible Designs
  58. 58. STACKOVERFLOW Tagged Questions (October 28, 2010) 3000 2250 1500 750Tomcat 0 JBoss Glassfish WebSphere Jetty © 2010, Raible Designs
  59. 59. FRAMEWORK POPULARITYSource: ZeroTurnarounds Java EE Productivity Report 2010 © 2010, Raible Designs
  60. 60. GRAILShttp://grails.orgApache 2.0 LicenseActive Community @http://grails.org/CommunityRecommended Books: Getting Started with Grails Grails: A Quick-Start Guide Programming Groovy © 2010, Raible Designs
  61. 61. RUBY ON RAILShttp://rubyonrails.orgMIT LicenseActive Community @http://rubyonrails.org/communityRecommended Books: Agile Web Development with Rails Rails for Java Developers © 2010, Raible Designs
  62. 62. GOOGLE WEB TOOLKIThttp://code.google.com/webtoolkitApache 2.0 LicenseActive Community @ http://groups.google.com/group/Google-Web-ToolkitRecommended Books: GWT in Action GWT in Practice Google Web Toolkit Solutions © 2010, Raible Designs
  63. 63. SPRING MVChttp://www.springsource.orgApache 2.0 LicenseActive Community @ http://forum.springsource.org/forumdisplay.php?f=25Recommended Books: Expert Spring MVC Spring in Action Pro Spring © 2010, Raible Designs
  64. 64. APACHE TAPESTRYhttp://tapestry.apache.orgApache 2.0 LicenseActive Community @ http://markmail.org/search/list:org.apache.tapestry.usersRecommended Books: Tapestry 5: Building Web Applications © 2010, Raible Designs
  65. 65. CONCLUSIONWhat if there is no “best” web framework? © 2010, Raible Designshttp://www.gladwell.com/2004/2004_09_06_a_ketchup.html
  66. 66. DON’T LISTEN TO ME! © 2010, Raible Designs
  67. 67. 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! © 2010, Raible Designs
  68. 68. QUESTIONS?Contact Information http://raibledesigns.com http://twitter.com/mraibleDownload Presentation http://slideshare.net/mraible © 2010, Raible Designs

×