SlideShare uma empresa Scribd logo
1 de 66
Baixar para ler offline
COMPARING JVM WEB
        FRAMEWORKS


Matt Raible
http://raibledesigns.com

      Images by Stuck in Customs - http://www.flickr.com/photos/stuckincustoms
                                  © 2011 Raible Designs
INTRODUCTIONS

Your experience with web
development?

Your experience with Java
EE development?

What do you want to get
from this session?

Experience with Grails,
GWT, Rails, Spring MVC,
Wicket, Tapestry or Play?

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




Founder of AppFuse


                               Web Framework Connoisseur


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

The Problem with Web Frameworks

The Candidates

Comparison Points

The Matrix

Conclusion

Q and A

                                  © 2011, Raible Designs
THE PROBLEM




              © 2011, Raible Designs
HOW DO YOU CHOOSE?




                © 2011, Raible Designs
E L I M I N AT E , D O N ’ T I N C L U D E
© 2011, Raible Designs
© 2011, Raible Designs
... while I'd *love* to see life made simpler for Java web
developers, and a lot of the things happening in Struts2 are
going that way -- it won't be me doing it.

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

                               -- Craig McClanahan, 10/23/2007
                      http://markmail.org/thread/qfb5sekad33eobh2

                                                          © 2011, Raible Designs
JAMES GOSLING ON JSF




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

                                                     © 2011, Raible Designs
2007: 6 IMPORTANT
          FACTORS
Request, Component or RIA Framework

Ease of Development

Project Community

Project Future and Roadmap

Maintenance

Technical Features

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

Create an application prototype with each
framework.

Document findings and create a matrix with
important criteria.

Create presentation to summarize document.

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

1. Developer Productivity

2. Developer Perception

3. Learning Curve

4. Project Health

5. Developer Availability

6. Job Trends

                            © 2011, Raible Designs
2011: COMPARISON POINTS

7. Templating

8. Components

9. Ajax

10. Plugins or Add-Ons

11. Scalability

12. Testing Support

                         © 2011, Raible Designs
2011: COMPARISON POINTS

13. i18n and l10n

14. Validation

15. Multi-language Support (Groovy / Scala)

16. Quality of Documentation/Tutorials

17. Books Published

18. REST Support (client and server)

                                              © 2011, Raible Designs
2011: COMPARISON POINTS

19. Mobile / iPhone Support

20. Degree of Risk




                              © 2011, Raible Designs
COMPARISON MATRIX




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

                                       © 2011, Raible Designs
MATRIX RESULTS
   Grails     Spring MVC   Rails     GWT    Vaadin   Wicket
   Tapestry   Struts 2     Stripes   Play   Flex     JSF
   Lift



 18

13.5

  9

 4.5

  0
                            Rating

                                                     © 2011, Raible Designs
MATRIX RESULTS

Grails (17.5)

GWT (17)

Ruby on Rails (17)

Spring MVC (17)

Vaadin (15.5)

Tapestry and Wicket (15)

                           © 2011, Raible Designs
WEIGHTED MATRIX




                  © 2011, Raible Designs
WEIGHTED RESULTS

Grails (90)

Spring MVC (85)

Ruby on Rails (82.5)

Vaadin (82.5)

Play (82.5)

GWT (80)

                       © 2011, Raible Designs
RATINGS LOGIC

1. Developer Productivity

2. Developer Perception

3. Learning Curve

4. Project Health

5. Developer Availability

6. Job Trends

                            © 2011, Raible Designs
RATINGS LOGIC

7. Templating

8. Components

9. Ajax

10. Plugins or Add-Ons

11. Scalability

12. Testing Support

                          © 2011, Raible Designs
RATINGS LOGIC

13. i18n and l10n

14. Validation

15. Multi-language Support (Groovy / Scala)

16. Quality of Documentation/Tutorials

17. Books Published

18. REST Support (client and server)

                                              © 2011, Raible Designs
RATINGS LOGIC

19. Mobile / iPhone Support

20. Degree of Risk




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


                                                                 © 2011, Raible Designs
DAVID POLLACK’S
         LIFT RATINGS

Developer Productivity: Lift gets a 11, Rails gets a 5,
most Java-based frameworks get a 1 or less.

Developer Perception: Every web framework gets a 1. 

Learning Curve: Lift gets a 2.

Job Trends, yep, it's zero.

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

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

                                                                       © 2011, Raible Designs
PETER THOMAS’S
        PERFBENCH
