comparing kick ass web frameworks
DESCRIPTION
GWT,WicketTRANSCRIPT
-
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