您的位置:首页 > 产品设计 > UI/UE

现代软件GUI构造及对策(一)

2005-10-28 08:10 441 查看
大约半年前,我结识了一位Eclipse高手,那是我第一次实际接触Eclipse,那次接触给我留下深刻印象的是那位朋友提起Eclipse时的眼神,我能够体会到那种发自内心的感受,就如同我第一次接触到Visual Studio的感受一样。从Visual Studio 2002开始,现代风格的GUI界面逐渐成了今天的时尚,曾几何时,我们曾经为了Visual Studio 风格的界面如醉如痴,也曾经为Office风格的华丽叹为观止,当我真切的看到源自IBM的Eclipse的时候,我仿佛回到了佳丽云集的仙境,这些靓丽的尤物就像一首首充满魔力的仙乐,令众多程序员无法抗拒……

[/b]([/b]IBM [/b]的[/b]Eclipse[/b],[/b]Java RCP[/b]界面的佼佼者)[/b][/b]


[/b]
[/b]([/b]Visual Studio 2003[/b],现代用户界面的始作俑者)[/b]
[/b]曾经有很长一段时间,我一直把自己关在家里工作,很少了解外面的事情,有一天,我来到离家仅一道之隔的中关村广场,我被眼前的变化惊呆了,与十几年前相比,差不多是沧桑巨变,那么多的高楼仿佛是一夜间起来的,看上去十分华丽、壮观、气派,走在这些高大建筑的底下,你会感到个人是很渺小的,看到工地里的民工,感触良多,他们真的没有接受过高级、良好的教育,但高楼大厦、华丽的楼堂馆所却从他们的双手中拔地而起。当我们把玩Microsoft、IBM等公司的软件时,我们仿佛走到另一类高大建筑的底下,这些软件的华丽绝伦,完全可以与那些美轮美奂的广厦有一比。由此我联想到造就这些广厦的民工,与他们相比,我们也是民工吗?我们不是民工,也许,我们还不如那些民工,我们知道,只要按照标准的建筑流程施工,民工就可以将图纸变为现实,然而在许多时候,我们面对美好的软件创意却显得无能为力,尽管现代的编程工具已经发展十几年了。再过几天,Visual Studio 2005就要面世了,也许,我们又要面对一个新的华丽面孔,这些新的面孔造就了许多模仿秀,尽管这些模仿秀的功力很深,但却有一个较高的门槛,使得我们不得不望而却步,大公司的策略,就是他们打造华丽的美景,然后让你流连忘返,永远的追随他们的步调。Microsoft完全有能力让普通程序员拥有构造华丽界面的能力,也许是出于自身利益的考虑,才使得那些看上去华丽无比的工具仅仅能够开发出相貌平平的软件……当我们站在一边看民工干活时,我们发现绝大多数时候,他们的工作都十分单调、简单,相比之下我们这些在安静的环境下Coding的白领们却时时面对挑战,只要他想使得他的工作与众不同。为什么软件开发过程与楼体建筑过程不具备可比性?也许答案是软件开发的策略与Coding过程是紧密耦合的,而建筑业的图纸体现了建筑的策略与规范,有了“图纸”,具有一定资质的建筑队就可以顺利的按图纸施工,这种松耦合的分离机制在软件界还没有得以形成。让我们仔细的看看Eclipse、看看Visual Studio IDE,我们发现,剥去华丽的装饰物,从逻辑上看,其GUI架构基本上就是一系列分隔窗口、多页窗口(即Tabbed窗口)的复合物,这些东西,就好像是一种可灵活拆分的框架,谈到类似的框架,熟悉MFC的人一定有深刻的印象,MFC类库中提供了CSplitterWnd、CPropertyPage、CTabCtrl等对象处理这类框架,MFC是个成功的类库,与其同时代的许多商业类库都悄悄地消失了,至今MFC还存在于VisualC++之中,尽管MFC的名声越来越不好,然而,在未来的几个版本的Visual Studio中,MFC依然是不可或缺的一部分。MFC为Microsoft立下了汗马功劳,这个类库成功的将大多数开发者锁定在紧耦合的编程思维之中,.NET框架也是建立在一个越来越庞大的类库基础之上,虽然.NET FrameWork不同于MFC,然而隐约之中我们却看到了MFC的痕迹(尽管不是很明显),.NET类库同样会将开发者纳入Microsoft规定的步调,同理,IBM极力推崇Eclipse,也是受Microsoft启发而力图将开发者纳入IBM的步调。一旦我们的思维被纳入他们的步调,无论他们谁战胜谁,我们也许都是失败者,胜利者是美国佬,想一想这有多可怕!我曾经多次与Microsoft、IBM、Novell等公司的人实际接触,遗憾的是接触的都是中国人,为什么遗憾呢?因为他们都是精英,一口流利的英语夹杂着少许的京味汉语口音,就其个人而言,这些人没有错,Microsoft、IBM、Novell们就其自身利益角度上看也没有错,只是中国正在流失一些东西,我们的许多优秀软件被他们不知不觉中扼杀了,如果你进入过Microsoft中国所在的西格玛,你会深刻的感受这一切,感受到中国人的朝气在Microsoft企业文化中焕发的强烈震撼!寻找自己的路子,是许多中国人的梦想,由此许多国人走到Linux领域,Linux世界没有Microsoft,却有Red Hat、Novell、IBM,同样困难重重。历经十几年的演化后,软件界的重头大戏即将回到新一轮的桌面开发竞争,IBM转让PC业务而将重点转向软件业务也许就是预示着这一点,同样,Microsoft也在为新一轮的软件大战紧锣密鼓的准备着,Microsoft的Office System变得越来越丰富,经过9年的努力,即将出台的新一代Office与Microsoft Visual Studio .NET关系将变得十分微妙(Office 将在内部集成Visual Studio .NET的一个子集,即Visual Studio Tools for Application以替代9年历史的VBA),我们不知道,IBM的Eclipse与Microsoft的Visual Studio之间的竞争是不是可以类比为一场“日俄”战争,如果是,无论谁是赢家,我们都是输家。当我们接受了洋枪、洋炮后,经过浴血奋战,我们告别了冷兵器时代,于是世界上有了我们的位置,今天的软件界,我们会不会重演这一幕,我们拭目以待。毋庸置疑,今天的软件界对国人来说充满了“洋味”,以至于谈起编写程序代码都要称为“Coding”,当我们走在北京的大街上,我们随处可见分布在高楼大厦四周的矮小楼房,我们感到明显的差距,软件界同样明显的存在这种差距,如果说城市建筑的高、矮差距;华丽与平庸的差距取决于经济实力,那么软件的差距则取决于积累、头脑。如果将软件的十年比作凡间的百年,我们与那些巨头的差距不知要差上多少年。让我们看一个典型的GUI界面:

(一个典型的现代GUI界面)对于一个C++程序员而言,也许能够真切的体验到用C++语言实现这样一个界面形式的工作分量。如果稍微调整一下,将之改为:

(另外一个基于C++实现的GUI界面)情况会怎样?也许,我们的开发人员很少能够适应如此的GUI设计工作的改变,因为看上去形式上的差别与实际的Coding工作差别实在太大。我们无法知道Microsoft、IBM们内部工作是如何适应这类变化的,就其软件表现出强大、灵活的定制化能力而言,我们有理由相信,左右这一切的关键绝不是简单的Coding工作。我曾经看过一部电视连续剧,里面讲的是一个职业杀手的故事,里面的一段故事时时浮现在我的脑海,那就是杀手接受的训练,毫无疑问,杀手必须熟悉各种枪支,于是他的师父将他的双眼蒙上,然后训练他将枪拆开,然后打乱顺序,然后再将枪装上。曾经是冷兵器时代的中国,能够想到如此训练杀手,自然是生存环境逼出来的,回头看软件世界,也许我们使用的开发工具来的太容易,也许别人给我们设定的路已经使得我们生存得很舒适,因此我们忘记了“杀手的训练模式”,……(一)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: