SlideShare a Scribd company logo
1 of 90
Download to read offline
COMPARING JVM WEB
FRAMEWORKS

Matt Raible
http://raibledesigns.com
@mraible




Photos by Trish McGinity   © 2013 Raible Designs
Who is Matt Raible?
                                                       Father, Skier, Cyclist




                                       Web Framework Connoisseur
Founder of AppFuse




Blogger 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 Involve

1. Figure out your goal or goals
2. Evaluate the importance of each goal
3. Array the options
4. Evaluate how likely each of the options is to meet your goals
5. Pick the winning option
6. 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, 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
                                                                                 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
  @mraible

Presentations
     http://slideshare.net/mraible




                                                             90
                                     © 2013 Raible Designs

More Related Content

What's hot

Comparing JVM Web Frameworks - Rich Web Experience 2010
Comparing JVM Web Frameworks - Rich Web Experience 2010Comparing JVM Web Frameworks - Rich Web Experience 2010
Comparing JVM Web Frameworks - Rich Web Experience 2010Matt Raible
 
The Modern Java Web Developer - Denver JUG 2013
The Modern Java Web Developer - Denver JUG 2013The Modern Java Web Developer - Denver JUG 2013
The Modern Java Web Developer - Denver JUG 2013Matt Raible
 
Java Web Application Security - Utah JUG 2011
Java Web Application Security - Utah JUG 2011Java Web Application Security - Utah JUG 2011
Java Web Application Security - Utah JUG 2011Matt Raible
 
Front End Development for Back End Java Developers - NYJavaSIG 2019
Front End Development for Back End Java Developers - NYJavaSIG 2019Front End Development for Back End Java Developers - NYJavaSIG 2019
Front End Development for Back End Java Developers - NYJavaSIG 2019Matt Raible
 
How to Win at UI Development in the World of Microservices - THAT Conference ...
How to Win at UI Development in the World of Microservices - THAT Conference ...How to Win at UI Development in the World of Microservices - THAT Conference ...
How to Win at UI Development in the World of Microservices - THAT Conference ...Matt Raible
 
Get Hip with JHipster - Denver JUG 2015
Get Hip with JHipster - Denver JUG 2015Get Hip with JHipster - Denver JUG 2015
Get Hip with JHipster - Denver JUG 2015Matt Raible
 
The 2014 Decision Makers Guide to Java Web Frameworks
The 2014 Decision Makers Guide to Java Web FrameworksThe 2014 Decision Makers Guide to Java Web Frameworks
The 2014 Decision Makers Guide to Java Web FrameworksKunal Ashar
 
Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019Matt Raible
 
From AngularJS to React: why migration is a must
From AngularJS to React: why migration is a mustFrom AngularJS to React: why migration is a must
From AngularJS to React: why migration is a mustAdam Kosmala
 
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019Matt Raible
 
Choosing a Java Web Framework
Choosing a Java Web FrameworkChoosing a Java Web Framework
Choosing a Java Web FrameworkWill Iverson
 
Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket
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 WicketMatt Raible
 
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019Matt Raible
 
Angular vs react vs vue
Angular vs react vs vueAngular vs react vs vue
Angular vs react vs vueSina Mirhejazi
 
Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Matt Raible
 
Angular vs React Smackdown - Devoxx BE 2017
Angular vs React Smackdown - Devoxx BE 2017Angular vs React Smackdown - Devoxx BE 2017
Angular vs React Smackdown - Devoxx BE 2017Matt Raible
 
A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Angular SF 2019A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Angular SF 2019Matt Raible
 
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Matt Raible
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015Matt Raible
 
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016Matt Raible
 

What's hot (20)

Comparing JVM Web Frameworks - Rich Web Experience 2010
Comparing JVM Web Frameworks - Rich Web Experience 2010Comparing JVM Web Frameworks - Rich Web Experience 2010
Comparing JVM Web Frameworks - Rich Web Experience 2010
 
The Modern Java Web Developer - Denver JUG 2013
The Modern Java Web Developer - Denver JUG 2013The Modern Java Web Developer - Denver JUG 2013
The Modern Java Web Developer - Denver JUG 2013
 
Java Web Application Security - Utah JUG 2011
Java Web Application Security - Utah JUG 2011Java Web Application Security - Utah JUG 2011
Java Web Application Security - Utah JUG 2011
 
