| Register
Tuesday, May 13, 2008   

10 Questions with Jesse Warden

Created By  Chris Bizzell, at  3/16/2006 - 1 comments.

Click to view this author's website.

Today we are presenting an interview with Jesse Warden. Jesse is expert in Flash, Flashcom, Flash Remoting, & Director. He was contributing author of Flashcom Bible, wrote an article for DRK 3 and has been the tech editor for several ActionScript books. Jesse has also been a speaker at MXDU in Sydney, Australia.

Thanks Jesse for taking the time to answer 10 questions.  

1. How long have you been working with Flash and what suggestions would you give new users interested in getting up to speed? Do you recommend classes, books or simply diving in and learning by the seat of your pants method?

I started using Flash at version 3 to do animations for projects.  I started using it for coding projects fulltime at version 5 in 2001.  Within 3 months I transitioned from 90% Director, 10% Flash to 90% Flash, 10% Director.

Flash is so broad in the markets it can be used in now so I''d ask the new user to question what it is they are interested in accomplishing.  The good news is that most of the resources cater to all markets in some way.  The community railed pretty hard on getting the documentation for Flash in sync with its release schedule, so as of Flash 8, things are as good as they have ever been in terms of resources, both provided by Adobe and the awesome community we have.

Macromedia.com and it''s DevNet section has a plethora of content, both new and old that is applicable to beginners as well.  Gotoandlearn.com has a bunch of cool video tutorials that really help via visual teaching.  Chattyfig.figleaf.com has a wonderful set of mailing lists, namely Flashnewbie and Flashcoders, that have many people that are there specifically to help.  Even if you get an RTFM, two other people will answer your question anyway.  There are also some long standing forums such as were-here.com, Ultrashock.com, and Flashkit.com.  Some specialty sites have forums too like Newgrounds.com and Albinoblacksheep.com.  Finally, blogs keep you up to date on the news, new techniques, and new resource additions.  The best place to follow Flash related blogs is weblogs.macromedia.com and fullasagoog.com.  If you are looking for sample code, ifbin.com has a subscription with the ability to request a specific examples.  Communitymx.com is another site with both free and pay content designed specifically for education of new users, Flashers being one.

All of those resources combined give anyone plenty of ammo to get their feet wet quickly and up to speed.

I personally do not learn well from books or classes, but there are 10 billion used books on Amazon.com and it seems like every city has a certified Macromedia training center where they teach classes.  Those are definitely viable options and I talk to people all the time where both have benefited them greatly.

2. Flash 8 has a lot of new features. Which one do you find yourself using the most?
What would you most like to see in the next version?

Although I didn''t specifically ask for it, I find myself using the FileUpload feature a lot in Flex projects.  Since Flex 1.5''s compiler is hard coded for Flash Player 7, you use a Flash 8 SWF as a proxy to the FileReference object to allow you to do integrated file uploading.  It works great, and clients love it.

I do the same thing with Flash 8''s new graphical effects, mainly drop shadow, glow, and blur.

For Flash Player 9, I''d really like to see 3D of some sort, whether this is via quads at the miniscule level, or a full-blown engine.  Considering the power of this community, we''d only need a few, built-in methods to get us going.  Even now there are a bunch of 3D engines written in Flash, so their clearly is a community interest.

3. I understand that you are moving heavily into Flex. What prompted this move – client request, job or general curiosity?

Curiosity.  I had heard about Flex 1, but that was it.  No one was heavily blogging it, no one I knew really talked about it nor had anything passionate to say.  At first I thought it was just another one of Macromedia''s enterprise level CMS''s like SiteSpring or VitalStream, built solely to allow the Enterprise to run media services.

I ordered the Flex 1 CD, and didn''t like the workflow.  While I liked the components, creating forms seemed boring.  However, 3 months later, I realized that I had been building mainly form based applications for the past 2 years, and realized that maybe Flex deserved a second look… it''s based on Flash Player after all, I can make my forms look good, right?

In spending 4 days doing some simple self-enrichment projects, I realized immediately Flex had something special; a built-in layout engine.  I''d spend weeks creating GUI''s in code in Flash, constantly re-compiling just to move a form element 1 pixel.  Even worse, if the GUI had to change, it broke my code.

Flex on the other hand did layout for you, both absolute and relative using a box model like DIV''s.  You can preview what you''ve have lain out, and manipulate it just like you could in Flash, only it looks like your application will look like… for the most part.  Best of all, if I decided to change my GUI, my code didn''t have to change.  The concept of using ID''s instead of MovieClip instance names combined with a layout engine suddenly saved me weeks to months of work on projects.  …and the components were better, too!

