`
BabyHeart
  • 浏览: 14395 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

乱弹XUL,XAML及其他

阅读更多
  因为开发SessionPage,对XUL有所了解,顺便也谈谈吧。

  什么是XUL?简而言之是一种界面标记语言;官方文档:http://developer.mozilla.org/cn/docs/XUL。这里有一个简介:什么是XUL?

  可以说XUL的主要目的是简化跨平台的界面开发工作,当然跨平台那是XML类标记语言的本质工作。虽然我讨厌滥用XML,但是用在这里还是恰得其所的。

  界面标记语言跟脚本语言是绝配,不过说实话我不太喜欢与其搭档的Javascript,不过这都是从Netscape继承下来的。Mozilla 平台的上层大概就是这样了, XUL+Javascript,底层是DOM Parser,Gecko Render Engine,XPCOM等。Firefox,Thunderbird等Mozilla项目的UI也就是这么写出来的。我心目中比较理想的应用开发平台大概也就是这样了,有Platform(Mozilla),有Framework (Firefox),有易用的、动态的黏合语言。当然我认为Javascript是弱了一点,不够OO,模块化支持和可重用性很差,这一点我在分析Firefox UI的代码充分证实了,大量同样功能的代码段分布在各个源码文件中,真是难为Firefox的界面开发者了。前面说了,这是历史遗留问题,这个世界上十全十美的东西大概是不存在的吧。Mozilla平台好像也支持Python的说,但是应该还不太成熟,否则我怎么没见过Python写的扩展。


  XUL有个远房表弟就是Microsoft的XAML,在 .net framework  中引入,其实我比较奇怪,按理说开源界喜欢跨平台那是相当正常,可是MS也来凑这个热闹就有些奇怪了,它没有多个平台要跨呀。难道仅仅是为了跨C/S和 B/S?不过想想MS也还是有些平台可跨的,比如Win Vista/Win CE/Win Mobile等。

  另外我觉得基于Widgets的UI虽然简化了开发,但是相当的无味,要是有种简单易用直接面向Render Engine的接口那就可以搞出相当另类的界面了。 :) XAML里好像有Canvas的说。忽然想到,我想要的那不就是Flash吗???Flex???Laszlo???Apollo??? 看来XML UI + Script + Renderer 真是大势所趋啊。怪不得最近RIA的风潮中Flex也颇受关注。Adobe好像把ActionScript的VM送给了Mozilla,不知是何意,据说这个VM的效能那是相当的高,为什么不把Flash的Render Engine也捐献出来,做一个浏览器的Render Engine应该绰绰有余吧。据说新版的Gecko也是基于矢量引擎的,这点跟MS的WPF/.net 3.0又是殊途同归,最好搞成OpenGL版的,那真是相当的强悍了,现在Linux Desktop已经在向这个方向演化了。
 
  据说以后软件的发展趋势是应用网络化,按照这种设想,我们的PC就是一个展现器和网络接入器,应用都在后台的服务器上跑,PC上大概连硬盘也不需要了,维护是大大简化了,对普通用户来说就是一台电视机;从我们软件开发者的角度说,那也是一种相当理想的情况:客户端是Stateless的;对于企业来说,更是优点大大的,想想省了多少维护成本啊,历史真是开了个大玩笑,我们又回到了终端时代。君不见SUN的CTO又翻出了“全球只需五台计算机”的陈词滥调。当然这只是形式上的类似,由于网络带宽和图形展现能力的巨大变化,已经不可同日而语了。现在Web OS都出来一堆了(确切地说,应该称之为Web Desktop),何况其他应用乎,Google的Writely和Spreadsheet在企业市场还是大有可为啊。微软还有人在说“有谁会想在网络上跑Word”之类的话,其思想还停留在上个世纪啊。
 
  扯远了,回到XUL,XUL是从HTML过来的,所以DOM,CSS都带着,还可以混着HTML在里边,那是相当的方便,XAML好像有WinForms的影子。
  XUL后面是XPCOM,XAML后面是.net framework. 从功能上来说.net是强大的多,当然其身躯也肥大的多,所以到现在也不被广泛接受,其一统基础平台的梦想怕是要等会儿了。
  说起来XPCOM还是COM的表弟,COM是.net的老爹,XPCOM可以说是.net的表叔了。
  好,就此打住,再继续就要研究软件伦理学了。  :)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics