Comparing JVM Web Frameworks - 33rd Degree

Matt Raible
Matt RaibleWeb Developer, Java Champion, and Developer Advocate at Okta
COMPARING JVM WEB
   FRAMEWORKS
                   Matt Raible
             http://raibledesigns.com




Images by Stuck in Customs - http://www.flickr.com/photos/stuckincustoms
                            © 2011 Raible Designs
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?

                            © 2011, Raible Designs
Blogger on raibledesigns.com
                                             Father, Skier,
                                                Cyclist




Founder of AppFuse


                               Web Framework Connoisseur


  Who is Matt Raible?
                                                © 2011, Raible Designs
SESSION AGENDA

The Problem with Web Frameworks

The Candidates

Comparison Points

The Matrix

Conclusion

Q 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 I'd *love* to see life made simpler for Java web
developers, and a lot of the things happening in Struts2 are
going that way -- it won't be me doing it.

I've gone over to the dark side :-) and much prefer to develop
in Rails -- for the conciseness mentioned above, but also
because I don't ever have to do a "build" or "deploy" step
during my development cycle any more. But you guys and
gals need to be reminded that *this* is the kind of thing you
are competing against if you expect to attract Rails
developers ... or to avoid even more "previously Java web
developer" 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
          FACTORS
Request, Component or RIA Framework

Ease of Development

Project Community

Project Future and Roadmap

Maintenance

Technical Features

                                      © 2011, Raible Designs
CHOOSING A
          FRAMEWORK
Choose a short list of frameworks to prototype with.

Create an application prototype with each
framework.

Document findings and create a matrix with
important criteria.

Create presentation to summarize document.

Deliver document, presentation and
recommendation.
                                                © 2011, Raible Designs
2011: NOW THERE’S 20

1. Developer Productivity

2. Developer Perception

3. Learning Curve

4. Project Health

5. Developer Availability

6. Job Trends

                            © 2011, Raible Designs
2011: COMPARISON POINTS

7. Templating

8. Components

9. Ajax

10. Plugins or Add-Ons

11. Scalability

12. Testing Support

                         © 2011, Raible Designs
2011: COMPARISON POINTS

13. i18n and l10n

14. Validation

15. Multi-language Support (Groovy / Scala)

16. Quality of Documentation/Tutorials

17. Books Published

18. REST Support (client and server)

                                              © 2011, Raible Designs
2011: COMPARISON POINTS

19. Mobile / iPhone Support

20. Degree of Risk




                              © 2011, Raible Designs
COMPARISON MATRIX




 http://bit.ly/jvm-frameworks-matrix

                                       © 2011, Raible Designs
MATRIX RESULTS

 18
       17.5 17         17    17
                                  15.5 15   15 14.5
13.5                                                14   14 13.5 13.5
                                                                        11.5
  9


 4.5


  0
        ils

                 g
                        ls

                             T
                                         din

                                         k et

                                            y
                                         ts 2

                                         pes

                                            y

                                                             x
                                                                  JSF

                                                                        Lift
                                                            Fle
                  in




                                      estr




                                       Pla
                             GW
                       Rai
       G ra




                                    Wic
              Spr




                                   Vaa




                                   Stru

                                    Stri
                                  Tap




                                                                          © 2011, Raible Designs
MATRIX RESULTS

Grails (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 RESULTS

Grails (90)

Spring MVC (85)

Ruby on Rails (82.5)

Vaadin (82.5)

Play (82.5)

GWT (80)

                       © 2011, Raible Designs
FIGHTING FOR 5TH

Top at Devoxx 2010! !

  GWT! !

  Rails! !

  Spring MVC! !

  Grails! !

  Wicket / Struts 2

                        © 2011, Raible Designs
FIGHTING FOR 5TH

Top at Rich Web Experience 2010

  Grails

  GWT

  Rails

  Spring MVC

  Tapestry / Vaadin

                                  © 2011, Raible Designs
FIGHTING FOR 5TH

Top at TheServerSide Java Symposium 2010

  Grails

  GWT

  Rails

  Spring MVC

  Vaadin

                                           © 2011, Raible Designs
RATINGS LOGIC

1. Developer Productivity

2. Developer Perception

3. Learning Curve

4. Project Health

5. Developer Availability

6. Job Trends

                            © 2011, Raible Designs
RATINGS LOGIC

7. Templating

8. Components

9. Ajax

10. Plugins or Add-Ons

11. Scalability

12. Testing Support

                          © 2011, Raible Designs
RATINGS LOGIC

13. i18n and l10n

14. Validation

15. Multi-language Support (Groovy / Scala)

16. Quality of Documentation/Tutorials

17. Books Published

18. REST Support (client and server)

                                              © 2011, Raible Designs
RATINGS LOGIC

19. Mobile / iPhone Support

20. Degree of Risk




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


                                                                 © 2011, 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, it's zero.

* Matt's scale is 0-1 and my ratings are on Matt's scale, except mine goes to 11.

          http://lift.la/my-take-on-matt-raibles-spreadsheet

                                                                       © 2011, 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




                                               © 2011, 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

                                                © 2011, Raible Designs
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.

                                                      © 2011, Raible Designs
PROS AND CONS




                © 2011, Raible Designs
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

                                                         © 2011, Raible Designs
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

                                                       © 2011, Raible Designs
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

                                                    © 2011, Raible Designs
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!)

                                                               © 2011, Raible Designs
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.

  All client interactions communicate with server.

  Joonas keeps telling me my cons are wrong.

                                                     © 2011, Raible Designs
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

                                                     © 2011, Raible Designs
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

                                                        © 2011, Raible Designs