Front End Development for Back End Java Developers - NYJavaSIG 2019
Front End Development for Back End Java Developers - NYJavaSIG 2019Front End Development for Back End Java Developers - NYJavaSIG 2019
Front End Development for Back End Java Developers - NYJavaSIG 2019
 
How to Win at UI Development in the World of Microservices - THAT Conference ...
How to Win at UI Development in the World of Microservices - THAT Conference ...How to Win at UI Development in the World of Microservices - THAT Conference ...
How to Win at UI Development in the World of Microservices - THAT Conference ...
 
Get Hip with JHipster - Denver JUG 2015
Get Hip with JHipster - Denver JUG 2015Get Hip with JHipster - Denver JUG 2015
Get Hip with JHipster - Denver JUG 2015
 
The 2014 Decision Makers Guide to Java Web Frameworks
The 2014 Decision Makers Guide to Java Web FrameworksThe 2014 Decision Makers Guide to Java Web Frameworks
The 2014 Decision Makers Guide to Java Web Frameworks
 
Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019
 
From AngularJS to React: why migration is a must
From AngularJS to React: why migration is a mustFrom AngularJS to React: why migration is a must
From AngularJS to React: why migration is a must
 
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
 
Choosing a Java Web Framework
Choosing a Java Web FrameworkChoosing a Java Web Framework
Choosing a Java Web Framework
 
Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket
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
 
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019
 
Angular vs react vs vue
Angular vs react vs vueAngular vs react vs vue
Angular vs react vs vue
 
Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021
 
Angular vs React Smackdown - Devoxx BE 2017
Angular vs React Smackdown - Devoxx BE 2017Angular vs React Smackdown - Devoxx BE 2017
Angular vs React Smackdown - Devoxx BE 2017
 
A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Angular SF 2019A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Angular SF 2019
 
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
 
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
 

Viewers also liked

Comparing JVM Web Frameworks - Jfokus 2012
Comparing JVM Web Frameworks - Jfokus 2012Comparing JVM Web Frameworks - Jfokus 2012
Comparing JVM Web Frameworks - Jfokus 2012Matt Raible
 
HTML5 with Play Scala, CoffeeScript and Jade - Jfokus 2012
HTML5 with Play Scala, CoffeeScript and Jade - Jfokus 2012HTML5 with Play Scala, CoffeeScript and Jade - Jfokus 2012
HTML5 with Play Scala, CoffeeScript and Jade - Jfokus 2012Matt Raible
 
The Modern Java Web Developer Bootcamp - Devoxx 2013
The Modern Java Web Developer Bootcamp - Devoxx 2013The Modern Java Web Developer Bootcamp - Devoxx 2013
The Modern Java Web Developer Bootcamp - Devoxx 2013Matt Raible
 
Developing, Testing and Scaling with Apache Camel - UberConf 2015
Developing, Testing and Scaling with Apache Camel - UberConf 2015Developing, Testing and Scaling with Apache Camel - UberConf 2015
Developing, Testing and Scaling with Apache Camel - UberConf 2015Matt Raible
 
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015Matt Raible
 
Java Web Application Security with Java EE, Spring Security and Apache Shiro ...
Java Web Application Security with Java EE, Spring Security and Apache Shiro ...Java Web Application Security with Java EE, Spring Security and Apache Shiro ...
Java Web Application Security with Java EE, Spring Security and Apache Shiro ...Matt Raible
 
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Matt Raible
 
The Art of Angular in 2016 - Devoxx UK 2016
The Art of Angular in 2016 - Devoxx UK 2016The Art of Angular in 2016 - Devoxx UK 2016
The Art of Angular in 2016 - Devoxx UK 2016Matt Raible
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx UK 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx UK 2016Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx UK 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx UK 2016Matt Raible
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016Matt Raible
 
The Art of Angular in 2016 - Devoxx France 2016
The Art of Angular in 2016 - Devoxx France 2016The Art of Angular in 2016 - Devoxx France 2016
The Art of Angular in 2016 - Devoxx France 2016Matt Raible
 
Introduction to Hardware with littleBits
Introduction to Hardware with littleBitsIntroduction to Hardware with littleBits
Introduction to Hardware with littleBitsTack Mobile
 
Scala traits training by Sanjeev Kumar @Kick Start Scala traits & Play, organ...
Scala traits training by Sanjeev Kumar @Kick Start Scala traits & Play, organ...Scala traits training by Sanjeev Kumar @Kick Start Scala traits & Play, organ...
Scala traits training by Sanjeev Kumar @Kick Start Scala traits & Play, organ...Sanjeev_Knoldus
 
