Introduction

HTML5 kills off flash; HTML5 kills off Silverlight; HTML5 makes the dinner and does the ironing too. HTML5 is going to save the (tech) world. I’ve heard it all in the last year or two. Very rarely have I seen a balanced article or a writer that understands the concepts involved. Even worse are the (non technical) tech journalists who write an article on this subject purely to boost their own exposure.

This article attempts to provide a bit of history on the subject. It also attempts to pacify the situation and explain why it doesn’t really matter.

This article focuses more on Silverlight than other technologies but the principles are the same for these too.

Background

FLASH and FLEX

Flash arrived on the scene many, many moons ago to add some pizzazz to the web, largely because HTML was limited and hence the experience was pretty mundane and boring.

Flash is a plug-in that needs to be installed on the CLIENT machine running the browser. Notice the word CLIENT here as this will become important as we go along.

As the years went on, people tried to push Flash to act more like business applications that you would normally build in .NET or similar. ADOBE (Macromedia) realised this and also realised Flash wasn’t up to the job. FLASH was useful for animations and small scale web stuff but not Enterprise level applications.

Most people don’t know ADOBE brought out FLEX for this purpose. FLEX was used as the front end for business applications and charting type stuff. This would be as an alternative to Java server pages (JSP) or ASP.NET.

SILVERLIGHT (SL)

Around about the same time as FLEX was gaining momentum and maturing (around 2006), MICROSOFT was building SL.

SL was released in 2007 but the first mature version arrived in 2008 with SL 2. SL was a direct competitor to not only FLASH but ALSO FLEX. This is an important point that most people don’t get and hence don’t understand why the current chatter about HTML5 vs. FLASH vs. SL is not as important as they think.

HTLM and Javascript (JS)

HTML and JS have been around forever and have always been popular web tools because they are free and cross-browser compatible. It is only in the last couple of years with the hype around HTML5\JS that the HTML5 vs. FLASH vs. SL chatter began.

There was a slight precursor to this which was the browser video playback chatter that everyone and their donkey had an opinion on too.

It is worth noting that HTML5 can only run in a supported browser that is installed on the user’s CLIENT (PC, laptop, tablet, mobile, etc.). Effectively, this is the same thing as a plug-in. If it isn’t on the client, then HTML5 won’t work. FACT!

To date, around 40% of web browsers are nowhere near HTML5 compliant. This seems to be a fact ignored by the current band of HTML5 evangelists.

APPLE

Apple effectively banned plug-ins from its products. This is when this discussion really kicked off. While annoying all of their users by doing this, i.e., they couldn’t run flash websites or video, users still bought their products. There aren’t many companies that can do that.

Back to the Present

This brings us up-to-date and back to the HTML5 vs. FLASH vs. SL argument.

The fact is that you cannot control the web if you need a plug-in to run your product. This has always been the case and anyone who thought otherwise is naïve at best.

‘Oh but Flash was on 95% of clients so that’s not true’, I hear you shout. Yes FLASH was on 95% of clients but which version did you have installed?

In a previous life, I was a FLASH developer and you would always have to wait around 1-2 years before you could develop a Flash website in the latest FLASH version. Why? This is how long it would take for a large enough percentage of web users to install that version of the FLASH runtime on their clients. We always developed in a version behind the latest version, unless we could control what was on the user’s CLIENTS. There was no point developing something, no matter how cool, if only 20% of your target audience are able to view it.

The writing was in the sand, some might say?

Where are we now?

  • FLASH and SL are dead for the web.
  • HTML\JS have won the battle for the web.

That’s it then? No. This is only (less than) half the story. While the next few paragraphs focus on Silverlight, you could quite easily make similar arguments for other technologies that are 'dead'.

The Enterprise

One big factor in this is the Enterprise. An Enterprise is a company or business, usually, but not necessarily, of a large size. An Enterprise will have thousands of employees, working at different locations, sometimes around the world.

