Flash, Java, Silverlight - Why The Best Technology Will Win

There are now three significant platforms for rich internet application (RIA) development: Flash, from Adobe; Java, from Sun Microsystems; and now the brand new Silverlight (WPF/E) from Microsoft (I’m leaving AJAX out of this discussion). Currently, there’s a big debate around the question - which of these technologies will win out? In battles for technology dominance, it’s often the case that the best technology isn’t the one that ends up getting adopted. The classic example being Betamax vs VHS for home video recording and playback: Betamax was the superior format, but it completely lost out to VHS. However, in the case of Flash, Java and Silverlight, I think it will be the best technology that wins. Here’s why…

There’s one simple reason why the best technology will win here: and that’s the fact that it’s pretty easy, in principle, for the all three technologies: Flash, Java and Silverlight to become widely distributed. In other words, it is easy and quick for the end users of Flash, Java and Silverlight to install any of these technologies on their computers; and because the end users don’t have to make any investment in these platform technologies, they are free to benefit from all of them. All of which means that the battle for domination won’t have to be fought on distribution; rather, it can be fought on quality of technology.

This is great for the consumer, because it means that if Adobe, Sun and Microsoft want to stay in the fight, they must continue to invest in their technologies to stay competitive. This begs the question - what does the best technology mean? “Best” means having: the most compelling feature sets; the most productive developer tools; and lowest barriers to adoption for developers.

Now, having just dismissed the distribution issue, it crops up again right away because it is, of course, a part of the “feature set” of these platforms. It’s what’s known as a hygiene factor; hygiene factors being the basic things you have to get right, if you want to succeed.

Now, both Flash and Java have the distribution hygiene factor well under control. Today, there are four significant desktop operating systems as far as software developers are concerned: Microsoft Windows; Mac OS X; Linux; and Solaris. Adobe and Sun have ensured that both Flash and Java support all four of these operating systems. Microsoft, however, just couldn’t help shooting itself in the foot with Silverlight. You see, while Microsoft says it cares about what developers want, it’s actions show that it doesn’t. Microsoft people seem unable to see past their own platform dominance to listen to what developers are telling them. Microsofties whine about it being important to put resources in the right places… which means it makes sense to focus most on Windows because that’s where the market share is. Yawn. What complete nonsense… There is no software company on the planet that wastes as much money on poorly conceived R&D as Microsoft. So, please… let’s not pretend this is a resourcing issue.

Here’s the deal - developers want to write RIAs that work on all significant operating systems. That’s it. Simple. It’s not hard to understand. Oh, and they already have a choice of technologies that let them do exactly that: Flash and Java. Microsoft has, however, made Silverlight work only with Windows and Mac OS X. They seem to really believe that developers will be impressed at how cross platform Silverlight is! Not a chance, I’m afraid. So, Silverlight gets the simplest hygiene factor, distribution, wrong. Thus, no matter what features it has, right now, it can’t qualify as the “best technology”, and so, I would assert, it has a close-to-zero chance of winning this fight.

If Microsoft wants to fix this, they can get back in the game anytime; but I have to wonder if anyone will ever believe Microsoft is committed to building cross-platform technologies. For now though, they are probably out of the game, even before they’ve really started playing.

Which leaves us with Flash and Java. As of today, compared to Java, Flash has far superior support for Internet distribution of standard video formats. So, if your rich internet application uses standard video codecs, there’s only one technology to choose: Flash. No competition.

For pretty much all other applications, however, the battle is actually rather more closely joined than many think: each platform has its strengths and weaknesses; and as yet, there is no clear long-term winner. Both Adobe and Sun are continuing to invest in their technology platforms, and as a result, both Flash and Java are becoming increasingly compelling for developing RIAs. It’s going to be pretty interesting to watch Flash and Java over the next couple of years - both Sun and Adobe seem up for the fight…