LANGUAGE
              PERFORMANCE
                                 Time (ms) per iteration

             600



             400



             200



                0
                       Java      C++     JRuby Python Groovy PHP

http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-
                                    jruby-groovy/

                                                                                  © 2011, Raible Designs
JOBS IN 2011 (US)
700


525


350


175


  0
        ils


              T


                    ls


                              g


                                      stry


                                               t


                                                         din
                                                ke
                               in
              GW


                   Rai
       G ra




                                             Wic
                           Spr




                                                     Vaa
                                        e
                                    Tap

                         Dice.com

                                                               © 2011, Raible Designs
DEVELOPER SKILLS (US)
11,000


8,250


5,500


2,750


    0
          ils



                T


                      ls



                                g


                                        stry



                                                 t


                                                           din
                                                  ke
                                 in
                GW



                     Rai
         G ra




                                               Wic
                             Spr




                                                       Vaa
                                          e
                                      Tap
                           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


                      0              750              1500    2250   3000

                                               January 2011

* Spring MVC uses Forums, which don’t provide this data.
                                                                        © 2011, Raible Designs
JSF LIST TRAFFIC

         PrimeFaces


           RichFaces


             MyFaces


        Majorra (RI)


                         0                500            1000       1500   2000

                                                     January 2011

* ICEfaces uses Forums, which don’t provide this data.
                                                                            © 2011, Raible Designs
MAILING LIST TRAFFIC

                GWT

                Rails

               Grails

                 Play

        PrimeFaces


                        0               575             1150         1725   2300

                                                  January 2011

* 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



                              Tapestry




Source: http://markmail.org              GWT

                                               © 2011, Raible Designs
BOOKS ON AMAZON
     Grails

     GWT

      Rails

Spring MVC

    Wicket

 Tapestry 5

    Vaadin

              0   50       100        150   200

                       January 2011

                                            © 2011, Raible Designs
2010 RELEASES
                     As of October 28, 2010


             0   6             12             18   24

   Grails

    GWT

     Rails

Spring MVC

    Vaadin




                                                        © 2011, Raible Designs
STACKOVERFLOW
           Tagged Questions (March 8, 2011)



                                                    40,000


                                                   30,000


                                                   20,000


                                               10,000

Grails                                         0
         GWT
                Rails
                        Spring MVC
                                      Vaadin

                                                            © 2011, Raible Designs
STACKOVERFLOW
          Tagged Questions (February 15, 2011)



                                                       6,000


                                                      4,500


                                                      3,000


                                                  1,500

Spring                                            0
         GWT
                 Grails
                           Wicket
                                       Tapestry

                                                               © 2011, Raible Designs
STACKOVERFLOW
          Tagged Questions (February 15, 2011)



                                                      100000


                                                     75000


                                                     50000


                                                 25000

Java                                             0
       Scala
               JRuby
                          Clojure
                                      Groovy

                                                             © 2011, Raible Designs
STACKOVERFLOW
         Tagged Questions (February 15, 2011)



                                                     4000


                                                    3000


                                                    2000


                                                1000


Scala                                           0
        JRuby
                    Clojure
                                   Groovy

                                                            © 2011, Raible Designs
STACKOVERFLOW
         Tagged Questions (October 28, 2010)



                                                    80000


                                                   60000


                                                   40000


                                               20000

Java                                           0
       PHP
              .NET
                        Python
                                      Ruby

                                                            © 2011, Raible Designs
FRAMEWORK POPULARITY




Source: ZeroTurnaround's Java EE Productivity Report 2010


                                                            © 2011, Raible Designs
CONCLUSION
What if there is no “best” web framework?
                                                         © 2011, Raible Designs
http://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 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!


                                                    © 2011, Raible Designs
QUESTIONS?

Contact Information

  http://raibledesigns.com
  http://twitter.com/mraible

Download Presentation

  http://slideshare.net/mraible




                                  © 2011, Raible Designs
1 of 69

Recommended