Concurrency in Scala - the Akka way
Concurrency in Scala - the Akka wayConcurrency in Scala - the Akka way
Concurrency in Scala - the Akka wayYardena Meymann
 
Scala for Java programmers
Scala for Java programmersScala for Java programmers
Scala for Java programmers輝 子安
 
Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Commit University
 
Akka -- Scalability in Scala and Java
Akka -- Scalability in Scala and JavaAkka -- Scalability in Scala and Java
Akka -- Scalability in Scala and JavaNadav Wiener
 
The Why and How of Scala at Twitter
The Why and How of Scala at TwitterThe Why and How of Scala at Twitter
The Why and How of Scala at TwitterAlex Payne
 

Viewers also liked (20)

Comparing JVM Web Frameworks - Jfokus 2012
Comparing JVM Web Frameworks - Jfokus 2012Comparing JVM Web Frameworks - Jfokus 2012
Comparing JVM Web Frameworks - Jfokus 2012
 
HTML5 with Play Scala, CoffeeScript and Jade - Jfokus 2012
HTML5 with Play Scala, CoffeeScript and Jade - Jfokus 2012HTML5 with Play Scala, CoffeeScript and Jade - Jfokus 2012
HTML5 with Play Scala, CoffeeScript and Jade - Jfokus 2012
 
The Modern Java Web Developer Bootcamp - Devoxx 2013
The Modern Java Web Developer Bootcamp - Devoxx 2013The Modern Java Web Developer Bootcamp - Devoxx 2013
The Modern Java Web Developer Bootcamp - Devoxx 2013
 
Developing, Testing and Scaling with Apache Camel - UberConf 2015
Developing, Testing and Scaling with Apache Camel - UberConf 2015Developing, Testing and Scaling with Apache Camel - UberConf 2015
Developing, Testing and Scaling with Apache Camel - UberConf 2015
 
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
 
Java Web Application Security with Java EE, Spring Security and Apache Shiro ...
Java Web Application Security with Java EE, Spring Security and Apache Shiro ...Java Web Application Security with Java EE, Spring Security and Apache Shiro ...
Java Web Application Security with Java EE, Spring Security and Apache Shiro ...
 
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
 
The Art of Angular in 2016 - Devoxx UK 2016
The Art of Angular in 2016 - Devoxx UK 2016The Art of Angular in 2016 - Devoxx UK 2016
The Art of Angular in 2016 - Devoxx UK 2016
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx UK 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx UK 2016Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx UK 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx UK 2016
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
 
The Art of Angular in 2016 - Devoxx France 2016
The Art of Angular in 2016 - Devoxx France 2016The Art of Angular in 2016 - Devoxx France 2016
The Art of Angular in 2016 - Devoxx France 2016
 
Introduction to Hardware with littleBits
Introduction to Hardware with littleBitsIntroduction to Hardware with littleBits
Introduction to Hardware with littleBits
 
GWT - Una introducción
GWT - Una introducciónGWT - Una introducción
GWT - Una introducción
 
Scala traits training by Sanjeev Kumar @Kick Start Scala traits & Play, organ...
Scala traits training by Sanjeev Kumar @Kick Start Scala traits & Play, organ...Scala traits training by Sanjeev Kumar @Kick Start Scala traits & Play, organ...
Scala traits training by Sanjeev Kumar @Kick Start Scala traits & Play, organ...
 
Scala 2013 review
Scala 2013 reviewScala 2013 review
Scala 2013 review
 
Concurrency in Scala - the Akka way
Concurrency in Scala - the Akka wayConcurrency in Scala - the Akka way
Concurrency in Scala - the Akka way
 
Scala for Java programmers
Scala for Java programmersScala for Java programmers
Scala for Java programmers
 
Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta
 
Akka -- Scalability in Scala and Java
Akka -- Scalability in Scala and JavaAkka -- Scalability in Scala and Java
Akka -- Scalability in Scala and Java
 
The Why and How of Scala at Twitter
The Why and How of Scala at TwitterThe Why and How of Scala at Twitter
The Why and How of Scala at Twitter
 

Similar to Comparing JVM Web Frameworks - Devoxx France 2013

