Comparing JVM Web Frameworks - 33rd Degree
Upcoming SlideShare
Loading in...5
×
 

Comparing JVM Web Frameworks - 33rd Degree

on

  • 8,958 views

Comparing JVM Web Frameworks Presentation from 33rd Degree Conference in Krakow, Poland. Compares many different JVM-based web frameworks, ranks them based on 20 different criteria and compares the ...

Comparing JVM Web Frameworks Presentation from 33rd Degree Conference in Krakow, Poland. 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.

Statistics

Views

Total Views
8,958
Views on SlideShare
8,142
Embed Views
816

Actions

Likes
6
Downloads
224
Comments
0

8 Embeds 816

http://www.juancarlosfernandez.net 798
http://30274140_efdaab64a1b7f629ea4a5925fbc819ca29725842.blogspot.com 10
http://twitter.com 2
https://twitter.com 2
http://www.redditmedia.com 1
http://paper.li 1
https://translate.googleusercontent.com 1
http://webcache.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Comparing JVM Web Frameworks - 33rd Degree Comparing JVM Web Frameworks - 33rd Degree Presentation Transcript

  • COMPARING JVM WEB FRAMEWORKS Matt Raible http://raibledesigns.comImages by Stuck in Customs - http://www.flickr.com/photos/stuckincustoms © 2011 Raible Designs
  • 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
  • Blogger on raibledesigns.com Father, Skier, CyclistFounder of AppFuse Web Framework Connoisseur Who is Matt Raible? © 2011, Raible Designs
  • SESSION AGENDAThe Problem with Web FrameworksThe CandidatesComparison PointsThe MatrixConclusionQ and A © 2011, Raible Designs
  • 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 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
  • JAMES GOSLING ON JSF http://www.youtube.com/watch?v=9ei-rbULWoA#t=47m © 2011, Raible Designs
  • 2007: 6 IMPORTANT FACTORSRequest, Component or RIA FrameworkEase of DevelopmentProject CommunityProject Future and RoadmapMaintenanceTechnical Features © 2011, Raible Designs
  • 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
  • 2011: NOW THERE’S 201. Developer Productivity2. Developer Perception3. Learning Curve4. Project Health5. Developer Availability6. Job Trends © 2011, Raible Designs
  • 2011: COMPARISON POINTS7. Templating8. Components9. Ajax10. Plugins or Add-Ons11. Scalability12. Testing Support © 2011, Raible Designs
  • 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
  • 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 JSF Lift 1813.5 9 4.5 0 Rating © 2011, Raible Designs
  • MATRIX RESULTSGrails (17.5)GWT (17)Ruby on Rails (17)Spring MVC (17)Vaadin (15.5)Tapestry and Wicket (15) © 2011, Raible Designs
  • WEIGHTED MATRIX © 2011, Raible Designs
  • WEIGHTED RESULTSGrails (90)Spring MVC (85)Ruby on Rails (82.5)Vaadin (82.5)Play (82.5)GWT (80) © 2011, Raible Designs
  • FIGHTING FOR 5THTop at Devoxx 2010! ! GWT! ! Rails! ! Spring MVC! ! Grails! ! Wicket / Struts 2 © 2011, Raible Designs
  • FIGHTING FOR 5THTop at Rich Web Experience 2010 Grails GWT Rails Spring MVC Tapestry / Vaadin © 2011, Raible Designs
  • FIGHTING FOR 5THTop at TheServerSide Java Symposium 2010 Grails GWT Rails Spring MVC Vaadin © 2011, Raible Designs
  • RATINGS LOGIC1. Developer Productivity2. Developer Perception3. Learning Curve4. Project Health5. Developer Availability6. Job Trends © 2011, Raible Designs
  • RATINGS LOGIC7. Templating8. Components9. Ajax10. Plugins or Add-Ons11. Scalability12. Testing Support © 2011, Raible Designs
  • 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
  • RATINGS LOGIC19. Mobile / iPhone Support20. Degree of Riskhttp://raibledesigns.com/rd/entry/how_i_calculated_ratings_for © 2011, Raible Designs
  • 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
  • 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
  • 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
  • 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
  • PROS AND CONS © 2011, Raible Designs
  • 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
  • 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
  • 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
  • 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
  • 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. All client interactions communicate with server. Joonas keeps telling me my cons are wrong. © 2011, Raible Designs
  • 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
  • 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
  • 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
  • JOBS IN 2011 (US)Grails GWT Rails Spring MVC Tapestry Wicket Vaadin 700 525 350 175 0 Dice © 2011, Raible Designs
  • DEVELOPER SKILLS (US)Grails GWT Rails Spring MVC Tapestry Wicket Vaadin 11,000 8,250 5,500 2,750 0 LinkedIn © 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
  • PRETTY GRAPHS © 2011, Raible Designs
  • MAILING LIST TRAFFIC GWT Rails Grails Play Vaadin January 2011 0 750 1500 2250 3000* Spring MVC and Vaadin use Forums, which don’t provide this data. © 2011, Raible Designs
  • 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
  • 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
  • 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 GWT © 2011, Raible Designs
  • BOOKS ON AMAZON Grails GWT Rails Spring MVC Wicket Tapestry 5 VaadinJanuary 2011 0 50 100 150 200 © 2011, Raible Designs
  • 2010 RELEASES As of October 28, 2010 0 6 12 18 24 Grails GWT RailsSpring MVC Vaadin © 2011, Raible Designs
  • STACKOVERFLOW Tagged Questions (March 8, 2011) 40,000 30,000 20,000 10,000Grails 0 GWT Rails Spring MVC Vaadin © 2011, Raible Designs
  • STACKOVERFLOW Tagged Questions (February 15, 2011) 6,000 4,500 3,000 1,500Spring 0 GWT Grails Wicket Tapestry © 2011, Raible Designs
  • STACKOVERFLOW Tagged Questions (February 15, 2011) 100000 75000 50000 25000Java 0 Scala JRuby Clojure Groovy © 2011, Raible Designs
  • STACKOVERFLOW Tagged Questions (February 15, 2011) 4000 3000 2000 1000Scala 0 JRuby Clojure Groovy © 2011, Raible Designs
  • STACKOVERFLOW Tagged Questions (October 28, 2010) 80000 60000 40000 20000Java 0 PHP .NET Python Ruby © 2011, Raible Designs
  • FRAMEWORK POPULARITYSource: ZeroTurnarounds Java EE Productivity Report 2010 © 2011, Raible Designs
  • CONCLUSIONWhat if there is no “best” web framework? © 2011, Raible Designshttp://www.gladwell.com/2004/2004_09_06_a_ketchup.html
  • 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 spike witheach, developing the same application.Document and rank each framework against your listof features.Calculate and choose! © 2011, Raible Designs
  • QUESTIONS?Contact Information http://raibledesigns.com http://twitter.com/mraibleDownload Presentation http://slideshare.net/mraible © 2011, Raible Designs