Flash Is Dead; Long Live OpenFL!
First time accepted submitter lars_doucet writes "I am a 15-year Flash veteran and nobody hates to say this more than me: Flash is dying, and the killer is Adobe. Where to now? HTML5 doesn't help me with native targets, and Unity is proprietary just like Flash was — 'don't worry, we'll be around forever! And so sorry about that neglected bug report — we're busy.' I'm putting my bets on OpenFL, a Haxe-based, fully open-source implementation of the Flash API that might just please both Flash refugees and longtime Flash haters alike. My article discusses my experiences with it and gives a brief overview for newcomers. In short: I can keep making Flash games if I want, but with the same codebase I can also natively target Win/Mac/Linux desktops, mobile, and more, without having to mess with Adobe AIR or other virtual machines."
Is that a good thing?
You missed the part where OpenFL compiles to C++.
Flash was one of the few holdouts of the Plugins era of the Netscape vs. IE Browser War. It came out because There wasn't a standard between the two for vector based graphics.
Flash worked in different browsers and across many different OS's so it got well accepted. Then Adobe for the most part didn't let go easily and created more and more stuff to it, to make it rather full featured, killing off Active X and Java Applets for standard web pages.
That said. HTML 5 is not perfect, however it does give us a lot of features that we think we should use flash for, and we really should follow the standards that comes part of the browser then rely on plugins.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
Die you bastard die!!!
How can we make sure it doesn't come back from the dead. Zombie Flash.
Take off and nuke Adobe headquarters from orbit... It's the only way to be sure.
If I were God, wouldn't I protect my churches from acts of me?
Maybe because all the code is open source and you can inspect it yourself? http://www.github.com/openfl
So what? Perl can compile to C too, by bundling the interpreter into your target binary. Windows apps can compile "to native" as well. Neither makes it exactly native, similarly to having your app interpreted by a native HTML5 engine is.
The most native way something can be for a platform is to be written directly for its platform, bound directly to its APIs. Anything but that gets very conceptually fuzzy. And if you're worried about this for performance reasons, you should look at the Quakelikes that have been ported to HTML5.
For every problem, there is at least one solution that is simple, neat, and wrong.
(I missed part of a sentence in there ; windows apps can compile "to native" as well using WINE)
For every problem, there is at least one solution that is simple, neat, and wrong.
It looks like if you don't want to deal with Flash, you have basically two options: Qt's QML for non-web-pages or HTML for web-pages.
Soon though, thanks to QMLWeb, you'll be able to use QML-to-JS in the browser.
Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
It seems a lot of people either didn't RTFA or are basically misunderstanding what OpenFL is. OpenFL is NOT an open source version of the flash Flash Plugin, like Gnash. OpenFL is a code library written in Haxe. You use OpenFL, and then you can output a truly native (C++) app, but can still use the flash API. It doesn't embed the flash player, or Adobe AIR, or anything like that, in your generated C++ app. You can use this to create truly native apps for mac/windows/linux/mobile, etc. Very recently they've added the ability to output to HTML5: http://www.openfl.org/blog/201... So you can take your old flash code, port it to Haxe, and then have a 100% Javascript based HTML5 game. And you can take that same Haxe code and make a native C++ app with it. And so on. Hope this helps demystify things.
It does not execute arbitrary C++ code on your machine. Did you even read the article? It's a lifeboat for flash developers to make, say, desktop games. IT IS NOT A NEW VERSION OF THE FLASH PLUGIN.
If I'm not mistaken Haxe "compiles to C++" by interpreting the code into actual C++ source, which then gets compiled into a native binary with a standard C++ compiler.
Okay, so that's a semantic difference then. If by "native" you mean "original source code written in the original language" than by that definition it's not native. I'm trying to clarify that it's not using a virtual machine, or relying on a plugin, whatever you want to call that.
Correct. I'm not an expert on the Haxe compiler, but I'm pretty sure it also has the ability (via hxlibc or hxcpp libraries) to directly compile Haxe to native binaries, skipping the intermediate C++ source step, but it can also create those too.
To be honest... Random Websites can't have a worse track record than Adobe.
Apple's footprints were found at the crime scene.
Since you're a big HaxeFlixel guy, can you point me in the right direction to actually getting a working dev environment going on Windows? I tried a couple of times, but gave up because even the example projects would throw incomprehensible error messages when I test compiled. Only information I've been able to find on the errors was other people having the same problem, but no actual solutions.
My point is that with modern VMs and JITs and partial nativisation and other systems/PL technologies, you no longer should care whether something "runs native", and that that's a distinction that is so blurred anyhow that it barely makes sense to talk about it. It may have once been important and simple, but nowadays it is neither.
For every problem, there is at least one solution that is simple, neat, and wrong.
Flash was bad from the start and html5 and what not is just an extension of the same bad idea imo.. It is literally flash(sparkly) at the expense of function and another avenue for security exploits.
Youtube? I use a downloader app, keep local copies of anything remotely interesting.
Since ebay started using html5ucked, it takes many times longer to view the same content. All that impage overlapping crap. Before, you'd middle-click an item, middle click image after image and all are loaded for quick detailed viewing.. Now you must hover over the image, click it, then right click and open to view the actual full resolution.
Function over form you retarded punk developers.. Mind you if they didn't use all the new crap just for new sake, they wouldn't like be able to do their job or be unemployed since it would be all 'done/working'.
Just like before when I saw Macromedia let Flash kill Director and Shockwave.
Damn shame. It was such an awesome product.
FYI, Director's Lingo looks a whole lot like today's Lua.
Cheers to those of us who helped make it and those of us who took it and used it to start a great career.
I miss Director.
- Zav - Imagine a Beowulf cluster of insensitive clods...
Flash became dominant because it filled many real needs. Vector graphics is just one. It also brought creation tools so artists could work with it, it brought a scripting environment fast enough to use in a browser. Like you say, it also brought commonality to all the different browsers. This means that Flash brought a lot of features to the masses:
- browser games. These were known as Schockwave or Flash games.
- usable online multimedia. Yes there were video sites, but they became far more usable and reliable with Flash video.
- rich design. As much as we hate them for all their inherent problems (and I do too), the fact is that before HTML+CSS caught up the only way to implement a crazy design was with Flash.
- rich typography. We've only got proper font support very recently. That means the website can define its own font, not simply choose among the handful of Web fonts one could assume were available on the client.
Yes you could do video with native plugins like WMPlayer. Do you remember how terrible that was? Half the videos wouldn't play because of some unknown problem with codecs or such. When FLV came in it was great. Despite its problems, it brought reliability. I don't think YouTube would have become as successful as it is without Flash. Same with audio.
Despite its many problems, Flash brought a rich, standard interface to the web when nobody else could.
boldly going forward, 'cause we can't find reverse
Flash is no more native than HTML5. At this point it doesn't make sense to "place bets" on Flash at all, unless like the article author you've spent many years on Flash and are not interested in change.
Flash can create a 'native' PC or OS X app (OK, it consists of a standalone Flash player bundled with your flash App, but the practical upshot is the same unless some strange permutation of misconceptions has led you to expect 'bare metal' efficiency from something like Flash).
Flash was actually a great system if you wanted something to write relatively small, animated, resolution-independent applets that can be embedded on web pages and downloaded as pseudo-native PC/Mac apps (Java was obviously better at coping with substantial projects - but its been getting a bigger and bigger pain for non-techie end users to install). Of course, it got abused as a way to add gratuitous animation to websites, and its only merit as a video player was that it was less annoying than RealPlayer...
The real killer, though, is that it doesn't run on tablets... however, when it was briefly available on Android I tried some existing Flash stuff and it quickly turned out that Jobs was right - apart from the bloat and security nightmare, lots of existing Flash stuff just broke on a touch screen.
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
Sure, send me an email: http://www.leveluplabs.com/?pa... And let me know what you're dealing with. Chances are it's a haxelibs issue.
An open flash clone might be ok because it does not matter that it will not run on the devices most of the world are going to be using in the near future. These app can be legacy, like the stuff that requires IE. But it is just like Java which has fallen 25%. People will figure out how to make HTML5 work, and work better, so they can access as many customers as possible.
"She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
That's two terrible ideas at the same time.
Flash developers don't need lifeboats, they need torpedoes.
Can OpenFL handle something like Stage3D and wrappers like Starling?
I've used Haxe in the past, but found it lacking in support of things like sound and sprite animation for writing mobile games.
The Binding of Isaac disagrees.
Great game!
Wow, sent an e-mail as suggested when clicking on "use classic" banner, and got a fast response that addressed my msg
Native vs. interpreted vs. JITed discussion is a moot. (They are all fast enough. On one side. On the other side, many code generators/translators add enough cruft for the code to often lose performance compared to the JITed/interpreted execution.)
The problem is with the libraries required by the run-time. One can compile Java application into a native app (using GCJ), but it is of little use since you still need the Java run-time. IOW, you are still poised to run into run-time deployment issues (version conflicts, local configuration, paths, etc).
Compilation to native code has value only if it allows you to create an application which doesn't have external dependencies or the external dependencies are very easy to manage.
All hope abandon ye who enter here.
If you download “Google Chrome” as opposed to “chromium” for linux, from Google, it has a completely up to date flash plugin built in. It installs with a right click in Debian, and is easy to add to any distro that you're making ...
The purpose of existence is to make money.
It cannot skip the native C++ step. The cpp target of haxe always generates C++ code and always compiles it to produce a native binary.
OpenFL is a code library written in Haxe. You use OpenFL, and then you can output a truly native (C++) app, but can still use the flash API. It doesn't embed the flash player, or Adobe AIR, or anything like that, in your generated C++ app.
So is this a possible migration path for those who were using Adobe AIR? If it's C++, could it tie in with Apple's ObjectiveC framework and thus create deployable apps in the Mac App Store?
Make sure everyone's vote counts: Verified Voting
As long as employers (game devs, in particular) are willing to keep paying people to write it, I'm pretty sure it's going to stay popular.
File under 'M' for 'Manic ranting'
Read the article. You're commenting on something completely unrelated. This isn't about creating an insecure alternative to the Flash plugin.
on the other hand, who really cares about getting access to your machine if you can get access to all the browser-based info through some js exploit?
I think the verb you're looking for is confirm, not report.
HTML5 is dead, Long Live ________! Hard to keep up.
________ is dead, Long Live ........! (It's clearly more compact, and its components don't run together confusingly like those _s do.)
Those who do study history are doomed to stand helplessly by while everyone else repeats it.
And they keep saying Android apps are native too.
It's all hilarious.
New things are always on the horizon
It been a fun ride but it needs to go. The use of Flash is preventing more open technologies like HTML5 from moving forward in order to support all what Flash used to do.
Views expressed do not necessarily reflect those of the author.
I thought it was Flash that was doing the replacing - of both tape drives as well as hard disks
I remember when COBOL could make similarly important-sounding claims. Didn't change the fact that COBOL blows goats.
Socialism: a lie told by totalitarians and believed by fools.
How do we know this isn't an NSA front organization?
Maybe it's time for yet another reminder that the entire Internet can be viewed as a "front" for the US military, via (D)ARPA, the 100% military-funded organization that paid for almost all of the Internet's early development. (Yes, a bit of money did come from independent sources, mostly in academia, but this was < 1% of the funding until around 1985 or so.)
What makes this irrelevant is that the Internet's standards and almost all of its low-level code have long been open-source, and easily available online. This fact was the main reason it won out over OSI. In the 1980s, I worked on a number of projects that were primarily aimed at OSI, but there were delays caused by all the paperwork required for purchase orders for the official standards, and even longer waits for copies of the libraries and compliance-testing code, so while waiting, we built some prototypes on top of IP. By the time all the purchasing bureaucracy gave us what we needed, the IP version was working, so our clients took that, and the rest is history. ;-)
So even if the NSA is funding this work, if the code is all open (and we can compile it ourselves), that doesn't much matter. The problem then is the proprietary code that will be piled on top of it. History tells us that this will continue to be secret, and the major source of security problems. Code designed to collect "marketing" data about customers is inherently easy for people interested in other kinds of spying to take over and redirect for their own purposes.
Those who do study history are doomed to stand helplessly by while everyone else repeats it.
It will be better for everyone concerned if you do, citizen.
-- Tigger warning: This post may contain tiggers! --
Indeed, instead of using a plugin, author it in OpenFL and "compile" it as JavaScript. You get the nice Flash API and can use the Flashdevelop IDE if you want, without needing the Flash plugin.
Because, you know, this is slashdot. We won't believe something is dead until netcraft reports it...
Didn't RFA, summery saying; " Unity is proprietary just like Flash was — 'don't worry, we'll be around forever!"
They all think that way
http://www.cnn.com/WORLD/9709/...
The Funeral of Princess Diana
Elton John performs "Candle in the Wind"
4 min. VXtreme streaming video
This maybe available with WMP, but I've never allowed that program to run (many reasons).
But I'm going to say it's dead as a VXtreme search on http://www.netcraft.com/ crashes the browser window taking me to about:blank (Opera 12), or just takes the page away (FireFox 27.0.1), flash enabled.
Title: "Flash is dead"
Summary: "Flash is dying"
TFA: "Flash is getting hard to deal with compared to other approaches"
Stupid comment. Do you have any idea how many excellent, critically acclaimed games have been made in Flash, or else started their lives there? It's an engine; it can be used for great things or terrible things. It just depends on the skill of the developer.
And I'd be interested in letting random websites execute arbitrary C++ code on my machine why exactly???
You wouldn't, but then that's not what OpenFL is doing so that isn't really relevant.
The whole notion of Flash is terrible -- no, I do not trust you or your advertisers to run code on my machine.
You don't trust who? Anybody? Ultimately how are you even going to know whether an application used OpenFL? The result that you run is just a native program like any other.
No I do not think it makes your site any better, it makes it shittier and I won't use it.
Website? What are you talking about? This isn't a Flash plugin, it has nothing to do with websites.
It's that simple. And to date I've yet to find a single compelling reason of why I'd use Flash in the first place. And, for the same reason, this OpenFL is equally something I'm not interested in.
No, because OpenFL isn't Flash, it isn't a replacement for Flash and it isn't a plugin.
Dart with stageXL
According to them this game was ported in 6 hours.
It sure does. There's a bunch of libraries for WebGL, Stage3D style stuff.
The embedded environment in which we've deployed haxe over Flash would like to have a word with you about whether or not "JITed code is good enough" ...
Admittedly, my company does not represent the average Haxe development environment; Haxe is very much targeted towards small scale developers working on mobile apps.
But my point is that Native vs. interpreted vs. JITed is not moot in all circumstances, and can be quite relevant depending upon the context.
And for what it's worth, Haxe generated native binaries have very few dependencies on the runtime, and generally only depend upon runtime facilities which are either guaranteed, or virtually guaranteed, to be a part of the target runtime.
I love you, man. That one should be modded to 11.
A more accurate word probably is claim instead of confirm.
Sleep your way to a whiter smile...date a dentist!
Flash is no more native than HTML5. At this point it doesn't make sense to "place bets" on Flash at all, unless like the article author you've spent many years on Flash and are not interested in change.
Flash can create a 'native' PC or OS X app (OK, it consists of a standalone Flash player bundled with your flash App, but the practical upshot is the same unless some strange permutation of misconceptions has led you to expect 'bare metal' efficiency from something like Flash).
You can also have this type of 'native' using HTML5 and Nodejs. By using this component called node-webkit.
I just learned about this from Popcorn-time, they package a "native" app using this technique, and the application is all HTML+CSS+Javascript.
Unreal engine. In Firefox. No plugins.
So, whats wrong with bundling a lightweight html 5 browser (or even a full blown one) with your HTML 5 webapp so it becomes a 'native' app?
Nothing much - apart from lack of simple (both for the developer and the end-user perspective) tools to do the job and some problems with security features in browsers (e.g. they won't recognise 'file://some/local/dir as a 'domain' when checking for cross-domain scripting and either just plain don't work or pop up scary security warnings). Actually, Adobe Air sorta did that, except that Adobe knobbled any of the webkit functionality that might have competed with Flash...
I still don't get what the OP's requirement with 'Native' that is a show stopper... with SVG and canvas, and even WEBGL, web RTC, etc. they pretty much have all the functionality and more that Flash can provide.
To duplicate Flash functionality in HTML5 you need an extensive graphics/animation library sitting on top of canvas or SVG, plus a decent timeline-based graphics editor/authoring system. All the bits exist (Inkscape, various HTML5 application frameworks and libraries) but nobody has yet put them together into a package quite like Flash.
As for the 'native' bit - for me it was more about providing an all-in-one bundle, with the correct versions of everything, that could be used by the sort of people who's answer to "What version of Internet Explorer do you have" is "Uh... XP, I think... or maybe Office 2010?".
Not that there aren't problems with Flash - notably Adobe/Macromedia's determination to completely re-invent the API and Actionscript language with every release and the mind-bogglingly stupid situation wherein Flash and Flex (the code-centric XML alternative to the visual/timeline-based Flash authoring tool) used completely different APIs...
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.