Comparing JVM Web Frameworks - 33rd Degree
Comparing JVM Web Frameworks - 33rd DegreeComparing JVM Web Frameworks - 33rd Degree
Comparing JVM Web Frameworks - 33rd DegreeMatt Raible
 
ACADGILD:: FRONTEND LESSON -Ruby on rails vs groovy on rails
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 railsPadma shree. T
 
Choosing a JVM Web Framework
Choosing a JVM Web FrameworkChoosing a JVM Web Framework
Choosing a JVM Web FrameworkMatt Raible
 
Introduction To Groovy And Grails - SpringPeople
Introduction To Groovy And Grails - SpringPeopleIntroduction To Groovy And Grails - SpringPeople
Introduction To Groovy And Grails - SpringPeopleSpringPeople
 
Comparing JVM Web Frameworks - Spring I/O 2012
Comparing JVM Web Frameworks - Spring I/O 2012Comparing JVM Web Frameworks - Spring I/O 2012
Comparing JVM Web Frameworks - Spring I/O 2012Matt Raible
 
SolidWorks Design Automation Using the SolidWorks API, Microsoft Excel and VBA
SolidWorks Design Automation Using the SolidWorks API, Microsoft Excel and VBASolidWorks Design Automation Using the SolidWorks API, Microsoft Excel and VBA
SolidWorks Design Automation Using the SolidWorks API, Microsoft Excel and VBARazorleaf Corporation
 
Why you should choose Angular and why you should not
Why you should choose Angular and why you should notWhy you should choose Angular and why you should not
Why you should choose Angular and why you should notGeorge Georgiadis
 
What Is Visualization?
What Is Visualization?What Is Visualization?
What Is Visualization?OneSpring LLC
 
CampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
CampDevOps keynote - DevOps: Using 'Lean' to eliminate BottlenecksCampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
CampDevOps keynote - DevOps: Using 'Lean' to eliminate BottlenecksSanjeev Sharma
 
Modernizing Web Apps with .NET 6.pptx
Modernizing Web Apps with .NET 6.pptxModernizing Web Apps with .NET 6.pptx
Modernizing Web Apps with .NET 6.pptxEd Charbeneau
 
Modernizing Web Apps with .NET 6.pptx
Modernizing Web Apps with .NET 6.pptxModernizing Web Apps with .NET 6.pptx
Modernizing Web Apps with .NET 6.pptxEd Charbeneau
 
BarkleyREI & Hannon Hill Webinar - Responsive Web Design
BarkleyREI & Hannon Hill Webinar - Responsive Web DesignBarkleyREI & Hannon Hill Webinar - Responsive Web Design
BarkleyREI & Hannon Hill Webinar - Responsive Web Designhannonhill
 
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...Davalen LLC
 
Grokking Techtalk #40: AWS’s philosophy on designing MLOps platform
Grokking Techtalk #40: AWS’s philosophy on designing MLOps platformGrokking Techtalk #40: AWS’s philosophy on designing MLOps platform
Grokking Techtalk #40: AWS’s philosophy on designing MLOps platformGrokking VN
 
mimacom & Liferay Roadshow : How we see Liferay...
mimacom & Liferay Roadshow : How we see Liferay...mimacom & Liferay Roadshow : How we see Liferay...
mimacom & Liferay Roadshow : How we see Liferay...Ján Gregor
 
MongoDB @ Fiverr: The Road to Atlas
MongoDB @ Fiverr: The Road to AtlasMongoDB @ Fiverr: The Road to Atlas
MongoDB @ Fiverr: The Road to AtlasMongoDB
 
Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Daniel Woods
 
SUGCON 2015 Modelling
SUGCON 2015 ModellingSUGCON 2015 Modelling
SUGCON 2015 ModellingGlasslu
 
Top Java Script Frameworks for 2019
Top Java Script Frameworks for 2019Top Java Script Frameworks for 2019
Top Java Script Frameworks for 2019Sarah Elson
 
Agile practice in drupal 8 module development 20200328a
Agile practice in drupal 8 module development 20200328aAgile practice in drupal 8 module development 20200328a
Agile practice in drupal 8 module development 20200328aDOCOMO Innovations, Inc.
 

Similar to Comparing JVM Web Frameworks - Devoxx France 2013 (20)

Comparing JVM Web Frameworks - 33rd Degree
Comparing JVM Web Frameworks - 33rd DegreeComparing JVM Web Frameworks - 33rd Degree
Comparing JVM Web Frameworks - 33rd Degree
 