Comparing JVM Web Frameworks - TSSJS 2011 by
Comparing JVM Web Frameworks - TSSJS 2011Comparing JVM Web Frameworks - TSSJS 2011
Comparing JVM Web Frameworks - TSSJS 2011Matt Raible
4.9K views66 slides
Comparing JVM Web Frameworks - Devoxx 2010 by
Comparing JVM Web Frameworks - Devoxx 2010Comparing JVM Web Frameworks - Devoxx 2010
Comparing JVM Web Frameworks - Devoxx 2010Matt Raible
33K views56 slides
The Modern Java Web Developer - Denver JUG 2013 by
The Modern Java Web Developer - Denver JUG 2013The Modern Java Web Developer - Denver JUG 2013
The Modern Java Web Developer - Denver JUG 2013Matt Raible
160.7K views80 slides
Comparing JVM Web Frameworks - Jfokus 2012 by
Comparing JVM Web Frameworks - Jfokus 2012Comparing JVM Web Frameworks - Jfokus 2012
Comparing JVM Web Frameworks - Jfokus 2012Matt Raible
25.5K views86 slides
Web Frameworks of the Future by
Web Frameworks of the FutureWeb Frameworks of the Future
Web Frameworks of the Futureelliando dias
839 views37 slides
20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』 by
20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』
20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』Ryo RKTM
943 views36 slides

More Related Content

What's hot

Kann JavaScript elegant sein? by
Kann JavaScript elegant sein?Kann JavaScript elegant sein?
Kann JavaScript elegant sein?jbandi
881 views64 slides
GR8Conf 2015 - Spring Boot and Groovy. What more do you need? by
GR8Conf 2015 - Spring Boot and Groovy. What more do you need?GR8Conf 2015 - Spring Boot and Groovy. What more do you need?
GR8Conf 2015 - Spring Boot and Groovy. What more do you need?Iván López Martín
3.2K views29 slides
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK by
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKHTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKDavid Wesst
1.1K views70 slides
Handle the error by
Handle the errorHandle the error
Handle the errorCocoaHeads France
4.4K views17 slides
Why every startup built with Ruby on Rails has an upper hand over their compe... by
Why every startup built with Ruby on Rails has an upper hand over their compe...Why every startup built with Ruby on Rails has an upper hand over their compe...
Why every startup built with Ruby on Rails has an upper hand over their compe...DreamToIPO
595 views17 slides
What's This React Native Thing I Keep Hearing About? by
What's This React Native Thing I Keep Hearing About?What's This React Native Thing I Keep Hearing About?
What's This React Native Thing I Keep Hearing About?Evan Stone
691 views103 slides

What's hot(20)

Kann JavaScript elegant sein? by jbandi
Kann JavaScript elegant sein?Kann JavaScript elegant sein?
Kann JavaScript elegant sein?
jbandi881 views
GR8Conf 2015 - Spring Boot and Groovy. What more do you need? by Iván López Martín
GR8Conf 2015 - Spring Boot and Groovy. What more do you need?GR8Conf 2015 - Spring Boot and Groovy. What more do you need?
GR8Conf 2015 - Spring Boot and Groovy. What more do you need?
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK by David Wesst
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKHTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
David Wesst1.1K views
Why every startup built with Ruby on Rails has an upper hand over their compe... by DreamToIPO
Why every startup built with Ruby on Rails has an upper hand over their compe...Why every startup built with Ruby on Rails has an upper hand over their compe...
Why every startup built with Ruby on Rails has an upper hand over their compe...
DreamToIPO595 views
What's This React Native Thing I Keep Hearing About? by Evan Stone
What's This React Native Thing I Keep Hearing About?What's This React Native Thing I Keep Hearing About?
What's This React Native Thing I Keep Hearing About?
Evan Stone691 views
The JavaScript Delusion by JUGBD
The JavaScript DelusionThe JavaScript Delusion
The JavaScript Delusion
JUGBD256 views
Java Clients and JavaFX: The Definitive Guide by Stephen Chin
Java Clients and JavaFX: The Definitive GuideJava Clients and JavaFX: The Definitive Guide
Java Clients and JavaFX: The Definitive Guide
Stephen Chin435 views
Ruby and iOS: An inside look by Jeanine Jue
Ruby and iOS: An inside lookRuby and iOS: An inside look
Ruby and iOS: An inside look
Jeanine Jue528 views
Ruby Kaigi09 China Rubyupdate20090718 by tengu
Ruby Kaigi09 China Rubyupdate20090718Ruby Kaigi09 China Rubyupdate20090718
Ruby Kaigi09 China Rubyupdate20090718
tengu786 views
Upgrading JavaScript to ES6 and using TypeScript as a shortcut by Christian Heilmann
Upgrading JavaScript to ES6 and using TypeScript as a shortcutUpgrading JavaScript to ES6 and using TypeScript as a shortcut
Upgrading JavaScript to ES6 and using TypeScript as a shortcut
Christian Heilmann709 views
React native sharing by Sam Lee
React native sharingReact native sharing
React native sharing
Sam Lee815 views
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK by David Wesst
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SKJavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
David Wesst1.7K views
Getting Started with Angular - Stormpath Webinar, January 2017 by Matt Raible
Getting Started with Angular - Stormpath Webinar, January 2017Getting Started with Angular - Stormpath Webinar, January 2017
Getting Started with Angular - Stormpath Webinar, January 2017
Matt Raible718 views
NodeJS for Novices - 28/Oct/13 - Winnipeg, MB by David Wesst
NodeJS for Novices - 28/Oct/13 - Winnipeg, MBNodeJS for Novices - 28/Oct/13 - Winnipeg, MB
NodeJS for Novices - 28/Oct/13 - Winnipeg, MB
David Wesst988 views
jQuery Conference 2012 keynote by dmethvin
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynote
dmethvin20.4K views