I immediately went looking for employers that would allow me to work in Flex all day.

4. Coming from a Flash perspective, what was easy about learning Flex and what was the biggest challenge?

The easiest thing was the components.  The components were based on the Flash MX 2004 code-base; they just had the new layout engine, optional percentage based width and heights, and integrated drag and drop.  I immediately knew all of the methods and property names so that made things easy.

Seven things tripped me up big time, though.  First off, Flex 1 and Flex 1.5 needed a server to compile.  Running the “scary black window” that is JRun felt uncomfortable.  Using Tomcat wasn''t much better because it combined with FlexBuilder take 10 billion terabytes of RAM.  Suck.  I got it over it, though.  Instead of Control + Enter, you just hit refresh on a Firefox bookmark.

The second thing was scope.  I''m used to a tree based structure of scope in relation to Flash timelines.  That is not the case in Flex.  Everything is flat, and uses ID''s.  Basically, if your class has a button called “my_pb”, you write “my_pb” to access it in your class.  It is the same thing with MXML files.  They are just like ActionScript classes, only the use either all MXML, MXML with a script tag for your ActionScript, or MXML with a script tag that links to your ActionScript file.  I settled in using my script within MXML because it felt just like writing ActionScript classes.  The GUI part, however, is handled by MXML, and this felt great.  Suddenly, instead of writing an import statement up top, defining my control variable in the middle, instantiating it in my createChildren function via createClassObject/attachMovie, and positioning and sizing it in my size function… I just defined a tag.  Damn, that was simple.  Even better, as long as the ID stayed the same, I could change a DateField to a DateChooser, and my code was left intact.  You can still dot down to find things, but I found for the most part, getting used to this flat structure was a 2 challenge.

The third thing was MXML as a class.  It took me months to realize that MXML files are the exact same thing as ActionScript classes.  They both compile to the same thing.  The mxmlc.exe basically parses all of your MXML, and makes them ActionScript classes, and then compiles those to SWF.  The fact that I could use MXML files and ActionScript classes interchangeably required a paradigm shift in thinking.

The fourth was uploading my files to a webserver.  Even when compiling on my local box, I still had to upload my files.  I''m sure I could of set my FlexBuilder directory to the same directory as the server, but it just felt… weird.  I''d sometimes forget and wonder why my code wasn''t working.  Additionally, Flex 1 and 1.5 have a nasty habit of caching your images.

The fifth was Flex''s compiler is stricter.  Stuff like my_lv[“owner”] will get caught; granted, you can still do it as it''s just a warning, but I feel like I''m being yelled at.  When you use MovieClips and use _x, it tells you to use the “new” x.  It assumes no in their right mind would use a MovieClip in Flex, only the UIObject class, so that was kind of annoying.  Then again, Flex wasn''t made for Flashers…

The sixth was no library.  You have to use embed tags to get your images and MovieClip''s in.  My Flex projects look more like websites with tons of folders and text files.

The seventh was the community.  There was initially a large & tenacious Macromedia presence.  However, Flash was never really acknowledged, and no migration path was ever given.  In fact, I clearly felt that I was not welcome in that community as I was not an “Enterprise Developer”.  That pissed off, big time.  Over time, though, I realized more of where Macromedia was coming from with Flex, and they too realized where some of the Flash community was coming from so it worked out great.



5.  I utilize Flash Remoting in most of our company''s projects. What advantages does Flex offer over Remoting? Do you see Remoting as having advantages over Flex or can they complement each other and seen in the integration of Remoting with Flash Forms?

Flex compiles SWF''s too; it''s merely an alternative to using the Flash IDE.  Most Enterprise Programmers see a timeline and don''t know what to make of it; it''s alien to their way of development.  However, you show them an XML based markup, a class based language, and CSS, with a presentation tier that integrates into their server setup and they immediately can understand and dive in.

So, Flex can do everything Flash can do.  Both can use GET and POST.  It''s called LoadVars in Flash and HTTPService in Flex; same thing.  Flash has the WebService classes and Flex has the WebService tag.  Flash has the Flash Remoting classes and Flex has the RemoteObject tag.

The biggest different, however, is that the Flex server itself acts, by default, as a proxy.  So, you do not have any of the security sandbox issues if you use Flex as a server that you do with Flash when accessing other domains.  Additionally, Flex has site blacklisting and whitelisting as well as named services for accessing Java classes.  Flex has remoting built-in.

