• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Comparing JVM Web Frameworks - Jfokus 2012
 

Comparing JVM Web Frameworks - Jfokus 2012

on

  • 89,382 views

Comparing JVM Web Frameworks Presentation from Jfokus Conference in Stockholm, Sweden. Compares many different JVM-based web frameworks, ranks them based on 20 different criteria and compares the ...

Comparing JVM Web Frameworks Presentation from Jfokus Conference in Stockholm, Sweden. 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.

Read more about this presentation at:

http://raibledesigns.com/rd/entry/comparing_web_frameworks_and_html5

Statistics

Views

Total Views
89,382
Views on SlideShare
49,408
Embed Views
39,974

Actions

Likes
69
Downloads
1,263
Comments
10

85 Embeds 39,974

http://raibledesigns.com 33276
http://css.dzone.com 3152
http://www.raibledesigns.com 1489
http://java.dzone.com 482
http://therichwebexperience.com 277
http://www.oyous.com 261
http://snippetjournal.wordpress.com 147
http://www.bravenewtalent.com 126
http://www.nofluffjuststuff.com 90
http://progrnotes.blogspot.com 89
http://uberconf.com 72
http://localhost 66
https://twitter.com 57
https://booster-sqli.bluekiwi.net 28
http://freerss.net 26
http://www.linkedin.com 21
http://progrnotes.blogspot.in 19
http://lanyrd.com 17
http://feeds.feedburner.com 16
http://translate.googleusercontent.com 14
http://www.springone2gx.com 14
https://confluence.etb.tieto.com 14
http://www.hanrss.com 14
http://webcache.googleusercontent.com 13
https://raibledesigns.com 12
http://127.0.0.1 11
http://dev.eventtouch.eu 11
http://wplmw.solarjournal.org 10
http://projectautomationexperience.com 9
http://www.mefeedia.com 8
http://reader.nunux.org 8
http://www.mybestcv.co.il 8
http://science.webhostinggeeks.com 8
http://continuousdeliveryexperience.com 7
http://www.rss4java.com 7
http://polyawesomeism.wordpress.com 6
https://si0.twimg.com 6
http://gradlesummit.com 6
http://www.newsblur.com 5
http://us-w1.rockmelt.com 4
http://raible18.rssing.com 3
http://apps.synaptive.net 3
http://optimizelyedit.appspot.com 3
http://progrnotes.blogspot.de 3
http://news.google.com 3
http://endurant2.rssing.com 3
http://progrnotes.blogspot.gr 2
http://biliousness2.rssing.com 2
http://twitter.com 2
http://www.dzone.com 2
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

