Ajax Vs. Flash/Flex

An interesting paradigm has happened at my company, Figaro Interactive. Initially, 2 years ago, we made our names building Rich Internet Applications using Adobe Flex. Flex allowed us to kick out some pretty cool projects:

  • An ecommerce management system that manages a vehicle tree that allows over 50,000 products to be related to any car make, model or year and automatically updates 11 unique sites with the product relationships.
  • A custom diploma frame builder (still in action at USADiplomaFrames.com)
  • We even started a wiki/news aggro site devoted Action Script 3 gaming - and we began developing a 3D game engine for a passion project of ours that we will find time to finish one day.

Our mantra has always been to try to work bleeding edge technology into our client work… whenever it makes sense.  Think of it like how the Beatles used to go about writing songs - Lennon would learn a new chord on the guitar and force himself to explore it, eventually leading him to wonderful songs… The problem is that using Flex has stopped making a lot of sense on almost every project we run in to.

Initially, Flex/Flash appealed to us because of several key benefits:

  1. Cross-browser compatibility
  2. Cool factor
  3. Speed of development
  4. Ubiquity of it’s runtime

The real world kicked in after a few major projects in Flex.  Cross-browser compatibility bit us in the butt a couple of times (mainly with file upload dialogs).  Speed of development is not really all that true - it’s a ponzi scheme - you lose any speed of development you gain when you have to recompile your app time and time again in the iterative phase near the end of a project.  The runtime is widely adopted, but it is still a plugin and to really take advantage of Flex you need to make sure that a user is using a pretty up to date version of the Flash Player.  So, all that’s really left is the “Cool Factor” and that really isn’t enough to justify Flex for a mission critical client app.

So, what have we moved to?  Well - our complete stack is CakePHP, jQuery and Yahoo’s User Interface library.  We moved to CakePHP as a way of standardizing our development process so that we could focus more on making cool apps than all of the mind-numbing stuff that you have to deal with outside of a solid framework.  YUI allows us to have cross-browser compatible markup and CSS.  We now rely on jQuery for all of the cool stuff.  The best part about using jQuery is its extensibility - there’s a huge community out there that have released some very useful plugins for jQuery and that cuts development time drastically.  Plus - we’ve found that jQuery is actually more cross-browser compatible than Flash just because of the sheer number of people using it and developing with it.  If someone spots a bug in jQuery, it’s much easier to fix generally because you can dive right in to the source and fix it or extend it…

So - here are some of the jQuery plugins that we’re growing fond of:

Getting PyDev to Work on OSX

Recently my MacBook Pro’s hard drive went kaput…

Rather than just doing a restore from Time Machine like an sane human would do, I looked at it as an opportunity to “start fresh” - I’d only install stuff as I needed it as I went along.

Right off the bat I installed all of the usual suspects: Photoshop, Illustrator, Final Cut Studio, Blender, Billings, iRC, Skype, Flex Builder, all of my Eclipse Plugins… hmm…

I use Flex Builder as my main install of Eclipse… I use Apatana Studio/PHP for my web IDE and Subversive for Subversion-ing… Those were no big deal to install.  But the renewed interest in BraveNewFiction means that I had to get Google App Engine back up and running which meant installing PyDev again… yay!

I forgot what a pain in the butt PyDev was to install - if you don’t get the exact path to your python interpreter right a huge warning pops up and Eclipse crashes… fun fun fun.  Oh - and on top of that - on OSX your python interpreter is really not your python interpreter… you want what’s inside of your python interpreter ;)

So - for anyone out there looking to make so App Engine apps in an OSX dev enviornment here ya go - the correct path is:

  1. /System/Library/Frameworks/Python.framework/Versions/2.5/bin/python2.5

And here are some useful resources to get you started:

BraveNewFiction.com

Gotta love marketing on the ‘net…

A couple months ago Brit put together a tech demo using Google’s App Engine so that we could wrap our heads around how it fits into our ever expanding toolkit.  Brave New Fiction spawned from a few hours of Python wrangling and has led to some very interesting conversations.

It’s funny how a small little app can take off on the Internet… The app instantly conjures up visions of Twitter, but the only real similarity is the 140 character limit imposed on it’s users.  BNF has gained a decent following and garnered a lot of exposure from some interesting crowds.  We were recently interviewed by MIT Technology Review for the Sept/Oct issue about our experience with App Engine and how we planned to use it in the future.  Google even featured the site on it’s featured application list.

All of this free exposure from something as simple as a tech demo.  Rock On Internet!

Just so it’s out there - we plan on using app engine for some of our passion projects, mainly because we both really like working in python and we hope people get passionate about the projects we work on and test the scalability of google’s systems :)  The lack of signed certificate SSL support is still one of the main factors limiting us using it for our commercial projects but I’m sure it’s coming soon.

Update: Erica Naone (Asst Editor @ MIT Technology Review) posted a brief review on her blog - maybe this is enough to get us off our butts to continue development?  Time will tell…