一切都有一个简单的开始

现在越来越觉得,似乎一切都有一个简单的开始,而不是我们后来所面对的,复杂、庞大的鲲鹏之背!但是,这种呈现在表面上的复杂,往往掩盖了背后的简单性,让人一时很难理解、掌握,让人很难洞悉出背后的简单,所以一般人遂就偷懒地以为它自初就这么复杂。

  但是,就象,机械运动背后的牛顿力学三大定律、电信通讯背后的麦克斯韦方程组、宏观宇宙后面相对论的两条基本假设!我觉得,可能所有复杂的后面,其实都是很简单的概念逻辑,都是由一个简单的开始,但是,后来却发展成为一个幅员辽阔、雄伟辉煌的帝国!

 说前面的现象,其实主要是为了自己引出故事,呵呵!

 在这里,我主要是反驳普通程序员的一个常见的误解,即“简单就是美”!我们程序设计时,由于受到大牛或大师书籍的影响,经常秉承的一个观点:“认为只要作简单了,我们程序就可以很好”。但,我却认为这种所谓的“简单”,往往是很幼稚的,也是不切实际的。当我们面对纷芜复杂的实体和需求的时候,它要求的功能往往是很多的,我们很难以“简单”的三下五去二,作作一加一等于二等简单的形式,去完全实现它们!而且,一般来说,越简单形式实现,它拥有的功能越少。因为结构决定功能!这种哲学的视角,就更从本质上,决定了形式上、表面上的简单性是无用的,形式上的简单是很难达到的!
  当然,我也承认,越简单的东西,越容易被人理解,当简单到极致,简单到不能再简单,那么人,呵呵,更狭隘一点,就是我们可怜的程序员,出错的可能性就很少了。我们将写出无错、无可指责的程序,呵呵,很令人神往吧?!
  但是,前边不是说简单是很难达到的么?是不是所谓的“简单就是美”,就是一个虚妄的目标了呢?呵呵,我的答案,很否定的,否定以及确定的否定。就象,我在刚开始就声明的观点,我只是反驳一个误解,并不是反驳“简单就是美”的观点!

 但是,为什么这种简单的美,我们却很少能够见到,即使是亲自操刀的的代码,就更不要说由数代的人维护出来代码了!我们常常见到的,总是与模块混乱、逻辑不清、冗余控制、庞大规模代码段,与“丑陋”共生的代码为伍!而且可怜的我们,却不得不,为了生计,每天去“闻”它的臭脚!

 我们可以回想、追溯下,我们为什么觉得简单就是美呢?我想,这里面的一个很核心、很重要的心路历程就是:用这么简单的概念、这么简单的假设,就可以铺盖起这么严密、这么辉煌的大厦。这种在,简单性基础上构建起来的伟大,鬼斧神工式的劈里啪啦,让上帝垂青、洞悉最深刻本质的天才,是很令人震撼、心往!!一种的美的享受,就随之而来了,呵呵!
 在这里,我将引出我这篇文章的一个核心的看法。
从上面的心理历程,反推来看,“简单就是美”,应该从下面的视角来看,才显得更外合理一点。“简单就是美”,简单的是它的基础,是它最里面的内核,但并不是其向上、向外演化、发展后的结果!!这个简单的基础,可能包括概念、逻辑、假设、流程等,它们往往是简单极致,简单到人不能犯错为止,简单到能够正确地运行;但是,美的产生,却经常是,在这样的简单的基础上,经过“更上层”的设计、组合、过程,或者类比物理世界,就是在一些规律和定理,进行递归、叠加这些简单的基础,构造出一个令人神往的王朝。
  
 这种“简单就是美”,一个例照,就是我们的宇宙,我们也可以想象从很小的原子开始,就“简单地”构造起我们这么庞大的宇宙!我在前面的文章中就有这样的一个说明,我觉得计算机世界实际上是一个仿生、模拟的世界,存在了大量的对现实世界的“照搬”!简单就是美的整个过程反战可能就是如此这般的:)

 当然,这种简单的基础,是很难被猜到的,就象现在计算机的体系结构,冯诺伊曼机器结构和Unix操作系统,“一切都是文件”的简单假设,除非你有超绝于世的天才,才能象这些大师们的所做所为。但是,我们却可以通过不断的“重构”的方法,熟悉、摸索出这个简单的基础。
 

你可能感兴趣的:(杂谈&随想)