Seam / JSF vs. Wicket Performance Comparison

  January 2009: Seam 2.1.1 and Wicket 1.3.5

  Average page response time in milliseconds




                                               © 2011, Raible Designs
PETER THOMAS’S
        PERFBENCH
On the Seam / JSF side, the 20 sessions each take up
about 800 KB adding up to around 16 MB total. On
the Wicket side the 20 sessions add up to around 1.5
MB.




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

                                                © 2011, Raible Designs
PETER THOMAS’S
        PERFBENCH
Peter’s Observations:

  Grails was far more productive than Tapestry 5.

  Grails still has some ways to go in terms of performance.

  Overall, Wicket is fastest, with Tapestry coming a close
  second.

  Wicket takes up the least amount of heap.

  Session usage of the Seam + JSF combination is
  significantly higher compared to the rest.

                                                      © 2011, Raible Designs
PROS AND CONS




                © 2011, Raible Designs
GRAILS
Pros

  Easy dynamic language transition for Java Developers

  Groovy

  Plugins for all types of applications

Cons

  Groovy learning targets Java Developers

  Stack traces are horrendous

  Knowledge of underlying frameworks not required, but helpful

                                                         © 2011, Raible Designs
GWT
Pros

  Write Java => Produces Optimized JavaScript

  Easy to learn and develop with standard Java Tools

  Vibrant Community

Cons

  You have to know Java

  Slow to compile, difficult to test

  More like a JSP Tag Library than a web framework

                                                       © 2011, Raible Designs
RUBY ON RAILS
Pros

  Easy to learn and understand for Web Developers

  Lots and lots of documentation

  Passionate Community

Cons

  Slightly less performant by default

  Dynamic language means more tests

  Development Tools and Debugging

                                                    © 2011, Raible Designs
SPRING MVC
Pros

  Easy Configuration with Annotations and Conventions

  Integrates with many view options seamlessly: JSP/JSTL, Tiles,
  FreeMarker, Excel, PDF, JSON

  Excellent REST Support

Cons

  Instant reload not built-in, need JRebel or Spring Roo

  No open development process, need to be SpringSource

  Ajax requires 3rd-party library (can be a good thing!)

                                                               © 2011, Raible Designs
VAADIN
Pros

  Uses GWT API for developing view.

  Vibrant Community and company backing.

  Excellent Themes and Layouts support.

Cons

  Large memory footprint, state stored in session.

  Doesn’t use JSON for communication.

  Commercial backing with Pro version.

                                                     © 2011, Raible Designs
WICKET
Pros

  Great for Java Developers

  Tight binding between pages and views

  Active community - support from creators

Cons

  No Jobs or Developers

  Stateful by default

  HTML Templates live next to Java code by default

                                                     © 2011, Raible Designs
TAPESTRY
Pros

  Live Class Reloading

  Development emphasis on performance and scalability

  Excellent Exception Reporting

Cons

  No Jobs

  Prototype baked in for JS Library

  Annotations vs. Conventions

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

             600



             400



             200



                0
                       Java      C++     JRuby Python Groovy PHP

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

                                                                                  © 2011, Raible Designs
JOBS IN 2011 (US)
Grails   GWT   Rails   Spring MVC   Tapestry   Wicket   Vaadin


         700


         525


         350


         175


           0
                            Dice

                                                        © 2011, Raible Designs
DEVELOPER SKILLS (US)
Grails      GWT   Rails   Spring MVC    Tapestry   Wicket   Vaadin


         11,000


         8,250


         5,500


         2,750


             0
                             LinkedIn

                                                            © 2011, Raible Designs
PRETTY GRAPHS




                © 2011, Raible Designs
PRETTY GRAPHS




                © 2011, Raible Designs
PRETTY GRAPHS




                © 2011, Raible Designs
PRETTY GRAPHS




                © 2011, Raible Designs
PRETTY GRAPHS




                © 2011, Raible Designs
PRETTY GRAPHS




                © 2011, Raible Designs
PRETTY GRAPHS




                © 2011, Raible Designs
MAILING LIST TRAFFIC
           GWT             Rails         Grails          Play        Tapestry   Wicket




   January 2011




                      0               750              1500          2250       3000



* Spring MVC and Vaadin use Forums, which don’t provide this data.
                                                                                  © 2011, Raible Designs
JSF LIST TRAFFIC
              PrimeFaces                RichFaces               MyFaces          Majorra (RI)




    January 2011




                       0                500              1000             1500         2000



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




   January 2011




                      0                575               1150               1725        2300



* Spring MVC and Vaadin use Forums, which don’t provide this data.
                                                                                           © 2011, Raible Designs