Similar to Comparing JVM Web Frameworks - 33rd Degree

Comparing JVM Web Frameworks - Rich Web Experience 2010 by
Comparing JVM Web Frameworks - Rich Web Experience 2010Comparing JVM Web Frameworks - Rich Web Experience 2010
Comparing JVM Web Frameworks - Rich Web Experience 2010Matt Raible
1.8K views68 slides
Comparing JVM Web Frameworks - Spring I/O 2012 by
Comparing JVM Web Frameworks - Spring I/O 2012Comparing JVM Web Frameworks - Spring I/O 2012
Comparing JVM Web Frameworks - Spring I/O 2012Matt Raible
12.7K views87 slides
Choosing a JVM Web Framework by
Choosing a JVM Web FrameworkChoosing a JVM Web Framework
Choosing a JVM Web FrameworkMatt Raible
1.5K views40 slides
Comparing JVM Web Frameworks - February 2014 by
Comparing JVM Web Frameworks - February 2014Comparing JVM Web Frameworks - February 2014
Comparing JVM Web Frameworks - February 2014Matt Raible
157.6K views95 slides
Comparing javawebframeworks apacheconus2007 by
Comparing javawebframeworks apacheconus2007Comparing javawebframeworks apacheconus2007
Comparing javawebframeworks apacheconus2007Geococcyx
128 views48 slides
Ruby On Rails Seminar Basis Softexpo Feb2010 by
Ruby On Rails Seminar Basis Softexpo Feb2010Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010arif44
2.3K views90 slides

Similar to Comparing JVM Web Frameworks - 33rd Degree(20)

Comparing JVM Web Frameworks - Rich Web Experience 2010 by Matt Raible
Comparing JVM Web Frameworks - Rich Web Experience 2010Comparing JVM Web Frameworks - Rich Web Experience 2010
Comparing JVM Web Frameworks - Rich Web Experience 2010
Matt Raible1.8K views
Comparing JVM Web Frameworks - Spring I/O 2012 by Matt Raible
Comparing JVM Web Frameworks - Spring I/O 2012Comparing JVM Web Frameworks - Spring I/O 2012
Comparing JVM Web Frameworks - Spring I/O 2012
Matt Raible12.7K views
Choosing a JVM Web Framework by Matt Raible
Choosing a JVM Web FrameworkChoosing a JVM Web Framework
Choosing a JVM Web Framework
Matt Raible1.5K views
Comparing JVM Web Frameworks - February 2014 by Matt Raible
Comparing JVM Web Frameworks - February 2014Comparing JVM Web Frameworks - February 2014
Comparing JVM Web Frameworks - February 2014
Matt Raible157.6K views
Comparing javawebframeworks apacheconus2007 by Geococcyx
Comparing javawebframeworks apacheconus2007Comparing javawebframeworks apacheconus2007
Comparing javawebframeworks apacheconus2007
Geococcyx128 views
Ruby On Rails Seminar Basis Softexpo Feb2010 by arif44
Ruby On Rails Seminar Basis Softexpo Feb2010Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010
arif442.3K views
Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket by Matt Raible
Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and WicketComparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket
Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket
Matt Raible39.8K views
Getting Started with HTML5 in Tech Com (STC 2012) by Peter Lubbers
Getting Started with HTML5 in Tech Com (STC 2012)Getting Started with HTML5 in Tech Com (STC 2012)
Getting Started with HTML5 in Tech Com (STC 2012)
Peter Lubbers45.4K views
Developing Single Page Apps with Ember.js by Leo Hernandez
Developing Single Page Apps with Ember.jsDeveloping Single Page Apps with Ember.js
Developing Single Page Apps with Ember.js
Leo Hernandez506 views
Comparing JVM Web Frameworks - Devoxx France 2013 by Matt Raible
Comparing JVM Web Frameworks - Devoxx France 2013Comparing JVM Web Frameworks - Devoxx France 2013
Comparing JVM Web Frameworks - Devoxx France 2013
Matt Raible122.1K views
ACADGILD:: FRONTEND LESSON -Ruby on rails vs groovy on rails by Padma shree. T
ACADGILD:: FRONTEND LESSON -Ruby on rails vs groovy on railsACADGILD:: FRONTEND LESSON -Ruby on rails vs groovy on rails
ACADGILD:: FRONTEND LESSON -Ruby on rails vs groovy on rails
Padma shree. T116 views
Ror Seminar With agilebd.org on 23 Jan09 by Shaer Hassan
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09
Shaer Hassan972 views
Rails On Spring by swamy g
Rails On SpringRails On Spring
Rails On Spring
swamy g1.9K views
Mvvm is like born fraction by Ken Haneda
Mvvm is like born fractionMvvm is like born fraction
Mvvm is like born fraction
Ken Haneda1.5K views
December 4 SDForum Java Sig Presentation by Jonathan Abrams
December 4 SDForum Java Sig PresentationDecember 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig Presentation
Jonathan Abrams2.6K views
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente... by Katy Slemon
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
Katy Slemon33 views

