Perbandingan Frameworks

download Perbandingan Frameworks

of 56

  • date post

  • Category


  • view

  • download


Embed Size (px)

Transcript of Perbandingan Frameworks

  • 1. COMPARING JVM WEB FRAMEWORKS Matt Raible Images by Stuck in Customs - 2010, Raible Designs 2010 Raible Designs

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. Blogger on Father, Skier, CyclistWeb Framework ConnoisseurMontana NativeFounder of AppFuseWho is Matt Raible? 2010, Raible Designs 4. Session AgendaThe Problem with Web FrameworksThe CandidatesComparison PointsThe MatrixConclusionQ and A4 5. The Problem5 6. How do you choose? 7. E L I M I N AT E , D O N T I N C L U D E 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/2007h%p:// 10 9. Choosing a FrameworkChoose a short list of frameworks to prototype with.Create an application prototype with eachframework.Document ndings and create a matrix withimportant criteria.Create presentation to summarize document.Deliver document, presentation andrecommendation.11 10. 2007: 6 Important FactorsRequest, Component or RIA FrameworkEase of DevelopmentProject CommunityProject Future and RoadmapMaintenanceTechnical Features12 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. Types of ApplicationsHigh-trafc, internet facing, innite scalabilityIntranet-based, behind the rewall, few usersProducts, to be maintained for 5-10 yearsLegacy BackendOthers? 14 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. Do they matchup?High-trafc, internet facing, innite scalability Request-based frameworksIntranet-based, behind the rewall, few users Component-based frameworksProducts, to be maintained for 5-10 years Largest Community, Most Vendor SupportLegacy Backend Same Language as backend16 15. 2010: Now Theres 201. Developer Productivity2. Developer Perception3. Learning Curve4. Project Health5. Developer Availability6. Job Trends17 16. 2010: Comparison Points7. Templating8. Components9. Ajax10.Plugins or Add-Ons11.Scalability12.Testing Support18 17. 2010: Comparison Pointsi18n and l10nValidationMulti-language Support (Groovy / Scala)Quality of Documentation/TutorialsBooks PublishedREST Support (client and server)19 18. 2010: Comparison PointsMobile / iPhone SupportDegree of Risk20 19. Comparison Matrix 20. Matrix ResultsSpring MVCRailsGWTGrails WicketStruts 2StripesTapestry Flex PlayJSF Vaadin Lift1712.758.5 4.25 0Rating 22 21. Matrix ResultsSpring MVC (17)GWT (17)Ruby on Rails (17)Grails (16.5)Wicket (14.5)Struts 2 (14.5) 23 22. Pros and Cons 23. Spring MVCPros Easy Conguration 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. GWTProsWrite Java => Produces Optimized JavaScriptEasy to learn and develop with standard Java ToolsVibrant CommunityConsYou have to know JavaSlow to compile, difcult to testMore like a JSP Tag Library than a web framework 26 25. Ruby on RailsProsEasy to learn and understand for Web DevelopersLots and lots of documentationPassionate CommunityConsSlightly less performant by defaultDynamic language means more testsDevelopment Tools and Debugging27 26. GrailsProsEasy dynamic language transition for Java DevelopersGroovyPlugins for all types of applicationsConsGroovy learning targets Java DevelopersStack traces are horrendousKnowledge of underlying frameworks not required, but helpful 28 27. WicketProsGreat for Java DevelopersTight binding between pages and viewsActive community - support from creatorsConsNo Jobs or DevelopersStateful by defaultHTML Templates live next to Java code by default 29 28. Rails vs. Grails Grails: 40 requests per second, Rails: 3230 29. Language PerformanceTime (ms) per iteration600400200 0JavaC++ JRuby PythonGroovy PHPh%p:// 30. Jobs in 2010 (US)Spring MVC GWT Rails Grails Wicket 600 450 300 1500 Dice32 31. Developer Skills (US)Spring MVC GWTRails Grails Wicket11,000 8,250 5,500 2,750 0 LinkedIn33 32. Developer Skills (World)Spring MVC GWTRails Grails Wicket11,000 8,250 5,500 2,750 0 LinkedIn34 33. Pretty Graphs 34. Pretty Graphs 35. Pretty Graphs 36. Pretty Graphs 37. Pretty Graphs 38. Pretty Graphs 39. Mailing List TrafficRails Grails GWT PlayWicket September 2010 01000200030004000* Spring MVC uses Forums, which dont provide this data. 40. Books on Amazon Spring MVC Rails GWT Grails WicketOctober 2010 050100 150200 41. 2010 Releases As of October 28, 2010 04 8 12Spring MVC GWT RailsGrailsWicket 42. StackOverflow Tagged Questions (October 26, 2010)30,000 22,500 15,000 7,500Spring MVC 0GrailsRails 43. StackOverflowTagged Questions (October 26, 2010) 25,00018,75012,5006,250Spring0 GWTGrailsWicket Rails 44. StackOverflowTagged Questions (October 28, 2010) 80000600004000020000Java0 Scala JRuby ClojureGroovy 45. StackOverflowTagged Questions (October 28, 2010) 80000600004000020000Java0 PHP .NETPython Ruby 46. StackOverflowTagged Questions (October 28, 2010) 300022501500750Tomcat JBoss0 GlassshWebSphereJetty 47. Spring MVChttp://www.springsource.orgApache 2.0 LicenseActive Community @ Books: Expert Spring MVC Spring in Action Pro Spring49 48. Google Web Toolkit 2.0 LicenseActive Community @ Books: GWT in Action GWT in Practice Google Web Toolkit Solutions 50 49. Ruby on Railshttp://rubyonrails.orgMIT LicenseActive Community @ Books: Agile Web Development with Rails Rails for Java Developers 51 50. Grailshttp://grails.orgApache 2.0 LicenseActive Community @ Books: Getting Started with Grails Grails: A Quick-Start Guide Programming Groovy52 51. Apache Wickethttp://wicket.apache.orgApache 2.0 LicenseActive Community @ Books: Wicket in Action Pro Wicket 53 52. CONCLUSIONWhat if there is no best web framework? 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. Questions?Contact Informationhttp://raibledesigns.com Presentation