Friday, August 28, 2009

Just a Few More Vacation Thoughts

Wow. I really didn't expect this kind of response. I see that my original Flash rant is up to 29 comments. I'm a little scared to read the ones I haven't read when I finally get back from vacation. I really seem to have pissed off a lot of people. That honestly was never my intention.

To some extent, I regret the "Flash Sucks" part of the discussion. Not because it's necessarily untrue, though: It's my honest opinion of Flash on Mac OS X - it's leaky, crash-prone and, well... sucks. But, I regret it because that statement has detracted from the real discussion that's been going on underneath it all. It seems to me that many Flash proponents are trying to write me off as "just another run-of-the-mill Flash Hater" predicting the demise of Flash "yet again". The same old story, nothing to see here. Move along, move along.

But I'm not a run-of-the-mill Flash hater, and I'm not predicting Flash's demise because I hate it. I'm not even predicting Flash's total demise, just the demise of Flash cum general purpose web-development tool. And my predictions are the result of a fairly thorough knowledge of the history of web development and a reasonably educated guess about where things are likely going next.

And you know what? Flash is the completely wrong approach for a general-purpose web development tool. Flash's current approach is anathema to what has become fairly widely recognized as good web development practices. The fact that Flash is fun or easy, or that the tools are great doesn't change that it is fundamentally flawed approach to doing web development.

And, believe it or not, I'm going on about this for the opposite motivation from hate. I'm dwelling on this because I don't want the many excellent Flash and Flex developers I've met to get screwed if the walls do come crumbling down. I can tell you stories about programmers I've known who spent a career working in PL360 or COBOL, only to find themselves without a job and with a skillset that was completely obsolete and not marketable. Take a look at this list and tell me how many languages you recognize. Languages go obsolete all the time. Some of the ones that have gone obsolete were bigger stars in their day than Flash is now.

Right now, we have fifteen years of web development evolution to look back upon. It's now a fairly mature space, and we are at a point where we have a pretty good idea of what things have worked and are sustainable and scaleable. We also have a pretty good idea of what things have not worked. And though you might disagree with me, when I look at the web technologies that have survived, the Flash plug-in is an anomaly. If the web is headed where it looks like it's headed, it's hard for me to see how Flash can continue to remain as relevant as it has up until now. That's not hate, that's just reality.

You can do so much more with HTML and Javascript today than you could a decade ago, or even a couple of years ago. With the exception of certain types of online games, the vast majority of what Flash is used for on the web can already be done in HTML and Javascript without waiting for HTML5 (combined, of course, with server-side development of some sort). The situations where Flash is truly necessary are dwindling, and Flash's uptake in the area of greatest growth (the mobile web) has been lackluster at best. "Dismal" is probably a better adjective than "lackluster" to describe the mobile Flash uptake.

There might be a silver lining here, but I don't see it. Adobe's done too little too late when it comes to opening up Flash, and has done too little too late in the mobile realm period. Adobe can send out press releases about "billions of Flash-enabled mobile devices" till the cows come home, but it's simply not reality. It's just marketing types playing with semantics. Companies only mince words when they have something to hide. To a consumer, a Flash-enabled mobile device is one that can access most any Flash content that's anywhere on the web just as if they were at home on their computer. There aren't billions of devices that can do that. There aren't any devices that can do that yet.

And think of this. If Flash somehow maintains or increases its prevalence as a web development tool going forward, I'll have been wrong in a couple of blog postings on the Internet. If I'm right, an awful lot of people are going to be finding their skills less and less relevant and less and less marketable.

I've been wrong before. I can live with being wrong. But what if it turns out I am right? What if it turns out that after 26 years of being online1 and keeping abreast of the technology involved in online communications I actually know something about it? What if these rants aren't the result of hatred but are rather just an honest assessment of Flash's current place in a complex and ever-changing technology landscape? If you're a Flash developer, especially if Flash development is your only marketable software development skill, well… just make sure you can live with me being right. I'll continue to be able to put food on the table if I'm wrong about this. Please make sure you can say the same thing.

