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

Matt Raible
http://raibledesigns.com




               Fotos by Trish - http://mcginityphoto.com
Introductions
‣   Your experience with
    web development?
‣   Your experience with
    Java EE development?
‣   What do you want to get
    from this session?
‣   Experience with Grails,
    GWT, Rails, Spring MVC,
    Wicket, Tapestry or
    Play?
                       © 2012 Raible Designs   2
Who is Matt Raible?
                                              Father, Skier, Cyclist




                     Web Framework Connoisseur
Founder of AppFuse




  Blogger on raibledesigns.com
                      © 2012 Raible Designs
Session Agenda

‣   The Problem with Web Frameworks
‣   The Candidates
‣   Comparison Points
‣   The Matrix
‣   Conclusion
‣   Q and A



                        © 2012 Raible Designs   4
The Problem




              © 2012 Raible Designs   5
The Real Problem




           © 2012 Raible Designs   6
The Real Problem




           © 2012 Raible Designs   7
The Real Problem




           © 2012 Raible Designs   8
How do you choose?




           © 2012 Raible Designs   9
Eliminate, Don’t Include
         © 2012 Raible Designs   10
© 2012 Raible Designs
© 2012 Raible Designs
Craig McClanahan on Rails
... while 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

                         © 2012 Raible Designs                             13
James Gosling on JSF




    http://www.youtube.com/watch?v=9ei-rbULWoA#t=47m

                       © 2012 Raible Designs           14
2010: Comparison Points

‣   Developer Productivity
‣   Developer Perception
‣   Learning Curve
‣   Project Health
‣   Developer Availability
‣   Job Trends


                         © 2012 Raible Designs   15
2010: Comparison Points

‣   Templating
‣   Components
‣   Ajax
‣   Plugins or Add-Ons
‣   Scalability
‣   Testing Support


                         © 2012 Raible Designs   16
2010: Comparison Points

‣   i18n and l10n
‣   Validation
‣   Multi-language Support (Groovy / Scala)
‣   Quality of Documentation/Tutorials
‣   Books Published
‣   REST Support (client and server)



                        © 2012 Raible Designs   17
2010: Comparison Points

‣   Mobile / iPhone Support
‣   Degree of Risk




                       © 2012 Raible Designs   18
Comparison Matrix




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

                  © 2012 Raible Designs   19
Matrix Results

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


   4.5


    0
         ails

                g
                        ils

                               T
                                    din

                                                t

                                                         ry

                                                                   2

                                                                          s
                                                                                y

                                                                                      x

                                                                                           F
                                                                                                Lift
                                                e




                                                                               Pla
                                                                         ipe



                                                                                     Fle

                                                                                           JS
                rin


                              GW




                                                      est
                                             ck



                                                                  uts
                      Ra



                                      a
         Gr

              Sp




                                                                        Str
                                   Va

                                          Wi
                                                   Tap

                                                            Str




                                          © 2012 Raible Designs                                        20
Matrix Results

‣   Grails (17.5)
‣   GWT (17)
‣   Ruby on Rails (17)
‣   Spring MVC (17)
‣   Vaadin (15.5)
‣   Tapestry and Wicket (15)



                         © 2012 Raible Designs   21
Weighted Matrix




           © 2012 Raible Designs   22
Weighted Results

‣   Grails (90)
‣   Spring MVC (85)
‣   Ruby on Rails (82.5)
‣   Vaadin (82.5)
‣   Play (82.5)
‣   GWT (80)


                           © 2012 Raible Designs   23
Fighting for 5th

‣   Top at Devoxx 2010		
    - GWT	 	
    - Rails	 	
    - Spring MVC	 	
    - Grails	 	
    - Wicket / Struts 2



                          © 2012 Raible Designs   24
Fighting for 5th

‣   Top at Rich Web Experience 2010
    - Grails
    - GWT
    - Rails
    - Spring MVC
    - Tapestry / Vaadin



                          © 2012 Raible Designs   25
Fighting for 5th

‣   Top at TheServerSide Java Symposium 2010
    - Grails
    - GWT
    - Rails
    - Spring MVC
    - Vaadin



                    © 2012 Raible Designs      26
Ratings Logic

‣   Developer Productivity
‣   Developer Perception
‣   Learning Curve
‣   Project Health
‣   Developer Availability
‣   Job Trends



                         © 2012 Raible Designs   27
Ratings Logic

‣   Templating
‣   Components
‣   Ajax
‣   Plugins or Add-Ons
‣   Scalability
‣   Testing Support



                         © 2012 Raible Designs   28
Ratings Logic

‣   i18n and l10n
‣   Validation
‣   Multi-language Support (Groovy / Scala)
‣   Quality of Documentation/Tutorials
‣   Books Published
‣   REST Support (client and server)



                        © 2012 Raible Designs   29
Ratings Logic

‣   Mobile / iPhone Support
‣   Degree of Risk

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




                                © 2012 Raible Designs   30
David Pollack’s Lift Ratings

‣   Developer Productivity: Lift gets a 11, Rails gets a
    5, most Java-based frameworks get a 1 or less.
‣   Developer Perception: Every web framework gets
    a 1. 
‣   Learning Curve: Lift gets a 2.
‣   Job Trends, yep, 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
                          © 2012 Raible Designs             31
Peter Thomas’s Perfbench

‣   Seam / JSF vs. Wicket Performance Comparison
    - January 2009: Seam 2.1.1 and Wicket 1.3.5
    - Average page response time in milliseconds




                        © 2012 Raible Designs      32
