0
COMPARING JVM WEB   FRAMEWORKS                 Matt Raible           http://raibledesigns.com Images by Stuck in Customs -...
IntroductionsYour experience with webdevelopment?Your experience with JavaEE development?What do you want to getfrom this ...
Blogger on                 Father, Skier,    raibledesigns.com                 Cyclist                    Web Framework Co...
Session AgendaThe Problem with Web FrameworksThe CandidatesComparison PointsThe MatrixConclusionQ and A                   ...
The Problem              5
How do you choose?
E L I M I N AT E , D O N ’ T I N C L U D E
... while Id *love* to see life made simpler for Java webdevelopers, and a lot of the things happening in Struts2 aregoing...
Choosing a FrameworkChoose a short list of frameworks to prototype with.Create an application prototype with eachframework...
2007: 6 Important FactorsRequest, Component or RIA FrameworkEase of DevelopmentProject CommunityProject Future and Roadmap...
Request, Component or RIAAre you developing...– ... a consumer facing site?– ... a desktop-like, application?– ... a media...
Types of ApplicationsHigh-traffic, internet facing, infinite scalabilityIntranet-based, behind the firewall, few usersProduct...
Types of FrameworksRequest Based Frameworks– Struts 2, Spring MVC, Rails, StripesComponent Based Frameworks– JSF, Tapestry...
Do they matchup?High-traffic, internet facing, infinite scalability– Request-based frameworksIntranet-based, behind the firew...
2010: Now There’s 201. Developer Productivity2. Developer Perception3. Learning Curve4. Project Health5. Developer Availab...
2010: Comparison Points7. Templating8. Components9. Ajax10.Plugins or Add-Ons11.Scalability12.Testing Support             ...
2010: Comparison Pointsi18n and l10nValidationMulti-language Support (Groovy / Scala)Quality of Documentation/TutorialsBoo...
2010: Comparison PointsMobile / iPhone SupportDegree of Risk                          20
Comparison Matrix http://bit.ly/jvm-frameworks-matrix
Matrix Results        Spring MVC    Rails      GWT        Grails   Wicket        Struts 2      Stripes    Tapestry   Flex ...
Matrix ResultsSpring MVC (17)GWT (17)Ruby on Rails (17)Grails (16.5)Wicket (14.5)Struts 2 (14.5)                          ...
Pros and Cons
Spring MVCPros– Easy Configuration with Annotations and Conventions– Integrates with many view options seamlessly: JSP/  JS...
GWTPros  Write Java => Produces Optimized JavaScript  Easy to learn and develop with standard Java Tools  Vibrant Communit...
Ruby on RailsPros  Easy to learn and understand for Web Developers  Lots and lots of documentation  Passionate CommunityCo...
GrailsPros  Easy dynamic language transition for Java Developers  Groovy  Plugins for all types of applicationsCons  Groov...
WicketPros  Great for Java Developers  Tight binding between pages and views  Active community - support from creatorsCons...
Rails vs. Grailshttp://grails.org/Grails+vs+Rails+Benchmark– Grails: 40 requests per second, Rails: 32                    ...
Language Performance                                              Time (ms) per iteration600400200     0                Ja...
Jobs in 2010 (US)Spring MVC   GWT   Rails   Grails   Wicket 600 450 300 150    0                   Dice                   ...
Developer Skills (US)Spring MVC   GWT    Rails     Grails   Wicket11,000 8,250 5,500 2,750     0                   LinkedI...
Developer Skills (World)Spring MVC   GWT    Rails     Grails   Wicket11,000 8,250 5,500 2,750     0                   Link...
Pretty Graphs
Pretty Graphs
Pretty Graphs
Pretty Graphs
Pretty Graphs
Pretty Graphs
Mailing List Traffic                Rails               Grails                 GWT     Play    Wicket September 2010      ...
Books on Amazon       Spring MVC   Rails   GWT   Grails   WicketOctober 2010               0    50      100   150      200
2010 Releases                   As of October 28, 2010               0      4             8       12Spring MVC     GWT    ...
StackOverflow             Tagged Questions (October 26, 2010)                                                        30,00...
StackOverflow          Tagged Questions (October 26, 2010)                                                     25,000     ...
StackOverflow        Tagged Questions (October 28, 2010)                                                   80000          ...
StackOverflow        Tagged Questions (October 28, 2010)                                                   80000          ...
StackOverflow          Tagged Questions (October 28, 2010)                                                     3000       ...
Spring MVChttp://www.springsource.orgApache 2.0 LicenseActive Community @ http://forum.springsource.org/forumdisplay.php?f...
Google Web Toolkithttp://code.google.com/webtoolkitApache 2.0 LicenseActive Community @ http://groups.google.com/group/Goo...
Ruby on Railshttp://rubyonrails.orgMIT LicenseActive Community @http://rubyonrails.org/communityRecommended Books:– Agile ...
Grailshttp://grails.orgApache 2.0 LicenseActive Community @http://grails.org/CommunityRecommended Books:– Getting Started ...
Apache Wickethttp://wicket.apache.orgApache 2.0 LicenseActive Community @ http://wicket.apache.org/help/email.htmlRecommen...
CONCLUSIONWhat if there is no “best” web framework?
How to Choose?Prioritize a list of features that are important to yourapplication.Pick 3-4 frameworks and do a 1-week spik...
Questions?Contact Information  http://raibledesigns.com  http://twitter.com/mraibleDownload Presentation  http://slideshar...
Perbandingan Frameworks
Perbandingan Frameworks
Upcoming SlideShare
Loading in...5
×

