Daemonite: MXDU: Branden Hall Keynote Archive

Daemonite: MXDU: Branden Hall Keynote Archive


Monday, February 24, 2003
MXDU: Branden Hall Keynote

Branden Hall travelled to Australia for the day to deliver a keynote on FlashMX at the MXDU conference. Once he got here we managed to convince the poor bastard that flying back the following day was very un-Australian -- Branden hung in there for the speakers BBQ, a few drinks and a daring display of pop-locking :)

From the back of the keynote theatre I jotted down a few notes on what Branden had to say. I'm a CF buff so you'll have to excuse my obvious lack of Flash reverence :)

Where we came from? FutureSplash -- Branden opens with a demo of where is all began -- turns out Aquaman has every version of flash on his system!?

  • Animation -- version 1.0
  • Audio -- Flash provded dynamic control of sound through to MP3 imports
  • Video -- faked since Flash 3... real video in FlashMX -- the easiest way to deliver Flash
  • Interactivity -- in the beginning there was buttons :) Movie clips and "tell target" -- Flash 3 the hardest thing to learn. Flash 4 started a real language.. variables loops etc.. the terrible teens for Flash. Flash 5 -- ahhh, Actionscript.

"What's the pattern?" -- developers... pushing the envelope for Flash. Macromedia appears to listen :) at least that is what Branden believes.

Why do we keep pushing it? Flash is tiny.. Flash is ubiquitous... Macromedia mastered the art of bundling Flash -- but have been dedicated to keep the player small. They wouldn't add trig functions to spare a couple of k. The entire video codec for FlashMX is no more than 80k! "They don't count the bites they count the bits!"

Seeing Ben Forta's pitch and Ian Chia's chat on Flash for devices got me all tingly -- Flash player really is all over the place but where is the Flash Player for my Palm Tungsten? yes, I'm a jealous palm user :(

What's going on right now?!

Actionscript
Flash developers are more comfortable with it, but the movie model (timelines etc) is still difficult to get to grips with -- its the MOM not the DOM! Actionscript is compressed the same way as zip files.

Components
Flash 5-> FlashMX taken you away from the need to associate everything in movieclips. Improved text support. Much easier to isolate the code. OO programming much more a reality -- it is object oriented though different from C++/Java. Components are Branden's favourite thing in FlashMX -- UI elements are tough to build, Hall never wants to build another scroll bar again! Branden admits he's *never* built a proper scrollbar in Flash5. Compression makes a small scrollbar component possible.. he notes that uncompressed the component weighs in at about 20k. But components are not just a set of UI widgets -- it's a whole architecture for building things.

Visual Basic you buy and install -- it's a binary and that's it. In FlashMX component code is avilable to you. Branden figures he learnt how to develop MX components going through Nigel Pegg's code -- no wonder Branden builds some dodgy stuff :)

Components have been villified -- they may be ugly but they're easy to reskin; slightly bigger but so reusable; complex and hard to learn -- but the effort is worth it.

Branden has put together a special broker component for other components. Check out the outlet component to load components on demand.

Technology is only as interestng as what you can talk to. Branden sees server interaction most exciting thing about Flash. Server interaction has been available from v4 onwards -- better and better ways to talk to servers keep coming along; loadVariables() is reliant on movieclips and very awkward to work with; v5 introduced XML and movie clips with real objects and classes -- Branden made a slooow WDDX parser -- but Flash XML is basic, no name spaces, XSLT, or XPATH; XML Sockets but no server component -- though you can use Moock's Unity Server, Xadra Fortress Server and others. Talking about server based componentry, Branden thinks Jabber is one of the most interesting areas people should be exploring.

FlashMX introduces loadVars() -- loadVariables() comes with it's own object -- no "shim" movies are needed.

Flash Remoting -- this is really cool. Basically Remote Procedure Calls (RPC) for Flash.. automated data transport, type converson and you can treat the server component just like another object. The Flash security sandbox means you may need to proxy other servers -- Flash Remoting essentially acts as a translator for you -- talking to CFCs, Java classes, .NET objects and more.