Enterprises like Intranets – internal browser based communication systems. Enterprises like browser based applications that run on these Intranets because they are easy to distribute and maintain.

Employees of Enterprises work on clients (PCs, laptops, etc.). These clients are owned and maintained by the Enterprise, i.e., Enterprises can install whatever they want on their client machines – see I told you we’d come back to the client thing – and have the processes in place to do this regularly and en-masse.

The take of up SL, and FLEX to a much lesser degree, within these types of organisation is massive, especially in the banking sector who rely on rich, interactive applications (my version of RIA). Other technologies just do not cut the mustard. This is a FACT!

SL has a great advantage in these types of organisations who are mainly .NET based organisations – there are a lot of JAVA based ones too, who would probably have used FLEX rather than SL: SL sits nicely in their application stack.

These Enterprises build applications in an N-Tier fashion. This would involve a Presentation (UI) layer, service layer, business layer and data layer for example. This means their skill-sets are lean and advanced, having great cost benefits for development, testing, deployment and maintenance.

JS just can’t touch JAVA or .NET in terms of being a mature, deep, high quality programming language. JS has a small set of base classes and can’t stand alone needing to be interpreted by a browser, for example.

SL uses its own subset of the .NET framework so works within a managed environment. People who are used to .NET are already (partly) used to SL.

Enterprises have big sacks of cash, and, usually, money talks.

Windows Phone

Windows phones are gaining great momentum as we speak and SL can be used to build apps for these phones.

This adds weight to SL as a product.

Of course you may, and should, question whether it is appropriate to use HTML5\JS if you are developing the same app for Android and the iPhone.

Who knows, if apps become more complex (likely), then SL might be back in there. The more complexity, the more likely JS is to be problematic as a solution.

XBOX

It is also worth noting that Microsoft may give SL a new lease of life within the Xbox and Kinect environment:http://tinyurl.com/3v3lsyw.One to look out for and again adds more weight to SL as a product.

Summary

What’s the common thread between all this?

  • You can control the client you can control what you develop in. It doesn’t matter what Apple or anyone else say.

As with any development, you should always ask ‘What is the best tool(s) for the job?’

In the Enterprise, this is regularly Silverlight. SL 5 will pack a whole lot of weight compared to SL4. All the gaps and missing functionality will now be there. SL 5 is a mature product and will be good for a couple of years on this release alone. If the answer to the question above is Silverlight, then use Silverlight. If it is something else, use something else. Simple!

Will Microsoft produce a SL6 or SL7? It would be nice, but it doesn’t really matter at this point in time. Things change. Being a good developer means keeping on top of your skills and moving with the times. None of us were Silverlight developers five years ago.

XAML and C# will definitely be skills that will be usable in the Windows 8 environment and your SL apps will run fine there too (http://tinyurl.com/7n8pp62) so stop worrying.

As 37signals say ‘Planning is guessing’. This is so true. Concentrate on the next few months as this is hard enough to do well. What you think will happen in 2 years time probably won’t and something completely different will.

This is the paradox of the world we work in: we love the fact that technology changes so fast, we hate the fact that technology changes so fast.

from:http://www.codeproject.com/Articles/288193/HTML5-vs-FLASH-vs-SILVERLIGHT

