Jon Boutelle of slideshare.net spoke at the JS Meetup last night. He reported a refreshing perspective about the choice between Flash and Ajax on websites today: you quite possibly need both. He made the analogy to having a hammer and a saw — you need both to build a house. (By the way if you haven’t checked out slideshare is is way cool. See a collection of Jon’s presentations or mine). Notes below:

Keep Flash on a leash, only use it for what its really good at

  • you have to work extra to get SEO — slideshare puts the transcript of slides at the bottom of the page
  • Jon finds that load time on average is worse in Flash (He note: Javascript can be fat too. I find it depends what you are doing — raw script execution and http requests are much slower than the browser, but you can bundle up a bunch of code & graphics in a SWF and get better performance. Still I wouldn’t choose one or the other based on performance.)
  • advocates Flash nuggets — I love this term!
  • Full screen is nice — use it for good, not for evil
  • invisible Flash — you might not even know you are using Flash. Used in some Javascript libs
  • – graphics goodies: fonts, vectors, multimedia, recording audio/video, multimedia editing, widgets (don’t worry about layout, but SEO sucks)
  • – upload progress bars
  • – sockets! comet is cool, but server-side push — libraries w/ Ruby (443)
  • – local dataObjects “super cookies” — you can ask the user to save 1GB
  • – Flex: 125KB download for the framework

Javascript cheap tricks (not quite AJAX). Javascript 101 — you don’t even need to hit the server (although maybe you should if obscured stuff is seldom used)

  • tabs (conserve real-estate)
  • Accordians (aks Tab sliders) — like tabs only sideways
  • Microlinks – expando-tabs
  • One second mutation — animated transition: control the user’s attention, they see that the small thing becomes the big thing
  • Popups — use with discretion, since you occlude part of the screen

Javascript Cheap-ish Tricks

  • Malleable content (e.g. edit in place)
  • progress indicators
  • One second spotlight, famous yellow fade popularized from 37signals, tests well, makes people happy
  • Temp message: show message, fade away: don’t leave a permanent mark on the page (sometime doesn’t test well since people miss it)
    • Conclusion:
      What the world needs is Ajax/Flash cross-over artists. Flash doesn’t kill people, people kill people. Can’t we all get along?

      Q&A
      Q: geni.com — could that be done in Javascript?
      Answer from the audience: zooming would be hard in javascirpt

What do you think?