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. linux下Ctrl命令组合

    1.键盘组合键操作 ctrl-c 发送 SIGINT 信号给前台进程组中的所有进程.常用于终止正在运行的程序. ctrl-z 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程.  ...

  2. jre安装配置!

    通常安装java开发环境都是jdk ,jre 一起安装,配置变量!分享一下只安装jre的配置! 去官网下载jre, 按提示安装成功! 和jdk配置一样 ,首先配置一下:JRE_HOME=C:\Prog ...

  3. 20165203 第6周《Java程序设计》学习

    教材学习内容总结 第八章 String类 分清常量池和变量池. String类的常用方法 public int length() public boolean eauals(String s) pub ...

  4. MP3 Fuzz学习

    这篇文章主要是学习一波MP3格式fuzz的知识.目录如下 0x0.MP3格式的构成 0x0.MP3格式的构成 MP3是一种通俗叫法,学名叫MPEG1 Layer-3.MP3是三段式的结构,依次由ID3 ...

  5. hbase 性能调

    一. HBase的通用优化 1 高可用 在 HBase 中 Hmaster 负责监控 RegionServer 的生命周期,均衡 RegionServer 的负载,如果 Hmaster 挂掉了,那么整 ...

  6. Java学习(Map接口)

    一.概述: 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图. 1. Collection中的集合,元素是孤立存在的(理解为单身), ...

  7. 【LOJ】#2244. 「NOI2014」起床困难综合症

    题解 写水题放松一下心情 二进制有个很好的性质是每一位是独立的,我们按位贪心,先看这一位能不能填1,然后看看如果这一位填0那么运算后最后这一位是不是1,是的话就退出,然后看看这一位如果填1最后是1这一 ...

  8. lr参数化取值与连接数据库

    TXT文本,EXCEL表格以及数据库中的表都可以作为参数的数据集载体,LR都是支持的. 特别提醒: 1.在形成数据池之后,数据库中的数据变化不会影响数据池中的数据. 2.数据文件一定要以一个空行结束, ...

  9. Web_add_cookie的作用

    1. Web_add_cookie的作用:保存Server传过来的cookie,以后的访问都会基于此cookie,直到脚本的结束. 2. 关联:服务器端返回给客户端一些动态变化的值,客户端使用这些值去 ...

  10. (转)看懂UML类图

    转自:http://design-patterns.readthedocs.io/zh_CN/latest/read_uml.html 这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关 ...