More from Matt Raible

Micro Frontends for Java Microservices - Belfast JUG 2022 by
Micro Frontends for Java Microservices - Belfast JUG 2022Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022Matt Raible
26 views57 slides
Micro Frontends for Java Microservices - Dublin JUG 2022 by
Micro Frontends for Java Microservices - Dublin JUG 2022Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022Matt Raible
18 views56 slides
Micro Frontends for Java Microservices - Cork JUG 2022 by
Micro Frontends for Java Microservices - Cork JUG 2022Micro Frontends for Java Microservices - Cork JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022Matt Raible
7 views56 slides
Comparing Native Java REST API Frameworks - Seattle JUG 2022 by
Comparing Native Java REST API Frameworks - Seattle JUG 2022Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022Matt Raible
48 views87 slides
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022 by
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022Matt Raible
105 views42 slides
Comparing Native Java REST API Frameworks - Devoxx France 2022 by
Comparing Native Java REST API Frameworks - Devoxx France 2022Comparing Native Java REST API Frameworks - Devoxx France 2022
Comparing Native Java REST API Frameworks - Devoxx France 2022Matt Raible
129 views86 slides

More from Matt Raible(20)

Micro Frontends for Java Microservices - Belfast JUG 2022 by Matt Raible
Micro Frontends for Java Microservices - Belfast JUG 2022Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022
Matt Raible26 views
Micro Frontends for Java Microservices - Dublin JUG 2022 by Matt Raible
Micro Frontends for Java Microservices - Dublin JUG 2022Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022
Matt Raible18 views
Micro Frontends for Java Microservices - Cork JUG 2022 by Matt Raible
Micro Frontends for Java Microservices - Cork JUG 2022Micro Frontends for Java Microservices - Cork JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022
Matt Raible7 views
Comparing Native Java REST API Frameworks - Seattle JUG 2022 by Matt Raible
Comparing Native Java REST API Frameworks - Seattle JUG 2022Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022
Matt Raible48 views
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022 by Matt Raible
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Matt Raible105 views
Comparing Native Java REST API Frameworks - Devoxx France 2022 by Matt Raible
Comparing Native Java REST API Frameworks - Devoxx France 2022Comparing Native Java REST API Frameworks - Devoxx France 2022
Comparing Native Java REST API Frameworks - Devoxx France 2022
Matt Raible129 views
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne... by Matt Raible
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Matt Raible98 views
Java REST API Framework Comparison - PWX 2021 by Matt Raible
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021
Matt Raible148 views
Web App Security for Java Developers - PWX 2021 by Matt Raible
Web App Security for Java Developers - PWX 2021Web App Security for Java Developers - PWX 2021
Web App Security for Java Developers - PWX 2021
Matt Raible134 views
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ... by Matt Raible
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Matt Raible186 views
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker... by Matt Raible
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Matt Raible140 views
Web App Security for Java Developers - UberConf 2021 by Matt Raible
Web App Security for Java Developers - UberConf 2021Web App Security for Java Developers - UberConf 2021
Web App Security for Java Developers - UberConf 2021
Matt Raible152 views
Java REST API Framework Comparison - UberConf 2021 by Matt Raible
Java REST API Framework Comparison - UberConf 2021Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021
Matt Raible150 views
Native Java with Spring Boot and JHipster - SF JUG 2021 by Matt Raible
Native Java with Spring Boot and JHipster - SF JUG 2021Native Java with Spring Boot and JHipster - SF JUG 2021
Native Java with Spring Boot and JHipster - SF JUG 2021
Matt Raible69 views
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin... by Matt Raible
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Matt Raible182 views
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021 by Matt Raible
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Matt Raible182 views
Get Hip with JHipster - Colorado Springs Open Source User Group 2021 by Matt Raible
Get Hip with JHipster - Colorado Springs Open Source User Group 2021Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Matt Raible149 views
JHipster and Okta - JHipster Virtual Meetup December 2020 by Matt Raible
JHipster and Okta - JHipster Virtual Meetup December 2020JHipster and Okta - JHipster Virtual Meetup December 2020
JHipster and Okta - JHipster Virtual Meetup December 2020
Matt Raible225 views
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020 by Matt Raible
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Matt Raible433 views
Security Patterns for Microservice Architectures - SpringOne 2020 by Matt Raible
Security Patterns for Microservice Architectures - SpringOne 2020Security Patterns for Microservice Architectures - SpringOne 2020
Security Patterns for Microservice Architectures - SpringOne 2020
Matt Raible329 views