MAILING LIST TRENDS




   JRuby




           Ruby on Rails
                           © 2011, Raible Designs
MAILING LIST TRENDS




   JRuby




           Ruby on Rails
                           © 2011, Raible Designs
MAILING LIST TRENDS




                   Grails



                              Tapestry




Source: http://markmail.org              GWT

                                               © 2011, Raible Designs
BOOKS ON AMAZON
     Grails    GWT   Rails    Spring MVC   Wicket         Tapestry 5     Vaadin




January 2011




               0         50          100            150                200



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


             0   6             12             18   24

   Grails

    GWT

     Rails

Spring MVC

    Vaadin




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



                                                    40,000


                                                   30,000


                                                   20,000


                                               10,000

Grails                                         0
         GWT
                Rails
                        Spring MVC
                                      Vaadin

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



                                                       6,000


                                                      4,500


                                                      3,000


                                                  1,500

Spring                                            0
         GWT
                 Grails
                           Wicket
                                       Tapestry

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



                                                      100000


                                                     75000


                                                     50000


                                                 25000

Java                                             0
       Scala
               JRuby
                          Clojure
                                      Groovy

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



                                                     4000


                                                    3000


                                                    2000


                                                1000


Scala                                           0
        JRuby
                    Clojure
                                   Groovy

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



                                                    80000


                                                   60000


                                                   40000


                                               20000

Java                                           0
       PHP
              .NET
                        Python
                                      Ruby

                                                            © 2011, Raible Designs
FRAMEWORK POPULARITY




Source: ZeroTurnaround's Java EE Productivity Report 2010


                                                            © 2011, Raible Designs
CONCLUSION
What if there is no “best” web framework?
                                                         © 2011, Raible Designs
http://www.gladwell.com/2004/2004_09_06_a_ketchup.html
DON’T LISTEN TO ME!




                  © 2011, Raible Designs
CHOOSE YOUR OWN!

Prioritize a list of features that are important to your
application.

Pick 3-4 frameworks and do a 1-week spike with
each, developing the same application.

Document and rank each framework against your list
of features.

Calculate and choose!


                                                    © 2011, Raible Designs
QUESTIONS?

Contact Information

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

Download Presentation

  http://slideshare.net/mraible




                                  © 2011, Raible Designs

Mais conteúdo relacionado

Mais procurados

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
 
Building and Working With Static Sites in Ruby on Rails
Building and Working With Static Sites in Ruby on RailsBuilding and Working With Static Sites in Ruby on Rails
Building and Working With Static Sites in Ruby on RailsViget Labs
 
DEFCON-23-Nadeem-Douba-BurpKit
DEFCON-23-Nadeem-Douba-BurpKitDEFCON-23-Nadeem-Douba-BurpKit
DEFCON-23-Nadeem-Douba-BurpKitNadeem Douba
 
Web Frameworks of the Future
Web Frameworks of the FutureWeb Frameworks of the Future
Web Frameworks of the Futureelliando dias
 
Why every startup built with Ruby on Rails has an upper hand over their compe...
Why every startup built with Ruby on Rails has an upper hand over their compe...Why every startup built with Ruby on Rails has an upper hand over their compe...
Why every startup built with Ruby on Rails has an upper hand over their compe...DreamToIPO
 
Single Page Application JS Framework Round up
Single Page Application JS Framework Round upSingle Page Application JS Framework Round up
Single Page Application JS Framework Round upFrank Duan
 
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
 
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
 
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
 
Application Deployment at UC Riverside
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC RiversideMichael Kennedy
 
Html5 with Vaadin and Scala
Html5 with Vaadin and ScalaHtml5 with Vaadin and Scala
Html5 with Vaadin and ScalaJoonas Lehtinen
 
GR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting GrailsGR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting GrailsGR8Conf
 
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...Nick Dellamaggiore
 
Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7Roberto Cortez
 
#SitBERN modern abap development with abapgit
#SitBERN modern abap development with abapgit#SitBERN modern abap development with abapgit
#SitBERN modern abap development with abapgitChristian Günter
 
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyoSpring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyoToshiaki Maki
 
October 2018 ODTUG Webinar - Getting Started with Groovy in EPBCS
October 2018 ODTUG Webinar - Getting Started with Groovy in EPBCSOctober 2018 ODTUG Webinar - Getting Started with Groovy in EPBCS
October 2018 ODTUG Webinar - Getting Started with Groovy in EPBCSKyle Goodfriend
 
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
 

