主题:【原创】新时代新潮流WebOS 【1】 -- 邓侃
以合适的成本(开发、下载时间)实现了相当华丽的效果,培养了一大批靠画flash成名甚至发财的楷模。
后来又成功的统一了Web视频,成了兼容性最好的多媒体平台。
这几步走的扎实、漂亮,岂是ms随便把.net包装一下就能比肩的。
Javascript现在也在一个战略点上,往下怎么走还是要看有没有新的杀手应用。
我觉得有三个原因:
一是安全问题,ActiveX把MS搞得焦头烂额,就是二进制代码的安全性把关很难做精做细。随便一段图灵完备的程序,直接放到CPU上跑,还得规定不能干这个,不能干那个,想想就头疼啊。解释机制就相对灵活得多,检查也细致的多。
二是兼容性问题,只要是代码就有平台兼容的问题。而二进制代码经过了一次编译,语义丢失的厉害,对平台的运行一致性要求更高,碰上问题的概率也就更大。
三是开源vs闭源,源代码更容易被开发者接受,尤其是干网页这行的程序员要应付的事多了去了,哪个东西好学好用,自然就用哪个
兼容性的问题,非常有说服力。
但是安全问题,假设浏览器规定了只能用一部分系统APIs,而其它APIs不能用,是不是就可以确保安全了呢?
开源和闭源的问题,对于开发者而言,其实说到底是直接发布源码,还是先编译再发布二进制码的问题。所以感觉对于开发者而言,两者区别不大。
欢迎反驳。
关于安全,我这里考虑的二进制代码是真正的cpu指令码。java那种实际还是伪代码,所以安全问题也处理得很好。
真正的二进制码要是给浏览器使用,是给它单独分个进程还是嵌在浏览器的线程里呢?分进程也太兴师动众了,放在本地线程里跑怎么防止它乱来?比如硬生生的往esp上写0,MMU和os都管不着啊。浏览器只能逆来顺受。
我刚刚又去搜了一圈ActiveX安全模型,看看有没有什么新东西。结果还是那句话:“ActiveX安全模型的功效有赖于核实ActiveX控件开发者身份的能力,所以不能保护控件客户不受恶意及不当控件的侵犯。为此,它只能赋予用户根据授权甄别控件的能力和责任。”回避安全性检查,美其名曰从源头上堵截。即堵不住捣乱的,又让个体程序员不爽,而且到头来用户谁都不信,哪个activex都不批准(比如我)
解释型模块则是始终掌握主动权的,什么API可以使,什么API不许使,什么API使了也是白使,清清楚楚的。
开源我觉得主要是降低了学习门槛,有什么好东西马上就被大家学了去,传播起来快很多。
开源更在乎的是交流、分享。老实说用起来比非开源软件包要求更高。非开源的东西有问题的话只能依赖厂家(或者说只要信任厂家就可以了),而开源的就要靠你自己了。不依赖厂家说起来容易,实际能做到的恐怕很少,而且成本上未必更低。当然剪刀加浆糊的不在讨论范围。
这里不折腾是不折腾用户的意思。无论你是商业的模块还是作坊的作品,扔到浏览器里就得能跑,效果就得合意。所以每张网页都是厂家的作品,用户是绝对不会管你怎么弄的。“靠自己”的概率近乎于0(因为ff的greasemonkey,咱没法说绝对等于0)
所以源码开放是方便了开发者。反正我学javascript就是从看别人的代码开始的。
那个3D的场景比较令人兴奋
每一行代码啊。真那么做会吐血的……
开源的话确实可以降低不少门槛,只要有能力,即便像 Linux kernel , GNU 工具链这样最顶级的项目,一样可以很自由的回溯代码,查看在开发过程中的相关讨论,项目负责人的每一项决定,直至每一行代码从生到死的过程。如果可能,甚至可以全程实时跟踪这些项目的开发进展。
闭源软件,几乎不可能有这样的学习机会。至少圈外的人不可能这么详细地了解到项目的运作过程。
首先ms看到了自己在Web前台展示方面的方向,推出silverlight与Flash争夺市场,这是一个好的开始.
随着silverlight1.0 只能使用JavaScript 进化到 silverlight2.0 可以使用各种动态语言进行编码.这一个演进过程,把大量的程序员划入到可以参与的开发队伍的范畴之内.
flash虽然现在应用很广泛,但是很多应用未必就是最好的,因为没有人与它竞争而已.实际上flash的编写并不是很简单的,他要求首先要有一定得美术基础,然后要懂得编写代码,然后才能写出一个比较符合要求的Flahs应用,而同时掌握这两种技能的人员说实话真是不多(大多也都是略通皮毛而已).还有,Flash的代码说实话真不是人看的,所有的代码分布在不同的地方,想通过一个简单的界面浏览所有控制代码基本是不可行的,不要说别人,就是自己写的代码,如果两三个月不看,回头根本就找不到头绪. Silverlight 恰恰把这方面的问题解决的很好:1.控制代码与表现进行剥离,美工人员专注于前台的表现,美工不用了解后端的代码控制,而负责编写代码的人也不用重新培养,随便抓一个编写过c#的人就可以,这个人也不用去了解怎么画东西才漂亮,他只需要把美工提供的素材在合适的时间用合适的方法展现出来即可.对于团队开发来说这可是一个不小的进步,而且MS的开发环境一贯比较友好(我自己认为 :P ) ,开发效率上也能够得到保证,比 Adobe Flash来说实在是太强大了,而且对于美工人员,他们可以使用Express Studio 进行元素的编写和编辑,通过版本控制工具与后台人员用VS2008 SP1 所撰写的后台代码进行交互和整合.
我的看法是现在限制web应用发展的恰恰是前台展示的丰富性,也就是说我们所普遍使用的HTML4.0+Javascript1.2 并不能给我们带来类似于 Application 的易操作性和表现力,虽然Flash能够部分实现用户的预期,但是付出的是开发商聘请大量专业的开发人员,代码的可维护性不高的代价.而MS杀入这个市场后,最起码也是起到了鲶鱼的作用,推动Flash的发展.而且随着Silverlight的版本变迁,我看到了希望---- 取代讨厌的Flash.
Flash现在在各个浏览器都有可用插件,基本保证各种浏览器能够正常的浏览Flsh动画,而MS这方面做的还不够多,现在仅支持IE,Firefox ,对于Opera就不支持,这个就不明白是MS的问题还是Opera的问题了.
Silverlight可以与WebService进行集成,前台表现放到SilverLight中,简单的验证可以写到silverlight的C#代码中,商业逻辑调用后台的WebService ,而且做起来也很简单,这方面是Flash所远远不及的.
而且Silverlight可以指定那些内容作为预先载入,那些东西可以按需下载,减少一次性载入时间,增加用户的体验,这点上Flash做的也是不够的.
总之,并不是因为Flash足够优秀才变得如此的普及,而是因为没有竞争对手而导致了其垄断地位.这个看看上文中所说的Netscape和IE的竞争吧,后来的未必没有后劲儿.
我前面评论flash也是讲合适的开发成本。flash的开发成本绝对不算最优。但是flash有一个Silverlight这辈子也不可能拥有的优势:跨平台。
Silverlight 2007年正式发布,到今天也没法完整支持linux。甚至linux上的解决方案MS都不直接出面。而Adobe则在客户端上下了大力气,各主流平台各种浏览器鲜有不支持的。
The latest version of Flash Player, Version 10, is available for Windows (2000 and newer, Win9x no longer supported), Linux, Solaris and Mac OS X. Version 7 is the most recent official version currently available for the Linux/ARM-based Nokia 770/N800 Internet Tablets, classic Mac OS, Pocket PC and Windows 95/NT.[3][4] HP offers Version 6 of the player for HP-UX.[5] Other versions of the player have been available at some point for OS/2, Symbian OS, Palm OS, BeOS and IRIX.[6] The Kodak Easyshare One includes Flash Play. The Flash Player SDK was used to develop its on-screen menus, which are rendered and displayed using the included Flash Player.[7] Among other devices, LeapFrog Enterprises provides Flash Player with their Leapster Multimedia Learning System and extended the Flash Player with touch-screen support.[8] Sony has integrated Flash Player 6 into the PSP's web browser via firmware version 2.70 and Flash Player 9 into the PlayStation 3's web browser in firmware version 2.50[9]. Nintendo has integrated Flash Player 7 in the Internet Channel on the Wii.
这个差距可不是一点半点。
而且MS为什么要推Silverlight? 为了争夺web app市场。
它能把一个公开的、各个平台其乐融融的web搞成自己的一言堂么?不可能。只能是silverlight向各个平台渗透。
如果他达到了目的,大家都用silverlight来做桌面品质的Web App,那还要Windows干什么?
昨天去微软网站下载Windows 7 RC,填完表格之后MS给了个网页内嵌的下载器来下载iso文件。这个下载器是用什么技术做得呢?就是大家给开了无数场追悼会的Java Applet,我当时的感觉就是哭笑不得......
话到这里得加一句,我不是所谓的MS黑,对C#更是爱不释手,天天都在用。但是对于Silverlight,按MS现在的路数,我不看好。至于Flash开发模式的确缺点重重,而且这么多年都没有大的进步,Adobe要负很大的责任。也导致Flash到现在都没能走出浏览器。
这个就是现在silverlight所面临最大的问题,我上文已经提到了,问题的关键不是技术而是MS的态度.对于这方面我是持乐观态度的,随着时间的延续,支持的列表会越来越长.
它能把一个公开的、各个平台其乐融融的web搞成自己的一言堂么?不可能。只能是silverlight向各个平台渗透。
如果他达到了目的,大家都用silverlight来做桌面品质的Web App,那还要Windows干什么?
切中要害!如果真是这样,的确没有Windows的必要了,MS到了那个时候就不是每个机器安装一个windows了,人家开始买在线服务了.到时候赚的那才叫心安理得,而且甚至不用考虑盗版的损失了.这正是MS正在努力的方向,他不仅要掌控现在的PC操作系统的市场,对于未来发展的市场也要掌握,silverlight也可以说就是一个尖兵,具体今后能够发挥多大的作用,需要看市场的反映和MS的决心.
我的想法,作为WPF的一个子集,silverlight 在web方面将会有很大的作为,随着Windows7的发布,WPF的开发模式也会迅速的在桌面级应用上普及开来,为应用的展示带来一个新的一页.如果当你有一天发现对于展示来说,写c/s结构还是写b/s结构没有什么不同后,MS也就达到了目的,同样开发人员也就完成了一个平滑的过渡了.为全面进军Web App打下了坚实的基础.
另外你最后说的那个BS CS不会再有差异的想法,我已经体验过了,就是java。当初只花了15分钟就把一个本地的FPGA Monitor转成了web applet,功能一分不少。只是打开的速度惨了点。
浏览器引入3D渲染,肯定是发展的方向。
WebKit正在和clutter做整合,clutter用来做3D渲染很强大。
站在巨人的肩上,才能看得更远。
WebKit就是这样一个巨人,查看WebKit的源码,发现WebKit拥有的能力,远远不止我们在Chrome和Safari浏览器中体验到的那些。
有了WebKit源码,不仅可以充分挖掘它的潜力,提供更多功能,更重要的是,可以以此为平台,修改之,使之更强大。
非常看好SilverLight的前景。
要说问题也是有的,就是SL和Windows绑定太紧。尤其是后续开发,目前只能用C#。有一套C的implementation就好了,C++也行啊。最好Java也来一套,不过不知道运行效率会如何。