SlideShare a Scribd company logo
1 of 37
Download to read offline
Web Frameworks
of the Future
Flex, GWT, Rails and Grails

Matt Raible
http://raibledesigns.com
Introductions
!   Your experience with web applications?
!   Have you heard of SOFEA or SOUI?
!   Experience with Rails, Grails, GWT or Flex?
!   What do you want to get from this session?
!   Framework Experience:
    !   Struts 1/2, Spring MVC, JSF, Stripes, Tapestry, Wicket, Django
Who is Matt Raible?

!   Java Blogger since 2002
!   Power user of Java Web Frameworks
!   Author of Spring Live and Pro JSP 2.0
!   Founder of AppFuse (http://appfuse.org)
!   Member of Java EE 5, JSF 1.2 and Bean Validation Expert Groups
!   Lead UI Architect at LinkedIn
!   Father, Skier, Cyclist and Beer Connoisseur

                    http://www.linkedin.com/in/mraible
The Problem
How do you choose?
Eliminate, Don’t Include




It’s not about including choices,
   it’s about eliminating them.
Session Agenda
!   SOFEA and SOUI
!   REST Backend
    !   Rails
    !   Grails
    !   Comparison
!   Rich Frontend
    !   Flex
    !   GWT
    !   Comparison
!   Conclusion and Q & A
SOFEA and SOUI
!   SOFEA first introduced by Ganesh Prasad, Rajat Taneja and Vikrant
    Todankar 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
!   SOFEA Authors have since formed the Thin Server Architecture
    Working Group.
    !   http://www.thinserverarchitecture.com
!   Nolan and Jeff developed Appcelerator.
    !   http://www.appcelerator.org
SOFEA Principles
!   Decouple 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.
Recommended Frameworks
!    DHTML/AJAX frameworks for Modern Browsers
    ! Largely handcoded with third party JavaScript libraries
    !   Google Web Toolkit (GWT, GWT-Ext)
    !   TIBCO General Interface Builder
!    XML Dialects for Advanced Browsers
    ! XForms and XHTML 2.0
    !   Mozilla XUL
    !   Microsoft SilverLight/XAML
!    Java frameworks
    ! Java WebStart (with/without Spring Rich Client)
    !   JavaFX
!   Adobe Flash-based frameworks
    !   Adobe Flex
    !   OpenLaszlo
REST




 http://www.infoq.com/articles/rest-introduction
Ruby on Rails
!   REST is enabled by default with Scaffolding
!   Scaffolding doesn’t support one-to-many UI
!   ActiveScaffold fixes one-to-many, supports REST and adds Ajax
    !   Rails 2.1 and ActiveScaffold 1.1.1
        !   script/install plugin and git clone
        !   Download and unzip works...
        !   ...but, you need 2.1 patch from:
            !   http://github.com/lightningdb/activescaffold/tree/master
        !   Warbler has issues with ActiveScaffold
RESTful Rails
Grails
!   Grails 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
    !   Fix for Firefox 3: http://www.nabble.com/scaffolding-rendering-
        defaulting-to-XML-now-td18540185.html
!   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
RESTful Grails
Rails vs. Grails

!   http://grails.org/Grails+vs+Rails+Benchmark
    !   Grails: 40 requests per second, Rails: 32
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/
Jobs

             Grails             Rails

500


375


250


125


  0
      LinkedIn        Monster           Dice
My LinkedIn Network

      Grails         Rails

150




100




 50




  0
      Located in or near 80210
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
!   <mx:HTTPService id=”...” url=”...” resultFormat=”...”
        HTTPMethod=”...” result=”...”/>
Flex
!   Pros:
    !   Produces Flash UI
    !   Funded by Adobe
    !   Has many successful client stories
    !   Supports REST easily
!   Cons
    !   Not Search Engine Friendly
    !   Doesn’t render HTML content well
    !   Doesn’t print well by default
    !   No Zero Turnaround w/o IDE
GWT + Grails
!   GWT Plugin
    !   http://grails.org/GWT+Plugin
    !   Uses Server-side RPC
!   GWT has limited support for REST
    !   JSONRequest
    !   GWT-REST (works best with Rails)
    !   Sonatype GWT REST (in development)
    !   Restlet API (in development)
GWT
!   Pros:
    !   Write Java => Produces JavaScript
    !   Easy to learn and develop with standard Java tools
    !   Vibrant Community
    !   Zero Turnaround in Hosted Mode
!   Cons:
    !   Hard to attach GWT on top of existing code
    !   Doesn’t support REST very well
    !   Operates within the confines of the browser’s JavaScript sandbox
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
Flex vs. Ajax Performance




  http://www.jamesward.com/census
Jobs

             GWT             Flex

300


225


150


 75


  0
      LinkedIn     Monster          Dice
My LinkedIn Network

        GWT              Flex

50.0


37.5


25.0


12.5


  0
        Located in or near 80210
Pretty Graphs
Project Support and Licensing
!   Grails - http://grails.org
    !   Apache 2.0 License
    !   Active Community @ http://grails.org/Community
    !   Training from G2One and No Fluff Just Stuff
    !   The 2G Experience
    !   Recommended Books:
        !   Getting Started with Grails by Jason Rudolph
        !   Groovy Recipes by Scott Davis
        !   Programming Groovy by Venkat Subramaniam
        !   Beginning Groovy and Grails by Judd, Nusairat and Shingler
Project Support and Licensing
!   Ruby on Rails - http://rubyonrails.org
    !   MIT License
    !   Active Community @ http://www.rubyonrails.org/community
    !   Training from The Pragmatic Studio and many others
    !   RailsConf and The Rails Edge
    !   Recommended Books:
        !   Agile Web Development with Rails by Thomas and DHH
        !   Rails for Java Developers by Halloway and Gehtland
        !   Practical JRuby on Rails by Ola Bini
        !   The Rails Way by Obie Fernandez
Adobe Flex
!   Adobe Flex - http://www.adobe.com/products/flex
    !   Flex SDK under Mozilla Public License
    !   Active Community
        !   Yahoo Group: http://tech.groups.yahoo.com/group/flexcoders
        !   User Groups: http://flex.org/usergroups_list
    !   360|Flex
    !   Recommended Books
        !   Flexible Rails by Peter Armstrong
        !   Flex 3 in Action by Tariq Ahmed
        !   Flex on Java by Allmon and Anderson
Google Web Toolkit
!   Google Web Toolkit - http://code.google.com/webtoolkit
    !   Apache 2.0 License
    !   Active Community
        !   http://groups.google.com/group/Google-Web-Toolkit
    !   Pearson’s Google Web Toolkit Conference and Google I/O
    !   Recommended Books
        !   GWT in Action by Hanson and Tacy
        !   GWT in Practice by Cooper and Collins
        !   Google Web Toolkit Solutions by Geary and Gordon
        !   Pro Web 2.0 Application Development with GWT by Jeff Dwyer
Conclusion
!   Rails is more mature and supports RESTifying a database better.
!   Framework and Language performance doesn’t == scalability.
!   Grails may be faster from a requests per second standpoint.
!   Flex/Flash is not as restricted by the browser sandbox.
!   Flex supports REST better.
!   GWT works best if UI and backend are in same project.
!   SOFEA UIs are fun, but not for every application.
!   Don’t Believe The Hype!
    !   Prototype and draw your own conclusions.
Questions?




http://raibledesigns.com/rd/page/publications
Parties at OSCON
!   Tonight (Wednesday)
    !   Expo Hall (6-6:30)
    !   RedMonk at Kells (8-10)
    !   OpenSolaris/MySQL/Zend at DoubleTree Hotel (8-12)
!   Tomorrow
    !   SourceForge Awards Party at Jupiter Hotel (6-9)
    !   BeerForge III at Bossanova (8-11)
!   http://upcoming.yahoo.com/tag/oscon

More Related Content

What's hot

Ruby and iOS: An inside look
Ruby and iOS: An inside lookRuby and iOS: An inside look
Ruby and iOS: An inside lookJeanine Jue
 
Don't screw it up: how to build durable web apis
Don't screw it up: how to build durable web apisDon't screw it up: how to build durable web apis
Don't screw it up: how to build durable web apisAlessandro Cinelli (cirpo)
 
Innovation vs. Impatience - keynote at JSOpenDay London 2015
Innovation vs. Impatience - keynote at JSOpenDay London 2015Innovation vs. Impatience - keynote at JSOpenDay London 2015
Innovation vs. Impatience - keynote at JSOpenDay London 2015Christian Heilmann
 
Introduction to Web Development with Ruby on Rails
Introduction to Web Development with Ruby on RailsIntroduction to Web Development with Ruby on Rails
Introduction to Web Development with Ruby on Railspmatsinopoulos
 
Java Clients and JavaFX: The Definitive Guide
Java Clients and JavaFX: The Definitive GuideJava Clients and JavaFX: The Definitive Guide
Java Clients and JavaFX: The Definitive GuideStephen Chin
 
Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011Ted Husted
 
Better and Faster: A Journey Toward Clean Code and Enjoyment
Better and Faster: A Journey Toward Clean Code and EnjoymentBetter and Faster: A Journey Toward Clean Code and Enjoyment
Better and Faster: A Journey Toward Clean Code and EnjoymentChris Holland
 
IWMW 2002: Web standards briefing (session C2)
IWMW 2002: Web standards briefing (session C2)IWMW 2002: Web standards briefing (session C2)
IWMW 2002: Web standards briefing (session C2)IWMW
 
Do Try This At Home
Do Try This At HomeDo Try This At Home
Do Try This At Homebdillard
 
Javaland 2014 / GWT architectures and lessons learned
Javaland 2014 / GWT architectures and lessons learnedJavaland 2014 / GWT architectures and lessons learned
Javaland 2014 / GWT architectures and lessons learnedpgt technology scouting GmbH
 
Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!Jonas Bandi
 
Accessible & Usable Web Forms. Your How To Guide!
Accessible & Usable Web Forms. Your How To Guide!Accessible & Usable Web Forms. Your How To Guide!
Accessible & Usable Web Forms. Your How To Guide!Rabab Gomaa
 
Modular Open Source in Java for Now and Later
Modular Open Source in Java for Now and LaterModular Open Source in Java for Now and Later
Modular Open Source in Java for Now and LaterBob Paulin
 
[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration[English version] JavaFX and Web Integration
[English version] JavaFX and Web IntegrationKazuchika Sekiya
 
Coding for Desktop and Mobile with HTML5 and Java EE 7
Coding for Desktop and Mobile with HTML5 and Java EE 7Coding for Desktop and Mobile with HTML5 and Java EE 7
Coding for Desktop and Mobile with HTML5 and Java EE 7Petr Jiricka
 
Javascript State of the Union 2015 - English
Javascript State of the Union 2015 - EnglishJavascript State of the Union 2015 - English
Javascript State of the Union 2015 - EnglishHuge
 

What's hot (20)

Sensible scaling
Sensible scalingSensible scaling
Sensible scaling
 
Ruby and iOS: An inside look
Ruby and iOS: An inside lookRuby and iOS: An inside look
Ruby and iOS: An inside look
 
VisionX Prototyping.
VisionX Prototyping.VisionX Prototyping.
VisionX Prototyping.
 
Don't screw it up: how to build durable web apis
Don't screw it up: how to build durable web apisDon't screw it up: how to build durable web apis
Don't screw it up: how to build durable web apis
 
Innovation vs. Impatience - keynote at JSOpenDay London 2015
Innovation vs. Impatience - keynote at JSOpenDay London 2015Innovation vs. Impatience - keynote at JSOpenDay London 2015
Innovation vs. Impatience - keynote at JSOpenDay London 2015
 
Introduction to Web Development with Ruby on Rails
Introduction to Web Development with Ruby on RailsIntroduction to Web Development with Ruby on Rails
Introduction to Web Development with Ruby on Rails
 
Java Clients and JavaFX: The Definitive Guide
Java Clients and JavaFX: The Definitive GuideJava Clients and JavaFX: The Definitive Guide
Java Clients and JavaFX: The Definitive Guide
 
Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011
 
Better and Faster: A Journey Toward Clean Code and Enjoyment
Better and Faster: A Journey Toward Clean Code and EnjoymentBetter and Faster: A Journey Toward Clean Code and Enjoyment
Better and Faster: A Journey Toward Clean Code and Enjoyment
 
IWMW 2002: Web standards briefing (session C2)
IWMW 2002: Web standards briefing (session C2)IWMW 2002: Web standards briefing (session C2)
IWMW 2002: Web standards briefing (session C2)
 
Agile toolkit present 2012
Agile toolkit present 2012Agile toolkit present 2012
Agile toolkit present 2012
 
Do Try This At Home
Do Try This At HomeDo Try This At Home
Do Try This At Home
 
Javaland 2014 / GWT architectures and lessons learned
Javaland 2014 / GWT architectures and lessons learnedJavaland 2014 / GWT architectures and lessons learned
Javaland 2014 / GWT architectures and lessons learned
 
Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!
 
Accessible & Usable Web Forms. Your How To Guide!
Accessible & Usable Web Forms. Your How To Guide!Accessible & Usable Web Forms. Your How To Guide!
Accessible & Usable Web Forms. Your How To Guide!
 
Modular Open Source in Java for Now and Later
Modular Open Source in Java for Now and LaterModular Open Source in Java for Now and Later
Modular Open Source in Java for Now and Later
 
[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration
 
Coding for Desktop and Mobile with HTML5 and Java EE 7
Coding for Desktop and Mobile with HTML5 and Java EE 7Coding for Desktop and Mobile with HTML5 and Java EE 7
Coding for Desktop and Mobile with HTML5 and Java EE 7
 
Agile toolkit present 2012
Agile toolkit present 2012Agile toolkit present 2012
Agile toolkit present 2012
 
Javascript State of the Union 2015 - English
Javascript State of the Union 2015 - EnglishJavascript State of the Union 2015 - English
Javascript State of the Union 2015 - English
 

Viewers also liked

Railsmachine - Moonshine
Railsmachine - MoonshineRailsmachine - Moonshine
Railsmachine - Moonshineelliando dias
 
シニアの予備校#2
シニアの予備校#2シニアの予備校#2
シニアの予備校#2ebina yohichi
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 

Viewers also liked (8)

Dynomite Nosql
Dynomite NosqlDynomite Nosql
Dynomite Nosql
 
La Vera Causa Delle Malattie
La Vera Causa Delle MalattieLa Vera Causa Delle Malattie
La Vera Causa Delle Malattie
 
Railsmachine - Moonshine
Railsmachine - MoonshineRailsmachine - Moonshine
Railsmachine - Moonshine
 
Couchdb Nosql
Couchdb NosqlCouchdb Nosql
Couchdb Nosql
 
Ge05 objetivos
Ge05  objetivosGe05  objetivos
Ge05 objetivos
 
シニアの予備校#2
シニアの予備校#2シニアの予備校#2
シニアの予備校#2
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 

Similar to Web Frameworks of the Future

Building Rich Applications with Appcelerator
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with AppceleratorMatt Raible
 
December 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig PresentationDecember 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig PresentationJonathan Abrams
 
Apache Flex and the imperfect Web
Apache Flex and the imperfect WebApache Flex and the imperfect Web
Apache Flex and the imperfect Webmasuland
 
Viridians on Rails
Viridians on RailsViridians on Rails
Viridians on RailsViridians
 
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
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | IntroductionJohnTaieb
 
Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Pierre Joye
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)Kevin Gill
 
Evaluation Ria Frameworks
Evaluation Ria FrameworksEvaluation Ria Frameworks
Evaluation Ria FrameworksRishi Singh
 
Wso2 product release webinar introducing jaggery
Wso2 product release webinar   introducing jaggeryWso2 product release webinar   introducing jaggery
Wso2 product release webinar introducing jaggeryWSO2
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolAlessandro Cinelli (cirpo)
 
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
 
Svelte the future of frontend development
Svelte   the future of frontend developmentSvelte   the future of frontend development
Svelte the future of frontend developmenttwilson63
 
Things you must know on ruby on rails single page application
Things you must know on ruby on rails single page applicationThings you must know on ruby on rails single page application
Things you must know on ruby on rails single page applicationAndolasoft Inc
 
JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014Ryan Cuprak
 
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
 
HTML5, the Evolution of Smart Media
HTML5, the Evolution of Smart MediaHTML5, the Evolution of Smart Media
HTML5, the Evolution of Smart MediaSeungyun Lee
 
Dynamic Languages on the JVM
Dynamic Languages on the JVMDynamic Languages on the JVM
Dynamic Languages on the JVMelliando dias
 
Play Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level OverviewPlay Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level OverviewJosh Padnick
 

Similar to Web Frameworks of the Future (20)

Building Rich Applications with Appcelerator
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with Appcelerator
 
December 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig PresentationDecember 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig Presentation
 
Apache Flex and the imperfect Web
Apache Flex and the imperfect WebApache Flex and the imperfect Web
Apache Flex and the imperfect Web
 
Viridians on Rails
Viridians on RailsViridians on Rails
Viridians on Rails
 
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
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
 
Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)
 
Evaluation Ria Frameworks
Evaluation Ria FrameworksEvaluation Ria Frameworks
Evaluation Ria Frameworks
 
Wso2 product release webinar introducing jaggery
Wso2 product release webinar   introducing jaggeryWso2 product release webinar   introducing jaggery
Wso2 product release webinar introducing jaggery
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the fool
 
Web assembly with PWA
Web assembly with PWA Web assembly with PWA
Web assembly with PWA
 
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
 
Svelte the future of frontend development
Svelte   the future of frontend developmentSvelte   the future of frontend development
Svelte the future of frontend development
 
Things you must know on ruby on rails single page application
Things you must know on ruby on rails single page applicationThings you must know on ruby on rails single page application
Things you must know on ruby on rails single page application
 
JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014
 
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
 
HTML5, the Evolution of Smart Media
HTML5, the Evolution of Smart MediaHTML5, the Evolution of Smart Media
HTML5, the Evolution of Smart Media
 
Dynamic Languages on the JVM
Dynamic Languages on the JVMDynamic Languages on the JVM
Dynamic Languages on the JVM
 
Play Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level OverviewPlay Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level Overview
 

More from elliando dias

Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 
From Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn IntroductionFrom Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn Introductionelliando dias
 
FleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in ClojureFleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in Clojureelliando dias
 

More from elliando dias (20)

Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 
From Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn IntroductionFrom Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn Introduction
 
FleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in ClojureFleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in Clojure
 

Recently uploaded

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
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
 
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
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Recently uploaded (20)

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
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
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
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
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
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...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

Web Frameworks of the Future

  • 1. Web Frameworks of the Future Flex, GWT, Rails and Grails Matt Raible http://raibledesigns.com
  • 2. Introductions ! Your experience with web applications? ! Have you heard of SOFEA or SOUI? ! Experience with Rails, Grails, GWT or Flex? ! What do you want to get from this session? ! Framework Experience: ! Struts 1/2, Spring MVC, JSF, Stripes, Tapestry, Wicket, Django
  • 3. Who is Matt Raible? ! Java Blogger since 2002 ! Power user of Java Web Frameworks ! Author of Spring Live and Pro JSP 2.0 ! Founder of AppFuse (http://appfuse.org) ! Member of Java EE 5, JSF 1.2 and Bean Validation Expert Groups ! Lead UI Architect at LinkedIn ! Father, Skier, Cyclist and Beer Connoisseur http://www.linkedin.com/in/mraible
  • 5. How do you choose?
  • 6. Eliminate, Don’t Include It’s not about including choices, it’s about eliminating them.
  • 7.
  • 8. Session Agenda ! SOFEA and SOUI ! REST Backend ! Rails ! Grails ! Comparison ! Rich Frontend ! Flex ! GWT ! Comparison ! Conclusion and Q & A
  • 9. SOFEA and SOUI ! SOFEA first introduced by Ganesh Prasad, Rajat Taneja and Vikrant Todankar 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 ! SOFEA Authors have since formed the Thin Server Architecture Working Group. ! http://www.thinserverarchitecture.com ! Nolan and Jeff developed Appcelerator. ! http://www.appcelerator.org
  • 10. SOFEA Principles ! Decouple 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.
  • 11.
  • 12. Recommended Frameworks ! DHTML/AJAX frameworks for Modern Browsers ! Largely handcoded with third party JavaScript libraries ! Google Web Toolkit (GWT, GWT-Ext) ! TIBCO General Interface Builder ! XML Dialects for Advanced Browsers ! XForms and XHTML 2.0 ! Mozilla XUL ! Microsoft SilverLight/XAML ! Java frameworks ! Java WebStart (with/without Spring Rich Client) ! JavaFX ! Adobe Flash-based frameworks ! Adobe Flex ! OpenLaszlo
  • 14. Ruby on Rails ! REST is enabled by default with Scaffolding ! Scaffolding doesn’t support one-to-many UI ! ActiveScaffold fixes one-to-many, supports REST and adds Ajax ! Rails 2.1 and ActiveScaffold 1.1.1 ! script/install plugin and git clone ! Download and unzip works... ! ...but, you need 2.1 patch from: ! http://github.com/lightningdb/activescaffold/tree/master ! Warbler has issues with ActiveScaffold
  • 16. Grails ! Grails 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 ! Fix for Firefox 3: http://www.nabble.com/scaffolding-rendering- defaulting-to-XML-now-td18540185.html ! 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
  • 18. Rails vs. Grails ! http://grails.org/Grails+vs+Rails+Benchmark ! Grails: 40 requests per second, Rails: 32
  • 19. 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/
  • 20. Jobs Grails Rails 500 375 250 125 0 LinkedIn Monster Dice
  • 21. My LinkedIn Network Grails Rails 150 100 50 0 Located in or near 80210
  • 22. 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 ! <mx:HTTPService id=”...” url=”...” resultFormat=”...” HTTPMethod=”...” result=”...”/>
  • 23. Flex ! Pros: ! Produces Flash UI ! Funded by Adobe ! Has many successful client stories ! Supports REST easily ! Cons ! Not Search Engine Friendly ! Doesn’t render HTML content well ! Doesn’t print well by default ! No Zero Turnaround w/o IDE
  • 24. GWT + Grails ! GWT Plugin ! http://grails.org/GWT+Plugin ! Uses Server-side RPC ! GWT has limited support for REST ! JSONRequest ! GWT-REST (works best with Rails) ! Sonatype GWT REST (in development) ! Restlet API (in development)
  • 25. GWT ! Pros: ! Write Java => Produces JavaScript ! Easy to learn and develop with standard Java tools ! Vibrant Community ! Zero Turnaround in Hosted Mode ! Cons: ! Hard to attach GWT on top of existing code ! Doesn’t support REST very well ! Operates within the confines of the browser’s JavaScript sandbox
  • 26. 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
  • 27. Flex vs. Ajax Performance http://www.jamesward.com/census
  • 28. Jobs GWT Flex 300 225 150 75 0 LinkedIn Monster Dice
  • 29. My LinkedIn Network GWT Flex 50.0 37.5 25.0 12.5 0 Located in or near 80210
  • 31. Project Support and Licensing ! Grails - http://grails.org ! Apache 2.0 License ! Active Community @ http://grails.org/Community ! Training from G2One and No Fluff Just Stuff ! The 2G Experience ! Recommended Books: ! Getting Started with Grails by Jason Rudolph ! Groovy Recipes by Scott Davis ! Programming Groovy by Venkat Subramaniam ! Beginning Groovy and Grails by Judd, Nusairat and Shingler
  • 32. Project Support and Licensing ! Ruby on Rails - http://rubyonrails.org ! MIT License ! Active Community @ http://www.rubyonrails.org/community ! Training from The Pragmatic Studio and many others ! RailsConf and The Rails Edge ! Recommended Books: ! Agile Web Development with Rails by Thomas and DHH ! Rails for Java Developers by Halloway and Gehtland ! Practical JRuby on Rails by Ola Bini ! The Rails Way by Obie Fernandez
  • 33. Adobe Flex ! Adobe Flex - http://www.adobe.com/products/flex ! Flex SDK under Mozilla Public License ! Active Community ! Yahoo Group: http://tech.groups.yahoo.com/group/flexcoders ! User Groups: http://flex.org/usergroups_list ! 360|Flex ! Recommended Books ! Flexible Rails by Peter Armstrong ! Flex 3 in Action by Tariq Ahmed ! Flex on Java by Allmon and Anderson
  • 34. Google Web Toolkit ! Google Web Toolkit - http://code.google.com/webtoolkit ! Apache 2.0 License ! Active Community ! http://groups.google.com/group/Google-Web-Toolkit ! Pearson’s Google Web Toolkit Conference and Google I/O ! Recommended Books ! GWT in Action by Hanson and Tacy ! GWT in Practice by Cooper and Collins ! Google Web Toolkit Solutions by Geary and Gordon ! Pro Web 2.0 Application Development with GWT by Jeff Dwyer
  • 35. Conclusion ! Rails is more mature and supports RESTifying a database better. ! Framework and Language performance doesn’t == scalability. ! Grails may be faster from a requests per second standpoint. ! Flex/Flash is not as restricted by the browser sandbox. ! Flex supports REST better. ! GWT works best if UI and backend are in same project. ! SOFEA UIs are fun, but not for every application. ! Don’t Believe The Hype! ! Prototype and draw your own conclusions.
  • 37. Parties at OSCON ! Tonight (Wednesday) ! Expo Hall (6-6:30) ! RedMonk at Kells (8-10) ! OpenSolaris/MySQL/Zend at DoubleTree Hotel (8-12) ! Tomorrow ! SourceForge Awards Party at Jupiter Hotel (6-9) ! BeerForge III at Bossanova (8-11) ! http://upcoming.yahoo.com/tag/oscon