Comparing JVM Web Frameworks - Devoxx France 2013
Upcoming SlideShare
Loading in...5
×
 

Comparing JVM Web Frameworks - Devoxx France 2013

on

  • 65,995 views

A comparison on JVM Web Frameworks. Includes strategies for choosing and results from research by InfoQ and devrates.com. Also, lots of pretty graphs. ...

A comparison on JVM Web Frameworks. Includes strategies for choosing and results from research by InfoQ and devrates.com. Also, lots of pretty graphs.

See blog post about this presentation at http://raibledesigns.com/rd/entry/devoxx_france_a_great_conference and video recording at http://raibledesigns.com/rd/entry/video_of_comparing_jvm_web

Statistics

Views

Total Views
65,995
Views on SlideShare
46,224
Embed Views
19,771

Actions

Likes
95
Downloads
1,484
Comments
2

84 Embeds 19,771

http://raibledesigns.com 15553
http://www.scoop.it 1215
http://www.raibledesigns.com 508
http://cms.nkia.net 304
http://localhost 291
http://java.dzone.com 245
http://therichwebexperience.com 190
http://heliocordeiro.tumblr.com 159
http://www.oyous.com 133
https://twitter.com 126
http://d.hatena.ne.jp 121
http://dev.nkia.net 116
http://lanyrd.com 91
http://uberconf.com 68
http://raible9.rssing.com 53
http://raible18.rssing.com 50
http://www.springone2gx.com 47
http://gradlesummit.com 35
http://www.newsblur.com 32
http://www.nofluffjuststuff.com 32
http://newsblur.com 31
http://127.0.0.1 27
http://jorgeparedesc.blogspot.com 21
https://raibledesigns.com 21
http://www.linkedin.com 20
http://abtasty.com 19
http://www.hanrss.com 17
http://www.mybestcv.co.il 15
http://www.nfjsone.com 14
http://eventifier.co 14
http://cloud.feedly.com 14
http://10.0.1.11 14
http://continuousdeliveryexperience.com 13
http://nofluffjuststuff.com 13
http://www.dailykebab.net 13
http://digg.com 12
http://projectautomationexperience.com 10
http://news.google.com 8
http://freerss.net 7
http://translate.googleusercontent.com 7
http://221.141.145.136 6
https://www.facebook.com 5
http://www.themusicage.com 5
http://trailreader.appspot.com 5
http://dev.newsblur.com 5
http://servidor1.i2e.es 4
http://www.therichwebexperience.com 4
http://www.serpensalbus.com 3
http://springone2gx.com 3
http://t.co 3
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 - Devoxx France 2013 Comparing JVM Web Frameworks - Devoxx France 2013 Presentation Transcript

  • COMPARING JVM WEBFRAMEWORKSMatt Raiblehttp://raibledesigns.com@mraiblePhotos by Trish McGinity © 2013 Raible Designs
  • Who is Matt Raible? Father, Skier, Cyclist Web Framework ConnoisseurFounder of AppFuseBlogger on raibledesigns.com © 2013 Raible Designs
  • Introductions‣ Are you currently developing web applications for the JVM?‣ Have you written web apps with Servlets or JSF?‣ Experience with Grails, GWT, Rails, Spring MVC, Wicket, Tapestry or Play?‣ Does anyone hate a framework? Love a framework? 3 © 2013 Raible Designs
  • Session Agenda‣ History of JVM Web Frameworks‣ The Paradox of Choice‣ Methods and Metrics‣ Conclusion‣ Q and A 4 © 2013 Raible Designs
  • History of Web Frameworks 5 © 2013 Raible Designs
  • History of Web Frameworks 6 © 2013 Raible Designs
  • History of Web Frameworks 7 © 2013 Raible Designs
  • Comparing Web Frameworks 8 © 2013 Raible Designs
  • History of Web Frameworks 9 © 2013 Raible Designs
  • History of Web Frameworks 10 © 2013 Raible Designs
  • 2007 11 © 2013 Raible Designs
  • History of Web Frameworks 12 © 2013 Raible Designs
  • © 2013 Raible Designs
  • Today 14 © 2013 Raible Designs
  • Too many web frameworks? 15 © 2013 Raible Designs
  • Remember SOFEA? © 2013 Raible Designs
  • SOFEA became a Reality © 2013 Raible Designs
  • SOFEA Performance Issues 18 © 2013 Raible Designs
  • traditional web frameworks are still relevant 19 © 2013 Raible Designs
  • The Paradox of Choice 20 © 2013 Raible Designs
  • Good Decisions Involve1. Figure out your goal or goals2. Evaluate the importance of each goal3. Array the options4. Evaluate how likely each of the options is to meet your goals5. Pick the winning option6. Modify goals 21 © 2013 Raible Designs
  • Maximizer vs. Satisficer‣ maximizer - tries to make best possible choice‣ satisficer - tries to find first suitable choice (Photo: Tori Cat at Flickr) 22 © 2013 Raible Designs
  • How do you choose? 23 © 2013 Raible Designs
  • The Real Problem 24 © 2013 Raible Designs
  • The Real Problem 25 © 2013 Raible Designs
  • The Real Problem 26 © 2013 Raible Designs
  • © 2013 Raible Designs
  • How to Constrain Choices‣ 2006: Choose based on the type of app you’re developing‣ 2010: Choose based on 20 different criteria (the Matrix)‣ 2013: Narrowed it to 5 - Community / Support - HTML5 - REST - Mobile - Performance - Page Speed 28 © 2013 Raible Designs
  • Predetermined Constraints‣ Language‣ Platform‣ Application Type 29 © 2013 Raible Designs
  • Choose the JVM 30 © 2013 Raible Designs
  • Get Fast Hardware 31 © 2013 Raible Designs
  • IntelliJ 32 © 2013 Raible Designs
  • Goals‣ Pure Web Frameworks‣ Full Stack Frameworks‣ SOFEA Frameworks - API Frameworks - JavaScript MVC Frameworks 33 © 2013 Raible Designs
  • Full Stack Frameworks 34 © 2013 Raible Designs
  • API Frameworks 35 © 2013 Raible Designs
  • JavaScript MVC Frameworks 36 © 2013 Raible Designs
  • JavaScript MVC Frameworks 37 © 2013 Raible Designs
  • Pure JVM Web Frameworks‣ Apache: Wicket, Struts, Sling, Tapestry, Click‣ GWT: SmartGWT, GXT, Vaadin, Errai‣ JSF: Mojarra (RI), MyFaces, Tomahawk, IceFaces, RichFaces, PrimeFaces‣ Spring MVC, Stripes, RIFE, ZK http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#Java 38 © 2013 Raible Designs
  • Frameworks I’ve Used‣ Apache: Wicket, Struts, Sling, Tapestry, Click‣ GWT: SmartGWT, GXT, Vaadin, Errai‣ JSF: Mojarra, MyFaces, Tomahawk, IceFaces, RichFaces, PrimeFaces‣ Spring MVC, Stripes, RIFE, ZK 39 © 2013 Raible Designs
  • Comparison Matrix http://bit.ly/jvm-frameworks-matrix 40 © 2013 Raible Designs
  • Matrix Results 18 17.5 17 17 17 15.5 15.5 15 13.5 14.5 14.5 14 14 13.5 11.5 9 4.5 0 ails g ils T in ry et 2 y s F x Lift Pla ipe Fle JS rin GW ad est ck uts Ra Gr Sp Str Va Wi Tap Str 41 © 2013 Raible Designs
  • Matrix Results‣ Grails (17.5)‣ GWT (17)‣ Ruby on Rails (17)‣ Spring MVC (17)‣ Vaadin and Tapestry (15.5)‣ Wicket (15) 42 © 2013 Raible Designs
  • Weighted Matrix 43 © 2013 Raible Designs
  • Weighted Results‣ Grails (90)‣ Play (87.5)‣ Spring MVC (85)‣ Ruby on Rails (82.5)‣ Vaadin (82.5)‣ GWT (80) 44 © 2013 Raible Designs
  • David Pollack’s Lift Ratings‣ Developer 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 45 © 2013 Raible Designs
  • Peter Thomas’s Perfbench ‣ Seam / JSF vs. Wicket Performance Comparison - January 2009: Seam 2.1.1 and Wicket 1.3.5 - Average page response time in milliseconds 46 © 2013 Raible Designs
  • Peter Thomas’s Perfbench ‣ On the Seam / JSF side, the 20 sessions each take up about 800 KB adding up to around 16 MB total. On the Wicket side the 20 sessions add up to around 1.5 MB. ‣ + Lots of banter between Peter and Seam developers @ http://bit.ly/3X50Gc 47 © 2013 Raible Designs
  • Peter Thomas’s Perfbench‣ Added Tapestry 5 and Grails in September 2009: - 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. 48 © 2013 Raible Designs
  • World Wide Wait - Devoxx http://www.parleys.com/d/2942 49 © 2013 Raible Designs
  • World Wide Wait - Devoxx 50 © 2013 Raible Designs
  • World Wide Wait - Devoxx 51 © 2013 Raible Designs
  • World Wide Wait - Devoxx 52 © 2013 Raible Designs
  • World Wide Wait - Devoxx 53 © 2013 Raible Designs
  • InfoQ’s Top 20 54 © 2013 Raible Designs
  • devrates.com - by rating 55 © 2013 Raible Designs
  • devrates.com - popular 56 © 2013 Raible Designs
  • Top JVM Frameworks‣ Raible Matrix: Grails, GWT, Rails, Spring MVC - Weighted: Grails, Play, Spring MVC, Rails, Vaadin‣ Peter Thomas: Wicket‣ InfoQ: Spring MVC, Play, Grails, JSF, Struts‣ devrates.com: - PrimeFaces, Grails, Tapestry, Vaadin, Wicket 57 © 2013 Raible Designs
  • Raible’s Recommendations‣ Full Stack: Choose by language (JRuby, Groovy, Java or Scala)‣ Pure Web Framework: Spring MVC, Struts 2, JSF w/ PrimeFaces, Tapestry, Wicket or Vaadin‣ JavaScript MVC: Ember, Angular JS, Backbone - API Framework: Jackson + ? 58 © 2013 Raible Designs
  • The Problem with GWT 59 © 2013 Raible Designs
  • Comparison Statistics‣ Elimination Criteria - At least 1 release in 2012 - At least 1 book on Amazon - At least 10 jobs on dice.com - At least 250 questions on Stack Overflow‣ Remove Seam (development halted) 60 © 2013 Raible Designs
  • Jobs on Dice.com Full Stack Frameworks, March 2013 300 225 150 75 0 ils ils ay t o Lif Ro a Ra Pl Gr ing o n r Sp by u JR 61 © 2013 Raible Designs
  • Jobs on Dice.com Pure Web Frameworks, March 2013 600 450 300 150 0 VC 2 et try es din ick ts ac s a M pe ru Va eF W ing St Ta im r Sp Pr 62 © 2013 Raible Designs
  • Jobs on Dice.com JavaScript MVC Frameworks, March 2013 300 225 150 75 0 ne r r be ula bo Em g An ck Ba 63 © 2013 Raible Designs
  • Jobs on Dice.com JVM API Frameworks, March 2013 500 375 250 125 0 y XF y rd x se as rt. za eC ve r E Je wi ST ch op RE a Dr Ap 64 © 2013 Raible Designs
  • LinkedIn Skills Full Stack Frameworks, March 2013 15,000 11,250 7,500 3,750 0 ils ay o ils t Lif Ro a Ra Pl Gr ing o n r Sp by u JR 65 © 2013 Raible Designs
  • LinkedIn Skills Pure Web Frameworks, March 2013 15,000 11,250 7,500 3,750 0 VC 2 et es din try ick ts ac s a M pe ru Va eF W ing St Ta im r Sp Pr 66 © 2013 Raible Designs
  • LinkedIn Skills JavaScript MVC Frameworks, March 2013 15,000 11,250 7,500 3,750 0 ne r r ula be bo Em g An ck Ba 67 © 2013 Raible Designs
  • LinkedIn Skills JVM API Frameworks, March 2013 15,000 11,250 7,500 3,750 0 y XF y x rd se as rt. za eC ve r E Je wi ST ch op RE a Dr Ap 68 © 2013 Raible Designs
  • Google Trends 69 © 2013 Raible Designs
  • Google Trends 70 © 2013 Raible Designs
  • Google Trends 71 © 2013 Raible Designs
  • Google Trends 72 © 2013 Raible Designs
  • Indeed Job Trends 73 © 2013 Raible Designs
  • Indeed Job Trends 74 © 2013 Raible Designs
  • Indeed Job Trends 75 © 2013 Raible Designs
  • Indeed Job Trends 76 © 2013 Raible Designs
  • Mailing List Traffic February 2013 AngularJS 2340 Play 1623 Lift 1049 Grails 828 Wicket 790 Tapestry 730 Apache CXF 432 Dropwizard 157 Struts 82 Jersey 68 Backbone.js 51 0 750 1500 2250 3000 * Frameworks not listed here use Forums, which don’t provide this data. 77 © 2013 Raible Designs
  • StackOverflow Tagged Questions (March 28, 2013) 15,000 11,250 7,500 3,750 0 Grails Play Lift Spring Roo JRuby on Rails 78 © 2013 Raible Designs
  • StackOverflow Tagged Questions (March 28, 2013) 10,000 7,500 5,000 2,500 0 Spring MVC Struts 2 PrimeFaces Wicket Vaadin Tapestry 79 © 2013 Raible Designs
  • StackOverflow Tagged Questions (March 25, 2013) 8,000 6,000 4,000 2,000 0 Backbone.js Angular JS Ember.js 80 © 2013 Raible Designs
  • StackOverflow Tagged Questions (March 25, 2013) 3,000 2,250 1,500 750 0 Jersey Apache CXF RESTEasy Dropwizard vert.x 81 © 2013 Raible Designs
  • Java Developers “Java remains – in spite of the fragmented programming language landscape – a viable, growing language.” http://redmonk.com/sogrady/2012/02/08/language-rankings-2-2012/ 82 © 2013 Raible Designs
  • Modern Principles 83 © 2013 Raible Designs
  • The Modern JVM Web Developer‣ Starts with Fast Hardware‣ Uses IntelliJ IDEA‣ Leverages JavaScript, HTML5, and CSS3‣ Creates High Performance Web Sites‣ For Mobile Devices‣ In the Cloud‣ And cares about Security 84 © 2013 Raible Designs
  • Developer Productivity http://zeroturnaround.com/blog/ developer-productivity-report-part-1-developer-timesheet/ 85 © 2013 Raible Designs
  • Developer Productivity http://zeroturnaround.com/blog/ developer-productivity-report-part-3-developer-efficiency/ 86 © 2013 Raible Designs
  • There is no “best” framework Just lots of awesome choices... 87 © 2013 Raible Designs
  • Don’t listen to me! 88 © 2013 Raible Designs
  • Choose your own!‣ Prioritize a list of goals that are important to your application.‣ Pick 3-4 frameworks and do a spike with each, developing the same application.‣ Document and rank each framework against your list of goals.‣ Calculate and choose!‣ Don’t be a Picker. 89 © 2013 Raible Designs
  • Questions?Contact Information http://raibledesigns.com @mraiblePresentations http://slideshare.net/mraible 90 © 2013 Raible Designs