Log4Classicning

好读书 不求甚解 每有会意 便欣然忘食

前端啊前端
2008年4月13日

说起前端Web Front End这个词真是很尴尬,我不记得是从什么时候开始有这个名词了,好像最早在04到05年和Ajax一并兴起Web标准之后,原来的一部分美工就不叫美工了,改叫前端了,像我这样的也勉强算是一个,从工作室的网页美工进化到了前端,前端人员。当然也不乏一些过去的hacker,没事喜欢写写页面模板的人,逐渐也有网页特效发展到前端这方面来的。所以前端大致分两路人,一路设计背景的,现在更喜欢强调用户体验UE,以至于出现了专门的用户体验研究人员;另一路是JavaScript的hacker们,把JavaScript琢磨得让人叹服,写出了无数惊悚的程序,比如开天辟地的星际,和最近流行的18K的超级玛莉。

我也勉强算是有一点做前端的背景吧,如果说出身,那应该是上面第一条路,从所谓页面美工出来的。写干净的HTML和CSS是我的癖好,而对于JavaScript,倒认为那本身就是一个破坏美的东西,尽可能不去碰它。不过不去碰是不可能的,做前端难免需要写,从写一点,到写一堆,不过自始至终,到目前为止我还是对JavaScript持保留态度,不愿去过多研究。

JavaScript本身仅仅是一套标准,它的实现依赖于各个浏览器,而很多人不顾一切的测试已经证明了,浏览器队伍中的各个成员对于这个标准的实现有大大的不同,其中当然包括IE这样实现效率低下、不遵守标准的,所以研究JavaScript的运行效率至今在我看来都是不可思议的事情。JavaScript的语法本身很有意思,不可否认是一个设计精致的动态语言,但在实际应用里也存在代码不易组织,入口分散的问题。而面向对象的特点似乎又和浏览器端琐碎、多变的逻辑相冲突,在客户端做面向对象分析成本实在是太高了。

我抵制大部分JavaScript库,只是偶尔Mootools实现一些动画效果,用OpenLayers做网络地图,这一点与我在Java、Python上疯狂用库的癖好正好相反。原因很简单,一切的JavaScript库都不过是简单的JavaScript Core API和DOM API的封装,它不可能实现更多超越JavaScript的功能,而所有这些功能我都可以自己实现,只是简单复杂,代码量多少的问题。JavaScript只有一本Definitive Guide就可以写完的东西,何不自己尝试实现呢。从这个角度上说,那些JavaScript的类库代码设计上的价值是远高于功能上的价值的。学习JavaScript,用库不如读库,用库不如写库。

我不看好JavaScript作为前端主力语言的前途,所以我不曾花时间读过任何一个库的代码。JavaScript太脆弱了,前端不确定的因素太多了,平台不同则实现不同,实现不同导致代码不同,辛辛苦苦写了三四个浏览器的代码却经不住用户的几次点击,Firebug的红叉就立刻出现,从1 Error瞬间变成100 Errors,页面脚本不再工作,整个精心设计的用户界面如同一团废铁,没有任何响应,远没有过去一个一个的死链接生点过去可靠。JavaScript不足以强大到构建一个交互性很强的用户界面,所谓富客户端总有一天要从浏览器里爬出来。

现阶段前端还是很火,很多网站都热衷于做非常复杂的客户端效果,以yahoo为例,整页整页的动画效果不知花费了开发人员多少心血来和肮脏不堪的CSS、JavaScript以及各个牛B的浏览器打交道。很多人还是热衷于投身到其中,兴奋地操作YUI的API,体验mouseover和mouseout的效果。然而这种日子持续不了多久了。JavaScript(Ajax)根本就不是Flash的对手,如今有浏览器的地方就有Flash的运行环境,而对JavaScript来说浏览器是各异的,Flash Player对Flash来说却只有一个版本的问题。有IDE支持,有丰富的图形界面工具,Flash甚至还有JavaScript梦寐以求的IO支持,两者实在不是一个重量级。

so,前端,也许只是Google和Yahoo们带来的认真的玩笑,不可避免地只是历史最短暂的一瞬,实在不值得投入过多精力。

« OGC的WebServiceWinter新增消息列表的地图视图 »
  • quote 1.alex
  • flash有两个主要问题妨碍了他的流行:

    1 奇怪的actionscript和几乎绑定的ide。这个组合的学习曲线比html要都陡许多,所以低端开发不会用。这个组合和常规的开发过程相差太远,所以熟练开发也不会用。所以最后flash最后被限制在很小的领域范围内发挥出价值:非常强调表现的多媒体应用。
    2 从技术上说,flash还有一个问题,就是他的下载速度的问题。很多数据本来通过文本传到浏览器肯定比用二进制传到flash大很多,但实际上大多数flash ria应用的用户体验速度都比普通网站慢,这是因为as开发的巨大不方便导致很多flash应用是在程序中包含了大量数据的,而且flash程序是在加载一开始就被下载的,所以造成了用户的等待。同时,即使采用了异步传输技术,由于flash接收的二进制数据没有办法做客户端cache,实际上多次使用的速度并不快。

    从商业角度上说,adobe和ms似乎并不默契,ie8之所以如此支持标准,以我恶意的推测,恐怕是因为ms心里觉得fx、op势单力薄不足为据,而adobe才是真正的潜在对手,不支持标准,让浏览器一直分裂,只会让flash的优势愈加明显,这恐怕是ms不想看到的。

    综上所述,我觉得标准的浏览器端技术是未来的趋势,客户端会越来越肥,但会肥在浏览器自己身上,而不是flash这种本质上和web异质的平台上。flash最终会被广泛的应用,但永远只是被嵌入的多媒体载体。而诸如canvas、svg这样的浏览器端api会被广泛地接受,以及诸如dwr、gwt这些消除浏览器端特殊性的技术的浮现,会是今后一段时间的发展趋势。
  • 2008-4-13 0:37:03 回复该留言
  • quote 6.cocowool
  • ms推出了silverlight2来抗衡flex,是不是说明对未来的ria应用方向的一个指引呢
  • 2008-7-25 12:10:46 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Search

站点统计

  • 文章总数:732
  • 评论总数:2568
  • 引用总数:4
  • 浏览总数:5693
  • 留言总数:42
  • 当前主题:ClassicningDailyLog Style
  • 当前样式:footoo

网站收藏

图标汇集

  • Creative Commons License
  • Widgetize!
  • visitor stats

Powered By Z-Blog 1.8 Spirit Build 80722

2004 - 2007 Classicning.com. 苏ICP备06039259号.