Recently uploaded

"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur by
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur
"Thriving Culture in a Product Company — Practical Story", Volodymyr TsukurFwdays
40 views31 slides
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor... by
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...Vadym Kazulkin
70 views64 slides
Empathic Computing: Delivering the Potential of the Metaverse by
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the MetaverseMark Billinghurst
449 views80 slides
GigaIO: The March of Composability Onward to Memory with CXL by
GigaIO: The March of Composability Onward to Memory with CXLGigaIO: The March of Composability Onward to Memory with CXL
GigaIO: The March of Composability Onward to Memory with CXLCXL Forum
126 views12 slides
Business Analyst Series 2023 - Week 3 Session 5 by
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5DianaGray10
165 views20 slides
JCon Live 2023 - Lice coding some integration problems by
JCon Live 2023 - Lice coding some integration problemsJCon Live 2023 - Lice coding some integration problems
JCon Live 2023 - Lice coding some integration problemsBernd Ruecker
67 views85 slides

Recently uploaded(20)

"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur by Fwdays
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur
Fwdays40 views
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor... by Vadym Kazulkin
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
Vadym Kazulkin70 views
Empathic Computing: Delivering the Potential of the Metaverse by Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst449 views
GigaIO: The March of Composability Onward to Memory with CXL by CXL Forum
GigaIO: The March of Composability Onward to Memory with CXLGigaIO: The March of Composability Onward to Memory with CXL
GigaIO: The March of Composability Onward to Memory with CXL
CXL Forum126 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10165 views
JCon Live 2023 - Lice coding some integration problems by Bernd Ruecker
JCon Live 2023 - Lice coding some integration problemsJCon Live 2023 - Lice coding some integration problems
JCon Live 2023 - Lice coding some integration problems
Bernd Ruecker67 views
Web Dev - 1 PPT.pdf by gdsczhcet
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdf
gdsczhcet52 views
The details of description: Techniques, tips, and tangents on alternative tex... by BookNet Canada
The details of description: Techniques, tips, and tangents on alternative tex...The details of description: Techniques, tips, and tangents on alternative tex...
The details of description: Techniques, tips, and tangents on alternative tex...
BookNet Canada110 views
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum... by NUS-ISS
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
NUS-ISS28 views
Transcript: The Details of Description Techniques tips and tangents on altern... by BookNet Canada
Transcript: The Details of Description Techniques tips and tangents on altern...Transcript: The Details of Description Techniques tips and tangents on altern...
Transcript: The Details of Description Techniques tips and tangents on altern...
BookNet Canada119 views
Combining Orchestration and Choreography for a Clean Architecture by ThomasHeinrichs1
Combining Orchestration and Choreography for a Clean ArchitectureCombining Orchestration and Choreography for a Clean Architecture
Combining Orchestration and Choreography for a Clean Architecture
ThomasHeinrichs168 views
TE Connectivity: Card Edge Interconnects by CXL Forum
TE Connectivity: Card Edge InterconnectsTE Connectivity: Card Edge Interconnects
TE Connectivity: Card Edge Interconnects
CXL Forum96 views
Data-centric AI and the convergence of data and model engineering: opportunit... by Paolo Missier
Data-centric AI and the convergence of data and model engineering:opportunit...Data-centric AI and the convergence of data and model engineering:opportunit...
Data-centric AI and the convergence of data and model engineering: opportunit...
Paolo Missier29 views
Astera Labs: Intelligent Connectivity for Cloud and AI Infrastructure by CXL Forum
Astera Labs:  Intelligent Connectivity for Cloud and AI InfrastructureAstera Labs:  Intelligent Connectivity for Cloud and AI Infrastructure
Astera Labs: Intelligent Connectivity for Cloud and AI Infrastructure
CXL Forum125 views
Future of Learning - Yap Aye Wee.pdf by NUS-ISS
Future of Learning - Yap Aye Wee.pdfFuture of Learning - Yap Aye Wee.pdf
Future of Learning - Yap Aye Wee.pdf
NUS-ISS38 views
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad... by Fwdays
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad..."Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad...
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad...
Fwdays40 views
MemVerge: Gismo (Global IO-free Shared Memory Objects) by CXL Forum
MemVerge: Gismo (Global IO-free Shared Memory Objects)MemVerge: Gismo (Global IO-free Shared Memory Objects)
MemVerge: Gismo (Global IO-free Shared Memory Objects)
CXL Forum112 views
"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy by Fwdays
"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy
"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy
Fwdays40 views