Just as an aside: I left my last full-time gig (at PeopleSoft) in 2002. I'm not sure if you remember, but 2002 was a pretty crappy economy. Not as bad as today overall, but it was a pretty rough time for programmers and software consultants because the dot com boom and subsequent bust had created a glut of tech workers. I started my first project as an independent consultant only four days after walking out the doors at PeopleSoft (two of which were a weekend). After that project (knock on wood) I've found steady work with very little unplanned downtime. The work hasn't always been in my preferred language or using my preferred tools, but I've always found work quickly because my most marketable skill is that I have a varied toolbox, an understanding of what tools exist outside of my toolbox, and a willingness to expand my toolbox if that's what I need to do to get a job done right. Languages and environments come and go. Don't tie your fortunes too tightly to something that can become obsolete unless you want to risk becoming obsolete yourself.


1 - I got my first modem in 1983, a hand-me-down acoustically coupled modem from a friend's dad who was a college professor. It was replaced less than a year later with a Hayes-compatible 1200 baud model. I had my first internet e-mail address in 1986 (a fidonet address through a BBS I called using PCPursuit), and I got first true Internet account in 1988 (a Unix shell account through my university that I accessed using Kemit). I had my first PPP internet account in 1992: a metered account through a company called holonet.



10 comments:

K. A. Barber said...

If you are feeding yourself and your family on development then you are better off being ready to work on whatever type of development project is going to keep you eating. Live this way while you are planning an escape to your "incubated" language/framework of choice if you must but don't let yourself become outdated.

I am working on an MFC project right now! YES MFC! It pays the bills and keeps me employed.

Staying the flexible learning mindset keeps me current and willing to take to new tech when it comes out. I have my platform preferences just like everyone else but I came to the realization a long time ago that I will not always get to do the type of development I want to. Secretly I think Its actually a good thing for me.

On a side note this is a great dialog on flash you've got going on. Lots of people are hearing things they don't want to hear. Lots of people are hearing things they need to hear. I love flash but not enough to live and die by it.

Dethe Elza said...

I'm on vacation too, so I'll make this quick, but I did want to chime in since this is a point I've been trying to make to people too. My main argument to add is that Flash is firmly in the sights of Apple, Mozilla, Microsoft, and Sun (Oracle). Have I missed anyone? Now there's a chance that all of these heavy players will expend themselves on squabbling and infighting, but they really seem to be working together to build a best-of-breed open web through HTML5 (and yes, squabbling over RIA solutions that will fail to replace Flash).

I wouldn't want to bet money, especially not my livelihood against a consortium like that.

Matthew Fabb said...

Only problem is that your argument ignores all the work Adobe has been doing lately to get almost all the mobile companies working to optimize Flash Player code as part of the Open Screen Project. If you were knowledgeable in Adobe's mobile strategy and found holes in it then you would have more of a point.

However, you argue about how the Palm Pre might eventually include Flash at some point, when the Flash beta is scheduled to be release for Palm's WebOS this October. This October beta will be the full Flash Player 10 and will also include Android, Symbian, Windows Mobile. Then all of these smart phones should start shipping mobile Flash Player 10 in early 2010. RIM is strongly rumoured to be joining the group soon, with new Blackberries coming out next summer with this optimized version of Flash.

If Adobe's plan works out, the majority of smartphones released this time next year will all include Flash Player 10, all of which have been optimized at the hardware and software level to work on these devices. If you can point out the flaw in that strategy (don't be afraid to read up some more about all of this first), I'll definitely be interested in reading about that.

However, while I don't think you are a Flash hater, your posts comes across like the run-of-the-mill "Flash-is-going-to-die" article, from someone who isn't aware of what Adobe is doing or the latest of Flash development. You mention how "situations where Flash is truly necessary are dwindling", yet as a Flash developer myself it seems the exact opposite. More companies want more complex websites that are more applications than just brochures sites, and Flash with the Flex framework is a lot better to handle this than HTML/JavaScript, where an extra 30% to 40% resources will be spent to getting the web application working across browsers. While HTML5 will narrow the feature gap a bit, but it's still got a long way to go before it's ready for mainstream use on all browsers. Meanwhile Adobe hasn't been exactly standing still keep introducing new features, which in turn clients want to use. Just a quick example the new Flash Player 10 text engine, with the Text Layout Framework brings typography on the web to the level previously only seen in desktop publishing applications.