ACADGILD:: FRONTEND LESSON -Ruby on rails vs groovy on rails
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
 
Choosing a JVM Web Framework
Choosing a JVM Web FrameworkChoosing a JVM Web Framework
Choosing a JVM Web Framework
 
Introduction To Groovy And Grails - SpringPeople
Introduction To Groovy And Grails - SpringPeopleIntroduction To Groovy And Grails - SpringPeople
Introduction To Groovy And Grails - SpringPeople
 
Comparing JVM Web Frameworks - Spring I/O 2012
Comparing JVM Web Frameworks - Spring I/O 2012Comparing JVM Web Frameworks - Spring I/O 2012
Comparing JVM Web Frameworks - Spring I/O 2012
 
SolidWorks Design Automation Using the SolidWorks API, Microsoft Excel and VBA
SolidWorks Design Automation Using the SolidWorks API, Microsoft Excel and VBASolidWorks Design Automation Using the SolidWorks API, Microsoft Excel and VBA
SolidWorks Design Automation Using the SolidWorks API, Microsoft Excel and VBA
 
Why you should choose Angular and why you should not
Why you should choose Angular and why you should notWhy you should choose Angular and why you should not
Why you should choose Angular and why you should not
 
What Is Visualization?
What Is Visualization?What Is Visualization?
What Is Visualization?
 
CampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
CampDevOps keynote - DevOps: Using 'Lean' to eliminate BottlenecksCampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
CampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
 
Modernizing Web Apps with .NET 6.pptx
Modernizing Web Apps with .NET 6.pptxModernizing Web Apps with .NET 6.pptx
Modernizing Web Apps with .NET 6.pptx
 
Modernizing Web Apps with .NET 6.pptx
Modernizing Web Apps with .NET 6.pptxModernizing Web Apps with .NET 6.pptx
Modernizing Web Apps with .NET 6.pptx
 
BarkleyREI & Hannon Hill Webinar - Responsive Web Design
BarkleyREI & Hannon Hill Webinar - Responsive Web DesignBarkleyREI & Hannon Hill Webinar - Responsive Web Design
BarkleyREI & Hannon Hill Webinar - Responsive Web Design
 
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
 
Grokking Techtalk #40: AWS’s philosophy on designing MLOps platform
Grokking Techtalk #40: AWS’s philosophy on designing MLOps platformGrokking Techtalk #40: AWS’s philosophy on designing MLOps platform
Grokking Techtalk #40: AWS’s philosophy on designing MLOps platform
 
mimacom & Liferay Roadshow : How we see Liferay...
mimacom & Liferay Roadshow : How we see Liferay...mimacom & Liferay Roadshow : How we see Liferay...
mimacom & Liferay Roadshow : How we see Liferay...
 
MongoDB @ Fiverr: The Road to Atlas
MongoDB @ Fiverr: The Road to AtlasMongoDB @ Fiverr: The Road to Atlas
MongoDB @ Fiverr: The Road to Atlas
 
Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015
 
SUGCON 2015 Modelling
SUGCON 2015 ModellingSUGCON 2015 Modelling
SUGCON 2015 Modelling
 
Top Java Script Frameworks for 2019
Top Java Script Frameworks for 2019Top Java Script Frameworks for 2019
Top Java Script Frameworks for 2019
 
Agile practice in drupal 8 module development 20200328a
Agile practice in drupal 8 module development 20200328aAgile practice in drupal 8 module development 20200328a
Agile practice in drupal 8 module development 20200328a
 

More from Matt Raible

Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022Matt Raible
 
Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022Matt Raible
 
Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022Matt Raible
 
Micro Frontends for Java Microservices - Cork JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022Micro Frontends for Java Microservices - Cork JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022Matt Raible
 
Comparing Native Java REST API Frameworks - Seattle JUG 2022
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
 
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
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
 
Comparing Native Java REST API Frameworks - Devoxx France 2022
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
 
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...
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...Matt Raible
 
Native Java with Spring Boot and JHipster - Garden State JUG 2021
Native Java with Spring Boot and JHipster - Garden State JUG 2021Native Java with Spring Boot and JHipster - Garden State JUG 2021
Native Java with Spring Boot and JHipster - Garden State JUG 2021Matt Raible
 