Mais procurados (20)

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
 
Building and Working With Static Sites in Ruby on Rails
Building and Working With Static Sites in Ruby on RailsBuilding and Working With Static Sites in Ruby on Rails
Building and Working With Static Sites in Ruby on Rails
 
DEFCON-23-Nadeem-Douba-BurpKit
DEFCON-23-Nadeem-Douba-BurpKitDEFCON-23-Nadeem-Douba-BurpKit
DEFCON-23-Nadeem-Douba-BurpKit
 
Web Frameworks of the Future
Web Frameworks of the FutureWeb Frameworks of the Future
Web Frameworks of the Future
 
Why every startup built with Ruby on Rails has an upper hand over their compe...
Why every startup built with Ruby on Rails has an upper hand over their compe...Why every startup built with Ruby on Rails has an upper hand over their compe...
Why every startup built with Ruby on Rails has an upper hand over their compe...
 
Single Page Application JS Framework Round up
Single Page Application JS Framework Round upSingle Page Application JS Framework Round up
Single Page Application JS Framework Round up
 
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
 
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
 
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
 
Application Deployment at UC Riverside
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC Riverside
 
Neo4J and Grails
Neo4J and GrailsNeo4J and Grails
Neo4J and Grails
 
Html5 with Vaadin and Scala
Html5 with Vaadin and ScalaHtml5 with Vaadin and Scala
Html5 with Vaadin and Scala
 
GR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting GrailsGR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting Grails
 
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
 
Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7
 
#SitBERN modern abap development with abapgit
#SitBERN modern abap development with abapgit#SitBERN modern abap development with abapgit
#SitBERN modern abap development with abapgit
 
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyoSpring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
 
October 2018 ODTUG Webinar - Getting Started with Groovy in EPBCS
October 2018 ODTUG Webinar - Getting Started with Groovy in EPBCSOctober 2018 ODTUG Webinar - Getting Started with Groovy in EPBCS
October 2018 ODTUG Webinar - Getting Started with Groovy in EPBCS
 
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
 
JavaCro'15 - HUJAKing – Expansion of Java Community - Branko Mihaljević, Alek...
JavaCro'15 - HUJAKing – Expansion of Java Community - Branko Mihaljević, Alek...JavaCro'15 - HUJAKing – Expansion of Java Community - Branko Mihaljević, Alek...
JavaCro'15 - HUJAKing – Expansion of Java Community - Branko Mihaljević, Alek...
 

Destaque

Spring & Struts
Spring & StrutsSpring & Struts
Spring & Strutseduan
 
Introdução ao Spring Framework
Introdução ao Spring FrameworkIntrodução ao Spring Framework
Introdução ao Spring FrameworkNatanael Fonseca
 
P presentation 2 (problem solving speech)
P presentation 2 (problem solving speech)P presentation 2 (problem solving speech)
P presentation 2 (problem solving speech)griquelme
 
Problem, process, and solution part 1
Problem, process, and solution part 1Problem, process, and solution part 1
Problem, process, and solution part 1Stefan Rathert
 
Mvc pattern and implementation in java fair
Mvc   pattern   and implementation   in   java fairMvc   pattern   and implementation   in   java fair
Mvc pattern and implementation in java fairTech_MX
 

Destaque (6)

Spring & Struts
Spring & StrutsSpring & Struts
Spring & Struts
 
Introdução ao Spring Framework
Introdução ao Spring FrameworkIntrodução ao Spring Framework
Introdução ao Spring Framework
 
P presentation 2 (problem solving speech)
P presentation 2 (problem solving speech)P presentation 2 (problem solving speech)
P presentation 2 (problem solving speech)
 
MVC Architecture
MVC ArchitectureMVC Architecture
MVC Architecture
 
Problem, process, and solution part 1
Problem, process, and solution part 1Problem, process, and solution part 1
Problem, process, and solution part 1
 
Mvc pattern and implementation in java fair
Mvc   pattern   and implementation   in   java fairMvc   pattern   and implementation   in   java fair
Mvc pattern and implementation in java fair
 

Semelhante a Comparing JVM Web Frameworks - TSSJS 2011

Choosing a JVM Web Framework
Choosing a JVM Web FrameworkChoosing a JVM Web Framework
Choosing a JVM Web FrameworkMatt Raible
 
Comparing javawebframeworks apacheconus2007
Comparing javawebframeworks apacheconus2007Comparing javawebframeworks apacheconus2007
Comparing javawebframeworks apacheconus2007Geococcyx
 
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
 