Comparing JVM Web Frameworks - 33rd Degree

  • 1. COMPARING JVM WEB FRAMEWORKS Matt Raible http://raibledesigns.com Images by Stuck in Customs - http://www.flickr.com/photos/stuckincustoms © 2011 Raible Designs
  • 2. 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? © 2011, Raible Designs
  • 3. Blogger on raibledesigns.com Father, Skier, Cyclist Founder of AppFuse Web Framework Connoisseur Who is Matt Raible? © 2011, Raible Designs
  • 4. SESSION AGENDA The Problem with Web Frameworks The Candidates Comparison Points The Matrix Conclusion Q and A © 2011, Raible Designs
  • 5. THE PROBLEM © 2011, Raible Designs
  • 6. HOW DO YOU CHOOSE? © 2011, Raible Designs
  • 7. E L I M I N AT E , D O N ’ T I N C L U D E
  • 8. © 2011, Raible Designs
  • 9. © 2011, Raible Designs
  • 10. ... while I'd *love* to see life made simpler for Java web developers, and a lot of the things happening in Struts2 are going that way -- it won't be me doing it. I've gone over to the dark side :-) and much prefer to develop in Rails -- for the conciseness mentioned above, but also because I don't ever have to do a "build" or "deploy" step during my development cycle any more. But you guys and gals need to be reminded that *this* is the kind of thing you are competing against if you expect to attract Rails developers ... or to avoid even more "previously Java web developer" defectors like me :-). -- Craig McClanahan, 10/23/2007 http://markmail.org/thread/qfb5sekad33eobh2 © 2011, Raible Designs
  • 11. JAMES GOSLING ON JSF http://www.youtube.com/watch?v=9ei-rbULWoA#t=47m © 2011, Raible Designs
  • 12. 2007: 6 IMPORTANT FACTORS Request, Component or RIA Framework Ease of Development Project Community Project Future and Roadmap Maintenance Technical Features © 2011, Raible Designs
  • 13. CHOOSING A FRAMEWORK Choose a short list of frameworks to prototype with. Create an application prototype with each framework. Document findings and create a matrix with important criteria. Create presentation to summarize document. Deliver document, presentation and recommendation. © 2011, Raible Designs
  • 14. 2011: NOW THERE’S 20 1. Developer Productivity 2. Developer Perception 3. Learning Curve 4. Project Health 5. Developer Availability 6. Job Trends © 2011, Raible Designs
  • 15. 2011: COMPARISON POINTS 7. Templating 8. Components 9. Ajax 10. Plugins or Add-Ons 11. Scalability 12. Testing Support © 2011, Raible Designs
  • 16. 2011: COMPARISON POINTS 13. i18n and l10n 14. Validation 15. Multi-language Support (Groovy / Scala) 16. Quality of Documentation/Tutorials 17. Books Published 18. REST Support (client and server) © 2011, Raible Designs
  • 17. 2011: COMPARISON POINTS 19. Mobile / iPhone Support 20. Degree of Risk © 2011, Raible Designs
  • 19. MATRIX RESULTS 18 17.5 17 17 17 15.5 15 15 14.5 13.5 14 14 13.5 13.5 11.5 9 4.5 0 ils g ls T din k et y ts 2 pes y x JSF Lift Fle in estr Pla GW Rai G ra Wic Spr Vaa Stru Stri Tap © 2011, Raible Designs
  • 20. MATRIX RESULTS Grails (17.5) GWT (17) Ruby on Rails (17) Spring MVC (17) Vaadin (15.5) Tapestry and Wicket (15) © 2011, Raible Designs
  • 21. WEIGHTED MATRIX © 2011, Raible Designs
  • 22. WEIGHTED RESULTS Grails (90) Spring MVC (85) Ruby on Rails (82.5) Vaadin (82.5) Play (82.5) GWT (80) © 2011, Raible Designs
  • 23. FIGHTING FOR 5TH Top at Devoxx 2010! ! GWT! ! Rails! ! Spring MVC! ! Grails! ! Wicket / Struts 2 © 2011, Raible Designs
  • 24. FIGHTING FOR 5TH Top at Rich Web Experience 2010 Grails GWT Rails Spring MVC Tapestry / Vaadin © 2011, Raible Designs
  • 25. FIGHTING FOR 5TH Top at TheServerSide Java Symposium 2010 Grails GWT Rails Spring MVC Vaadin © 2011, Raible Designs
  • 26. RATINGS LOGIC 1. Developer Productivity 2. Developer Perception 3. Learning Curve 4. Project Health 5. Developer Availability 6. Job Trends © 2011, Raible Designs
  • 27. RATINGS LOGIC 7. Templating 8. Components 9. Ajax 10. Plugins or Add-Ons 11. Scalability 12. Testing Support © 2011, Raible Designs
  • 28. RATINGS LOGIC 13. i18n and l10n 14. Validation 15. Multi-language Support (Groovy / Scala) 16. Quality of Documentation/Tutorials 17. Books Published 18. REST Support (client and server) © 2011, Raible Designs
  • 29. RATINGS LOGIC 19. Mobile / iPhone Support 20. Degree of Risk http://raibledesigns.com/rd/entry/how_i_calculated_ratings_for © 2011, 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, it's zero. * Matt's scale is 0-1 and my ratings are on Matt's scale, except mine goes to 11. http://lift.la/my-take-on-matt-raibles-spreadsheet © 2011, 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 © 2011, 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 © 2011, 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. © 2011, Raible Designs
  • 34. PROS AND CONS © 2011, Raible Designs
  • 35. 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 © 2011, Raible Designs
  • 36. 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 © 2011, Raible Designs
  • 37. 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 © 2011, Raible Designs
  • 38. 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!) © 2011, Raible Designs
  • 39. 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. All client interactions communicate with server. Joonas keeps telling me my cons are wrong. © 2011, Raible Designs
  • 40. 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 © 2011, Raible Designs
  • 41. 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 © 2011, Raible Designs
  • 42. LANGUAGE PERFORMANCE Time (ms) per iteration 600 400 200 0 Java C++ JRuby Python Groovy PHP http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython- jruby-groovy/ © 2011, Raible Designs
  • 43. JOBS IN 2011 (US) 700 525 350 175 0 ils T ls g stry t din ke in GW Rai G ra Wic Spr Vaa e Tap Dice.com © 2011, Raible Designs
  • 44. DEVELOPER SKILLS (US) 11,000 8,250 5,500 2,750 0 ils T ls g stry t din ke in GW Rai G ra Wic Spr Vaa e Tap LinkedIn © 2011, Raible Designs
  • 45. PRETTY GRAPHS © 2011, Raible Designs
  • 46. PRETTY GRAPHS © 2011, Raible Designs
  • 47. PRETTY GRAPHS © 2011, Raible Designs
  • 48. PRETTY GRAPHS © 2011, Raible Designs
  • 49. PRETTY GRAPHS © 2011, Raible Designs
  • 50. PRETTY GRAPHS © 2011, Raible Designs
  • 51. PRETTY GRAPHS © 2011, Raible Designs
  • 52. MAILING LIST TRAFFIC GWT Rails Grails Play Vaadin 0 750 1500 2250 3000 January 2011 * Spring MVC uses Forums, which don’t provide this data. © 2011, Raible Designs
  • 53. JSF LIST TRAFFIC PrimeFaces RichFaces MyFaces Majorra (RI) 0 500 1000 1500 2000 January 2011 * ICEfaces uses Forums, which don’t provide this data. © 2011, Raible Designs
  • 54. MAILING LIST TRAFFIC GWT Rails Grails Play PrimeFaces 0 575 1150 1725 2300 January 2011 * Spring MVC and Vaadin use Forums, which don’t provide this data. © 2011, Raible Designs
  • 55. MAILING LIST TRENDS JRuby Ruby on Rails © 2011, Raible Designs
  • 56. MAILING LIST TRENDS JRuby Ruby on Rails © 2011, Raible Designs
  • 57. MAILING LIST TRENDS Grails Tapestry Source: http://markmail.org GWT © 2011, Raible Designs
  • 58. BOOKS ON AMAZON Grails GWT Rails Spring MVC Wicket Tapestry 5 Vaadin 0 50 100 150 200 January 2011 © 2011, Raible Designs
  • 59. 2010 RELEASES As of October 28, 2010 0 6 12 18 24 Grails GWT Rails Spring MVC Vaadin © 2011, Raible Designs
  • 60. STACKOVERFLOW Tagged Questions (March 8, 2011) 40,000 30,000 20,000 10,000 Grails 0 GWT Rails Spring MVC Vaadin © 2011, Raible Designs
  • 61. STACKOVERFLOW Tagged Questions (February 15, 2011) 6,000 4,500 3,000 1,500 Spring 0 GWT Grails Wicket Tapestry © 2011, Raible Designs
  • 62. STACKOVERFLOW Tagged Questions (February 15, 2011) 100000 75000 50000 25000 Java 0 Scala JRuby Clojure Groovy © 2011, Raible Designs
  • 63. STACKOVERFLOW Tagged Questions (February 15, 2011) 4000 3000 2000 1000 Scala 0 JRuby Clojure Groovy © 2011, Raible Designs
  • 64. STACKOVERFLOW Tagged Questions (October 28, 2010) 80000 60000 40000 20000 Java 0 PHP .NET Python Ruby © 2011, Raible Designs
  • 65. FRAMEWORK POPULARITY Source: ZeroTurnaround's Java EE Productivity Report 2010 © 2011, Raible Designs
  • 66. CONCLUSION What if there is no “best” web framework? © 2011, Raible Designs http://www.gladwell.com/2004/2004_09_06_a_ketchup.html
  • 67. DON’T LISTEN TO ME! © 2011, Raible Designs
  • 68. 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! © 2011, Raible Designs
  • 69. QUESTIONS? Contact Information http://raibledesigns.com http://twitter.com/mraible Download Presentation http://slideshare.net/mraible © 2011, Raible Designs