Web App Security for Java Developers - PWX 2021
Web App Security for Java Developers - PWX 2021Web App Security for Java Developers - PWX 2021
Web App Security for Java Developers - PWX 2021Matt 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 ...
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...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...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...Matt Raible
 
Web App Security for Java Developers - UberConf 2021
Web App Security for Java Developers - UberConf 2021Web App Security for Java Developers - UberConf 2021
Web App Security for Java Developers - UberConf 2021Matt Raible
 
Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021Matt Raible
 
Native Java with Spring Boot and JHipster - SF JUG 2021
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 2021Matt 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...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...Matt Raible
 
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
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 2021Matt Raible
 
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
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 2021Matt Raible
 
JHipster and Okta - JHipster Virtual Meetup December 2020
JHipster and Okta - JHipster Virtual Meetup December 2020JHipster and Okta - JHipster Virtual Meetup December 2020
JHipster and Okta - JHipster Virtual Meetup December 2020Matt Raible
 
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
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 2020Matt Raible
 

More from Matt Raible (20)

Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
 
Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022
 
Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022
 
Micro Frontends for Java Microservices - Cork JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022Micro Frontends for Java Microservices - Cork JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022
 
Comparing Native Java REST API Frameworks - Seattle JUG 2022
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
 
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
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
 
Comparing Native Java REST API Frameworks - Devoxx France 2022
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
 
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...
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
 
Native Java with Spring Boot and JHipster - Garden State JUG 2021
Native Java with Spring Boot and JHipster - Garden State JUG 2021Native Java with Spring Boot and JHipster - Garden State JUG 2021
Native Java with Spring Boot and JHipster - Garden State JUG 2021
 
Web App Security for Java Developers - PWX 2021
Web App Security for Java Developers - PWX 2021Web App Security for Java Developers - PWX 2021
Web App Security for Java Developers - PWX 2021
 
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 ...
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
 
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...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
 
Web App Security for Java Developers - UberConf 2021
Web App Security for Java Developers - UberConf 2021Web App Security for Java Developers - UberConf 2021
Web App Security for Java Developers - UberConf 2021
 
Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021
 
Native Java with Spring Boot and JHipster - SF JUG 2021
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
 
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...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
 
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
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
 
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
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
 
JHipster and Okta - JHipster Virtual Meetup December 2020
JHipster and Okta - JHipster Virtual Meetup December 2020JHipster and Okta - JHipster Virtual Meetup December 2020
JHipster and Okta - JHipster Virtual Meetup December 2020
 
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
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
 

Recently uploaded

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 