December 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig PresentationDecember 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig PresentationJonathan Abrams
 
Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010arif44
 
Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Shaer Hassan
 
Laravel & Vuejs_ A Powerful Combination for Perfect Web Applications.pdf
Laravel & Vuejs_ A Powerful Combination for Perfect Web Applications.pdfLaravel & Vuejs_ A Powerful Combination for Perfect Web Applications.pdf
Laravel & Vuejs_ A Powerful Combination for Perfect Web Applications.pdfMoon Technolabs Pvt. Ltd.
 
Angular VS React The Battle of Best Front End Frameworks.pdf
Angular VS React The Battle of Best Front End Frameworks.pdfAngular VS React The Battle of Best Front End Frameworks.pdf
Angular VS React The Battle of Best Front End Frameworks.pdfJS Panther Pvt. Ltd.
 
WebBee rapid web app development teck stack
WebBee rapid web app development teck stackWebBee rapid web app development teck stack
WebBee rapid web app development teck stackALDAN3
 
React js vs react native a comparative analysis
React js vs react native a comparative analysisReact js vs react native a comparative analysis
React js vs react native a comparative analysisShelly Megan
 
Django vs. Ruby on Rails Comparison: Web Frameworks Performance and Popularity
Django vs. Ruby on Rails Comparison: Web Frameworks Performance and PopularityDjango vs. Ruby on Rails Comparison: Web Frameworks Performance and Popularity
Django vs. Ruby on Rails Comparison: Web Frameworks Performance and Popularityrorbitssoftware
 
React.js alternatives modern web frameworks and lightweight java script libr...
React.js alternatives  modern web frameworks and lightweight java script libr...React.js alternatives  modern web frameworks and lightweight java script libr...
React.js alternatives modern web frameworks and lightweight java script libr...Katy Slemon
 
The Modern Java Web Developer - JavaOne 2013
The Modern Java Web Developer - JavaOne 2013The Modern Java Web Developer - JavaOne 2013
The Modern Java Web Developer - JavaOne 2013Matt Raible
 
React Vs Vue.js Which One is Better.pdf
React Vs Vue.js Which One is Better.pdfReact Vs Vue.js Which One is Better.pdf
React Vs Vue.js Which One is Better.pdfLaura Miller
 
Angular vs React vs Vue – The Right Framework For You.pdf
Angular vs React vs Vue – The Right Framework For You.pdfAngular vs React vs Vue – The Right Framework For You.pdf
Angular vs React vs Vue – The Right Framework For You.pdfWPWeb Infotech
 

Semelhante a Comparing JVM Web Frameworks - TSSJS 2011 (20)

Choosing a JVM Web Framework
Choosing a JVM Web FrameworkChoosing a JVM Web Framework
Choosing a JVM Web Framework
 
Comparing javawebframeworks apacheconus2007
Comparing javawebframeworks apacheconus2007Comparing javawebframeworks apacheconus2007
Comparing javawebframeworks apacheconus2007
 
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
 
Sreerag dot net vs j2ee
Sreerag   dot net vs j2eeSreerag   dot net vs j2ee
Sreerag dot net vs j2ee
 
December 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig PresentationDecember 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig Presentation
 
Jspx Jdc2010
Jspx Jdc2010Jspx Jdc2010
Jspx Jdc2010
 
Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010
 
Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09
 
Laravel & Vuejs_ A Powerful Combination for Perfect Web Applications.pdf
Laravel & Vuejs_ A Powerful Combination for Perfect Web Applications.pdfLaravel & Vuejs_ A Powerful Combination for Perfect Web Applications.pdf
Laravel & Vuejs_ A Powerful Combination for Perfect Web Applications.pdf
 
Frameworks in java
Frameworks in javaFrameworks in java
Frameworks in java
 
Angular VS React The Battle of Best Front End Frameworks.pdf
Angular VS React The Battle of Best Front End Frameworks.pdfAngular VS React The Battle of Best Front End Frameworks.pdf
Angular VS React The Battle of Best Front End Frameworks.pdf
 
WebBee rapid web app development teck stack
WebBee rapid web app development teck stackWebBee rapid web app development teck stack
WebBee rapid web app development teck stack
 
React js vs react native a comparative analysis
React js vs react native a comparative analysisReact js vs react native a comparative analysis
React js vs react native a comparative analysis
 
Django vs. Ruby on Rails Comparison: Web Frameworks Performance and Popularity
Django vs. Ruby on Rails Comparison: Web Frameworks Performance and PopularityDjango vs. Ruby on Rails Comparison: Web Frameworks Performance and Popularity
Django vs. Ruby on Rails Comparison: Web Frameworks Performance and Popularity
 