Peter Thomas’s Perfbench

‣   On the Seam / JSF side, the 20 sessions each
    take up about 800 KB adding up to around 16
    MB total. On the Wicket side the 20 sessions
    add up to around 1.5 MB.




‣   + Lots of banter between Peter and Seam
    developers @ http://bit.ly/3X50Gc


                      © 2012 Raible Designs        33
Peter Thomas’s Perfbench

‣   Peter’s Observations:
    - Grails was far more productive than Tapestry 5.
    - Grails still has some ways to go in terms of
      performance.
    - Overall, Wicket is fastest, with Tapestry coming a
      close second.
    - Wicket takes up the least amount of heap.
    - Session usage of the Seam + JSF combination is
      significantly higher compared to the rest.

                           © 2012 Raible Designs           34
World Wide Wait - Devoxx




      http://www.parleys.com/d/2942
                 © 2012 Raible Designs   35
World Wide Wait - Devoxx




           © 2012 Raible Designs   36
World Wide Wait - Devoxx




           © 2012 Raible Designs   37
World Wide Wait - Devoxx




           © 2012 Raible Designs   38
World Wide Wait - Devoxx




           © 2012 Raible Designs   39
World Wide Wait - Devoxx




       HybridJava beats JSF, Wicket
      and Spring MVC by perfomance.




               © 2012 Raible Designs   40
HybridJava - Really?




            © 2012 Raible Designs   41
Pros and Cons




           © 2012 Raible Designs   42
Grails
‣   Pros
    - Easy dynamic language transition for Java Developers
    - Groovy
    - Plugins for all types of applications
‣   Cons
    - Groovy learning targets Java Developers
    - Stack traces are horrendous
    - Knowledge of underlying frameworks not required,
      but helpful
                            © 2012 Raible Designs            43
GWT
‣   Pros
    - Write Java => Produces Optimized JavaScript
    - Easy to learn and develop with standard Java Tools
    - Vibrant Community
‣   Cons
    - You have to know Java
    - Slow to compile, difficult to test
    - More like a JSP Tag Library than a web framework

                           © 2012 Raible Designs           44
Ruby on Rails
‣   Pros
    - Easy to learn and understand for Web Developers
    - Lots and lots of documentation
    - Passionate Community
‣   Cons
    - Slightly less performant by default
    - Dynamic language means more tests
    - Development Tools and Debugging
                           © 2012 Raible Designs        45
Spring MVC
‣   Pros
    - Easy Configuration with Annotations and Conventions
    - Integrates with many view options seamlessly: JSP/
      JSTL, Tiles, FreeMarker, Excel, PDF, JSON
    - Excellent REST Support
‣   Cons
    - Instant reload not built-in, need JRebel or Spring Roo
    - No open development process, need to be
      SpringSource
    - Ajax requires 3rd-party library (can be a good thing!)
                            © 2012 Raible Designs              46
Vaadin
‣   Pros
    - Uses GWT API for developing view
    - Vibrant Community and company backing
    - Excellent Themes and Layouts support
‣   Cons
    - Large memory footprint, state stored in session
    - Sketchy (?) because backed by a commercial
      organization
    - Joonas keeps telling me my cons are wrong
                          © 2012 Raible Designs         47
Wicket
‣   Pros
    - Great for Java Developers
    - Tight binding between pages and views
    - Active community - support from creators
‣   Cons
    - No Jobs or Developers
    - Stateful by default
    - HTML Templates live next to Java code by default
                            © 2012 Raible Designs        48
Tapestry
‣   Pros
    - Live Class Reloading
    - Development emphasis on performance and
      scalability
    - Excellent Exception Reporting
‣   Cons
    - No Jobs
    - Prototype baked in for JS Library
    - Annotations vs. Conventions
                          © 2012 Raible Designs   49
Pretty Graphs




            © 2012 Raible Designs   50
LOC in AppFuse Light
        JSF    Spring   Stripes            Struts 2    Tapestry 5   Wicket

 5000


 3750


 2500


 1250


    0
  JavaScript            XML                           CSS               Java


                            © 2012 Raible Designs                              51
Jobs on Dice (World)

     700


     525


     350


     175


       0
            g
                 ils

                        T

                               s

                                         et

                                                try
                                                       din

                                                             F
                             ail




                                                             JS
           rin



                       GW



                                      ick
                 Ra




                                                es

                                                        a
                            Gr
           Sp




                                                     Va
                                    W

                                               p
                                            Ta




                        © 2012 Raible Designs                     52
LinkedIn Skills (World)

     40,000


     30,000


     20,000


     10,000


         0
                ils

                        g

                               T
                                       ails

                                                      ry

                                                            t
                                                                   din

                                                                         F
                                                              e


                                                                         JS
                        rin
                              GW




                                                 est

                                                           ck
              Ra




                                                                     a
                                     Gr
                      Sp




                                                                  Va
                                                       Wi
                                              Tap




                              © 2012 Raible Designs                           53
Pretty Graphs




            © 2012 Raible Designs   54
Pretty Graphs




            © 2012 Raible Designs   55
Pretty Graphs




            © 2012 Raible Designs   56
Pretty Graphs




            © 2012 Raible Designs   57
Pretty Graphs




            © 2012 Raible Designs   58
Pretty Graphs




            © 2012 Raible Designs   59
Pretty Graphs




            © 2012 Raible Designs   60
