CF.Objective Notes -- Prepping Now for an HTML RIA Future

July 23, 2012

Prepping Now for an HTML RIA Future
Brian Kotek

What is RIA?
Not just a little bit of Ajax
Basically, an app that uses ajax to do -everything-
Desktop-like functionality

Users expectations keep getting higher
Nobody is getting away with just building brochure-ware anymore
people expect things like Facebook, Google, Gmail, etc
-- site does a whole lot of "stuff" without leaving the page

HTML RIA options

Languages
JavaScript (duh)
CoffeeScript
-- accelerated JavaScript development
shortcut language for writing JavaScript
compiles into JavaScript at the end
Book by Trevor Burnham

Java
Can write HTML / JavaScript RIAs in java

Google Web Toolkit
-- Compiler
-- Will generate JavaScript/HTML at the end
Seemed cool on the surface, but has it's limitations
not ACTUALLY Java compiled
uses Java syntax, but has its own compiler
so can't do hardcore Java things like Spring, etc
very verbose

UI libraries

Sencha
Similar component lifecycle to flex
know when things are created / destroyed
not free

Google Closure
it's how they build GMail
write code in JavaScript, but annotate with type declaration, then run it thru the compiler
it optimizes the code, and will tell you if you passed in a type that's wrong

SmartClient
big UI library
server side piece that automates some of the crud work
not free

Use a service layer
write adapters to convert it into XML, AMF, JSON, etc as needed

RIA challenges
a lot of experience solving problems in Flex translates to solving problems in JavaScript

Client State
there's stuff living in the browser memory that's sticking around
not just separate web pages requests any more
have to work about the state of objects living in memory

large-scale event-driven applications

asynchronous processing

architecture
building a rick UI is NOT THE SAME as building 1 for a regular page based site
want to look at an MVC approach

As much as Adobe cared about Flex, the amount of money being poured into HTML/JavaScript by Google, Microsoft, etc, dwarfs that

Advice
it's very early in this process
standards are still coming
Flex remains an option
-- will be around for a few more years
-- certain problems it still solves really well
but its window of applicability is diminishing

Learn JavaScript

Experiment with the options

Stay current
this stuff is coming really fast
read blogs, etc
stay nimble
nobody is going to pick the perfect thing that stays around forever
whatever i'm choosing to try may not stick around
be able to know when to switch to something else

Brian's picks
ExtJS
DeftJS (adds dependency injection to ExtJS, similar to Swiz, written by some of the same guys)
CoffeeScript
IntellliJ IDE
Jasmine
Selenium

briankotek.com
@brian428