Sunday, March 4, 2007

由“您的应用是否真的需要Flex?”所想到的...

  昨天看到一篇题为“您的应用是否真的需要Flex?”的文章,话题是由一个基于Flex开发的“妙句网”应用展开的,作者在文末总结认为“因地制宜”地进行RIA技术开发选型才是正道,暂且不评论其中的是是非非,但似乎都可以归结到一个软件工程和计算机科学的基本原理,那就是“折衷”(Trade-off)的思想。

  回想一下在大学计算机基础课的学习过程中,Trade-off一词无数次地出现在国外的经典教科书中:
  • 时间和空间的折衷(Time vs. Space),这几乎覆盖了所有计算机硬件和软件领域,例如算法时间和空间复杂度,缓存/缓冲区的思想等等。
  • 效果和效率的折衷(Effectiveness vs. Efficiency),这在人工智能,专家系统,搜索排序还有信息安全等和性能密切相关的领域有着广泛的应用。
  • 复用性和复杂性的折衷(Reusability vs. Complexity),这个原理在面向对象分析设计,软件架构设计模式等软件工程应用领域有着极为深远的意义。
  由此还让我想起了Microsoft出版的“Framework Design Guidelines(.NET设计规范)”一书中总结出来的一句话:“Well-Designed Frameworks Are Full of Trade-Offs.(好的框架处处充满了折衷的思想)”。

  更进一步地,如果我们站在人类社会层次上来看这个问题,纵观东西方的文化和社会发展的历史,也或多或少地反映出了折衷的基本原理。以两位东西方思想之集大成者为代表:
  • 孔子:“中庸之道”是东方传统儒家思想的核心概念,也可以说是孔子思想的精髓所在。在某种程度上来看,“中庸”也是一种折衷,“过犹不及”不也正是表明了要在“过”和“不及”之间取一个折衷的解决方案么?
  • 亚里士多德:由中产阶级执政的“共和”政体在亚里士多德看来是保证理想城邦稳定以及和谐发展的最好政体。之所以选择中产阶级,而不是绝大多数的平民或者极少数的寡头阶级,这大概也正是一种折衷思想的体现吧。
  仔细想想,从一个RIA技术开发的选型一直可以引申到最深层次的人类社会普遍存在的哲学问题,又使我突然对以西方为代表的现代大学教育体系和学位设置有了一点感悟。众所周知,所有的博士学位都统称为Ph.D,意为在某一领域的哲学博士学位。可见,是不是说,如果要有资格拿到博士学位,就意味着要在某个领域研究感悟出了源于这个专业领域但大大高于这个领域的,对人类社会发展普遍适用的哲学思想或真理呢?

  以上是我的一点感悟,所引伸出来的文史资料由于时间关系,没有经过特别的考证,如有疏漏偏颇之处还请不吝批评指正,谢谢!

William Cui 崔伟毅

Labels: ,

2 Comments:

Jeffrey Zhao said...

哈,你也看了Framework Design Guidelines啊。:)

March 6, 2007 1:28 AM  
William Cui said...

嗯,是啊,对我正在进行的Framework Design推广和Development Guidelines制定很有帮助的!很多东西都是相通的。:)

March 11, 2007 2:12 PM  

Post a Comment

Links to this post:

Create a Link

<< Home