最小概念复杂度--减至不能再减

     新一年了,写些什么开端呢?今年后半期的感想确实没有那么多了,也杂事比较多。这种生活状态更外让我坚信了一个信念:尘世的东西确实很伤害灵性的!我想,这也许是为什么古代的一些隐士都很喜欢隐居比较清灵的山林,让自己的思想保持无拘无束。抑或这个时期可能又处于一个积累的阶段了吧!今天想了想,唯一可以值得聊的,可能就是以前曾经想写过的关于最小复杂度的想法。
 
    这个想法的由来,最初是来自各类编程语言针对网络编程的处理的总结。现在,虽然有很多快速开发语言都号称可以快速开发,但好像对于网络编程中的基本操作,创建、绑定、连接、发送、接收几个操作,都是减少不了的,都会有这样几个概念步骤。也就是说,有的时候有些东西拥有其固定的复杂度,不可能任意由人把它删减掉。
对于这个最小复杂度的观念,和一个朋友网聊时,他也谈到可以从另外一个角度去思考这个问题,复杂度的根本也就是描述一个问题的维度,就像一维、二维、三维空间,在这样一个空间里面,它的最少概念数量是与其维度相关的,对于网络编程而言,我们可以说它的维度至少会存在上面的几个概念“维”,我想这样可能更直观、深刻点,呵呵。

   我们在设计一个系统的时候,往往希望其概念数越少越好,这样才容易被人类所驾驭。概念量越大、数据量月到,我们可以看到,人类智慧的最高峰--数学,在处理庞大数据的时候,也是办法不多的,往往需要用到在统计上有效的数学。但是,我怀疑对于一些问题,其复杂度不是可以任意地削减...,或者人们在没有发明新的技术革新前是不可能的,就像微积分在处理一些不规则区域面积时,拥有的简单性是以前的技术所不能比拟的。
 
   但是, 我们也经常看到,在处理问题的时候往往有这样、那样的快速开发工具。对于这些快速开发工具,是不是降低了问题的复杂性的。我想,可以这样说,也不可这样说。因为快速开发工具,事先提供了问题的解决方案,一个架构、一种解决之道的模式,还有一些公用性的代码。快速开发工具省去了对问题宏观解决办法的思考,和一些基础性代码的编写,在复杂度上确实是有所降低。但是,如果你从整个过程来看,复杂度毫无降低,因为这一部分已经有大人物帮你想过、解决过了。这一部分的复杂度,可以通过继承和重用被降低下来。这里也可以看的到,世间的东西确实可以相互转化的,处于时时刻刻的变化之中,不可能是一成不变的,采用什么手段去消减它 :)

你可能感兴趣的:(编程,生活,网络,语言,开发工具)