comparing kick ass web frameworks

53
COMPARING KICK-ASS WEB FRAMEWORKS Matt Raible http://raibledesigns.com Images by Stuck in Customs - http://www.flickr.com/photos/stuckincustoms

Upload: murthyoct24

Post on 23-Nov-2015

10 views

Category:

Documents


2 download

DESCRIPTION

GWT,Wicket

TRANSCRIPT

  • COMPARING KICK-ASS WEB FRAMEWORKS

    Matt Raiblehttp://raibledesigns.com

    Images by Stuck in Customs - http://www.flickr.com/photos/stuckincustoms

  • 2009, Raible Designs

    INTRODUCTIONS

    Have you heard of SOFEA?

    Are you using GWT?

    Experience with Rails?

    What do you want to get from this session?

  • 2009, Raible Designs

    Who is Matt Raible?

    Blogger on raibledesigns.com

    Founder of AppFuse

    Father, Skier, Cyclist

    Web Framework Connoisseur

  • 2009, Raible Designs

    The Problem with Web Frameworks

    SOFEA and SOUI

    REST Backends

    Rich Frontends

    Conclusion

    Q and A

    SESSION AGENDA

  • 2009, Raible Designs

    THE PROBLEM

  • 2009, Raible Designs

    H O W D O Y O U C H O O S E ?

  • 2009, Raible Designs

    ELIMINATE, DONT INCLUDE

  • 2009, Raible Designs

  • 2009, Raible Designs

    SOFEA & SOUI

    SOFEA first introduced in Life above the Service Tier on 10/12/2007.

    http://www.theserverside.com/news/thread.tss?thread_id=47213

    SOUI introduced by Nolan Wright and Jeff Haynie in early November 2007.

    http://www.infoq.com/news/2007/11/soui-death-of-mvc2

  • 2009, Raible Designs

    SOFEA PRINCIPLESDecouple the three orthogonal Presentation Tier processes of Application Download, Presentation Flow and Data Interchange. This is the foundational principle of SOFEA.

    Explore various Application Download options to exploit usefully contrary trade-offs around client footprint, startup time, offline capability and a number of security-related parameters.

    Presentation Flow must be driven by a client-side component and never by a server-side component.

    Data Interchange between the Presentation Tier and the Service Tier must not become the weakest link in the end-to-end application chain of data integrity.

    Model-View-Controller (MVC) is a good pattern to use to build the Presentation Tier.

  • 2009, Raible Designs

  • 2009, Raible Designs

    RECOMMENDED FRAMEWORKS

    DHTML/AJAXframeworksforModernBrowsers HandcodedwiththirdpartyJavaScriptlibraries GoogleWebToolkitTIBCOGeneralInterfaceBuilder

    XMLDialectsforAdvancedBrowsers XFormsandXHTML2.0 MozillaXUL MicrosoftSilverLight/XAML

  • 2009, Raible Designs

    RECOMMENDED FRAMEWORKS

    Javaframeworks

    JavaWebStart(with/withoutSpringRichClient)

    JavaFX

    AdobeFlashbasedframeworks

    AdobeFlex

    OpenLaszlo

  • 2009, Raible Designs

    E P I P H A N Y A F T E R R E A D I N G A B O U T S O F E A

    I hope to develop with Flex, Grails, GWT or YUI + Struts 2 in the next 6 months.http://raibledesigns.com/rd/entry/re_life_above_the_service

  • 2009, Raible Designs

    REST

    http://www.infoq.com/articles/rest-introduction

    API

  • 2009, Raible Designs

    RUBY ON RAILS

    REST is enabled by default with Scaffolding

    Scaffolding doesnt support one-to-many UI

    ActiveScaffold fixes one-to-many, supports REST and adds Ajax

  • 2009, Raible Designs

    RAILS CONTROLLER

  • 2009, Raible Designs

    RESTFUL RAILS

  • 2009, Raible Designs

    GRAILSGrails 1.x has REST support built-in

    Scaffolding does not support REST by default

    Adding REST support to Scaffolding

    http://fbflex.wordpress.com/2008/05/15/rest-service-xml-output-in-grails-via-content-negotiation/

    Scaffolding insufficiently supports one-to-many UI

    One-to-many support possible if you modify templates

    http://www.stainlesscode.com/site/comments/grails_one_to_many_scaffolding

  • 2009, Raible Designs

    GRAILS CONTROLLER

  • 2009, Raible Designs

    RESTFUL GRAILS

  • 2009, Raible Designs

    RAILS VS. GRAILShttp://grails.org/Grails+vs+Rails+Benchmark

    Grails: 40 requests per second, Rails: 32

  • 2009, Raible Designs

    LANGUAGE PERFORMANCE

    0

    200

    400

    600

    Java C++ JRuby Python Groovy PHP

    Time (ms) per iteration

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

  • 2009, Raible Designs

    JOBS IN 2008

    0

    125

    250

    375

    500

    LinkedIn Monster Dice

    Grails Rails

  • 2009, Raible Designs

    JOBS IN 2009

    0

    125

    250

    375

    500

    LinkedIn Monster Dice

    Grails Rails

  • 2009, Raible Designs

    MY NETWORK 2008

    0

    50

    100

    150

    Located within 50 miles of Denver (80210)

    Grails Rails

  • 2009, Raible Designs

    MY NETWORK 2009

    0

    100

    200

    300

    Located within 50 miles of Denver (80210)

    Grails Rails

  • 2009, Raible Designs

    FLEX + RAILS

    Flex Scaffold

    http://www.railslodge.com/plugins/717-flex-scaffold

    Flex e-Genial Scaffold

    http://rubyforge.org/projects/flexscaffold

    WebORB for Ruby on Rails

    http://www.themidnightcoders.com/weborb/rubyonrails/index.htm

  • 2009, Raible Designs

    FLEXPros:

    Produces Flash UI Funded by AdobeHas many successful client storiesSupports REST easily

    ConsNot Search Engine FriendlyDoesnt render HTML content wellDoesnt print well by defaultNo Zero Turnaround w/o IDE

  • 2009, Raible Designs

    GWT + GRAILS

    GWT Pluginhttp://grails.org/GWT+PluginUses Server-side RPC

    RequestBuilder and Overlay TypesProxyServlet handy for developmenthttp://raibledesigns.com/rd/entry/developing_and_testing_gwt_client

    RestyGWT and Restlet

  • 2009, Raible Designs

    GWTPros:

    Write Java => Produces JavaScriptEasy to learn and develop with standard Java toolsVibrant CommunityZero Turnaround in Development Mode

    Cons:You have to know Java Slow to compile and test with GWTTestCaseMore like a JSP Tag Library than a web framework

  • 2009, Raible Designs

    FLEX VS. GWT

    Ajax vs. Flex

    http://anthonyfranco.wordpress.com/2007/06/22/flex-and-ajax-friends-or-foes

    Use the Best Tool for the Job

    Open Web: Ajax

    Video and Rich Media: Flex

    HTML Rendering: Ajax

    Vector Graphics and Bitmap Manipulation: Flex

    Accessibility: Flex

  • 2009, Raible Designs

    FLEX VS. AJAX PERFORMANCE

    http://www.jamesward.com/census

  • 2009, Raible Designs

    JOBS IN 2008

    0

    75

    150

    225

    300

    LinkedIn Monster Dice

    GWT Flex

  • 2009, Raible Designs

    JOBS IN 2009

    0

    150

    300

    450

    600

    LinkedIn Monster Dice

    GWT Flex

  • 2009, Raible Designs

    0

    13

    25

    38

    50

    Located within 50 miles of Denver (80210)

    GWT Flex

    MY NETWORK 2008

  • 2009, Raible Designs

    0

    125

    250

    375

    500

    Located in or near Denver

    GWT Flex

    MY NETWORK 2009

  • 2009, Raible Designs

    PRETTY GRAPHS

  • 2009, Raible Designs

    PRETTY GRAPHS

  • 2009, Raible Designs

    PRETTY GRAPHS

  • 2009, Raible Designs

    PRETTY GRAPHS

  • 2009, Raible Designs

    PRETTY GRAPHS

  • 2009, Raible Designs

    PRETTY GRAPHS

  • 2009, Raible Designs

    MAILING LIST TRAFFIC

    October 2009

    0 750 1500 2250 3000

    Rails Grails GWT Flex

  • 2009, Raible Designs

    STACKOVERFLOW

    0

    2000

    4000

    6000

    8000

    GWTGrails

    FlexRails

    Tagged Questions (November 25, 2009)

  • 2009, Raible Designs

    STACKOVERFLOW

    0

    15000

    30000

    45000

    60000

    JavaScriptPHP

    JavaC#

    Tagged Questions (December 3, 2009)

  • 2009, Raible Designs

    GRAILShttp://grails.org

    Apache 2.0 License

    Active Community @

    http://grails.org/Community

    Recommended Books:

    Getting Started with Grails

    Grails: A Quick-Start Guide

    Programming Groovy

  • 2009, Raible Designs

    RUBY ON RAILShttp://rubyonrails.org

    MIT License

    Active Community @

    http://rubyonrails.org/community

    Recommended Books:

    Agile Web Development with Rails

    Rails for Java Developers

  • 2009, Raible Designs

    ADOBE FLEXhttp://www.adobe.com/products/flex

    Flex SDK under Mozilla Public License

    Active Community @ http://tech.groups.yahoo.com/group/flexcoders

    Recommended Books:

    Flexible Rails

    Flex 3 in Action

    Flex on Java

  • 2009, Raible Designs

    GOOGLE WEB TOOLKIThttp://code.google.com/webtoolkit

    Apache 2.0 License

    Active Community @ http://groups.google.com/group/Google-Web-Toolkit

    Recommended Books:

    GWT in Action

    GWT in Practice

    Google Web Toolkit Solutions

  • 2009, Raible Designs

    C O N C L U S I O NWhat if there is no best web framework?

  • 2009, Raible Designs

    O N E S T O WAT C HGoogle Sitebricks and Play! framework

  • 2009, Raible Designs

    QUESTIONS?

    Contact Information

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

    Download Presentation

    http://raibledesigns.com/rd/page/publications