Perbandingan Frameworks

451

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
451
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Perbandingan Frameworks"

  1. 1. COMPARING JVM WEB FRAMEWORKS Matt Raible http://raibledesigns.com Images by Stuck in Customs - http://www.flickr.com/photos/stuckincustoms © 2010, Raible Designs © 2010 Raible Designs
  2. 2. IntroductionsYour experience with webdevelopment?Your experience with JavaEE development?What do you want to getfrom this session?Experience with SpringMVC, GWT, Rails, Grails,Wicket or Struts 2? 2
  3. 3. Blogger on Father, Skier, raibledesigns.com Cyclist Web Framework ConnoisseurMontana Native Founder of AppFuse Who is Matt Raible? © 2010, Raible Designs
  4. 4. Session AgendaThe Problem with Web FrameworksThe CandidatesComparison PointsThe MatrixConclusionQ and A 4
  5. 5. The Problem 5
  6. 6. How do you choose?
  7. 7. E L I M I N AT E , D O N ’ T I N C L U D E
  8. 8. ... while Id *love* to see life made simpler for Java webdevelopers, and a lot of the things happening in Struts2 aregoing that way -- it wont be me doing it.Ive gone over to the dark side :-) and much prefer to develop inRails -- for the conciseness mentioned above, but also because Idont ever have to do a "build" or "deploy" step during mydevelopment cycle any more. But you guys and gals need to bereminded that *this* is the kind of thing you are competingagainst if you expect to attract Rails developers ... or to avoideven more "previously Java web developer" defectors like me :-). -- Craig McClanahan, 10/23/2007 h%p://markmail.org/thread/q65sekad33eobh2 10
  9. 9. Choosing a FrameworkChoose a short list of frameworks to prototype with.Create an application prototype with eachframework.Document findings and create a matrix withimportant criteria.Create presentation to summarize document.Deliver document, presentation andrecommendation. 11
  10. 10. 2007: 6 Important FactorsRequest, Component or RIA FrameworkEase of DevelopmentProject CommunityProject Future and RoadmapMaintenanceTechnical Features 12
  11. 11. Request, Component or RIAAre you developing...– ... a consumer facing site?– ... a desktop-like, application?– ... a media-rich site?If the framework is built for state-fulness, shouldyou use it in a stateless architecture? 13
  12. 12. Types of ApplicationsHigh-traffic, internet facing, infinite scalabilityIntranet-based, behind the firewall, few usersProducts, to be maintained for 5-10 yearsLegacy BackendOthers? 14
  13. 13. Types of FrameworksRequest Based Frameworks– Struts 2, Spring MVC, Rails, StripesComponent Based Frameworks– JSF, Tapestry, GWTRich Internet Applications– FlexOne Size Fits All– Grails 15
  14. 14. Do they matchup?High-traffic, internet facing, infinite scalability– Request-based frameworksIntranet-based, behind the firewall, few users– Component-based frameworksProducts, to be maintained for 5-10 years– Largest Community, Most Vendor SupportLegacy Backend– Same Language as backend 16
  15. 15. 2010: Now There’s 201. Developer Productivity2. Developer Perception3. Learning Curve4. Project Health5. Developer Availability6. Job Trends 17
  16. 16. 2010: Comparison Points7. Templating8. Components9. Ajax10.Plugins or Add-Ons11.Scalability12.Testing Support 18
  17. 17. 2010: Comparison Pointsi18n and l10nValidationMulti-language Support (Groovy / Scala)Quality of Documentation/TutorialsBooks PublishedREST Support (client and server) 19
  18. 18. 2010: Comparison PointsMobile / iPhone SupportDegree of Risk 20
  19. 19. Comparison Matrix http://bit.ly/jvm-frameworks-matrix
  20. 20. Matrix Results Spring MVC Rails GWT Grails Wicket Struts 2 Stripes Tapestry Flex Play JSF Vaadin Lift 1712.75 8.5 4.25 0 Rating 22
  21. 21. Matrix ResultsSpring MVC (17)GWT (17)Ruby on Rails (17)Grails (16.5)Wicket (14.5)Struts 2 (14.5) 23
  22. 22. Pros and Cons
  23. 23. Spring MVCPros– Easy Configuration with Annotations and Conventions– Integrates with many view options seamlessly: JSP/ JSTL, Tiles, FreeMarker, Excel, PDF, JSON– Excellent REST SupportCons– 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!) 25
  24. 24. GWTPros Write Java => Produces Optimized JavaScript Easy to learn and develop with standard Java Tools Vibrant CommunityCons You have to know Java Slow to compile, difficult to test More like a JSP Tag Library than a web framework 26
  25. 25. Ruby on RailsPros Easy to learn and understand for Web Developers Lots and lots of documentation Passionate CommunityCons Slightly less performant by default Dynamic language means more tests Development Tools and Debugging 27
  26. 26. GrailsPros Easy dynamic language transition for Java Developers Groovy Plugins for all types of applicationsCons Groovy learning targets Java Developers Stack traces are horrendous Knowledge of underlying frameworks not required, but helpful 28
  27. 27. WicketPros Great for Java Developers Tight binding between pages and views Active community - support from creatorsCons No Jobs or Developers Stateful by default HTML Templates live next to Java code by default 29
  28. 28. Rails vs. Grailshttp://grails.org/Grails+vs+Rails+Benchmark– Grails: 40 requests per second, Rails: 32 30
  29. 29. Language Performance Time (ms) per iteration600400200 0 Java C++ JRuby PythonGroovy PHPh%p://blog.dhananjaynene.com/2008/07/performance-­‐comparison-­‐c-­‐java-­‐python-­‐ruby-­‐jython-­‐jruby-­‐groovy/ 31
  30. 30. Jobs in 2010 (US)Spring MVC GWT Rails Grails Wicket 600 450 300 150 0 Dice 32
  31. 31. Developer Skills (US)Spring MVC GWT Rails Grails Wicket11,000 8,250 5,500 2,750 0 LinkedIn 33
  32. 32. Developer Skills (World)Spring MVC GWT Rails Grails Wicket11,000 8,250 5,500 2,750 0 LinkedIn 34
  33. 33. Pretty Graphs
  34. 34. Pretty Graphs
  35. 35. Pretty Graphs
  36. 36. Pretty Graphs
  37. 37. Pretty Graphs
  38. 38. Pretty Graphs
  39. 39. Mailing List Traffic Rails Grails GWT Play Wicket September 2010 0 1000 2000 3000 4000* Spring MVC uses Forums, which don’t provide this data.
  40. 40. Books on Amazon Spring MVC Rails GWT Grails WicketOctober 2010 0 50 100 150 200
  41. 41. 2010 Releases As of October 28, 2010 0 4 8 12Spring MVC GWT Rails Grails Wicket
  42. 42. StackOverflow Tagged Questions (October 26, 2010) 30,000 22,500 15,000 7,500Spring MVC 0 Grails Rails
  43. 43. StackOverflow Tagged Questions (October 26, 2010) 25,000 18,750 12,500 6,250Spring 0 GWT Grails Wicket Rails
  44. 44. StackOverflow Tagged Questions (October 28, 2010) 80000 60000 40000 20000Java 0 Scala JRuby Clojure Groovy
  45. 45. StackOverflow Tagged Questions (October 28, 2010) 80000 60000 40000 20000Java 0 PHP .NET Python Ruby
  46. 46. StackOverflow Tagged Questions (October 28, 2010) 3000 2250 1500 750Tomcat JBoss 0 Glassfish WebSphere Jetty
  47. 47. Spring MVChttp://www.springsource.orgApache 2.0 LicenseActive Community @ http://forum.springsource.org/forumdisplay.php?f=25Recommended Books:– Expert Spring MVC– Spring in Action– Pro Spring 49
  48. 48. Google Web Toolkithttp://code.google.com/webtoolkitApache 2.0 LicenseActive Community @ http://groups.google.com/group/Google-Web-ToolkitRecommended Books:– GWT in Action– GWT in Practice– Google Web Toolkit Solutions 50
  49. 49. Ruby on Railshttp://rubyonrails.orgMIT LicenseActive Community @http://rubyonrails.org/communityRecommended Books:– Agile Web Development with Rails– Rails for Java Developers 51
  50. 50. Grailshttp://grails.orgApache 2.0 LicenseActive Community @http://grails.org/CommunityRecommended Books:– Getting Started with Grails– Grails: A Quick-Start Guide– Programming Groovy 52
  51. 51. Apache Wickethttp://wicket.apache.orgApache 2.0 LicenseActive Community @ http://wicket.apache.org/help/email.htmlRecommended Books:– Wicket in Action– Pro Wicket 53
  52. 52. CONCLUSIONWhat if there is no “best” web framework?
  53. 53. How to Choose?Prioritize a list of features that are important to yourapplication.Pick 3-4 frameworks and do a 1-week spike witheach, developing the same application.Document and rank each framework against yourlist of features.Calculate and choose! 55
  54. 54. Questions?Contact Information http://raibledesigns.com http://twitter.com/mraibleDownload Presentation http://slideshare.net/mraible 56
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×