HTML5 vs FLASH vs SILVERLIGHT的更多相关文章

  1. librtmp推流使用aac编码音频的html5和flash播放问题

    公司项目中使用rtmp推流,音频编码aac.视频编码H264.windows和android平台都没有发现问题.然而在IOS版本的APP中发现几个问题:1. 推流后flash播放异常2. IOS平台微 ...

  2. html5结合flash实现视频文件在所有主流浏览器兼容播放

    来源:http://blog.csdn.net/freshlover/article/details/7535785/ 由于html5的出现,让网页中的视频.音频有了更加便捷的实现方式.但是video ...

  3. [HTML5和Flash视频播放器]Video.js 学习笔记(一 ) HLS库:videojs-contrib-hls

    DEMO地址:https://github.com/Tinywan/PHP_Experience https://github.com/videojs/videojs-contrib-hls 下载JS ...

  4. JW Player 6.7(网页视频播放器,可在手机中播放),自定义Logo和右键菜单链接,支持MP3、MP4、FLV等格式,支持通过HTML5、FLash播放

    原版下载地址:http://www.jwplayer.com/ JW Player是世界上最流行的网页影音播放器,支持的视频格式主要有:MP4.FLV.F4V等格式,支持的音频格式主要有:MP3.AA ...

  5. HTML5学习笔记简明版(1):HTML5介绍与语法

    HTML5介绍 HTML5是继HTML4以后的下一代HTML标准规范,它提供了一些新的元素和属性(例如<nav>网站导航块和<footer>).新型的标签有利于搜索引擎和语义分 ...

  6. Flash上传组件之SWFUpload文件上传

    一.什么是SWFUpload? SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而 ...

  7. HTML5关于上传API的一些使用(下)

    通过前面两篇的分享,我们已经搞定了单个文件的普通的上传,包括文件预览,图片预览,上传速度等前端界面的显示,这次我们来谈谈关于>XMLHttpRequest2.0在界面之后假如才用分片上传能做到一 ...

  8. 前端上传组件Plupload使用指南

    我之前写过一篇文章<文件上传利器SWFUpload使用指南>,里面介绍了上传组件SWFUpload的使用方法,但现在随着html5技术的逐渐推广和普及,再去使用以flash为上传手段的SW ...

  9. Plupload文件上传组件使用API

    Plupload有以下功能和特点: 1.拥有多种上传方式:HTML5.flash.silverlight以及传统的<input type=”file” />.Plupload会自动侦测当前 ...

随机推荐

  1. IntelliJ IDEA 把Json字符串 增加到IDE里 用windows记事本 能自动转换(自动增加转义字符)

  2. (三)使用XML配置SQL映射器

    SqlSessionFactoryUtil.java package com.javaxk.util; import java.io.IOException; import java.io.Input ...

  3. sqlserver中的循环遍历(普通循环和游标循环)(转载)

    sql 经常用到循环,下面介绍一下普通循环和游标循环 1.首先需要一个测试表数据Student

  4. LeetCode282. Expression Add Operators

    Given a string that contains only digits 0-9 and a target value, return all possibilities to add bin ...

  5. MySQL学习笔记:调用存储过程或函数报1418错误

    问题 MySQL开启bin-log后,调用存储过程或者函数以及触发器时,会出现错误号为1418的错误: ERROR 1418 (HY000): This function has none of DE ...

  6. Python全栈开发之17、tornado和web基础知识

    一.web基础知识 学习web框架之前,先来看一下web基础知识,首先要明白其本质就是socket,用户对应一个socket客户端,但是如果从socket开始开发web应用程序那么效率太了,正确的做法 ...

  7. 002 使用Appender扩展logger框架

    这个地方,在看公司的源代码的时候,写的知识点: 现在再看,竟然不是太懂,重新写一份新的文档,外加示例说明. 一:说明 1.log4j 环境的三个主要组件: logger(日志记录器):控制要启用或禁用 ...

  8. CSUOJ 1900 锋芒不露

    Description 小闪最近迷上了二刀流--不过他耍的其实是剑--新买了一个宝库用来专门存放自己收集的双剑.一对剑有两把,分只能左手用的和只能右手用的,各自有一个攻击力数值.虽然一对剑在小闪刚拿到 ...

  9. CF632D Longest Subsequence

    D. Longest Subsequence time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  10. ELK收集openstack日志

    1.安装jdk 每个openstack服务器需要安装jdk,我安装的版本jdk-7u71-linux-x64.rpm 2.安装.配置Elastic Search install https://dow ...