110 of 10 previous next Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • thanks, very usefull
    Are you sure you want to
    Your message goes here
    Processing…
  • http://javawebapplication.blogspot.in/
    Are you sure you want to
    Your message goes here
    Processing…
  • Thank you Matt for sharing your analysis on web-frameworks.

    Excellent valuable statements from the author in the last slides 'There are lots of awesome choices, think your self and do not forget modern princeples in webdevelopment'.
    Some times component & MVC based framewroks fits into your requirement though it is not much popular & less job market and not really good webframeworks for developers and business.
    Eg: I believe the chances of JSF 2.x adaptability for developers and business/product owners is very less; according to my experience with JSF2.1 with PrimeFaces for a commercial CRUD webapp with 35 to 100 users.

    It would be good to try with dropwizard, because considering modern webapp principles - mobile first/restful end points, easy deployment & testable, inbuilt health check.

    It would be thought provoking and innovative to look into dropwizard, One ASP.net (Visual studio 2013), websockets and parallel programming(async) besides the modern principles as the author mentioned. Though your target web-app runs on JVM, there are developer friendly features in Visual Studio, it gives some good that and may help you to respect non-java developers.

    I think we should always consider mobile friendly and cloud friendly without deviating from the goal of our work/project.
    Are you sure you want to
    Your message goes here
    Processing…
  • Thanks a lot!!!!
    Are you sure you want to
    Your message goes here
    Processing…
  • Thank you very much. I had set out do the similar research and stumbled upon your work. You have saved me hours worth of research effort. Thanks again.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Comparing JVM Web Frameworks - Jfokus 2012 Comparing JVM Web Frameworks - Jfokus 2012 Presentation Transcript

    • COMPARING JVM WEB FRAMEWORKS Matt Raible http://raibledesigns.com Photos by Trish -Photos by Trish McGinity - http://mcginityphoto.com http://mcginityphoto.com
    • Introductions‣ Your experience with web development?‣ Your experience with Java EE development?‣ What do you want to get from this session?‣ Experience with Grails, GWT, Rails, Spring MVC, Wicket, Tapestry or Play? © 2012 Raible Designs 2
    • Who is Matt Raible? Father, Skier, Cyclist Web Framework ConnoisseurFounder of AppFuse Blogger on raibledesigns.com © 2012 Raible Designs
    • Session Agenda‣ The Problem with Web Frameworks‣ The Candidates‣ Comparison Points‣ The Matrix‣ Conclusion‣ Q and A © 2012 Raible Designs 4
    • The Problem © 2012 Raible Designs 5
    • The Real Problem © 2012 Raible Designs 6
    • The Real Problem © 2012 Raible Designs 7
    • The Real Problem © 2012 Raible Designs 8
    • How do you choose? © 2012 Raible Designs 9
    • Eliminate, Don’t Include © 2012 Raible Designs 10
    • © 2012 Raible Designs
    • © 2012 Raible Designs
    • Craig McClanahan on Rails... 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 todevelop in Rails -- for the conciseness mentioned above,but also because I dont ever have to do a "build" or"deploy" step during my development cycle any more. Butyou guys and gals need to be reminded that *this* is the kindof thing you are competing against if you expect to attractRails developers ... or to avoid even more "previously Javaweb developer" defectors like me :-). -- Craig McClanahan, 10/23/2007 http://markmail.org/thread/qfb5sekad33eobh2 © 2012 Raible Designs 13
    • James Gosling on JSF http://www.youtube.com/watch?v=9ei-rbULWoA#t=47m © 2012 Raible Designs 14
    • 2010: Comparison Points‣ Developer Productivity‣ Developer Perception‣ Learning Curve‣ Project Health‣ Developer Availability‣ Job Trends © 2012 Raible Designs 15
    • 2010: Comparison Points‣ Templating‣ Components‣ Ajax‣ Plugins or Add-Ons‣ Scalability‣ Testing Support © 2012 Raible Designs 16
    • 2010: Comparison Points‣ i18n and l10n‣ Validation‣ Multi-language Support (Groovy / Scala)‣ Quality of Documentation/Tutorials‣ Books Published‣ REST Support (client and server) © 2012 Raible Designs 17
    • 2010: Comparison Points‣ Mobile / iPhone Support‣ Degree of Risk © 2012 Raible Designs 18
    • Comparison Matrix http://bit.ly/jvm-frameworks-matrix © 2012 Raible Designs 19
    • Matrix Results 18 17.5 17 17 17 15.5 15 15 13.5 14.5 14 14 13.513.5 11.5 9 4.5 0 ails g ils T din t ry 2 s y x F Lift e Pla ipe Fle JS rin GW est ck uts Ra a Gr Sp Str Va Wi Tap Str © 2012 Raible Designs 20
    • Matrix Results‣ Grails (17.5)‣ GWT (17)‣ Ruby on Rails (17)‣ Spring MVC (17)‣ Vaadin (15.5)‣ Tapestry and Wicket (15) © 2012 Raible Designs 21
    • Weighted Matrix © 2012 Raible Designs 22
    • Weighted Results‣ Grails (90)‣ Spring MVC (85)‣ Ruby on Rails (82.5)‣ Vaadin (82.5)‣ Play (82.5)‣ GWT (80) © 2012 Raible Designs 23
    • Fighting for 5th‣ Top at Devoxx 2010 - GWT - Rails - Spring MVC - Grails - Wicket / Struts 2 © 2012 Raible Designs 24
    • Fighting for 5th‣ Top at Rich Web Experience 2010 - Grails - GWT - Rails - Spring MVC - Tapestry / Vaadin © 2012 Raible Designs 25
    • Fighting for 5th‣ Top at TheServerSide Java Symposium 2010 - Grails - GWT - Rails - Spring MVC - Vaadin © 2012 Raible Designs 26
    • Ratings Logic‣ Developer Productivity‣ Developer Perception‣ Learning Curve‣ Project Health‣ Developer Availability‣ Job Trends © 2012 Raible Designs 27
    • Ratings Logic‣ Templating‣ Components‣ Ajax‣ Plugins or Add-Ons‣ Scalability‣ Testing Support © 2012 Raible Designs 28
    • Ratings Logic‣ i18n and l10n‣ Validation‣ Multi-language Support (Groovy / Scala)‣ Quality of Documentation/Tutorials‣ Books Published‣ REST Support (client and server) © 2012 Raible Designs 29
    • Ratings Logic‣ Mobile / iPhone Support‣ Degree of Risk http://raibledesigns.com/rd/entry/ how_i_calculated_ratings_for © 2012 Raible Designs 30
    • 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 © 2012 Raible Designs 31
    • 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 © 2012 Raible Designs 32
    • 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 © 2012 Raible Designs 33
    • Peter Thomas’s Perfbench‣ Peter’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. © 2012 Raible Designs 34
    • World Wide Wait - Devoxx http://www.parleys.com/d/2942 © 2012 Raible Designs 35
    • World Wide Wait - Devoxx © 2012 Raible Designs 36
    • World Wide Wait - Devoxx © 2012 Raible Designs 37
    • World Wide Wait - Devoxx © 2012 Raible Designs 38
    • World Wide Wait - Devoxx © 2012 Raible Designs 39
    • World Wide Wait - Devoxx HybridJava beats JSF, Wicket and Spring MVC by perfomance. © 2012 Raible Designs 40
    • HybridJava - Really? © 2012 Raible Designs 41
    • Pros and Cons © 2012 Raible Designs 42
    • Grails‣ Pros - Easy dynamic language transition for Java Developers - Groovy - Plugins for all types of applications‣ Cons - Groovy learning targets Java Developers - Stack traces are horrendous - Knowledge of underlying frameworks not required, but helpful © 2012 Raible Designs 43
    • GWT‣ Pros - Write Java => Produces Optimized JavaScript - Easy to learn and develop with standard Java Tools - Vibrant Community‣ Cons - You have to know Java - Slow to compile, difficult to test - More like a JSP Tag Library than a web framework © 2012 Raible Designs 44
    • Ruby on Rails‣ Pros - Easy to learn and understand for Web Developers - Lots and lots of documentation - Passionate Community‣ Cons - Slightly less performant by default - Dynamic language means more tests - Development Tools and Debugging © 2012 Raible Designs 45
    • Spring MVC‣ Pros - Easy Configuration with Annotations and Conventions - Integrates with many view options seamlessly: JSP/ JSTL, Tiles, FreeMarker, Excel, PDF, JSON - Excellent REST Support‣ Cons - 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!) © 2012 Raible Designs 46
    • Vaadin‣ Pros - Uses GWT API for developing view - Vibrant Community and company backing - Excellent Themes and Layouts support‣ Cons - Large memory footprint, state stored in session - Sketchy (?) because backed by a commercial organization - Joonas keeps telling me my cons are wrong © 2012 Raible Designs 47
    • Wicket‣ Pros - Great for Java Developers - Tight binding between pages and views - Active community - support from creators‣ Cons - No Jobs or Developers - Stateful by default - HTML Templates live next to Java code by default © 2012 Raible Designs 48
    • Tapestry‣ Pros - Live Class Reloading - Development emphasis on performance and scalability - Excellent Exception Reporting‣ Cons - No Jobs - Prototype baked in for JS Library - Annotations vs. Conventions © 2012 Raible Designs 49
    • Pretty Graphs © 2012 Raible Designs 50
    • LOC in AppFuse Light JSF Spring Stripes Struts 2 Tapestry 5 Wicket 5000 3750 2500 1250 0 JavaScript XML CSS Java © 2012 Raible Designs 51
    • Jobs on Dice (World) 700 525 350 175 0 g ils T s et try din F ail JS rin GW ick Ra es a Gr Sp Va W p Ta © 2012 Raible Designs 52
    • LinkedIn Skills (World) 40,000 30,000 20,000 10,000 0 ils g T ails ry t din F e JS rin GW est ck Ra a Gr Sp Va Wi Tap © 2012 Raible Designs 53
    • Pretty Graphs © 2012 Raible Designs 54
    • Pretty Graphs © 2012 Raible Designs 55
    • Pretty Graphs © 2012 Raible Designs 56
    • Pretty Graphs © 2012 Raible Designs 57
    • Pretty Graphs © 2012 Raible Designs 58
    • Pretty Graphs © 2012 Raible Designs 59
    • Pretty Graphs © 2012 Raible Designs 60
    • Pretty Graphs © 2012 Raible Designs 61
    • Pretty Graphs © 2012 Raible Designs 62
    • Mailing List Traffic Wicket 1841 GWT 1753 Grails 1635 Rails 1604 Tapestry 1538 Play 1451 0 475 950 1425 1900* Spring MVC and Vaadin use Forums, which don’t provide this data. © 2012 Raible Designs 63
    • Books on Amazon Rails Spring MVC GWT Grails Wicket Tapestry 5 Vaadin 0 75 150 225 300 © 2012 Raible Designs 64
    • 2011 Releases As of August 24, 2011 0 4 8 12 16 Grails GWT Rails Spring MVC Vaadin Tapestry Wicket © 2012 Raible Designs 65
    • StackOverflow Tagged Questions (August 24, 2011) 50,000 37,500 25,000 12,500 Grails 0 Rails Vaadin © 2012 Raible Designs 66
    • StackOverflow Tagged Questions (August 24, 2011) 10,000 7,500 5,000 2,500 Spring 0 JSF GWT Grails Wicket © 2012 Raible Designs 67
    • StackOverflow Tagged Questions (August 24, 2011) 200000 150000 100000 50000 Java 0 Scala Groovy Clojure JRuby © 2012 Raible Designs 68
    • StackOverflow Tagged Questions (August 24, 2011) 6000 4500 3000 1500 Scala 0 Groovy Clojure JRuby © 2012 Raible Designs 69
    • Framework PopularitySource: ZeroTurnarounds Java EE Productivity Report 2010 © 2012 Raible Designs 70
    • What we need is... © 2012 Raible Designs 71
    • Innovators © 2012 Raible Designs 72
    • Modern Principles © 2012 Raible Designs 73
    • Web Developers © 2012 Raible Designs 74
    • 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/ © 2012 Raible Designs 75
    • The Modern Web Developer‣ ... embraces JavaScript‣ ... is learning mobile frameworks - jQuery Mobile, Sencha Touch, PhoneGap or Native‣ ... is using HTML5 and CSS3‣ ... is developing REST APIs with the stateless framework that best supports their language‣ IE6 is dead, IE7 isn’t far behind... © 2012 Raible Designs 76
    • You have to decide... Are you a web developer? © 2012 Raible Designs 77
    • You have to decide... Or are you a services developer? © 2012 Raible Designs 78
    • Client-Side MVC © 2012 Raible Designs 79
    • Developer Productivity http://zeroturnaround.com/blog/ developer-productivity-report-part-1-developer-timesheet/ © 2012 Raible Designs 80
    • Developer Productivity http://zeroturnaround.com/blog/ developer-productivity-report-part-3-developer-efficiency/ © 2012 Raible Designs 81
    • There is no “best” framework Just lots of awesome choices... © 2012 Raible Designs 82
    • Don’t listen to me! © 2012 Raible Designs 83
    • Choose your own!‣ 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!‣ ... Or just pick one and get to work... © 2012 Raible Designs 84
    • But don’t forget... © 2012 Raible Designs 85
    • Questions?‣ Contact - http://raibledesigns.com - @mraible‣ Download - http://slideshare.net/mraible © 2012 Raible Designs 86