Comments

  1. Craig wrote:

    This is a outstanding article. The insight on why Microsoft will lose is dead center right but the point actually carries into why proprietary technologies (from a Developer perspective) will be a “permanent” drag on Flash market share battles. The open technology community continues to take over the whole freaking world, solar system, galaxy and IT universe. The proprietary drag of the Adobe Flash licensing business model is actually the exact same root problem that will lead to java winning the long long war - shortly after Microsoft Windows is over taken by Linux. Open technology is a fatal virus to the proprietary business model - and it is an inescapable foregone conclusion because the consumer wins. In other words, market forces are digging a giant graveyard for all closed proprietary companies that don’t change their business models until it is too late…

    Craig.

  2. James Ward wrote:

    “it’s pretty easy, in principle, for the all three technologies: Flash, Java and Silverlight to become widely distributed.”

    Hi Simon. Thanks for writing up your thoughts. Can you explain a bit more about why you feel that all of those technologies can easily become widely distributed? It seems like a chicken and egg problem. You need lots of people building stuff for the platform for lots of people to download the platform, but you also need lots of people with the platform for lots of people to build stuff on the platform.

    Also when you refer to Java do you think applets will have a renaissance? Or are you just talking about Desktop applications?

    -James
    (Adobe)

  3. simon wrote:

    James,

    Re: distribution. I was meaning that it’s technically easy - “In other words, it is easy and quick for the end users of Flash, Java and Silverlight to install any of these technologies on their computers”. And they’re all free to the end users.

    Of course, Flash and Java are already widely distributed, which gives these a head start over Silverlight. However, the point is - if a developer wanted to build some software on Silverlight, which isn’t yet widely distributed, it’s not placing a big burden on the end user to do so, because it’s so easy to install it.

    Re: “Also when you refer to Java do you think applets will have a renaissance? Or are you just talking about Desktop applications?”

    I was talking mainly about an increase in the number of Java Desktop RIAs.
    We may see the beginnings of a renaissance in Java applets as developers adopt Java SE 6 (there are some improvements to applets in 6). However, I suspect any major comeback will depend on what happens with applets in Java SE 7.

  4. Mark Ashton wrote:

    I agree that MSFT probably needs to make Silverlight available for Linux/Unix but I question whether your definition of “significant desktop operating systems.” I don’t know the numbers but my guess is that Linux is still a miniscule part of the overall desktop OS market. Solaris? A tiny part of miniscule…

    You can certainly argue that the numbers don’t really matter because the people who are using Linux are influential beyond their numbers. That’s debatable.

    You didn’t really address a key part of your premise which is that things like tools support will have a big impact on the success of any of these platforms. This is where I think MSFT will excel. They will make it super easy for developers to build Silverlight apps. They’ll make it super easy for designers to build Silverlight experiences. They’ll probably make it easy for regular end-users to create these things with free tools. Adobe has huge strengths among designers…no question. But MSFT has great strengths with developers and are gearing up to compete more with designers. Don’t write them off.

    BTW, my money is that there will be an announcement that they’ll support Linux fairly soon. It seems like a no brainer from a PR standpoint.

  5. simon wrote:

    Mark - yes, the market share stats clearly show that Microsoft has massive dominance on the desktop.

    When I say “significant”, I mean significant in terms of OS platforms that developers might choose to develop on. Both Flash and Java are supported on all the four platforms I mentioned: Windows, Mac OS X, Linux and Solaris.

    I agree with you that Microsoft can make great developer tools. We use them for C#.NET developlment. They’re fabulous. So, let’s assume MS will create great developer tools and resources for Silverlight.

    The problem is: there are great developer tools for Flash and Java too… tools that work on multiple OS platforms, for developing applications that run on multiple OS platforms.

    I really don’t think Microsoft has a particularly great strategy here: poor cross-platform support for the runtime; and even worse (i.e. no) cross-platform support for the developer tools. I think that will be pretty damaging for Silverlight as a platform.

    I agree with you that MS might announce Silverlight on Linux soon. Just the runtime though, not the developer tools.

  6. snake wrote:

    The best would be that flash and java come together. Imagine how it would be when adobe and sun co-operate and bring java’s security, multi-threading and other features with the flash codec.

  7. Unbiased Developer wrote:

    This article is complete BS. Get your facts straight.

    Check out silverlight.net and this article

    http://timheuer.com/blog/archive/2008/01/15/silverlight-expression-encoder-templates-in-ruby-on-rails.aspx

    Silverlight right now is the BEST technology. I am not even going to waste my time writing a long essay on why, since you are obviously never going to side with the “evil” microsoft.

    For the rest of you reading this check out http://silverlight.net and Scott Gu’s blog at
    http://weblogs.asp.net/scottgu

    to learn more about silverlight

    . . . and Solaris as a platform that has any bearing on anything outside of academic labs. . . . . . thats a laugh. 1 in like 100 million developers will give a woot about solaris and 1 in 100 billion end users.

  8. Unbiased Developer wrote:

    Oh here are some links regarding Silverlight and Linux

    http://tirania.org/blog/archive/2007/Sep-05.html

    http://weblogs.asp.net/scottgu/archive/2007/09/04/silverlight-1-0-released-and-silverlight-for-linux-announced.aspx

  9. simon wrote:

    Thank you for making such intelligent comments, Unbiased Developer. You clearly have a quite brilliant mind. Congratulations!

  10. Unbiased Developer wrote:

    Thanks, for the complement. Personally I would have been offended by my post and made some sarcastic comment.

    Seriously though sarcasim aside, when I look at the three technologies discussed here it is my opinion that Silverlight will become the dominant platform for RIAs.

    The power and productivty offered to both developers and designers is in my opinion far beyond its competitors. XAML is extremely powerfull, especially when used with tools like Expression Blend, and the power the developer has through either js or .NET managed languages is incredible.

    While flash has always had weak developer support and java is lacking in designer support.

    I think that over the next two years Silverlight’s marketshare will grow and eventually surpass java and flash.

    So my vote is Silverlight, at least untill the next great thing.

  11. simon wrote:

    I agree that Microsoft makes great tools… tools that make people very productive. And Silverlight is a pretty great technology too (but then so are Flash and Java). I really have nothing against Microsoft - my companies use Microsoft tools and technologies plenty. We write lots of software in C# .NET. We deploy and support many Microsoft technologies.

    However, Microsoft has big credibility issues when it comes to cross-platform stuff. There’s really no getting around that, and I suspect it will be a factor when it comes to getting RIA developer mindshare for Silverlight.

  12. Unbiased Developer wrote:

    You are right in that Microsoft does not have a history of cross-platform commitment, but it appears that at least in the web app department with their AJAX framework and Silverlight they are aware of the importance of compatibility with apple and linux.

    Now if they at some point down the road decide to reverse that thought and stop support of either. . . . . . that would be a HUGE ding to their credibility and would lose a LOT of developer support.

    Microsoft’s recent trend of free tools. . . VS express and SQL Server express, virtual server/pc, etc.. . . . and decent pricing on pro /and team editions, server OS,
    not to mention the HUGE annoucement of the public release of the .NET framework sourcecode (complete with comments and all, and debugable in VS) I think is a direct assault on the “java / open source / flash ” community. When you can get the tools and productivity offered by Microsoft at a much lower total cost than java or flash it makes it very appealing to the IT Head and executives working on the budget.

    I was just looking at some of the prices on Adobe.com and I think if they want to maintain their lead over time they will need to be more competitive with their pricing.

    The IT shop I work in has a Microsoft Java, and mainframe development teams, and the Java team seems to end up spending several times what the Microsoft team does for tools and servers for comparable sized projects. Although I do not know the specifics of what their budget or the cost of specific items.

    If you have in depth knowledge of the financial cost of implementing each of the three technologies, that would be interesting to see. (just software cost, no hardware/labor cost)

  13. simon wrote:

    Not really possible to give cost estimates, because it’s completely dependent on what you want to do.

    In terms of software licensing costs, if you’re talking IBM mainframe, then IBM is going to want to gauge someone for huge amounts of cash at some point. Whether that hits the dev teams or not really depends on the particular business scenario. Also, these days, mainframe projects would typically just be the backend, with clients written for the Browsers, or in C#.NET, in Java, or in Flash. I won’t say anymore about mainframe dev costs.

    As for Microsoft vs Java vs Adobe…

    If people are smart about it, then they can do everything for zero cost with Java technologies (OS, middleware, dev tools etc). And in 2008, the free options are not really compromises compared to the paid options as they were five years ago.

    So, Java would be cheapest. Next along would be Microsoft; nothing at the high-end is free with MS. Adobe is probably the most expensive.

    Of course, Java can be expensive too if people want. People can pay huge amounts of money for middleware and tools… which I guess is why Oracle thought it was worth paying $8.5 billion for BEA today.

    Bottom line then - I’d say: IBM Mainframe > Adobe > Microsoft > Java.

  14. mudd81 wrote:

    Nothing more than 3 paragraph rant on why MS sucks followed by one sentence comparing flash to java. You’re title is misleading. I’d thought I’d be getting a fair and comprehensive analysis of 3 technologies. Instead I got yet another MS rant *yawn* with a sentence to or 2 to say ‘hey, it wasn’t a MS hit piece, I also compared flash to java’
    Here are some alternate titles:
    ‘MS lies again’
    ‘Codecs=Best technology, look elsewhere for why’
    ‘I did zero research on this article and am offering my opinions as fact’

  15. simon wrote:

    Thanks for your contribution, mudd81. Your (rather facile, if you don’t mind me saying so) analysis of this piece is completely wrong, though. The truth is - it seems that Microsoft folks agree with my analysis…

    To quote myself from the above blog, written in April 2007, talking about the need for Microsoft to support more hardware/OS platforms if they wanted Silverlight to be taken seriously by developers, I said, “If Microsoft wants to fix this, they can get back in the game anytime.”

    On Sept 4 2007, Microsoft signed an agreement with Novell to do just that by bringing Silverlight to Linux:

    http://weblogs.asp.net/scottgu/archive/2007/09/04/silverlight-1-0-released-and-silverlight-for-linux-announced.aspx

    Suggesting that I’m somehow “anti-MS” or “anti-Silverlight” is laughable, by the way; I refer you to:

    http://www.psynixis.com/blog/2008/03/05/silverlight-2-and-flash-in-ria-news/

  16. gsh wrote:

    Allowed me to add my point of view. I am .net developer and used to work in Java-based company. When my ex-company want to turn me to java developer. i found the tools is so difficult to use, eclipse, spring and … (well, hibernate is exception)

    With VS Studio, many task can be done easily. like data binding with datagrid. I am talking about VS2003 at that time. While compare to Vs2005, vs2005 is a big lead. Same to VS2008. Everytime microsoft upgrade the platform the is really a huge improvement over the previous.

    Developing in java is not zero cost, you have to take the developer productivity and the salary into account. I bet i can develop the same application from scratch faster than most of the java developers worldwide.

    After i quit my ex-company, i develop the same product with my ex-company, they take 10 developers and we just have 2. but our features is 10x than them and performance is far beyond theirs. Bear in mind they developed the application half a year before i started with new company.

  17. Big Bot wrote:

    Which leaves us with Flash and Java. As of today, compared to Java, Flash has far superior support for Internet distribution of standard video formats. So, if your rich internet application uses standard video codecs, there’s only one technology to choose: Flash. No competition.

    you need java to do anythign within flash tha tis of a warrent-javascripts
    right that makes java better
    video formats heck I ahve been using Amiga video and mpeg and ogg long before flash and flash cant hope to do that. Flash loses the quality of the picture and the sound - plsu flash make si look flat. another thing take any standstill picture and try and make flash rerender it and maek it move
    JAVA can with jsut 5 lines of code soemtimes less.

    SO java wins outright

    HERE ENDTH THE LESSON

Post a Comment

Your email is never published nor shared. Required fields are marked *

*

*