战国时代---编程语言杂谈(4)

3.4  前台语言

  前台语言当然不是漂亮的前台MM,不过前台语言的说法并不是很合适,应该说GUI设计语言更好。说到应用程序,传统的理解都是那些运行在客户端的桌面程序,但是随着互联网的快速发展,软件的使用和开发模式已经发生了很大的变化。

3.4.1 桌面上的纷争

  桌面应用程序开发方式有很多,像是MFC、Qt、GTK、Delphi、Visual Basic等。其中最具代表性的莫过于VB和Delphi,二者都以简单的界面开发技术而风靡一时。“Delphi让复杂的事情变得简单,VB让简单的事情变得更简单”,而如今二者的风光却已不再,首先是Java和.NET借着平台的东风,提供了整合性更好的桌面程序开发技术,VB摇身一变成为VB.NET,成为.NET平台的一员,但是却不得不面临C#的同门师弟的咄咄攻势,前景难料。Delphi的命运更惨,已经沦为为.NET开发组件的地步。好在二者都有雄厚的群众基础,至少还能延续下去。MFC和Qt都是C++的GUI开发解决方案。MFC扎根于Windows平台,现在也开始加强与.NET这棵大树的交互。Qt则打出跨平台的旗号,又被诺基亚收购并且已经开源,本想在智能机上施展一番,但是碍于Nokia如今在智能机上局势不利。不过Qt还是被证明是很强大的。真正让Delphi和VB走向没落的,还是Java和.NET。二者借助平台构建的强大优势,提供了更加快速便捷强悍的开发方式。Java开发桌面程序的优势是跨平台,当然这个平台也就是在PC上的不同操作系统上,在一个系统上用Java开发完程序后,就可以跑在其他安装有JVM的系统上。但是无论是AWT、Swing还是SWT实际表现的并不是特别尽如人意。.NET阵营上先是有Windows Forms继承了微软一贯简单快捷的特点,后来又提出WPF,GUI开发的崭新构想,我觉得这应该是未来的发展方向,可惜现在碍于性能的问题还有待于改进。

  桌面应用程序的开发已经有了很大的发展,但是Web应用的崛起却让桌面程序走向没落。基于B/S应用程序开发模式越来越流行,越来越多的应用程序开始运行在浏览器而不是操作系统中。

3.4.2  Web应用程序

  相比而言,Web应用程序有着不少的优势。首先是跨平台,只要能够浏览网页的设备就能够使用Web应用程序,而且使用服务器处理信息,减轻了客户端的负担。最后是开发更加迅速便捷。虽然说现在Web应用程序还是无法完全取代桌面应用程序,但是这确实软件开发的新趋势。

  网页设计主要是由HTML、CSS和JavaScript来完成。其中前两者还算不上是编程语言,只是标记语言;JavaScript也被认为是个“不严肃”的编程语言。由于复杂的历史原因原来的网页设计一片混乱,现在网页设计强调的就是一个标准。HTML用来确定网页内容结构、CSS决定网页显示层次和样式、JavaScript通过编程与客户端进行交互。我觉得作为程序员,虽然并不是太需要专注于前端的网页设计,但是我觉得熟悉HTML、CSS和JavaScript还是必须的,而且更应该把遵守标准的准则植于心里。

真正给程序员在设计方面有所表现的还是现在炒的火热的RIA(Rich Internet Application)是一种具有近似于传统桌面应用软件系统功能和特性的网络应用系统。RIA系统最大的特点是将大部分处理任务都从用户界面端移植到客户端,仅保留一些必要数据与服务器端进行信息交互。这个名词最早是由Adobe提出来的,Adobe Flex自然成为第一个技术解决方案。然后Silverlight、AJAX、JavaFX杀入混战。而传说中的HTML5又要十分邪恶的一统江湖,只是到目前看来还很难说是在什么时候。RIA我觉得最邪恶的地方就是它的目标就是彻底要没收桌面程序的生存空间,所有的应用操作都可以在RIA上进行,当然或许这也体现了桌面程序与Web程序的融合,伴随着另一个被炒得更热的概念“云计算”,RIA将成为行业的制高点,所以各行业巨头才会如此混战。

3.4.3  WPF的启示

  UI设计是程序开发的重要一环,但是长期以来我们面对都是外貌差不多古古板板的程序面孔,很少有漂亮绚丽堪称艺术品的应用程序,更别提富有人性化可自由定制的软件了。现在随着计算机硬件性能增强,软件也应该给人们带来更好的交互性。桌面程序和Web程序将会逐步走向融合,在Web设计中的一些理念也开始影响着桌面应用程序的界面设计。WPF体现了GUI程序设计发展的一些趋势,Silverlight可以看作是WPF的一个子集。尽管它现在还不是很完善。首先是界面外观与编程逻辑的分离,解决方案是Flex中首先应用的,用特殊的XML文件定义界面元素,用专业的设计软件进行界面的设计美化,编程人员则通过该XML文件处理界面元素背后的编程逻辑。这种分离能够使UI设计师和程序员更专注于他们熟悉的领域。WPF对此机制进行了优化,并且提供了更加丰富的类库,增强程序的表现力,能够让程序表现出炫酷的效果。Java中不知道现在有没有与之类似的桌面级的开发技术,不过我觉得这个值得Java开源社区的研究。虽然面临跨平台的问题可能会复杂一些。

 

 

PS:感觉自己开始有点扯了,有点跑题了。不过这也是自己对于现在所掌握的技术知识的理解吧~~~

战国时代---编程语言杂谈(3)

战国时代---编程语言杂谈(2)

战国时代---编程语言杂谈(1)

posted @ 2010-06-14 23:33  frcsun  Views(462)  Comments(1)    收藏  举报