Pretty Graphs




            © 2012 Raible Designs   61
Pretty Graphs




            © 2012 Raible Designs   62
Mailing List Traffic

    Wicket                                                                  1841

      GWT                                                                1753

     Grails                                                         1635

      Rails                                                        1604

   Tapestry                                                     1538

      Play                                                   1451

              0              475                  950            1425              1900
              * Spring MVC and Vaadin use Forums, which don’t provide this data.




                                     © 2012 Raible Designs                                63
Books on Amazon

       Rails

 Spring MVC

       GWT

      Grails

     Wicket

  Tapestry 5

     Vaadin

               0   75                     150   225   300




                        © 2012 Raible Designs               64
2011 Releases
                        As of August 24, 2011


                0   4                  8           12   16
      Grails

       GWT
       Rails
  Spring MVC
      Vaadin
     Tapestry
       Wicket




                           © 2012 Raible Designs             65
StackOverflow
              Tagged Questions (August 24, 2011)


                                                              50,000


                                                             37,500


                                                             25,000


                                                         12,500

    Grails                                               0
             GWT
                     Rails
                               Spring MVC
                                                Vaadin

                        © 2012 Raible Designs                          66
StackOverflow
             Tagged Questions (August 24, 2011)


                                                            10,000


                                                           7,500


                                                           5,000


                                                       2,500

    Spring                                             0
             JSF
                    GWT
                                    Grails
                                              Wicket


                      © 2012 Raible Designs                          67
StackOverflow
             Tagged Questions (August 24, 2011)


                                                           200000


                                                          150000


                                                          100000


                                                      50000

    Java                                              0
           Scala
                   Groovy
                                 Clojure
                                              JRuby


                      © 2012 Raible Designs                         68
StackOverflow
            Tagged Questions (August 24, 2011)


                                                          6000


                                                         4500


                                                         3000


                                                     1500


    Scala                                            0
            Groovy
                        Clojure
                                             JRuby


                     © 2012 Raible Designs                       69
Framework Popularity




Source: ZeroTurnaround's Java EE Productivity Report 2010


                     © 2012 Raible Designs                  70
What we need is...




            © 2012 Raible Designs   71
Innovators




             © 2012 Raible Designs   72
Modern Principles




            © 2012 Raible Designs   73
Web Developers




           © 2012 Raible Designs   74
Java Developers

 “Java remains – in spite of the fragmented
 programming language landscape – a
 viable, growing language.”




  http://redmonk.com/sogrady/2012/02/08/language-rankings-2-2012/

                            © 2012 Raible Designs                   75
The Modern Web Developer

‣   ... embraces JavaScript
‣   ... is learning mobile frameworks
    - jQuery Mobile, Sencha Touch, PhoneGap or Native
‣   ... is using HTML5 and CSS3
‣   ... is developing REST APIs with the stateless
    framework that best supports their language
‣   IE6 is dead, IE7 isn’t far behind...

                         © 2012 Raible Designs          76
You have to decide...

       Are you a web developer?




               © 2012 Raible Designs   77
You have to decide...

     Or are you a services developer?




                 © 2012 Raible Designs   78
Client-Side MVC




           © 2012 Raible Designs   79
REST Services




           © 2012 Raible Designs   80
Developer Productivity




                http://zeroturnaround.com/blog/
    developer-productivity-report-part-1-developer-timesheet/


                          © 2012 Raible Designs                 81
Developer Productivity




                http://zeroturnaround.com/blog/
    developer-productivity-report-part-3-developer-efficiency/


                          © 2012 Raible Designs                 82
There is no “best” framework




      Just lots of awesome choices...
                 © 2012 Raible Designs   83
Don’t listen to me!




             © 2012 Raible Designs   84
Choose your own!

‣   Prioritize a list of features that are important to
    your application.
‣   Pick 3-4 frameworks and do a 1-week spike with
    each, developing the same application.
‣   Document and rank each framework against your
    list of features.
‣   Calculate and choose!
‣   ... Or just pick one and get to work...

                          © 2012 Raible Designs           85
But don’t forget...




              © 2012 Raible Designs   86
Questions?

‣   Contact
    - http://raibledesigns.com
    - @mraible
‣   Download
    - http://slideshare.net/mraible




                           © 2012 Raible Designs   87

More Related Content

What's hot

DEFCON-23-Nadeem-Douba-BurpKit
DEFCON-23-Nadeem-Douba-BurpKitDEFCON-23-Nadeem-Douba-BurpKit
DEFCON-23-Nadeem-Douba-BurpKitNadeem Douba
 
I have something to say about the buzz word "From Java to Ruby"
I have something to say about the buzz word "From Java to Ruby"I have something to say about the buzz word "From Java to Ruby"
I have something to say about the buzz word "From Java to Ruby"kwatch
 
Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018
Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018
Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018Paul Calvano
 
Secrets of Successful Digital Transformers
Secrets of Successful Digital TransformersSecrets of Successful Digital Transformers
Secrets of Successful Digital TransformersVMware Tanzu
 
Reactive Data Access with Spring Data
Reactive Data Access with Spring DataReactive Data Access with Spring Data
Reactive Data Access with Spring DataVMware Tanzu
 
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...Gavin Pickin
 
BootsFaces, AngularFaces und ein Blck unter die Motorhaube
BootsFaces, AngularFaces und ein Blck unter die MotorhaubeBootsFaces, AngularFaces und ein Blck unter die Motorhaube
BootsFaces, AngularFaces und ein Blck unter die MotorhaubeOPITZ CONSULTING Deutschland
 
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8Angela Byron
 