Comparing JVM Web Frameworks - Devoxx France 2013

  • 1. COMPARING JVM WEB FRAMEWORKS Matt Raible http://raibledesigns.com @mraible Photos by Trish McGinity © 2013 Raible Designs
  • 2. Who is Matt Raible? Father, Skier, Cyclist Web Framework Connoisseur Founder of AppFuse Blogger on raibledesigns.com © 2013 Raible Designs
  • 3. 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
  • 4. Session Agenda ‣ History of JVM Web Frameworks ‣ The Paradox of Choice ‣ Methods and Metrics ‣ Conclusion ‣ Q and A 4 © 2013 Raible Designs
  • 5. History of Web Frameworks 5 © 2013 Raible Designs
  • 6. History of Web Frameworks 6 © 2013 Raible Designs
  • 7. History of Web Frameworks 7 © 2013 Raible Designs
  • 8. Comparing Web Frameworks 8 © 2013 Raible Designs
  • 9. History of Web Frameworks 9 © 2013 Raible Designs
  • 10. History of Web Frameworks 10 © 2013 Raible Designs
  • 11. 2007 11 © 2013 Raible Designs
  • 12. History of Web Frameworks 12 © 2013 Raible Designs
  • 13. © 2013 Raible Designs
  • 14. Today 14 © 2013 Raible Designs
  • 15. Too many web frameworks? 15 © 2013 Raible Designs
  • 16. Remember SOFEA? © 2013 Raible Designs
  • 17. SOFEA became a Reality © 2013 Raible Designs
  • 18. SOFEA Performance Issues 18 © 2013 Raible Designs
  • 19. traditional web frameworks are still relevant 19 © 2013 Raible Designs
  • 20. The Paradox of Choice 20 © 2013 Raible Designs
  • 21. Good Decisions Involve 1. Figure out your goal or goals 2. Evaluate the importance of each goal 3. Array the options 4. Evaluate how likely each of the options is to meet your goals 5. Pick the winning option 6. Modify goals 21 © 2013 Raible Designs
  • 22. 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
  • 23. How do you choose? 23 © 2013 Raible Designs
  • 24. The Real Problem 24 © 2013 Raible Designs
  • 25. The Real Problem 25 © 2013 Raible Designs
  • 26. The Real Problem 26 © 2013 Raible Designs
  • 27. © 2013 Raible Designs
  • 28. 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
  • 29. Predetermined Constraints ‣ Language ‣ Platform ‣ Application Type 29 © 2013 Raible Designs
  • 30. Choose the JVM 30 © 2013 Raible Designs
  • 31. Get Fast Hardware 31 © 2013 Raible Designs
  • 32. IntelliJ 32 © 2013 Raible Designs
  • 33. Goals ‣ Pure Web Frameworks ‣ Full Stack Frameworks ‣ SOFEA Frameworks - API Frameworks - JavaScript MVC Frameworks 33 © 2013 Raible Designs
  • 34. Full Stack Frameworks 34 © 2013 Raible Designs
  • 35. API Frameworks 35 © 2013 Raible Designs
  • 36. JavaScript MVC Frameworks 36 © 2013 Raible Designs
  • 37. JavaScript MVC Frameworks 37 © 2013 Raible Designs
  • 38. 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
  • 39. 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
  • 40. Comparison Matrix http://bit.ly/jvm-frameworks-matrix 40 © 2013 Raible Designs
  • 41. 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
  • 42. 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
  • 43. Weighted Matrix 43 © 2013 Raible Designs
  • 44. Weighted Results ‣ Grails (90) ‣ Play (87.5) ‣ Spring MVC (85) ‣ Ruby on Rails (82.5) ‣ Vaadin (82.5) ‣ GWT (80) 44 © 2013 Raible Designs
  • 45. 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 45 © 2013 Raible Designs
  • 46. 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
  • 47. 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
  • 48. 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
  • 49. World Wide Wait - Devoxx http://www.parleys.com/d/2942 49 © 2013 Raible Designs
  • 50. World Wide Wait - Devoxx 50 © 2013 Raible Designs
  • 51. World Wide Wait - Devoxx 51 © 2013 Raible Designs
  • 52. World Wide Wait - Devoxx 52 © 2013 Raible Designs
  • 53. World Wide Wait - Devoxx 53 © 2013 Raible Designs
  • 54. InfoQ’s Top 20 54 © 2013 Raible Designs
  • 55. devrates.com - by rating 55 © 2013 Raible Designs
  • 56. devrates.com - popular 56 © 2013 Raible Designs
  • 57. 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
  • 58. 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
  • 59. The Problem with GWT 59 © 2013 Raible Designs
  • 60. 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
  • 61. 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
  • 62. 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
  • 63. 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
  • 64. 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
  • 65. 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
  • 66. 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
  • 67. 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
  • 68. 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
  • 69. Google Trends 69 © 2013 Raible Designs
  • 70. Google Trends 70 © 2013 Raible Designs
  • 71. Google Trends 71 © 2013 Raible Designs
  • 72. Google Trends 72 © 2013 Raible Designs
  • 73. Indeed Job Trends 73 © 2013 Raible Designs
  • 74. Indeed Job Trends 74 © 2013 Raible Designs
  • 75. Indeed Job Trends 75 © 2013 Raible Designs
  • 76. Indeed Job Trends 76 © 2013 Raible Designs
  • 77. 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
  • 78. 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
  • 79. 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
  • 80. 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
  • 81. 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
  • 82. 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
  • 83. Modern Principles 83 © 2013 Raible Designs
  • 84. 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
  • 85. Developer Productivity http://zeroturnaround.com/blog/ developer-productivity-report-part-1-developer-timesheet/ 85 © 2013 Raible Designs
  • 86. Developer Productivity http://zeroturnaround.com/blog/ developer-productivity-report-part-3-developer-efficiency/ 86 © 2013 Raible Designs
  • 87. There is no “best” framework Just lots of awesome choices... 87 © 2013 Raible Designs
  • 88. Don’t listen to me! 88 © 2013 Raible Designs
  • 89. 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
  • 90. Questions? Contact Information http://raibledesigns.com @mraible Presentations http://slideshare.net/mraible 90 © 2013 Raible Designs