Action Message Format (AMF) the transport protocol for Flash Remoting -- it's not opened up yet. Its a binary format that is much more efficient than XML. It's not officially available on PHP -- but its been reverse engineered and released to open source (AMF PHP)... you can't stop the progress of Open Source it would seem.

Flash Communications Server -- the heir apparent of Flash sockets servers. Sufferng the same mis-understanding issues as Flash Generator. Flash Comms offers remote shared objects, real time audio and video. Lunatics have been worried about being filmed in their underwear by AdClick -- clearly you need to approve use of audio/video before this could ever happen -- more mis-understandings.

Flash Comms is amazingly powerful and innovative but right now it is very hard to work out what on earth to do with it!? This is a very cool problem to have! Real time dating to real time learning... people are already experimenting.

Flash Comms comes wth its own component framework. The server is cost prohibitive to play with but it's definitely worth playing with. You really can create complex apps within minutes. Framework is open... dig through the actionscript -- it's some of the best and well written code Branden has seen in a long time.

What's being built right now! RIA and experiences.. not everything is an application... just a user interaction.. an experience. From Eyeblaster (which Branden is quick to point out he doesn't enjoy :) to stock tickers to widgets all over the place -- flash is everywhere. Replacing Java -- the good wth the bad (eg. punch the monkey!)

VW Phaeton Site
Branden demo'd a static Flash site he's been working on with partner Josh Davis of Praystation fame. Sadly no URL to show at this time -- but I can attest that this site is simply beautiful. Apparently the site could have been built with Flash5 but FlashMX was waaay faster... the site is totally driven by XML -- right down to the position of the buttons. Looks to me a lot like a step toward just building a SWF in XML -- I wonder when Macromedia will make that a reality??

WYSIDRAW
Flash Comm component for shared white-boards. The last thing Branden worked on before leaving the Figs.

GMODELER
UML diagrammng tool :) Not much to say about this application other than to say, if you haven't seen it yet where have you been? This is the sort of application that defines the future of Flash.

Lastly Branden made a series of predictions of where he thinks the world of Flash is heading:

  • the Flash player moving to more devices and more platforms -- I guess from what I've seen I'd have to agree
  • more Flash Components -- lots more
  • XHTML and CSS2 for flash (see the DENG Project -- I'd personally like to see some of this in the player itself)
  • Flash OS2 coming soon -- GMODELLER was an example app -- Branden suggests it may be a part open, part commercial release
  • DevNET -- all the DRKs
  • CommunityMX.com (Pulls together over 30 recognized authorities, well-known experts, and the authors of best-selling books, to offer an affordable, subscription based service to meet your support and training needs) -- looks like this will be a subscription service, Branden is a contributor
  • ECMAS script recently revised (eg JScript for .NET is already on its way) public/private/protected methods etc Macromedia have expressed interest in updatng this :)
  • more Flash/server integration

That's all for now!

Posted by modius at 01:00 PM | Permalink
Trackback: http://blog.daemon.com.au/cgi-bin/dmblog/mt-tb.cgi/87

Comments

The lad is truly gifted

I enjoyed his talk and his book is awesome

Posted by: Scott Barnes on February 24, 2003 10:13 AM

simple question. keenly aware as to the OOP scripting ability within Flash, but I'm completely new to area's of Java-C++ development. You'd mentioned how OOP differs in AS than from Java. Could you explain how, in what ways. Does one have a 'one up' over the other? I realize that app for app, choosing flash between java is a tricky choice, however, I was wondering what fundimentially underlies the OOP differential between these two paradigms.

clue me in! thx!

Posted by: lincoln on February 24, 2003 05:15 PM

Good stuff... thanks for taking the time to do the write-up for those of us who couldn't be there! 8)

jd

Posted by: John Dowdell on February 25, 2003 10:17 AM