Comparing Kick Ass Web Frameworks

74
© 2010, Raible Designs COMPARING KICK-ASS WEB FRAMEWORKS Matt Raible http://raibledesigns.com Images by Stuck in Customs - http://www.flickr.com/photos/stuckincustoms © 2010 Raible Designs

description

What's the best Web Framework? It's a question developers often ask when they begin they begin a new project. This session will take a cynical look at four web frameworks that make developers happy: Rails, Grails, GWT and Flex.APIs are easy to create with both Rails and Grails, but which one scales better? Rich UIs can be created with GWT or Flex, but do both offer end users the same user experience? This session looks at the pros and cons of each framework and will help you decide whichframework might work best for your application.

Transcript of Comparing Kick Ass Web Frameworks

Page 1: Comparing Kick Ass Web Frameworks

© 2010, Raible Designs

COMPARING KICK-ASS WEB FRAMEWORKS

Matt Raiblehttp://raibledesigns.com

Images by Stuck in Customs - http://www.flickr.com/photos/stuckincustoms © 2010 Raible Designs

Page 2: Comparing Kick Ass Web Frameworks

INTRODUCTIONS

Have you heard of SOFEA?

Are you using GWT?

Experience with Rails?

What do you want to get from this session?

Page 3: Comparing Kick Ass Web Frameworks

Who is Matt Raible?

Blogger on raibledesigns.com

Founder of AppFuse

Father, Skier, Cyclist

Web Framework Connoisseur

Page 4: Comparing Kick Ass Web Frameworks

The Problem with Web Frameworks

SOFEA and SOUI

REST Backends

Rich Frontends

Conclusion

Q and A

SESSION AGENDA

Page 5: Comparing Kick Ass Web Frameworks

THE PROBLEM

Page 6: Comparing Kick Ass Web Frameworks

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

Page 7: Comparing Kick Ass Web Frameworks

ELIMINATE, DON’T INCLUDE

Page 8: Comparing Kick Ass Web Frameworks
Page 10: Comparing Kick Ass Web Frameworks

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.

Page 11: Comparing Kick Ass Web Frameworks
Page 12: Comparing Kick Ass Web Frameworks

RECOMMENDED FRAMEWORKS

DHTML/AJAX frameworks for Modern Browsers

Handcoded with third party JavaScript libraries

Google Web Toolkit 

TIBCO General Interface Builder

XML Dialects for Advanced Browsers

XForms and XHTML 2.0

Mozilla XUL

Microsoft SilverLight/XAML

Page 13: Comparing Kick Ass Web Frameworks

RECOMMENDED FRAMEWORKS

Java frameworks

Java WebStart (with/without Spring Rich Client)

JavaFX

Adobe Flash­based frameworks

Adobe Flex

OpenLaszlo

Page 14: Comparing Kick Ass Web Frameworks

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

Page 17: Comparing Kick Ass Web Frameworks

RAILS CONTROLLER

Page 18: Comparing Kick Ass Web Frameworks

RESTFUL RAILS

Page 20: Comparing Kick Ass Web Frameworks

GRAILS CONTROLLER

Page 21: Comparing Kick Ass Web Frameworks

RESTFUL GRAILS

Page 22: Comparing Kick Ass Web Frameworks

RAILS VS. GRAILS

http://grails.org/Grails+vs+Rails+Benchmark

Grails: 40 requests per second, Rails: 32

Page 24: Comparing Kick Ass Web Frameworks

JOBS IN 2008

0

125

250

375

500

LinkedIn Monster Dice

Grails Rails

Page 25: Comparing Kick Ass Web Frameworks

JOBS IN 2009

0

125

250

375

500

LinkedIn Monster Dice

Grails Rails

Page 26: Comparing Kick Ass Web Frameworks

JOBS IN 2010

0

125

250

375

500

LinkedIn Monster Dice

Grails Rails

Page 27: Comparing Kick Ass Web Frameworks

MY NETWORK 2008

0

133

267

400

Located within 50 miles of Denver (80210)

Grails Rails

Page 28: Comparing Kick Ass Web Frameworks

MY NETWORK 2009

0

133

267

400

Located within 50 miles of Denver (80210)

Grails Rails

Page 29: Comparing Kick Ass Web Frameworks

MY NETWORK 2010

0

133

267

400

Located within 50 miles of Denver (80210)

Grails Rails

Page 30: Comparing Kick Ass Web Frameworks

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=”...”/>

Page 31: Comparing Kick Ass Web Frameworks

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

Page 32: Comparing Kick Ass Web Frameworks

G W T V S . F L E X S M A C K D O W N !

Page 33: Comparing Kick Ass Web Frameworks

TEXTLeft-to-right languages

unsupported in Flex

Page 34: Comparing Kick Ass Web Frameworks

DRAWINGFlex can draw

Page 35: Comparing Kick Ass Web Frameworks

PRINTINGFlex has issues printing

from the browser

Page 36: Comparing Kick Ass Web Frameworks

DRAG N’ DROP

Flex has easy drag n’ drop support