Full Stack Reactive with React and Spring WebFlux - PWX 2019
Full Stack Reactive with React and Spring WebFlux - PWX 2019Full Stack Reactive with React and Spring WebFlux - PWX 2019
Full Stack Reactive with React and Spring WebFlux - PWX 2019Matt Raible
 
Full Stack Reactive with React and Spring WebFlux - Switzerland JUG 2020
Full Stack Reactive with React and Spring WebFlux - Switzerland JUG 2020Full Stack Reactive with React and Spring WebFlux - Switzerland JUG 2020
Full Stack Reactive with React and Spring WebFlux - Switzerland JUG 2020Matt Raible
 
Html5 with Vaadin and Scala
Html5 with Vaadin and ScalaHtml5 with Vaadin and Scala
Html5 with Vaadin and ScalaJoonas Lehtinen
 
Magic with groovy & grails
Magic with groovy & grailsMagic with groovy & grails
Magic with groovy & grailsGeorge Platon
 
Drupal 8 and 9, Backwards Compatibility, and Drupal 8.5 update
Drupal 8 and 9, Backwards Compatibility, and Drupal 8.5 updateDrupal 8 and 9, Backwards Compatibility, and Drupal 8.5 update
Drupal 8 and 9, Backwards Compatibility, and Drupal 8.5 updateAngela Byron
 
OCTO On-Site Off-Site Update on D8 Roadmap
OCTO On-Site Off-Site Update on D8 RoadmapOCTO On-Site Off-Site Update on D8 Roadmap
OCTO On-Site Off-Site Update on D8 RoadmapAngela Byron
 
DSAG Tech Days 2018 - DevOps in SAP ABAP Landscapes
DSAG Tech Days 2018 - DevOps in SAP ABAP LandscapesDSAG Tech Days 2018 - DevOps in SAP ABAP Landscapes
DSAG Tech Days 2018 - DevOps in SAP ABAP LandscapesSascha Junkert
 
CMSDITA2012_Maass_Quinlan_20120412
CMSDITA2012_Maass_Quinlan_20120412CMSDITA2012_Maass_Quinlan_20120412
CMSDITA2012_Maass_Quinlan_20120412Patrick Quinlan
 
Let Non-Developers Develop your Site. Manu Raivio
Let Non-Developers Develop your Site. Manu RaivioLet Non-Developers Develop your Site. Manu Raivio
Let Non-Developers Develop your Site. Manu RaivioFuture Insights
 

What's hot (20)

DEFCON-23-Nadeem-Douba-BurpKit
DEFCON-23-Nadeem-Douba-BurpKitDEFCON-23-Nadeem-Douba-BurpKit
DEFCON-23-Nadeem-Douba-BurpKit
 
I have something to say about the buzz word "From Java to Ruby"
I have something to say about the buzz word "From Java to Ruby"I have something to say about the buzz word "From Java to Ruby"
I have something to say about the buzz word "From Java to Ruby"
 
Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018
Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018
Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018
 
Secrets of Successful Digital Transformers
Secrets of Successful Digital TransformersSecrets of Successful Digital Transformers
Secrets of Successful Digital Transformers
 
VisionX Prototyping.
VisionX Prototyping.VisionX Prototyping.
VisionX Prototyping.
 
Reactive Data Access with Spring Data
Reactive Data Access with Spring DataReactive Data Access with Spring Data
Reactive Data Access with Spring Data
 
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...
 
Rails01
Rails01Rails01
Rails01
 
BootsFaces, AngularFaces und ein Blck unter die Motorhaube
BootsFaces, AngularFaces und ein Blck unter die MotorhaubeBootsFaces, AngularFaces und ein Blck unter die Motorhaube
BootsFaces, AngularFaces und ein Blck unter die Motorhaube
 
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8
 
Full Stack Reactive with React and Spring WebFlux - PWX 2019
Full Stack Reactive with React and Spring WebFlux - PWX 2019Full Stack Reactive with React and Spring WebFlux - PWX 2019
Full Stack Reactive with React and Spring WebFlux - PWX 2019
 
Full Stack Reactive with React and Spring WebFlux - Switzerland JUG 2020
Full Stack Reactive with React and Spring WebFlux - Switzerland JUG 2020Full Stack Reactive with React and Spring WebFlux - Switzerland JUG 2020
Full Stack Reactive with React and Spring WebFlux - Switzerland JUG 2020
 
Html5 with Vaadin and Scala
Html5 with Vaadin and ScalaHtml5 with Vaadin and Scala
Html5 with Vaadin and Scala
 
Magic with groovy & grails
Magic with groovy & grailsMagic with groovy & grails
Magic with groovy & grails
 
Drupal 8 and 9, Backwards Compatibility, and Drupal 8.5 update
Drupal 8 and 9, Backwards Compatibility, and Drupal 8.5 updateDrupal 8 and 9, Backwards Compatibility, and Drupal 8.5 update
Drupal 8 and 9, Backwards Compatibility, and Drupal 8.5 update
 
OCTO On-Site Off-Site Update on D8 Roadmap
OCTO On-Site Off-Site Update on D8 RoadmapOCTO On-Site Off-Site Update on D8 Roadmap
OCTO On-Site Off-Site Update on D8 Roadmap
 
