from the perspective of a software developer and manager

Where We Would Be Without the Flash Platform?

Where We Would Be Without the Flash Platform?

The famed “death of flash” blog postings and speeches have been making their way like wildfire around the interwebs. It doesn’t show any sign of stopping soon. I think a big part of this is due to fear on the developer end of things. Nobody wants their technological livelihood to disappear. Another part is the lack of clarity on Adobe’s end. Anytime they publish something regarding the direction of the platform, it has people asking more questions than it answers. Take a look at the Flex Team blog post here for an example.

Because this technology affects me and my preferred development environment personally, I’d like to touch briefly on it as well. However, I’m not going to make any predictions, but rather try to imagine where we’d be if the flash platform were to disappear.

The first point I’d like to make is that I think the quality of web development would go down across the board. I know, it sounds crazy, good old Steve told us that flash==memory leaks/bad programming/etc. But hear me out. When I began as a web developer, I had a natural inclination toward architecture. I’m a big picture guy. When I understand high level architecture, it helps me make the most minute decisions better because I understand how the pieces fit together. So, I did my research and attempted to learn design patterns and MVC.

At the time, however, I was having trouble reconciling MVC with the page refresh and stateless nature of HTML. I wasn’t around anyone that could provide me a good example of MVC in my development environment (Coldfusion, and for the life of me I couldn’t understand Mach-II). I began experimenting with Coldfusion forms, which was really a subset of Flex 1.5 functionality stuffed into a Coldfusion server. I liked this a little better because I no longer had to refresh the page every time I wanted to change data.

I moved on to a new opportunity using .NET as a backend and Flash MX as a front end. Up until this point, I really hadn’t understood objects that well either. The principles of inheritance made sense in the book examples of car –> Chevy –> Camaro, but I didn’t understand how to apply them in programming terms. However, flash gave me that answer. I could look at an object there on the screen in front of me. Those things I was looking at became the view. I needed to put model and controller code behind it. I think if I went straight to backend development in Java or .NET, it might have taken me many more years to grasp the object concept. Now that I’ve learned about it in the flash environment, other languages make so much more sense. I would submit to you that the flash environment allows an easier understanding of object oriented development than other environment. If flash were to go away completely, a whole new generation of developers that only understand procedural programming would crop up and we’d be taking a huge step backwards. I know, there’s always prototype in javascript, and that works ok, but it’s not the same and it doesn’t get the theory across nearly as well as flash does.

I think the world will understand pretty quickly that Steve’s arguments regarding Flash don’t hold much water. As more developers shift to HTML5/javascript, crap can and will be programmed in any language.

Point #2 is that the web would still be ugly. Flash and Flex pushed our expectations forward in a way that HTML and Javascript never could. Yes, now we can do many of the same things in Javascript as we can in Flash, but it was Flash that pushed the ideas forward. Flash is the de facto standard for animation. Where would we be without HomeStarRunner, and more importantly, StrongBad’s emails? Seriously though, flash has enabled more expressive advertising and storytelling throughout the web experience. I know, I know, you HTML5 people have Canvas and JQuery now, but without Flash, would you know what you wanted it to be, or even that you wanted it?

The web would still be ugly in the area of applications as well. I think in this regard, Flash and Ajax pushed technology forward, but one would never have gotten as far without the other. One of my beefs with the user experience when I first started development was always having to refresh the page and redraw everything, just to change a little bit of data. Flash and later Flex enabled huge breakthroughs in UI development. We could now have designers and developers working together to create awesome user experiences, in the enterprise and for consumers, with no page refreshes to slow things down.

Web video. Would we even have a Youtube or Hulu without Flash? Flash was the first platform to enable easy development of video players coupled with the server technologies to truly protect your content.

Point #3 is that Flash has saved developers and project stakeholders a ton of money and time. By being the first truly cross-browser platform available, Flash provided us the opportunity to write once and run everywhere. Kudos to the Flash Player development team for all the hard work they did in that regard. When I was in advertising, I could go to my clients and tell them there was a technology available that would do everything they wanted it to do everywhere they wanted to do it. The HTML/javascript people would have to degrade the experience, and budget twice as much time just to get their code to run on every browser. This allowed Flash devs to concentrate on the experience, compared to basic functionality for HTML.

My last paragraph is for the HTML5/Javascript zealots (you know who you are). Flash has pushed web development forward in a way no other technology has. Those creating the standards for HTML5 would have no idea what they wanted HTML5 to be without Flash first blazing the trail. It’s an order of operations thing. Flash does something cool –> other technologies want it. Try to think back to the last time a standards body did something innovative. For those who want to dance on Flash’s grave, it’s almost as if you’re a lumberjack cutting off the branch you are standing on. While it’s great that you are happy with your development platform, but anytime we lose a competing technology, it’s bad for everyone.