Flex: The Unix Geek's Ideal Flash Environment
benjisimon.blogspot.com
benjisimon.blogspot.com
-- Just another haXe fan over here
I've never truly used it in anger, but I found it extremely good. It's US$250 or something last I checked.
If you're more of an IDE-type, worth checking out.
Since Actionscript 3 has optional static typing, and contains little-documented but very real implementations of closures and functional programming, it can be written as a Java-like OO language, as a Javascript-like dynamic language, or as a clunky but at least workable functional language; and the XML-based GUI-layout component, MXML, is surprisingly powerful and consistent.
Even though Flash is where my paycheck comes from, I am not at all convinced that it is the ideal format for most web content, so I won't argue with anyone who hates it. But anyone who has avoided Flash because of its programming model should definitely give Flex a second look.
(As for Flex Builder, I use it for its debugger and compiler, while doing heavy-duty text editing in jEdit. I mean, it doesn't even have parenthesis balancing, for chrissake.)
ActionScript has first-order functions, allows for dynamic typing, and utilizes class as well as prototype inheritance, even for built-in classes. This means you can do neat things to the prototype object associated with any object - even the Function object itself.
Just because the majority of people developing in ActionScript don't utilize the functionality doesn't mean it doesn't exist! Take a minute to look into the language yourself - you might be very surprised.
The same thing applies in a lot of areas of AS3 -- you can write a GoF-y 2001-Java-looking app with self-documenting code and doc comments and blah blah blah, and then if it's convenient, you can ALSO use first-class functions with currying and all that geek stuff for statements like (just an abstract example):
newArray = oldArray.map(convertFrom(value)).map(applyTransform(transformParams)).reverse().filter(namesFromLanguage(Language.GERMAN));
I don't know what it does with MXML though, and haven't tried the debugger in it either (I don't have the so called enterprise version).
AS elegant? I think it's the ugliest language next to java.
AS has deep roots in Scheme!??
Also, I know you can use javascript for Flex, but can you create a swf using javascript?
See http://Weblogs.mozillazine.org/roadmap/archives/2008/04/popu... for a brief history.
Because Flash has such good browser support, it's common for bits of rich functionality on sites to be implemented with little SWF files, with or without UI. Sound players, upload widgets, cross-domain sockets, even browser-proof clipboard access. I do all my web programming in Emacs, and the text-file-based development method he suggests is right on.