DSAG Tech Days 2018 - DevOps in SAP ABAP Landscapes
DSAG Tech Days 2018 - DevOps in SAP ABAP LandscapesDSAG Tech Days 2018 - DevOps in SAP ABAP Landscapes
DSAG Tech Days 2018 - DevOps in SAP ABAP Landscapes
 
CMSDITA2012_Maass_Quinlan_20120412
CMSDITA2012_Maass_Quinlan_20120412CMSDITA2012_Maass_Quinlan_20120412
CMSDITA2012_Maass_Quinlan_20120412
 
Angular vs. React
Angular vs. ReactAngular vs. React
Angular vs. React
 
Let Non-Developers Develop your Site. Manu Raivio
Let Non-Developers Develop your Site. Manu RaivioLet Non-Developers Develop your Site. Manu Raivio
Let Non-Developers Develop your Site. Manu Raivio
 

Similar to Comparing JVM Web Frameworks - Spring I/O 2012

HTML5 with Play Scala, CoffeeScript and Jade - UberConf 2012
HTML5 with Play Scala, CoffeeScript and Jade - UberConf 2012HTML5 with Play Scala, CoffeeScript and Jade - UberConf 2012
HTML5 with Play Scala, CoffeeScript and Jade - UberConf 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
 
HTML5 with Play Scala, CoffeeScript and Jade - Devoxx 2011
HTML5 with Play Scala, CoffeeScript and Jade - Devoxx 2011HTML5 with Play Scala, CoffeeScript and Jade - Devoxx 2011
HTML5 with Play Scala, CoffeeScript and Jade - Devoxx 2011Matt Raible
 
Comparing JVM Web Frameworks - Devoxx France 2013
Comparing JVM Web Frameworks - Devoxx France 2013Comparing JVM Web Frameworks - Devoxx France 2013
Comparing JVM Web Frameworks - Devoxx France 2013Matt Raible
 
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
 
Devoxx UK 2022 - Application security: What should the attack landscape look ...
Devoxx UK 2022 - Application security: What should the attack landscape look ...Devoxx UK 2022 - Application security: What should the attack landscape look ...
Devoxx UK 2022 - Application security: What should the attack landscape look ...Chris Swan
 
What's New in Cloud Foundry
What's New in Cloud FoundryWhat's New in Cloud Foundry
What's New in Cloud FoundryJennifer Hickey
 
Decomposing Applications for Scalability and Deployability (April 2012)
Decomposing Applications for Scalability and Deployability (April 2012)Decomposing Applications for Scalability and Deployability (April 2012)
Decomposing Applications for Scalability and Deployability (April 2012)Chris Richardson
 
Cloud Foundry Architecture and Overview
Cloud Foundry Architecture and OverviewCloud Foundry Architecture and Overview
Cloud Foundry Architecture and Overviewrajdeep
 
Flex For Java Developers - SDForum Java SIG
Flex For Java Developers - SDForum Java SIGFlex For Java Developers - SDForum Java SIG
Flex For Java Developers - SDForum Java SIGChris Richardson
 
Grails @ Java User Group Silicon Valley
Grails @ Java User Group Silicon ValleyGrails @ Java User Group Silicon Valley
Grails @ Java User Group Silicon ValleySven Haiges
 
Webinar: Taking your JMeter Test Monitoring To The Next Level (Ft. PerfAcademy)
Webinar: Taking your JMeter Test Monitoring To The Next Level (Ft. PerfAcademy)Webinar: Taking your JMeter Test Monitoring To The Next Level (Ft. PerfAcademy)
Webinar: Taking your JMeter Test Monitoring To The Next Level (Ft. PerfAcademy)Sebastian Hensiek
 
GTUG JS will save us all
GTUG JS will save us allGTUG JS will save us all
GTUG JS will save us allMário Valente
 
Thinking Outside the Container: Deploying Standalone Apps to Cloud Foundry
Thinking Outside the Container: Deploying Standalone Apps to Cloud FoundryThinking Outside the Container: Deploying Standalone Apps to Cloud Foundry
Thinking Outside the Container: Deploying Standalone Apps to Cloud FoundryJennifer Hickey
 
Test-Driven Development for Embedded C -- OOP Conference 2015, Munich
Test-Driven Development for Embedded C -- OOP Conference 2015, MunichTest-Driven Development for Embedded C -- OOP Conference 2015, Munich
Test-Driven Development for Embedded C -- OOP Conference 2015, MunichJames Grenning
 
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
 

Similar to Comparing JVM Web Frameworks - Spring I/O 2012 (20)

HTML5 with Play Scala, CoffeeScript and Jade - UberConf 2012
HTML5 with Play Scala, CoffeeScript and Jade - UberConf 2012HTML5 with Play Scala, CoffeeScript and Jade - UberConf 2012
HTML5 with Play Scala, CoffeeScript and Jade - UberConf 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
 
HTML5 with Play Scala, CoffeeScript and Jade - Devoxx 2011
HTML5 with Play Scala, CoffeeScript and Jade - Devoxx 2011HTML5 with Play Scala, CoffeeScript and Jade - Devoxx 2011
HTML5 with Play Scala, CoffeeScript and Jade - Devoxx 2011
 
Comparing JVM Web Frameworks - Devoxx France 2013
Comparing JVM Web Frameworks - Devoxx France 2013Comparing JVM Web Frameworks - Devoxx France 2013
Comparing JVM Web Frameworks - Devoxx France 2013
 
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
 
