HTML5 vs FLASH vs SILVERLIGHT
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的更多相关文章
- librtmp推流使用aac编码音频的html5和flash播放问题
公司项目中使用rtmp推流,音频编码aac.视频编码H264.windows和android平台都没有发现问题.然而在IOS版本的APP中发现几个问题:1. 推流后flash播放异常2. IOS平台微 ...
- html5结合flash实现视频文件在所有主流浏览器兼容播放
来源:http://blog.csdn.net/freshlover/article/details/7535785/ 由于html5的出现,让网页中的视频.音频有了更加便捷的实现方式.但是video ...
- [HTML5和Flash视频播放器]Video.js 学习笔记(一 ) HLS库:videojs-contrib-hls
DEMO地址:https://github.com/Tinywan/PHP_Experience https://github.com/videojs/videojs-contrib-hls 下载JS ...
- JW Player 6.7(网页视频播放器,可在手机中播放),自定义Logo和右键菜单链接,支持MP3、MP4、FLV等格式,支持通过HTML5、FLash播放
原版下载地址:http://www.jwplayer.com/ JW Player是世界上最流行的网页影音播放器,支持的视频格式主要有:MP4.FLV.F4V等格式,支持的音频格式主要有:MP3.AA ...
- HTML5学习笔记简明版(1):HTML5介绍与语法
HTML5介绍 HTML5是继HTML4以后的下一代HTML标准规范,它提供了一些新的元素和属性(例如<nav>网站导航块和<footer>).新型的标签有利于搜索引擎和语义分 ...
- Flash上传组件之SWFUpload文件上传
一.什么是SWFUpload? SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而 ...
- HTML5关于上传API的一些使用(下)
通过前面两篇的分享,我们已经搞定了单个文件的普通的上传,包括文件预览,图片预览,上传速度等前端界面的显示,这次我们来谈谈关于>XMLHttpRequest2.0在界面之后假如才用分片上传能做到一 ...
- 前端上传组件Plupload使用指南
我之前写过一篇文章<文件上传利器SWFUpload使用指南>,里面介绍了上传组件SWFUpload的使用方法,但现在随着html5技术的逐渐推广和普及,再去使用以flash为上传手段的SW ...
- Plupload文件上传组件使用API
Plupload有以下功能和特点: 1.拥有多种上传方式:HTML5.flash.silverlight以及传统的<input type=”file” />.Plupload会自动侦测当前 ...
随机推荐
- 首次加载进来DEV控件列表第一行颜色总是不对,后台代码显示的数据正确
1:行改变的颜色正确的颜色: 1.1颜色效果如下图: 1.2:设置行改变颜色: 2:结果首次加载第一行颜色为: 3:解决方案: 3.1 :Views-->OptionsSelection --& ...
- 《精通Python设计模式》学习结构型之MVC模式
这个就不需要多评论了, 哪个主流的PYTHON的WEB框架都有这些模式实现哈. quotes = ('A man is not complete until he is married. Then h ...
- 开发 Material Design+RxJava+Retrofit+MVP App 参考资料
前言 在开发一个基于 Material Design+RxJava+Retrofit+MVP 框架的 App 过程中学习的资料整理 —— 由G军仔分享 这里记录了我开发 大象 项目时,所学习的 ...
- tomcat 内存参数优化示例
https://www.cnblogs.com/cornerxin/p/9304100.html
- 微信小程序-视频教程-百度云-下载
链接: https://pan.baidu.com/s/16WGL3whutozx-UXqsDPhhA 提取码: 关注公众号[GitHubCN]回复获取 什么是微信小程序?小程序是一种不需要下载安 ...
- Java第三阶段学习(一、IO流------File类)
一.IO概述: 把内存中的数据存入到硬盘(持久化设备)中叫做:输出(写)Output操作.JAVA软件往电脑硬盘上走叫输出. 把硬盘中的数据读取到到内存里叫做:输入(读)Input操作.电脑硬盘上往J ...
- 关于C语言的几个考试编程题目
提交要求:1:邮件名称:学号后三位-题目编号-姓名-期中考试.例如:098-1-沈苗-期中考试2:不用附件提交,直接写邮件,内容包括编程思路(写一段自己对题目的认识.思路.技术细节等).源代码.运行结 ...
- USACO 5.3 Milk Measuring
Milk MeasuringHal Burch Farmer John must measure Q (1 <= Q <= 20,000) quarts of his finest mil ...
- hdoj1232 畅通工程(并查集)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1232 思路 使用并查集求解. 代码 #include <iostream> #includ ...
- Ionic Js一:上拉菜单(ActionSheet)
上拉菜单(ActionSheet)通过往上弹出的框,来让用户选择选项. 非常危险的选项会以高亮的红色来让人第一时间识别.你可以通过点击取消按钮或者点击空白的地方来让它消失. HTML 代码 <b ...