React.js alternatives modern web frameworks and lightweight java script libr...
React.js alternatives  modern web frameworks and lightweight java script libr...React.js alternatives  modern web frameworks and lightweight java script libr...
React.js alternatives modern web frameworks and lightweight java script libr...
 
The Modern Java Web Developer - JavaOne 2013
The Modern Java Web Developer - JavaOne 2013The Modern Java Web Developer - JavaOne 2013
The Modern Java Web Developer - JavaOne 2013
 
React Vs Vue.js Which One is Better.pdf
React Vs Vue.js Which One is Better.pdfReact Vs Vue.js Which One is Better.pdf
React Vs Vue.js Which One is Better.pdf
 
How backbone.js is different from ember.js?
How backbone.js is different from ember.js?How backbone.js is different from ember.js?
How backbone.js is different from ember.js?
 
What is ReactJS?
What is ReactJS?What is ReactJS?
What is ReactJS?
 
Angular vs React vs Vue – The Right Framework For You.pdf
Angular vs React vs Vue – The Right Framework For You.pdfAngular vs React vs Vue – The Right Framework For You.pdf
Angular vs React vs Vue – The Right Framework For You.pdf
 

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

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

Último

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Último (20)

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

Comparing JVM Web Frameworks - TSSJS 2011

  • 1. COMPARING JVM WEB FRAMEWORKS Matt Raible http://raibledesigns.com Images by Stuck in Customs - http://www.flickr.com/photos/stuckincustoms © 2011 Raible Designs
  • 2. INTRODUCTIONS Your experience with web development? Your experience with Java EE development? What do you want to get from this session? Experience with Grails, GWT, Rails, Spring MVC, Wicket, Tapestry or Play? © 2011, Raible Designs
  • 3. Blogger on raibledesigns.com Father, Skier, Cyclist Founder of AppFuse Web Framework Connoisseur Who is Matt Raible? © 2011, Raible Designs
  • 4. SESSION AGENDA The Problem with Web Frameworks The Candidates Comparison Points The Matrix Conclusion Q and A © 2011, Raible Designs
  • 5. THE PROBLEM © 2011, Raible Designs
  • 6. HOW DO YOU CHOOSE? © 2011, Raible Designs
  • 7. E L I M I N AT E , D O N ’ T I N C L U D E
  • 8. © 2011, Raible Designs
  • 9. © 2011, Raible Designs
  • 10. ... while I'd *love* to see life made simpler for Java web developers, and a lot of the things happening in Struts2 are going that way -- it won't be me doing it. I've gone over to the dark side :-) and much prefer to develop in Rails -- for the conciseness mentioned above, but also because I don't ever have to do a "build" or "deploy" step during my development cycle any more. But you guys and gals need to be reminded that *this* is the kind of thing you are competing against if you expect to attract Rails developers ... or to avoid even more "previously Java web developer" defectors like me :-). -- Craig McClanahan, 10/23/2007 http://markmail.org/thread/qfb5sekad33eobh2 © 2011, Raible Designs
  • 11. JAMES GOSLING ON JSF http://www.youtube.com/watch?v=9ei-rbULWoA#t=47m © 2011, Raible Designs
  • 12. 2007: 6 IMPORTANT FACTORS Request, Component or RIA Framework Ease of Development Project Community Project Future and Roadmap Maintenance Technical Features © 2011, Raible Designs
  • 13. CHOOSING A FRAMEWORK Choose a short list of frameworks to prototype with. Create an application prototype with each framework. Document findings and create a matrix with important criteria. Create presentation to summarize document. Deliver document, presentation and recommendation. © 2011, Raible Designs
  • 14. 2011: NOW THERE’S 20 1. Developer Productivity 2. Developer Perception 3. Learning Curve 4. Project Health 5. Developer Availability 6. Job Trends © 2011, Raible Designs
  • 15. 2011: COMPARISON POINTS 7. Templating 8. Components 9. Ajax 10. Plugins or Add-Ons 11. Scalability 12. Testing Support © 2011, Raible Designs
  • 16. 2011: COMPARISON POINTS 13. i18n and l10n 14. Validation 15. Multi-language Support (Groovy / Scala) 16. Quality of Documentation/Tutorials 17. Books Published 18. REST Support (client and server) © 2011, Raible Designs
  • 17. 2011: COMPARISON POINTS 19. Mobile / iPhone Support 20. Degree of Risk © 2011, Raible Designs
  • 19. MATRIX RESULTS Grails Spring MVC Rails GWT Vaadin Wicket Tapestry Struts 2 Stripes Play Flex JSF Lift 18 13.5 9 4.5 0 Rating © 2011, Raible Designs
  • 20. MATRIX RESULTS Grails (17.5) GWT (17) Ruby on Rails (17) Spring MVC (17) Vaadin (15.5) Tapestry and Wicket (15) © 2011, Raible Designs
  • 21. WEIGHTED MATRIX © 2011, Raible Designs
  • 22. WEIGHTED RESULTS Grails (90) Spring MVC (85) Ruby on Rails (82.5) Vaadin (82.5) Play (82.5) GWT (80) © 2011, Raible Designs
  • 23. RATINGS LOGIC 1. Developer Productivity 2. Developer Perception 3. Learning Curve 4. Project Health 5. Developer Availability 6. Job Trends © 2011, Raible Designs
  • 24. RATINGS LOGIC 7. Templating 8. Components 9. Ajax 10. Plugins or Add-Ons 11. Scalability 12. Testing Support © 2011, Raible Designs
  • 25. RATINGS LOGIC 13. i18n and l10n 14. Validation 15. Multi-language Support (Groovy / Scala) 16. Quality of Documentation/Tutorials 17. Books Published 18. REST Support (client and server) © 2011, Raible Designs
  • 26. RATINGS LOGIC 19. Mobile / iPhone Support 20. Degree of Risk http://raibledesigns.com/rd/entry/how_i_calculated_ratings_for © 2011, Raible Designs
  • 27. DAVID POLLACK’S LIFT RATINGS Developer Productivity: Lift gets a 11, Rails gets a 5, most Java-based frameworks get a 1 or less. Developer Perception: Every web framework gets a 1.  Learning Curve: Lift gets a 2. Job Trends, yep, it's zero. * Matt's scale is 0-1 and my ratings are on Matt's scale, except mine goes to 11. http://lift.la/my-take-on-matt-raibles-spreadsheet © 2011, Raible Designs
  • 28. PETER THOMAS’S PERFBENCH Seam / JSF vs. Wicket Performance Comparison January 2009: Seam 2.1.1 and Wicket 1.3.5 Average page response time in milliseconds © 2011, Raible Designs
  • 29. PETER THOMAS’S PERFBENCH On the Seam / JSF side, the 20 sessions each take up about 800 KB adding up to around 16 MB total. On the Wicket side the 20 sessions add up to around 1.5 MB. + Lots of banter between Peter and Seam developers @ http://bit.ly/3X50Gc © 2011, Raible Designs
  • 30. PETER THOMAS’S PERFBENCH Peter’s Observations: Grails was far more productive than Tapestry 5. Grails still has some ways to go in terms of performance. Overall, Wicket is fastest, with Tapestry coming a close second. Wicket takes up the least amount of heap. Session usage of the Seam + JSF combination is significantly higher compared to the rest. © 2011, Raible Designs
  • 31. PROS AND CONS © 2011, Raible Designs
  • 32. GRAILS Pros Easy dynamic language transition for Java Developers Groovy Plugins for all types of applications Cons Groovy learning targets Java Developers Stack traces are horrendous Knowledge of underlying frameworks not required, but helpful © 2011, Raible Designs
  • 33. GWT Pros Write Java => Produces Optimized JavaScript Easy to learn and develop with standard Java Tools Vibrant Community Cons You have to know Java Slow to compile, difficult to test More like a JSP Tag Library than a web framework © 2011, Raible Designs
  • 34. RUBY ON RAILS Pros Easy to learn and understand for Web Developers Lots and lots of documentation Passionate Community Cons Slightly less performant by default Dynamic language means more tests Development Tools and Debugging © 2011, Raible Designs
  • 35. SPRING MVC Pros Easy Configuration with Annotations and Conventions Integrates with many view options seamlessly: JSP/JSTL, Tiles, FreeMarker, Excel, PDF, JSON Excellent REST Support Cons Instant reload not built-in, need JRebel or Spring Roo No open development process, need to be SpringSource Ajax requires 3rd-party library (can be a good thing!) © 2011, Raible Designs
  • 36. 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. Doesn’t use JSON for communication. Commercial backing with Pro version. © 2011, Raible Designs
  • 37. WICKET Pros Great for Java Developers Tight binding between pages and views Active community - support from creators Cons No Jobs or Developers Stateful by default HTML Templates live next to Java code by default © 2011, Raible Designs
  • 38. TAPESTRY Pros Live Class Reloading Development emphasis on performance and scalability Excellent Exception Reporting Cons No Jobs Prototype baked in for JS Library Annotations vs. Conventions © 2011, Raible Designs
  • 39. LANGUAGE PERFORMANCE Time (ms) per iteration 600 400 200 0 Java C++ JRuby Python Groovy PHP http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython- jruby-groovy/ © 2011, Raible Designs
  • 40. JOBS IN 2011 (US) Grails GWT Rails Spring MVC Tapestry Wicket Vaadin 700 525 350 175 0 Dice © 2011, Raible Designs
  • 41. DEVELOPER SKILLS (US) Grails GWT Rails Spring MVC Tapestry Wicket Vaadin 11,000 8,250 5,500 2,750 0 LinkedIn © 2011, Raible Designs
  • 42. PRETTY GRAPHS © 2011, Raible Designs
  • 43. PRETTY GRAPHS © 2011, Raible Designs
  • 44. PRETTY GRAPHS © 2011, Raible Designs
  • 45. PRETTY GRAPHS © 2011, Raible Designs
  • 46. PRETTY GRAPHS © 2011, Raible Designs
  • 47. PRETTY GRAPHS © 2011, Raible Designs
  • 48. PRETTY GRAPHS © 2011, Raible Designs
  • 49. MAILING LIST TRAFFIC GWT Rails Grails Play Tapestry Wicket January 2011 0 750 1500 2250 3000 * Spring MVC and Vaadin use Forums, which don’t provide this data. © 2011, Raible Designs
  • 50. JSF LIST TRAFFIC PrimeFaces RichFaces MyFaces Majorra (RI) January 2011 0 500 1000 1500 2000 * ICEfaces uses Forums, which don’t provide this data. © 2011, Raible Designs
  • 51. MAILING LIST TRAFFIC GWT Rails Grails Play PrimeFaces January 2011 0 575 1150 1725 2300 * Spring MVC and Vaadin use Forums, which don’t provide this data. © 2011, Raible Designs
  • 52. MAILING LIST TRENDS JRuby Ruby on Rails © 2011, Raible Designs
  • 53. MAILING LIST TRENDS JRuby Ruby on Rails © 2011, Raible Designs
  • 54. MAILING LIST TRENDS Grails Tapestry Source: http://markmail.org GWT © 2011, Raible Designs
  • 55. BOOKS ON AMAZON Grails GWT Rails Spring MVC Wicket Tapestry 5 Vaadin January 2011 0 50 100 150 200 © 2011, Raible Designs
  • 56. 2010 RELEASES As of October 28, 2010 0 6 12 18 24 Grails GWT Rails Spring MVC Vaadin © 2011, Raible Designs
  • 57. STACKOVERFLOW Tagged Questions (March 8, 2011) 40,000 30,000 20,000 10,000 Grails 0 GWT Rails Spring MVC Vaadin © 2011, Raible Designs
  • 58. STACKOVERFLOW Tagged Questions (February 15, 2011) 6,000 4,500 3,000 1,500 Spring 0 GWT Grails Wicket Tapestry © 2011, Raible Designs
  • 59. STACKOVERFLOW Tagged Questions (February 15, 2011) 100000 75000 50000 25000 Java 0 Scala JRuby Clojure Groovy © 2011, Raible Designs
  • 60. STACKOVERFLOW Tagged Questions (February 15, 2011) 4000 3000 2000 1000 Scala 0 JRuby Clojure Groovy © 2011, Raible Designs
  • 61. STACKOVERFLOW Tagged Questions (October 28, 2010) 80000 60000 40000 20000 Java 0 PHP .NET Python Ruby © 2011, Raible Designs
  • 62. FRAMEWORK POPULARITY Source: ZeroTurnaround's Java EE Productivity Report 2010 © 2011, Raible Designs
  • 63. CONCLUSION What if there is no “best” web framework? © 2011, Raible Designs http://www.gladwell.com/2004/2004_09_06_a_ketchup.html
  • 64. DON’T LISTEN TO ME! © 2011, Raible Designs
  • 65. CHOOSE YOUR OWN! Prioritize a list of features that are important to your application. Pick 3-4 frameworks and do a 1-week spike with each, developing the same application. Document and rank each framework against your list of features. Calculate and choose! © 2011, Raible Designs
  • 66. QUESTIONS? Contact Information http://raibledesigns.com http://twitter.com/mraible Download Presentation http://slideshare.net/mraible © 2011, Raible Designs