Devoxx UK 2022 - Application security: What should the attack landscape look ...
Devoxx UK 2022 - Application security: What should the attack landscape look ...Devoxx UK 2022 - Application security: What should the attack landscape look ...
Devoxx UK 2022 - Application security: What should the attack landscape look ...
 
What's New in Cloud Foundry
What's New in Cloud FoundryWhat's New in Cloud Foundry
What's New in Cloud Foundry
 
Decomposing Applications for Scalability and Deployability (April 2012)
Decomposing Applications for Scalability and Deployability (April 2012)Decomposing Applications for Scalability and Deployability (April 2012)
Decomposing Applications for Scalability and Deployability (April 2012)
 
Cloud Foundry Architecture and Overview
Cloud Foundry Architecture and OverviewCloud Foundry Architecture and Overview
Cloud Foundry Architecture and Overview
 
Flex For Java Developers - SDForum Java SIG
Flex For Java Developers - SDForum Java SIGFlex For Java Developers - SDForum Java SIG
Flex For Java Developers - SDForum Java SIG
 
Grails @ Java User Group Silicon Valley
Grails @ Java User Group Silicon ValleyGrails @ Java User Group Silicon Valley
Grails @ Java User Group Silicon Valley
 
Change & Shift
Change & ShiftChange & Shift
Change & Shift
 
Webinar: Taking your JMeter Test Monitoring To The Next Level (Ft. PerfAcademy)
Webinar: Taking your JMeter Test Monitoring To The Next Level (Ft. PerfAcademy)Webinar: Taking your JMeter Test Monitoring To The Next Level (Ft. PerfAcademy)
Webinar: Taking your JMeter Test Monitoring To The Next Level (Ft. PerfAcademy)
 
GTUG JS will save us all
GTUG JS will save us allGTUG JS will save us all
GTUG JS will save us all
 
Thinking Outside the Container: Deploying Standalone Apps to Cloud Foundry
Thinking Outside the Container: Deploying Standalone Apps to Cloud FoundryThinking Outside the Container: Deploying Standalone Apps to Cloud Foundry
Thinking Outside the Container: Deploying Standalone Apps to Cloud Foundry
 
Next of Java 2022
Next of Java 2022Next of Java 2022
Next of Java 2022
 
Test-Driven Development for Embedded C -- OOP Conference 2015, Munich
Test-Driven Development for Embedded C -- OOP Conference 2015, MunichTest-Driven Development for Embedded C -- OOP Conference 2015, Munich
Test-Driven Development for Embedded C -- OOP Conference 2015, Munich
 
Vue.js LT
Vue.js LTVue.js LT
Vue.js LT
 
Groovy Finance
Groovy FinanceGroovy Finance
Groovy Finance
 
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
 

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

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

Recently uploaded

Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 

Recently uploaded (20)

Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 