So, you don''t use Flex vs. Remoting; Flash Remoting and Flex are different things, although, using Flash Remoting with Flex is a more joyous process with the built-in proxy.

6. Speaking of Flash Forms, I have heard them refereed to as Flex Lite. How do they compare to Flex in your mind?

You mean the ColdFusion Flash Forms?  No clue.  A CF guy and I debated about them on a list, trying to get to the bottom of it.  It sounds to me like a sub-set of the Flex framework is compiled into CF server, and exposed via tags.  However, you don''t have the access to those features like you do in Flex.  That''s all I know.


7.  A lot has been made of the cost of Flex. How do you justify the cost to a new client or boss who is looking at a relatively high buy-in?

I don''t.  I went and found companies who don''t even bat an eye about dropping $2 million dollars on Oracle licenses.  To those kind of companies, Flex isn''t a drop in the bucket.  There are a lot of those types of companies.

Flex 2, however, kills that concern since the SDK is free, and the Flex Builder 2 is priced under $1000k.

8.  I recently completed an article on AJAX. It''s getting a lot of hype and I would like to know how you see AJAX – threat to Flash or just another player?

AJAX is a different technology, and thus more appropriate in some situations.  I do not see AJAX as a threat, and there is plenty of room for both to co-exist whether aware and working together or not.

AJAX has a lower barrier of entry, can improve already existing web applications, and has a lot of room for growth.  You can make incremental improvements to existing web applications with low-risk, and in various places.

Flash or Flex, however, requires a complete re-write using a new technology, and re-training of developers.  While the concepts of ActionScript are familiar to JavaScript developers, more so to Java developers, Flash is usually alien to most web developers.  Flex is extremely akin, but you still have some down-time as teams get up to speed.  Additionally, incremental changes are not as impactful as AJAX on existing applications.  Changing a login to provide immediate feedback is better done in AJAX vs. Flex.  Additionally, Flash & Flex requires a plugin, and while the install base is high, you are adding a requirement to an existing application.

However, the Flash Player has more features, media support, good cross browser and OS support, and the most important of all next to ubiquity via install base is the updating.  The rate at which Flash Player 8 was adopted proves one thing; AJAX users have to wait years before end users upgrade their browsers, but Flex & Flash developers only have to wait months… and a lot of my projects take months, so I can start developing now knowing my customers will have the required features at release time.

Additionally, Flash & Flex have a more mature language which makes maintenance & stability of larger projects easier to manage.

So, it all depends on your team''s skillset, the project, and the circumstances.  Either way, they are 2 separate technologies that can be used together or apart.  The only competition is from philosophers with clubs.


9. I would like to get your thoughts on the Adobe merger and how you see this affecting future versions of Flash/Flex/ColdFusion.

I think the future is bright for Flash; that''s the reason Adobe bought Macromedia.  Integration with their design suite will be off the hook!

Flex will be great because Adobe has a great server-side offering.  Integration with some of their server-side offerings into existing Enterprise markets will be great.  Adobe''s server-side offerings are all about the forms.

ColdFusion has its hands in all of that, so I''m sure they have a bright future as well.

Overall, though, this needs to be tempered with the fact there is absolutely no competition.  AJAX is not competition because most developers I know use Flash for it''s media capabilities; that''s it''s main selling point beyond dependable feature set across devices, browsers, and OS''s.  I hope Microsoft really knocks their Expression Suite out of the park; we need some competition for Adobe, and bad.  It''s already here, but I don''t think it''s visible enough; you can''t feel the tension unless you work at Adobe.

10. I see that you are speaking at several conferences and the like. Anything on your plate that you want to plug?

My goal is to speak at MXDU 2007 and Flash in the Can 2007, so if you are there, let''s game some gaming on, go clubbing, and talk tech!


Thanks again for your time Jesse, we really appreciate your thoughts.
Follow Jesse on his site.


Need Professional Help For Your ActionScript Project?
ActionScript.com Consulting Services provide top quality professional ActionScript consulting to businesses around the globe. If you have a professional project in need to world-class talent, tell us about your project by requesting a quote today.

Reader Comments

  1. Rostislav Siryk  Replied:
    ( 1/23/2007 At 8:59 AM)

    You may notice this detector tool can assign pagerank greater than 10 to some sites of your artificial network which usual pagerank toolbar couldn't do. This is because toolbar is calibrated but Pagerank Decoder is not. This makes it even closer to internal Google's pagerank value.

Login to post your comments. If you do not have an account with us please Register.
Copyright 2005 by ActionScript, Inc.   |  Privacy Statement  |  Terms Of Use  |  ActionScript Client Extranet