after an eternity of discomfort and questioning, hours of discussion with friends and people I trust, my former students, occasional coworkers and potential clients, I took a decision:
this is was my last Flash project.
the project I work on is the sum of all my Flash know-how and should be a good one.
there you go: http://wearedata.watchdogs.com/
make sure you have a recent computer and a decent bandwidth.
I may still have to keep doing minor stunts in Flash to pay the bills but the general direction is to quit.
if you’re not interested in the details, just remember that:
- I will keep working on advanced front-end graphics
- I’ll probably go for the CSS / JS / WebGL combo
this blog will stop being updated with Flash stuff yet I won’t shut it down : most of what is in here is not really Flash specific code and might still help someone out, be it myself :)
I will release some NME code too (for learning purpose mostly).
that was it,
thanks for passing by and have a nice day :)
if you’re still here, I’m not going to weep about Flash either, I knew there would be a time when the tools change and I even consider it a healthy perspective.
for the past two years I lived through the slow decay of Flash. working as a freelancer in a niche market (advanced front-end graphics), I was one of the last to be hit by unemployment.
as a Flash dev, last year was even my best year both in terms of quantity and quality. over the past months, I received job offers for more and more complex websites or modules involving advanced 3D, voice, gesture, drawing or face recognition and manipulation. this being said, none of those turned into actual work because all of them were bashed before reaching the production line.
I remember a week in march 2013 when 4 job offers were cancelled in a row.
that’s when I realized the Flash party was over.
then what next?
if mobility was an abstract concept some years ago, now it’s a reality and it changes both what we do and how we should do it. again I believe it’s for the best: creating light-weight & cross-platform content is what Flash was after and what made it a successful technology for over a decade.
but web is not only about technology ; I think there is a full paradigm shift at work.
a schism occurred between editorial and experimental contents. Flash often sat in between.
nowadays, I think people want either a fully experimental, almost artistic, website OR an elegantly presented editorial content without fairy lights. in other words, people don’t want Flash-LIKE websites anymore.
this means that Flash is condemned both as a technology, as an aesthetics and as a cultural phenomenon. I believe that mimicking Flash websites in HTML/CSS/JS is not the way to go.
AIR?
as a standalone platform, AIR was never threatened so directly by HTML as Flash. it has really honorable performances on both Android and iOS. some funny memory management issues but a full support of GPU access on both platforms which is a tour de force. anyway, no thanks: being based on ActionScript and with ActionScript not being updated anymore, AIR is condemned sooner or later.
more generally, Adobe is a company that builds TOOLS not web actors. it seems that Flash hegemony happened almost by mistake and when they realized they wouldn’t make money with the Flash animations themselves (the speedtax mayhem), they gave up. it seems like the next Flash IDE will mostly create JavaScript-ready assets and focus on HTML targets in general.
HTML5?
for those who don’t know, HTML is not a PROGRAMMING language ; it’s a MARKUP language. we can’t code with HTML, we can’t load dynamic content or dynamically layout the content (aka responsive design), we can’t perform advanced interactions or move things.
all we can do is layout a content.
clients tend to mistake it for JavaScript, they also tend to think that using HTML will reduce the time and costs for there will be one code deployed everywhere which is untrue. the granularity of platforms, OS, browsers and browsers versions makes it a very tricky exercise.
I’m still not comfortable with HTML5 being a DRAFT, even if it’s ont its way to be ready. when video, audio, webcam and microphone will be unified in the API, we might as well start working as if nothing happened.
I have the feeling that going open source (JS/CSS/HTML) has very pervert consequences:
it means choosing a browser, go crazy with a code that runs well on this specific browser, then solve compatibility issues and eventually downgrade the content to make it compliant with other browsers and OS.
solving compatibility issues is not my job – nor is it to promote this or that browser.
I also have the feeling that each browser is a black box.
I use Chrome mostly and I’m pretty satisfied with it yet these nightly updates drive me mad, some of them will disable WebGL or just crash my Graphics card driver when I open a second window, Flash will be updated randomly, Java will not be updated at all, QuickTime and Unity neither etc.
it was the case with the Flash plugin and now it reached the browser level.
ho, & I don’t think Apple, Google, Microsoft or Mozilla (which is Google btw) will be more flexible or transparent when it comes to lobbying the W3C or changing things in their VM or adding features or open sourcing whatsoever in general. no evangelists on earth will make me buy that.
CSS3?
well, combined with HTML, this can be extremely powerful.
it is very tempting: they have SPECS. despite the fact that it may not be supported everywhere, I like the cleanliness and concision of the ‘code’. there’s even 3D in there! ok, 3D postcards that is but still :)
I will take some time to study that.
JavaScript?
I still have the idea of a half-baked crappy language from the year 1998, used to do mousetoys… fortunately, it’s not that bad any longer yet it’s the picture I have ^^
being a bit of an overachiever, I’m really scared not to be able to create something more complex than a mousetoy that runs the same on all versions of all browsers of all OS of all platforms. because that’s what I use to do ; deliver complex, high quality content that runs (hopefully smoothly) on a good 90% of the desktops.
the biggest issue with JS is that there are many ways to do it. even though there is a SPEC, people use ‘subsets’ (node.js), APIS, frameworks, editors and what not but there does not really seem to be a way to federate everyone. even worse, as the language is structurally prototypical, nobody could rightfully claim to have THE way to JavaScript.
in other words, there’s no unified JavaScript community which makes it very complex to start ; one will end up belonging to a particular school of JavaScript, none of which is essentially better than another. as the code is made specific by the ones who write it, often minified and sometimes obfuscated, it’s uneasy to read and learn from. plus, as the code often splits over the DOM, one or more CSS stylesheets and a couple of external JS libs we end up with something that is not easily “sharable”. so long for the promise of an Open Source Web where the source code can be re-used at will by anyone.
another hidden drawback of JavaScript is that it’s very hard to work with a team (as a freelance) : they have their ways, you have yours, there will be redundant code, incompatibilities a.s.o.
not to mention all the code-crimes that can be committed in this weakly typed prototype jungle :)
the language is here though and it works.
more importantly it holds the keys to something extremely sexy called WebGL.
WebGL?
an experimental, low-level API to tackle the GPU from the browser: this sounds like a plan !
ok, we’re addressing 15-25% of the recent desktops, ~0% of the mobile platforms and probably <= 0% of the older desktops (desktops over 4 years old because, yes, some people are not in the web industry).
easy rants put aside, this is a good thing, again something Adobe was after, maybe too late.
the WebGL API does not seem too complex, at least not so different from other GPU APIs. anyway after AGAL, anything feels like a peaceful stroll in the woods. main problem once again: you need JavaScript to access it and there are N ways to JavaScript. this makes the scripts utterly complex to share and reuse.
many people, myself included, are tempted to use an existing engine ( Three.js by Ricardo et al., J3D by Bartek, spiderGL and lots of other more or less finished).
there are resources also, plenty of them, and strangely enough, it gives a better feeling of community. probably because of the GPU ; there are rather few and simple methods to handle a GPU, the rest belongs to the beautiful world of shaders.
that’s where I feel my knowledge of graphics can be best put to use.
it induces a pretty good knowledge of JavaScript beforehand.
anything else?
on my way out of Flash, I tried HaxeNME. as it’s really close to Flash, I could get started very fast and cross compile high level graphics, especially compile it to HTML.
NME constitutes a good alternative for people interested in apps. as far as I have understood they’ll increase the support of Native extensions and strengthen the existing API.
Haxe in general is a good alternative to the mess I’m in: for instance I’ve done a small WebGL test, to do so, I used HaxeJS and an extern (a wrapper) for three.js.
I believe that trying to do this without Haxe would have taken me weeks, it was done in ten days from scratch, with a very shallow knowledge of the DOM, JavaScript and of course WebGL.
while I’m at it, I’ll give a session at the Worldwide Haxe Conference about the graphics and NME. I would love to see you there :)
to wrap it up
I bit the bullet and bit it hard.
making a decision is always hard, harder in that case as I came to programming through ActionScript.
hard also because of the insanely talented, generous and humble ActionScript community.
if I’ve learnt a lot with ActionScript, I don’t have the feeling I will lose anything by swapping to a new language / way of doing things. it is a waste of time though, and I don’t like to waste my time.
it deeply shook my will to commit to a language, a platform or anything in the way.
it didn’t shake my will to learn at all (on the contrary! :) )
“rock on rebel warriors,
droopy butt begone!”
my beloved readers wrote…