From your previous post: "Flash has a lot of baggage from a different era and I'm not sure Adobe really understands what must be done for Flash to remain viable. Maybe they do, but are you willing to bet your income on it?"

Yes, I'm willing to bet my income on it. While I've done HTML/CSS/JavaScript and backend programming in various languages quite some time ago, for the page several years, I've become very invested in Flash and Flex and have no problems or worries about it. In the worst case senerio where Flash did get completely whipped out, it would take many years for this to happen and myself or any other Flash developers would have plenty of time to switch to whatever took it's place. Just as many years ago, a lot of Shockwave developers moved over to Flash as jobs for Director and Shockwave dried up (yet even it is not completely dead yet).

I realize in this and previous posts you are concerned with developers ending up in a dead end, but a lot of skills in front-end web development of Flash will likely be very transferable to whatever takes it's place, if Flash died.

As someone who pays attention to Flash employment, it seems now that there's a crazy the amount of Flash jobs out there and that the demand for Flash developers still greatly outstrips the supply of Flash developers. I'm constantly getting e-mails and phone calls from recruiters for Flash and Flex jobs, despite the bad economy of late. I imagine part of this is just general growth of the web as a whole, but in the meantime salaries are up and recruiting agencies are sponsoring free food at Flash/Flex user groups.

Keith Peters said...

I think you'll find that most serious Flash developers are pretty well versed in multiple languages. Actually, there are two major camps when it comes to Flashers - those who started out with Flash a while back, drawn in by its design capabilities and gradually learned programming over the years as the language developed, and those who have come into it from other languages.

Those of us who have been at it for a while have seen massive changes to the language and environment. In fact, it's a fair bet that few other platforms have seen as much growth and change as Flash's ActionScript has in the last 5-10 years. We're pretty adaptable. And most of us have picked up several other languages along the way - PHP, JavaScript, Java, Python, C#, Objective-C probably the most common. Not that most of us are complete professionals in any of those, but it's not like if Flash were to disappear tomorrow we'd all become janitors. Myself, 80-90% of the code I worked on this year was Objective-C and Java.

And as for the other camp, I'd say the majority of Flex developers were already successful Java programmers before being lured in or coerced into doing Flex. I doubt they'd be out of work for long.

Again, don't take this as a hate/attack response. Just a response with some data from this side.

~~~~~~ said...

Personally, i think Flash/Flex for the public web is not the right technology for page/document centric web sites. HTML and some AJAX is more appropriate in that situation.
However, for building true web based applications (which are often behind the firewall) Flex/Flash wins hands down.
Flex/Flash are not going anywhere anytime soon. In fact the opposite is true. Many companies that do build B2B applications are adopting Flex for this purpose. Again as we all know, use the right tool for the job.

Jeff LaMarche said...

to K.A. Barber

Unfortunately, sometimes you don't get to go back to your incubated language. Cobol developers are the best examples of that. While there are niche Cobol jobs in banks and government and other places to this day, there aren't many new Cobol positions getting created, and most developers "incubated" to Cobol never got to go back to it. Many Cobol programmers loved Cobol in the way that Flash developers love Flash.

Not that that will necessarily happen with Flash - I don't think it will die except as a web development tool. I think it will still be around for multimedia presentations, kiosks, and to some extent, for cross-platform application development.

to Matthew:

I'm well aware of Adobe's work with consortiums. As Dethe points out, when it comes to consortiums, Adobe's outgunned. Getting promises of support doesn't mean much; I'm also aware that the actual concrete results of that consortium have been minimal so far once you remove Adobe's marketing spin from the equation.

Show me a critical mass of shipping phones with great Flash implementations or go home, because we already have many, many phones with decent browsers, meaning Flash is going to be in constant catch-up mode with web standards. There are more WebKit-based phones (that support the proposed HTML5 and several extensions enabling animation) then there are Flash phones.

No matter what Adobe does in terms of politics, marketing, or lobbying, as long as they are relying on platform-specific, heavy proprietary clients, their approached is archaic and flawed, and no amount of marketing or adding features is going to change that simple fact.