Page 37: Comparing Kick Ass Web Frameworks

CSSGWT has CSS support, not

like Flex’s proprietary support

Page 38: Comparing Kick Ass Web Frameworks

VALIDATORS &

FORMATTERSFlex has effects, form layout, validators and

formatters

Page 39: Comparing Kick Ass Web Frameworks

JSON SUPPORTGWT supports JSON out-

of-the-box

Page 40: Comparing Kick Ass Web Frameworks

Flex works across all browsers

IE6 SUPPORT

Page 41: Comparing Kick Ass Web Frameworks

IPHONE SUPPORT

GWT works on the iPhone

Page 42: Comparing Kick Ass Web Frameworks

VIDEOFlash Video is the absolute number one video format

on the web

Page 43: Comparing Kick Ass Web Frameworks

PERFORMANCEMaking your app “pop”

Page 44: Comparing Kick Ass Web Frameworks

COMPONENTSTour de Flex

Page 45: Comparing Kick Ass Web Frameworks

TOOLSSpeed Tracer

IDEs

Page 46: Comparing Kick Ass Web Frameworks

PROGRAMMING MODEL

“GWT is nothing more than a JSP Tag Library”

-- Matt Raible

Page 47: Comparing Kick Ass Web Frameworks

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

Page 48: Comparing Kick Ass Web Frameworks

GWT

Pros:

Write Java => Produces JavaScript

Easy to learn and develop with standard Java tools

Vibrant Community

Zero Turnaround in Development Mode

Cons:

You have to know Java

Slow to compile and test with GWTTestCase

More like a JSP Tag Library than a web framework

Page 49: Comparing Kick Ass Web Frameworks

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

Page 50: Comparing Kick Ass Web Frameworks

FLEX VS. AJAX PERFORMANCE

http://www.jamesward.com/census

Page 51: Comparing Kick Ass Web Frameworks

JOBS IN 2008

0

150

300

450

600

LinkedIn Monster Dice

GWT Flex

Page 52: Comparing Kick Ass Web Frameworks

JOBS IN 2009

0

150

300

450

600

LinkedIn Monster Dice

GWT Flex

Page 53: Comparing Kick Ass Web Frameworks

JOBS IN 2010

0

150

300

450

600

LinkedIn Monster Dice

GWT Flex

Page 54: Comparing Kick Ass Web Frameworks

0

175

350

525

700

Located within 50 miles of Denver (80210)

GWT Flex

MY NETWORK 2008

Page 55: Comparing Kick Ass Web Frameworks

0

175

350

525

700

Located in or near Denver

GWT Flex

MY NETWORK 2009

Page 56: Comparing Kick Ass Web Frameworks

0

175

350

525

700

Located in or near Denver

GWT Flex

MY NETWORK 2010

Page 57: Comparing Kick Ass Web Frameworks

PRETTY GRAPHS

Page 58: Comparing Kick Ass Web Frameworks

PRETTY GRAPHS

Page 59: Comparing Kick Ass Web Frameworks

PRETTY GRAPHS

Page 60: Comparing Kick Ass Web Frameworks

PRETTY GRAPHS

Page 61: Comparing Kick Ass Web Frameworks

PRETTY GRAPHS

Page 62: Comparing Kick Ass Web Frameworks

PRETTY GRAPHS

Page 63: Comparing Kick Ass Web Frameworks

MAILING LIST TRAFFIC

October 2009

0 750 1500 2250 3000

Rails Grails GWT Flex

Page 64: Comparing Kick Ass Web Frameworks

MAILING LIST TRAFFIC

May 2010

0 750 1500 2250 3000

Rails Grails GWT Flex

Page 65: Comparing Kick Ass Web Frameworks

STACKOVERFLOW

0

3750

7500

11250

15000

GWTGrails

FlexRails

Tagged Questions (June 7, 2010)

Page 66: Comparing Kick Ass Web Frameworks

STACKOVERFLOW

0

22500

45000

67500

90000

JavaScriptPHP

JavaC#

Tagged Questions (June 7, 2010)

Page 67: Comparing Kick Ass Web Frameworks

GRAILS

http://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

Page 68: Comparing Kick Ass Web Frameworks

RUBY ON RAILS

http://rubyonrails.org

MIT License

Active Community @

http://rubyonrails.org/community

Recommended Books:

Agile Web Development with Rails

Rails for Java Developers

Page 69: Comparing Kick Ass Web Frameworks

ADOBE FLEX

http://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

Page 70: Comparing Kick Ass Web Frameworks

GOOGLE WEB TOOLKIT

http://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

Page 71: Comparing Kick Ass Web Frameworks

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

Page 72: Comparing Kick Ass Web Frameworks

HOW TO CHOOSE?

Prioritize a list of features that are important to your application.

Pick 3-4 frameworks and do a 1-week spike with each, developing the same application.

Document and rank each framework against your list of features.

Calculate and choose!

Page 74: Comparing Kick Ass Web Frameworks

QUESTIONS?

Contact Information

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

Download Presentation

http://slideshare.net/mraible