Comparing JVM Web Frameworks - Spring I/O 2012

  • 1. COMPARING JVM WEB FRAMEWORKS Matt Raible http://raibledesigns.com Fotos by Trish - http://mcginityphoto.com
  • 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? © 2012 Raible Designs 2
  • 3. Who is Matt Raible? Father, Skier, Cyclist Web Framework Connoisseur Founder of AppFuse Blogger on raibledesigns.com © 2012 Raible Designs
  • 4. Session Agenda ‣ The Problem with Web Frameworks ‣ The Candidates ‣ Comparison Points ‣ The Matrix ‣ Conclusion ‣ Q and A © 2012 Raible Designs 4
  • 5. The Problem © 2012 Raible Designs 5
  • 6. The Real Problem © 2012 Raible Designs 6
  • 7. The Real Problem © 2012 Raible Designs 7
  • 8. The Real Problem © 2012 Raible Designs 8
  • 9. How do you choose? © 2012 Raible Designs 9
  • 10. Eliminate, Don’t Include © 2012 Raible Designs 10
  • 11. © 2012 Raible Designs
  • 12. © 2012 Raible Designs
  • 13. Craig McClanahan on Rails ... 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 © 2012 Raible Designs 13
  • 14. James Gosling on JSF http://www.youtube.com/watch?v=9ei-rbULWoA#t=47m © 2012 Raible Designs 14
  • 15. 2010: Comparison Points ‣ Developer Productivity ‣ Developer Perception ‣ Learning Curve ‣ Project Health ‣ Developer Availability ‣ Job Trends © 2012 Raible Designs 15
  • 16. 2010: Comparison Points ‣ Templating ‣ Components ‣ Ajax ‣ Plugins or Add-Ons ‣ Scalability ‣ Testing Support © 2012 Raible Designs 16
  • 17. 2010: Comparison Points ‣ i18n and l10n ‣ Validation ‣ Multi-language Support (Groovy / Scala) ‣ Quality of Documentation/Tutorials ‣ Books Published ‣ REST Support (client and server) © 2012 Raible Designs 17
  • 18. 2010: Comparison Points ‣ Mobile / iPhone Support ‣ Degree of Risk © 2012 Raible Designs 18
  • 19. Comparison Matrix http://bit.ly/jvm-frameworks-matrix © 2012 Raible Designs 19
  • 20. Matrix Results 18 17.5 17 17 17 15.5 15 15 13.5 14.5 14 14 13.513.5 11.5 9 4.5 0 ails g ils T din t ry 2 s y x F Lift e Pla ipe Fle JS rin GW est ck uts Ra a Gr Sp Str Va Wi Tap Str © 2012 Raible Designs 20
  • 21. Matrix Results ‣ Grails (17.5) ‣ GWT (17) ‣ Ruby on Rails (17) ‣ Spring MVC (17) ‣ Vaadin (15.5) ‣ Tapestry and Wicket (15) © 2012 Raible Designs 21
  • 22. Weighted Matrix © 2012 Raible Designs 22
  • 23. Weighted Results ‣ Grails (90) ‣ Spring MVC (85) ‣ Ruby on Rails (82.5) ‣ Vaadin (82.5) ‣ Play (82.5) ‣ GWT (80) © 2012 Raible Designs 23
  • 24. Fighting for 5th ‣ Top at Devoxx 2010 - GWT - Rails - Spring MVC - Grails - Wicket / Struts 2 © 2012 Raible Designs 24
  • 25. Fighting for 5th ‣ Top at Rich Web Experience 2010 - Grails - GWT - Rails - Spring MVC - Tapestry / Vaadin © 2012 Raible Designs 25
  • 26. Fighting for 5th ‣ Top at TheServerSide Java Symposium 2010 - Grails - GWT - Rails - Spring MVC - Vaadin © 2012 Raible Designs 26
  • 27. Ratings Logic ‣ Developer Productivity ‣ Developer Perception ‣ Learning Curve ‣ Project Health ‣ Developer Availability ‣ Job Trends © 2012 Raible Designs 27
  • 28. Ratings Logic ‣ Templating ‣ Components ‣ Ajax ‣ Plugins or Add-Ons ‣ Scalability ‣ Testing Support © 2012 Raible Designs 28
  • 29. Ratings Logic ‣ i18n and l10n ‣ Validation ‣ Multi-language Support (Groovy / Scala) ‣ Quality of Documentation/Tutorials ‣ Books Published ‣ REST Support (client and server) © 2012 Raible Designs 29
  • 30. Ratings Logic ‣ Mobile / iPhone Support ‣ Degree of Risk http://raibledesigns.com/rd/entry/ how_i_calculated_ratings_for © 2012 Raible Designs 30
  • 31. 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 © 2012 Raible Designs 31
  • 32. Peter Thomas’s Perfbench ‣ Seam / JSF vs. Wicket Performance Comparison - January 2009: Seam 2.1.1 and Wicket 1.3.5 - Average page response time in milliseconds © 2012 Raible Designs 32
  • 33. Peter Thomas’s Perfbench ‣ On the Seam / JSF side, the 20 sessions each take up about 800 KB adding up to around 16 MB total. On the Wicket side the 20 sessions add up to around 1.5 MB. ‣ + Lots of banter between Peter and Seam developers @ http://bit.ly/3X50Gc © 2012 Raible Designs 33
  • 34. Peter Thomas’s Perfbench ‣ Peter’s Observations: - Grails was far more productive than Tapestry 5. - Grails still has some ways to go in terms of performance. - Overall, Wicket is fastest, with Tapestry coming a close second. - Wicket takes up the least amount of heap. - Session usage of the Seam + JSF combination is significantly higher compared to the rest. © 2012 Raible Designs 34
  • 35. World Wide Wait - Devoxx http://www.parleys.com/d/2942 © 2012 Raible Designs 35
  • 36. World Wide Wait - Devoxx © 2012 Raible Designs 36
  • 37. World Wide Wait - Devoxx © 2012 Raible Designs 37
  • 38. World Wide Wait - Devoxx © 2012 Raible Designs 38
  • 39. World Wide Wait - Devoxx © 2012 Raible Designs 39
  • 40. World Wide Wait - Devoxx HybridJava beats JSF, Wicket and Spring MVC by perfomance. © 2012 Raible Designs 40
  • 41. HybridJava - Really? © 2012 Raible Designs 41
  • 42. Pros and Cons © 2012 Raible Designs 42
  • 43. Grails ‣ Pros - Easy dynamic language transition for Java Developers - Groovy - Plugins for all types of applications ‣ Cons - Groovy learning targets Java Developers - Stack traces are horrendous - Knowledge of underlying frameworks not required, but helpful © 2012 Raible Designs 43
  • 44. GWT ‣ Pros - Write Java => Produces Optimized JavaScript - Easy to learn and develop with standard Java Tools - Vibrant Community ‣ Cons - You have to know Java - Slow to compile, difficult to test - More like a JSP Tag Library than a web framework © 2012 Raible Designs 44
  • 45. Ruby on Rails ‣ Pros - Easy to learn and understand for Web Developers - Lots and lots of documentation - Passionate Community ‣ Cons - Slightly less performant by default - Dynamic language means more tests - Development Tools and Debugging © 2012 Raible Designs 45
  • 46. Spring MVC ‣ Pros - Easy Configuration with Annotations and Conventions - Integrates with many view options seamlessly: JSP/ JSTL, Tiles, FreeMarker, Excel, PDF, JSON - Excellent REST Support ‣ Cons - Instant reload not built-in, need JRebel or Spring Roo - No open development process, need to be SpringSource - Ajax requires 3rd-party library (can be a good thing!) © 2012 Raible Designs 46
  • 47. Vaadin ‣ Pros - Uses GWT API for developing view - Vibrant Community and company backing - Excellent Themes and Layouts support ‣ Cons - Large memory footprint, state stored in session - Sketchy (?) because backed by a commercial organization - Joonas keeps telling me my cons are wrong © 2012 Raible Designs 47
  • 48. Wicket ‣ Pros - Great for Java Developers - Tight binding between pages and views - Active community - support from creators ‣ Cons - No Jobs or Developers - Stateful by default - HTML Templates live next to Java code by default © 2012 Raible Designs 48
  • 49. Tapestry ‣ Pros - Live Class Reloading - Development emphasis on performance and scalability - Excellent Exception Reporting ‣ Cons - No Jobs - Prototype baked in for JS Library - Annotations vs. Conventions © 2012 Raible Designs 49
  • 50. Pretty Graphs © 2012 Raible Designs 50
  • 51. LOC in AppFuse Light JSF Spring Stripes Struts 2 Tapestry 5 Wicket 5000 3750 2500 1250 0 JavaScript XML CSS Java © 2012 Raible Designs 51
  • 52. Jobs on Dice (World) 700 525 350 175 0 g ils T s et try din F ail JS rin GW ick Ra es a Gr Sp Va W p Ta © 2012 Raible Designs 52
  • 53. LinkedIn Skills (World) 40,000 30,000 20,000 10,000 0 ils g T ails ry t din F e JS rin GW est ck Ra a Gr Sp Va Wi Tap © 2012 Raible Designs 53
  • 54. Pretty Graphs © 2012 Raible Designs 54
  • 55. Pretty Graphs © 2012 Raible Designs 55
  • 56. Pretty Graphs © 2012 Raible Designs 56
  • 57. Pretty Graphs © 2012 Raible Designs 57
  • 58. Pretty Graphs © 2012 Raible Designs 58
  • 59. Pretty Graphs © 2012 Raible Designs 59
  • 60. Pretty Graphs © 2012 Raible Designs 60
  • 61. Pretty Graphs © 2012 Raible Designs 61
  • 62. Pretty Graphs © 2012 Raible Designs 62
  • 63. Mailing List Traffic Wicket 1841 GWT 1753 Grails 1635 Rails 1604 Tapestry 1538 Play 1451 0 475 950 1425 1900 * Spring MVC and Vaadin use Forums, which don’t provide this data. © 2012 Raible Designs 63
  • 64. Books on Amazon Rails Spring MVC GWT Grails Wicket Tapestry 5 Vaadin 0 75 150 225 300 © 2012 Raible Designs 64
  • 65. 2011 Releases As of August 24, 2011 0 4 8 12 16 Grails GWT Rails Spring MVC Vaadin Tapestry Wicket © 2012 Raible Designs 65
  • 66. StackOverflow Tagged Questions (August 24, 2011) 50,000 37,500 25,000 12,500 Grails 0 GWT Rails Spring MVC Vaadin © 2012 Raible Designs 66
  • 67. StackOverflow Tagged Questions (August 24, 2011) 10,000 7,500 5,000 2,500 Spring 0 JSF GWT Grails Wicket © 2012 Raible Designs 67
  • 68. StackOverflow Tagged Questions (August 24, 2011) 200000 150000 100000 50000 Java 0 Scala Groovy Clojure JRuby © 2012 Raible Designs 68
  • 69. StackOverflow Tagged Questions (August 24, 2011) 6000 4500 3000 1500 Scala 0 Groovy Clojure JRuby © 2012 Raible Designs 69
  • 70. Framework Popularity Source: ZeroTurnaround's Java EE Productivity Report 2010 © 2012 Raible Designs 70
  • 71. What we need is... © 2012 Raible Designs 71
  • 72. Innovators © 2012 Raible Designs 72
  • 73. Modern Principles © 2012 Raible Designs 73
  • 74. Web Developers © 2012 Raible Designs 74
  • 75. Java Developers “Java remains – in spite of the fragmented programming language landscape – a viable, growing language.” http://redmonk.com/sogrady/2012/02/08/language-rankings-2-2012/ © 2012 Raible Designs 75
  • 76. The Modern Web Developer ‣ ... embraces JavaScript ‣ ... is learning mobile frameworks - jQuery Mobile, Sencha Touch, PhoneGap or Native ‣ ... is using HTML5 and CSS3 ‣ ... is developing REST APIs with the stateless framework that best supports their language ‣ IE6 is dead, IE7 isn’t far behind... © 2012 Raible Designs 76
  • 77. You have to decide... Are you a web developer? © 2012 Raible Designs 77
  • 78. You have to decide... Or are you a services developer? © 2012 Raible Designs 78
  • 79. Client-Side MVC © 2012 Raible Designs 79
  • 80. REST Services © 2012 Raible Designs 80
  • 81. Developer Productivity http://zeroturnaround.com/blog/ developer-productivity-report-part-1-developer-timesheet/ © 2012 Raible Designs 81
  • 82. Developer Productivity http://zeroturnaround.com/blog/ developer-productivity-report-part-3-developer-efficiency/ © 2012 Raible Designs 82
  • 83. There is no “best” framework Just lots of awesome choices... © 2012 Raible Designs 83
  • 84. Don’t listen to me! © 2012 Raible Designs 84
  • 85. Choose your own! ‣ Prioritize a list of features that are important to your application. ‣ Pick 3-4 frameworks and do a 1-week spike with each, developing the same application. ‣ Document and rank each framework against your list of features. ‣ Calculate and choose! ‣ ... Or just pick one and get to work... © 2012 Raible Designs 85
  • 86. But don’t forget... © 2012 Raible Designs 86
  • 87. Questions? ‣ Contact - http://raibledesigns.com - @mraible ‣ Download - http://slideshare.net/mraible © 2012 Raible Designs 87