The Palm Pre may be shipping with Flash in the future (I've been around technology long enough not to rely much on announcements about the future), but it's going to be just awful unless Palm makes some heavy changes in the meantime. Nothing is currently hardware accelerated on the Pre because they shipped the phone before the driver for their graphics chip was written. Even once the driver is written, the chip in the Pre (a less powerful version of the chip in the iPhone) is not likely to be able to handle any Flash programs written in the last five years or so.

I hope "state of the art typography" isn't the best example you can come up with for what Flash can do that can't be done without it. Yes, typography is problematic on the web because of the licensing issues, but it should be pointed out that it's an issue that Adobe has contributed to creating and has actively worked against finding a resolution to.

Even if Flash were available on most phones now, and it didn't suck, you'd still have the issue that Flash programs were written for the desktop paradigm, most were written to expect a certain screen size, and most were written to expect a keyboard and mouse. None support multi-touch, and few rely on clicking alone, so touch-screen phones aren't going to be able to work well with most Flash programs already in existence, which sort of eliminates one of Flash's only competitive advantages.

I'm glad you're so confident in Adobe's abilities and their benevolence to their developers. You'll have to forgive me for keeping my opinion unchanged on the matter. I know a fair bit about Adobe's efforts, but also about the underlying technology of both the phones and the software and the current power per watt limitations of the hardware. But, by all means, keep drinking the kool-aid.

to: ~~~~~~

I haven't, as far as I know, complained about such applications. For things like Rosetta Stone, which is a cross-paltform application written in Flex, for example, I have no issues. I am talking about the use of Flash as a general-purpose web-development tool (which implies page-based, since that's the atomic unit of web development). I'm talking about the use of Flash to do simple things like navigation bars.

Although I have no desire to develop in Flex/Flash, I have no problem with it outside of its use as a substitute for developing a real website.

Jeff

Jeff LaMarche said...

Keith:

I know that many Flash and Flex developers have a diverse toolkit. But my personal experience is that there are more hammer developers in the Flash/Flex world (probably owing to the fact that some come from a non-developer background such as animation or design) as in any space other than possibly the VB space (probably more now that so many VB devs have picked up C#).

I have no statistics, but my experience hasn't been that "most" flex developers came from a Java, though those certainly exist.

And please don't put words in my mouth. I don't think you'll all become janitors. But I do think some of you will have a hard adjustment as the demand for Flash lessens and creates a glut of people with that skill. As I've said, Flash isn't going to die quickly or soon, but what will happen is the rates will drop, slowly at first, and then faster as developers get desperate and start to accept lower and lower rates to get work. As demand drops and supply doesn't, you will find people willing to work for less. You'll see hourly rates go to 60% of what they used to be or less, and at the same time (for reasons I don't know), clients will start being more demanding.

What's happening with Flash cum web dev tool is nothing new. We've been through it before with many languages. I've known skilled developers that ended up taking non-programming jobs from insurance agent to car sales when demand for what they did dried up and they weren't adequately prepared for it.

If you've got other programming skills, then you're not really the kind of developer I'm all that concerned about. But hammer developers do exist, and the Flash/Flex community has more than its fair share of them.

Jeff

~~~~~~ said...

Jeff, I realise you are not complaining about it(using Flex/Flash behind the firewall), but you stated that it was going to die or become obsolete and devs who use it may get screwed or something to that effect.

I was agreeing with you on your main point about the inappropriate use of Flex/Flash on the open web while also pointing out there is a big and growing market for Flash and Flex devs generally.

sarah said...

Here is a great chance to drive a large number of visitors to your blogs and websites for free.

Submit your websites, blogs, videos to http://www.zillionsb.com and get 1000s of targeted visitors everyday for free. It also helps your websites/blogs gain valuable backlinks.

Let the other bloggers cast their votes to push your posts up for a greater visibility. Enjoy a free, huge traffic to your sites.

Thanks

Sara
http://www.zillionsb.com

Natarajaprabhu said...

Hi friends,
Let me know the job openings in chennai , please forward the same.