Note to self: remember to use the test database when testing this site ;D
final test - hope
this is a test - ignore part 2
this is a test - ignore
What would an open Flash look like?
The Flash platform today has several open source elements, but the part that remains closed is the player implementation. The player is the part of Flash that holds the features; it loads bitmaps and data, rasterizes vectors and text, composites elements on screen and dispatches timers and input events. Things such as the SWF (flash file format), RTMP, FLV/F4V, AMF, and MCD specs and (ActionScript) virtual machine are already open, but without an open-sourced player, these offerings fall flat.
The argument is that given enough open spec, a company or group could build their own player implementation. While this is true, it's questionable that this logic would be workable in the real world. And while this thinking works for HTML, maintaining multiple variants of Flash while keeping compatibility at a maximum, all while following Adobes closed feature lead and developer tool-chain timelines would be excruciating.
Most people will agree that a multi implementation approach is an awful way to take Flash open; HTML continues to suffer because of this. If we have to have an open Flash, the only people who can make this happen are Adobe. A master implementation would allow for fast feature development and compatibility standard that Flash maintains today while allowing the community and vendors to port and contribute to the platform.
If Flash became open and was still a relevant technology, I can picture a day when Flash is no longer a browser plug-in, but something that is actually part of the HTML spec. I could easily see the canvas tag being used as a Flash context, much in the same way canvas is being used to display WebGL and SVG. You could even have plain-text ActionScript sitting in script tags. Now I'm not proposing that we expose the IP of the world, SWF files will always have to be supported. I'm just trying to paint a picture where Flash can be lightweight inside the browser, because if it's not Flash it'll be something else.
Adobe today is the bottleneck of Flash's future. As computer platforms become more varied, needs become different and wider, Flash will fall behind. If Adobe is to hold onto Flash's relevance, they need to let other people in.
Flash 11 should be a switch to JavaScript
Flash 11 should be a switch to JavaScript
Let's press the reset button and drop ActionScript. It hold no relevance or advantage in todays world.
Over the past few months I've been working closely with JavaScript in different environments outside of the HTML DOM. Two of those being on the server side - Node.js and CouchDB. The other being an experimental front-end, RIA like platform. And what I've concluded over these past few months is that I really like using JavaScript - I'm genuinely surprised!
It was only a few years ago when I finally rid myself of ActionScript 2 and I was ecstatic about that. The ActionScript 3 way of doing things seemed to make a lot of sense to me and I've since written tens of thousands of lines of the strictly typed, compiler checked goddess. But is she a false idol.
At present, Adobe is recruiting people to the Flash platform via the new child, Flex. Up until people started throwing around the term RIA, the Flash user base was primarily made up of creatives & devigners who made some pretty amazing websites (lets forget about skip-intros for now) with what they had. Now the Flash base is increasing filling up with Java and C# types who expect a certain level of features, complexity and checks - Adobe continues to encourage it and the old base seems to be increasingly disillusioned.
The overwhelming message is that ActionScript 3 is necessary and better than all it's predecessors. Now a big part of me believes this, in-fact I'd say it was pretty accurate. But I can't help but feel that it's hurting the essence of the platform and the web in general. It's almost as if ActionScript (and some of it's base) has a kind of inferiority complex and must be more like its mature peers in-order to be accepted. In-fact the power of ActionScript (and some of it's base) was always in it's simplicity - "less is more" so they say. And this is exactly what I've found out over the past few months with JavaScript.
The expressive power of JavaScript is wonderful. And so is the expressive power of AS3 once you take away the strict typing, package name-spacing, verbose eventing and the classical-OO pretense because you're left with the stuff you care about, the stuff that actually gets things done. More importantly you're left with something that looks just like JavaScript, no surprises there seen as they are ECMAScript cousins. Well maybe you could say AS3 is the bastard child now that ECMAScript 4 has been abandoned (- I think this post can stand without doing into depth on this subject).
But isn't the big benefit of ActionScript 3 with strict typing the speed? - surly this is key to Flash success. This statement is utterly incorrect. First and foremost, the majority of Flash's execution lies in the rendering of the stage. If AS3 is only doing [box.x+=1] then render is doing a hell of a lot more updating pixels on the screen. It is OK if your AS3 code is convoluted because the renderer will always be your bottleneck. The other mis-conception is that strict-typing improves execution speed. The evidence is probably running right in your face: most modern browser JavaScript engines are in-fact faster than Tamerin (the AS3 virtual machine). Additionally, Joa Ebert has really thrown egg on Adobes face this past year by showing the community just how unoptimized the AS3 compiler is.
So what was good about the introduction of ActionScript 3. Well, for me I think the bigger issue was at the API level. I think people enjoy AS3 over AS1 and AS2 because of a cleaner API into the platform and the finer-grain/cleaner control you get over the display-list. If you were to put put ActionScript 3 into the browser as a JavaScript replacement, you'd still end up with the problems of having to work with the awful HTML DOM. The language in Flash was never the issue.
Adobe Flash is increasingly being squeezed by it's competitors who all want a bite from the RIA apple. Adobe can no longer afford to ship a niche language. Especially if they expect to draw in fresh blood into platform. A move to JavaScript (ECMAScript 5) would seem like the sensible option for the future of Flash. A grander alternative option would be a .NET type approach, enable many commonly used scripting languages (JS, Python, Ruby, Lua, etc) to becoming first class Flash languages, but maybe that's too over the top. Simply moving to JavaScript will bring renewed expressiveness to the platform and once again it'll be approachable by new talent, who at the end of the day, will make or break a platform.
I'll end this with an example of expressiveness. Both these snippiest do the same thing: load an external JPEG and add it to the stage once loaded. I understand that you could encapsulate the JavaScript approach in AS3 - The point is that you shouldn't have to.
EDIT: People have commented heavily about the following snippets. Please don't take them as the overriding message of this article. The main message of this article is about AS3 being a niche language with too many constraints - JS could easily take it's place.
EDIT2: I've started an open source project called $flash, hosted github, with the aim of creating a whole AS3 lib based on the JavaScript snip below.
// JavaScript
flash.load("lolcat.jpg", {
success: function(bitmap) {
gallery.addChild(bitmap);
},
error: function(msg) {
trace("no lolcats found");
}
});
// ActionScript 3
import flash.events.IOErrorEvent;
import flash.events.Event;
import flash.display.Loader;
import flash.net.URLRequest;
var url:URLRequest = new URLRequest("lolcat.jpg")
var loader:Loader = new Loader()
addListeners();
loader.load(url);
private function addListeners():void {
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeEvent)
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
private function removeListeners():void {
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, completeEvent)
loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
private function completeEvent(event:Event):void {
removeListeners();
gallery.addChild(loader);
}
private function ioErrorHandler(event:IOErrorEvent):void {
removeListeners();
trace("no lolcats found");
}
Posted Sun Jan 10 2010 15:10:15 | 58 Comments | Post a Comment
Win an Adobe MAX '09 Pass
I've been given the opportunity to gift a full Adobe MAX 2009 (L.A) conference pass.
I've got to give it away by the end of Friday evening (PDT). So, I'm going to use a simple "random name out of a hat" technique with the help of twitter.
How to enter:
1) Be a member of twitter
2) Be following me on twitter: abustin
3) Tweet this exact message: I want to win your #adobemax pass @abustin -http://tinyurl.com/winmaxpass
I'll announce the winner live on twitter tomorrow (Friday).
24 Predictions for Adobe MAX 2009
- Flash Player for iPhone (announcement/demo)
Prediction Rating: B+ - Mobile Flash Player, Mobile AIR & SDK tools (labs release for Android, Symbian and Win Mobile)
Prediction Rating: A+ - Adobe AIR 2.0
Prediction Rating: A+ - Flex Mobile Components
Prediction Rating: B - AS3 multi-touch API
Prediction Rating: A+ - Simple AS3 Callbacks API. (The stuff some people miss from AS2)
Prediction Rating: D - New supported Flash video codecs (eg. Theora)
Prediction Rating: D - AS3 Threading API
Prediction Rating: C - Flash Catalyst is being rewritten to be useful
Prediction Rating: F - Flash executes Pixel Bender shaders on the GPU
Prediction Rating: B+ - All the old built-in bitmap filters have been upgraded to use Pixel Bender
Prediction Rating: C - Flash Player GPU accelerated rendering
Prediction Rating: B+ - Flash Player GPU accelerated video decoding
Prediction Rating: A - AS3 OpenGL ES bindings that draw to pixel buffers (bitmaps)
Prediction Rating: B - Additional AS3 P2P APIs. Maybe to aid in creating MMO games.
Prediction Rating: C - ActionScript 3.5 (generics, method overloading, Lambda expressions, Generators, Object initializers, operator overloading, etc)
Prediction Rating: D - The introduction of coding Flash in other/new languages. This might also include new micro-formats for the timeline.
Prediction Rating: F - Flash Professional will be renamed to Flash Animator. The Flash platform tools will be sold in a package named Flash ABC (Animator-Builder-Catalyst).
Prediction Rating: D - Flash Player in the Cloud; Thin HTML5 client.
Prediction Rating: F - AIR versions of Acrobat.com apps such as Buzzword
Prediction Rating: C - Brand New HTML5 IDE for creating Flash like experiences.
Prediction Rating: C - Stereoscopic 3D DisplayList projection filter in Flash
Prediction Rating: F - Ability to create and distribute new Tools for Flash Professional (why did we have to wait for IK and the deco tools)
Prediction Rating: D - The Flash community will lose Phillip Kerman to Hollywood
Prediction Rating: bingo!
What are your wild predictions? Posted Mon Sep 28 2009 07:44:53 | 11 Comments | Post a Comment
HTML5 in IE6 today, thanks to Google Chrome Frame
Today Google announced Chrome Frame; their strategy for speeding up the HTML5 roadmap. Google Chrome Frame is a browser plug-in, such as Adobe Flash or MS Silverlight.
The Chrome Frame plug-in is an extraction of the rendering part of Google's Chrome browser that will override the default HTML rendering of IE. In other words, the world will no longer need to wait for Microsoft to implement the HTML5 standard, meaning that HTML5 might become mainstream a lot faster than people have predicated.
In order to take advantage of plug-in, all the developer needs to do is add a single Meta tag to their existing HTML code. Watch the video to find out more ...
Read More on Google Chrome Blog
Coming Soon
Coming Soon
