Slashdot Mirror


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."

34 of 166 comments (clear)

  1. Open Standards, Not stupid plugins. by jellomizer · · Score: 4, Interesting

    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.
    1. Re:Open Standards, Not stupid plugins. by lars_doucet · · Score: 3, Informative

      OpenFL supports HTML5: http://www.openfl.org/blog/201...

    2. Re:Open Standards, Not stupid plugins. by mlts · · Score: 2

      Agreed, HTML5 is not perfect, but it is better than addons, and those are oftentimes the items that malware uses to gain control of the Web browser (and thus a foothold of at least a user context, if not full run of a machine.)

      Of course, the irony is that you can use Flash Professional to make HTML5 content.

    3. Re:Open Standards, Not stupid plugins. by ProzacPatient · · Score: 3, Insightful

      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.

      HTML 5 is ideal but one of my problems with using pure HTML and JavaScript for certain tasks is that implementation can vary wildly and performance even more so. Browser A might implement only a part of the standard, Browser B might implement the entire standard and Browser C has no support and worse is when all of them fully support the standard but Browser A is super slow compared to Browser B and Browser C is basically unusable. I've also seen a few JavaScript intensive websites demand you use only Chrome and I think this is a symptom of these problems.

      As bad as proprietary plugins are at least it'll always have a consistent implementation across browsers and perform, in the case of Flash, equally bad across all the browsers.

      Its not that I don't support the idea of cross-platform and cross-browser HTML5 solutions for tasks previously only accomplished through Flash but I think people often fail to understand it isn't all unicorns and rainbows as its made out to be.

    4. Re:Open Standards, Not stupid plugins. by Actually,+I+do+RTFA · · Score: 2

      Then Adobe for the most part didn't let go easily

      Actually, Adobe offered to opensource ActionScript (Flash's language) to be adopted as the update to JavaScript, but some stupid argument about... XML parsing(?) lead to some holy war where the ECMA-scripts parted. Which is too bad. Because ActionScript supports object oriented code.

      --
      Your ad here. Ask me how!
    5. Re:Open Standards, Not stupid plugins. by Lennie · · Score: 3, Insightful

      It also works the other way around. If people don't use the browser features, browser manufactures won't work on improving them.

      --
      New things are always on the horizon
    6. Re:Open Standards, Not stupid plugins. by Demonoid-Penguin · · Score: 2

      HTML 5 is ideal but one of my problems with using pure HTML and JavaScript for certain tasks is that implementation can vary wildly and performance even more so. Browser A might implement only a part of the standard, Browser B might implement the entire standard and Browser C has no support and worse is when all of them fully support the standard but Browser A is super slow compared to Browser B and Browser C is basically unusable.

      I guess that's the price you pay for deciding to ride the bleeding edge. When HTML5 reaches the Recommendation status perhaps the browser developers will concentrate on supporting it (the standard) rather than speculating on which of their proposed implementations will give "the bigger market share"/"scratch their biggest itch". Until then there will continue to be a lot dog-waving by the tails.
      Oh wait... HTML 4 was a different dog, same leg action - but good developers worked with the differences.

      Bleeding edge has a great view, but not everyone enjoys it e.g. nothing more annoying than listening to butthurt little boys that insist on riding bikes without seats.

  2. Oh happy day by Capt.DrumkenBum · · Score: 2, Funny

    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?
  3. Re:Native Targets? by Improv · · Score: 3, Insightful

    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.
  4. Re:Native Targets? by Improv · · Score: 2

    (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.
  5. QML or HTML5 by scorp1us · · Score: 2

    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.
  6. To Clarify by lars_doucet · · Score: 5, Informative

    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.

    1. Re:To Clarify by richy+freeway · · Score: 5, Funny

      Can someone mod this guy down please? He's clouding the discussion with facts.

    2. Re:To Clarify by lars_doucet · · Score: 3, Informative

      Again, you clearly did not read the article. For people who hate the Flash API, there is lime: https://github.com/openfl/lime

    3. Re:To Clarify by theshowmecanuck · · Score: 2

      OK, so they rely on a spin off project on it's own, and the rest of the world goes on with HTML5 which will continue to be improved and expanded. Which one will provide more use in the long run? So, OpenFL, is a way to avoid learning new technology. Hopefully it doesn't lead people down a one way street.

      --
      -- I ignore anonymous replies to my comments and postings.
  7. Re:Native Targets? by lars_doucet · · Score: 2

    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.

  8. Re:Native Targets? by ynp7 · · Score: 4, Informative

    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.

  9. Re:Native Targets? by lars_doucet · · Score: 2

    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.

  10. Re:Native Targets? by ynp7 · · Score: 3, Interesting

    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.

  11. Re:Native Targets? by Improv · · Score: 2

    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.
  12. More than vector graphics by enos · · Score: 4, Insightful

    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
    1. Re:More than vector graphics by evilviper · · Score: 3, Interesting

      Yes you could do video with native plugins like WMPlayer. Do you remember how terrible that was?

      No, I remember how my 233MHz computer could play full-screen video from a web page, with no tearing and my browser never crashing... Something my 2.4GHz P4 couldn't manage using Flash.

      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
  13. Re:Native Targets? by itsdapead · · Score: 4, Interesting

    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.
  14. Re:Native Targets? by lars_doucet · · Score: 3

    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.

  15. Re:Mobile by lars_doucet · · Score: 2

    OpenFL already runs on tons of mobile devices, natively. Clearly, you did not read the article.

  16. Stage3D? by BenJeremy · · Score: 2

    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.

    1. Re:Stage3D? by grayhaze · · Score: 2

      There are projects underway to create a common API which targets Stage3D, OpenGL and WebGL, but with a bit of work you can do 3D already. Whilst nobody to my knowledge is working on a port of Starling at present, there are great ports of Flixel and FlashPunk already, along with a range of alternative game engines.

  17. Re:Native Targets? by AvitarX · · Score: 3

    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
  18. Re:Native Targets? by ThePhilips · · Score: 5, Informative

    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.
  19. I'm not so sure about it being in death throes yet by mark-t · · Score: 2

    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.

  20. Re:Native Targets? by YoungManKlaus · · Score: 2

    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?

  21. Re:Security? by jc42 · · Score: 2

    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.
  22. Exactly, use OpenFl instead , compiled to JavaScri by raymorris · · Score: 4, Informative

    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.

  23. Re:No Flash, no regrets by Arker · · Score: 2

    You got that reversed. The lunatics are the people whose alarms dont go off at the notion of a browser that just runs whatever program the website hands it.

    --
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-
    Friends don't let friends enable ecmascript.