With the release of the iPad sans Flash, and last week's "Thoughts on Flash" by Steve Jobs, there has been a barrage of articles on this subject coming from all angles. You have the open standards camp, the Apple fandom, the Flash developers, and the business evangelists. What makes this entire issue so interesting is the multitude of layers it touches upon in the industry, everything from technical minutiae to overall business ideologies. In my own opinion, I was a little dissapointed by the explanation from Jobs because it has a lot of holes in it, and I found many other articles that offered better explanations and insights into the entire "feud." Basically, what it comes down to is two different arguments with many facets to them that are closely tied together:
1. Apple vs. The Third Party (not just Adobe) 2. HTML5 vs. Flash
In diving into these arguments my goal is to discuss the question that resounds the loudest in the industry: Why is this important and what does this mean for what we offer clients?
1. Apple vs. The Third Party
It has somewhat surprised me how much Flash is at the forefront of this issue when there are many other platforms that are affected by Apple's decision to not allow third parties to publish to its platform. It's one thing to not allow the actual Flash Player on Apple's mobile devices; it's another thing to not allow the Flash IDE to publish to a suitable language. In this scenario, you can subsitute Flash with a multitude of other platforms, like Java, Processing, Titanium, and Unity 3D, among others (basically any platform or language that allows one to create an app and publish across multiple platforms).
I think the imperfections of Flash are not even an issue because you can pretty much evenly weigh those imperfections with equal issues in publishing sites with HTML5/JS as well as Objective-C. You can program an efficient app in many different languages just as much as you can program one that bogs down the OS; Flash merely gets pinpointed because of its wide use on the web and the fact that you have, theoretically, no company to complain to about open standards. In my mind it's a wash, so we are left with the question, "If the actual Flash Player isn't the issue, then why would Apple restrict third parties from publishing to its platform?"
The answer to this isn't simple, and it's easy to see advantages to both sides. Basically, Apple doesn't want to allow third parties to publish to the iPhone or iPad because it wants to separate itself from the mobile competition. A good analogy for this is the video game industry. Three major players are the Xbox, PlayStation, and Wii. There are some titles that you can get for every platform just as there are titles specific to each one. For example, Grand Theft Auto is solely available for PS, but it also has Madden which is available across all the devices. If you transfer this thinking to the mobile industry then you can substitute game titles with apps. The more apps that Apple can get that are specific to its device, the more ground it gains over other devices. You can see this in the new Palm devices that have great interfaces but are lacking in the app department.
On the one side, developers want a way to develop across multiple platforms easily, with whichever programming language they like. They want to be able to create a game, an app, a website, and spread it across as many platforms as possible without having to reprogram everything again in a different language that is more suitable for alternative platforms. They can still have choices, but those choices shouldn't come at the expense of a deployment nightmare. So if I want to make a really nice app, then I am going to want to publish it to iPhones, iPads, and the Android as an app all at once. Apple wants what is offered on their platforms to be unique to other devices. On the other hand, Adobe, a company that specializes in authoring software, wants to provide their customers with a way to publish to as many platforms as possible. This is at the root of the battle, and it was inevitable that this would happen; it's a matter of business, product, and goals that are in an inherent conflict. It's somewhat understandable why the Flash Player and other third-party plug-ins wouldn't be allowed to publish to the app store, but it's a different story to not allow the mobile browser to see Flash sites. This is like buying a car that can only drive on highways and not take the scenic back roads.
Allowing Flash on the iPhone and iPad would allow a platform that can develop across all mobile platforms, and thus turn Apple's devices into more of a commodity versus making them more unique devices. This is why Google is welcoming Flash, to stand apart from the iPhone.
The mobile web is still in its infancy, and predictions of where this will take the web are purely that . . . predictions. To say "Flash is Dead" is premature, but the discussion is important because web developers need to know what to offer to clients based on their needs. Is getting an app on the iPad necessary to a business's development?
2. HTML5 vs. Flash
With the latest upgrade from HTML4 to HTML5, open web standards came closer to leveling the playing field with Flash and other third-party plug-ins. To be able to do the same things as Flash without a plug-in threatens the future of Flash. However, when you read articles that talk about HTML5 being the future, take it literally. It's the future, it's not the present. The main reason for this is not that you can't do everything that Flash can do, it's that you can't do what Flash can do yet. So when people talk about the future you have to ask, when will this future come? Let's break this down.
The Future of HTML5
Open Standards vs. Proprietary
The W3C states that HTML5 won't be completely finished until 2022. This is over 10 years from now. Aspects of HTML5 are available now, some very powerful aspects, but then you still have the cross browser problem which might not catch up to speed for 5-10 years as well,a nd if things continue down a similar path you will just have new cross-browser problems popping up along the way. This is where open standards are failing and plug-ins are succeeding. With Adobe, you have a company that needs to make money to survive. It must keep providing its customers with frequent upgrades and features to maintain its relevancy. There is money driving its product. This is not the case in open standards. The last upgrade of HTML4 was over a decade ago; Flash has upgraded almost every year in its 10+ year history. So when HTML5 is touted as a "Flash Killer" or the "Future of the Web," you must recognize that this happens if everything else stays stagnant. In the decade since the last HTML upgrade, we have seen countless improvements to Flash, a tool that was used to fill in where HTML and JS couldn't. But you don't hear anyone arguing about how slow the Open Web is to adapt.
Where do Flash and other third-party plug-ins now stand?
As a Flash Developer, amongst other things, it's easy for me to defend Flash. I have been using it in conjunction with HTML, JS, and other server-side languages for over a decade now. I have seen some amazing websites come from it and I really think HTML5 wouldn't have any standards to set itself to if it wasn't for Flash. It has shown the world how the web can be an immersive interactive experience. That being said, if there is something available that brings me out of the plug-in and provides the same capabilities and performance then it's a no-brainer to move to it. On a side note, if you are a Flash Developer, then moving completely to HTML5 and JS is a treat and a nearly seamless transition. You will find it to be a bit more tedious, but you will be able to do everything you can do in Flash now, in the future.
We are far away from saying "Flash is dead" for two reasons.
Anything that is provided in upgrades of HTML and JS is immediately available to Flash. If Adobe is going to survive, it is going to evolve Flash; maybe it will even become an IDE for HTML5. So you would still be able to program in AS3 and compile it directly to a browser.
The technical capabilities are not what will hold Flash back, it's the reputation and the image that might bring it down. There are many points that are brought up in relation to this:
1. Annoying Intros, Clunky Interfaces, Slow Performance
In Flash's infancy you saw many sites that had annoying intros, clunky interfaces, and incredibly slow performance. You still even see it to this day. This isn't a Flash problem, but design and programming issues that could happen on any platform. It is a result of Flash being so widely used. For every three poorly programmed and designed Flash websites you will have one that will blow you away.
2. Flash is timeline based… (yes this is still prominent)
Flash has a reputation of being a strictly animation platform. It surprised me how many people, even in the industry, think of Flash as being purely timeline based. I barely even use the actual Flash IDE anymore now that there are more robust editing tools out there like Flash Builder. Flash/AS3 is a robust programming environment.
3. Banner Ads
Flash's bad reputation also lies in banner ads. This isn't a problem with Flash, it's a problem with banner ads. I also haven't wrapped my head around how banner ads will be delivered with an interpreted language like JS. Being able to deliver one file to an ad network is important.
4. Security Issues
What on the web doesn't have security issues? With HTML5 you have more room for error in leaving data transfers open to the public. Because it allows sites to store information more in the browser, you have more variables involved when it comes to protecting information. Since the Flash Player is, for the most part, closed, I feel that a developer making mistakes is less likely to make those big security mistakes. You might have security issues with the actual flashplayer itself that need to be fixed, but then there is a larger security issue of unsecure programming.
But this won't stop the naysayers, and once you have clients begin stating that they don't want Flash, then you will see the demise of it. But it's premature to completely substitute Flash with HTML5/JS, although it seems that Steve Jobs wants to force the market in a direction instead of letting the market speak for itself. When it comes to immersive, experiential websites and web-games, Flash is still king, and until you start seeing these experiences done in HTML5/JS with a 99% browser saturation, then HTML5 will still be the future and not the present.
if you are not a Flash developer and have never used Flash, then please read more into all these articles about how Flash is dead. There are a lot of misconceptions and bad arguments being thrown around that are putting the wrong impression out there. There are also advantages and disadvantages to open standards, it's not the holy grail. There are also advantages to a compiled vs. and interpreted language. If you are a Flash developer then look into all these new tools you have at your disposal, and get on the horn for getting all browsers up to speed, because it will benefit everyone. Experiment with languages outside of Flash; there is a whole world of programming out there that doesn't start with F and end with H. Realize when Flash is a smart decision and when it shouldn't be used. If you are Adobe, then give your customers better tools to utilize everything HTML5 has to offer and find new ways to keep Flash relevant. Don't stop working on compiling Flash to HTML5/JS. If you are Apple and you will absolutely not have Flash on your devices, then at least be more transparent with your developer community on what it is that you will allow; don't keep some of the most powerful features of your OS from developers, and ease up on the separatist idealogy. And consider this: why would I want to purchase a $500 device that can't show me everything on the web? I wouldn't buy an iPod if I couldn't listen to folk music. I'd imagine that playing Get The Glass (or many of the games on Kongregate) on an iPad would be a great experience, but we aren't going to see this.