关于编程的一些思考

来源:互联网 发布:阿里云监控 docker 编辑:程序博客网 时间:2024/06/05 00:30

   想象一下,一堆电子元器件,可以唱出优美歌曲、展现美丽的图片,可以管理公司所有信息,可以在工厂控制机器动作,可以做出漂亮的报表,可以绘制出如梦似幻的宇宙3d模型,这是电脑的用途。电脑实际可以处理的只是0、1,电脑把无数的0、1组合成美丽丰富的世界,这是多么了不起的一件事。抛开硬件不说,编程——就是如何组织这些二进制代码的工作。

   在想象一下,你站在街头,看着熙熙攘攘的人群,你能否记住每个人的面孔?街头每天走过几十万人, 我不知道有没有这样的天才,反正我是不能。

    这个丰富多彩的世界,有各种动物、植物,陆地上跑的,海底游的,微生物、病毒,地球上的所有的生命,不过几十种元素所组成。复杂的生物世界,生命繁殖、遗传这样高度复杂的活动,均是这几十种元素所组成。

  这些看似互不相连的事物,其实我想都可以做为软件的开发的“隐喻”。

 

从生命开始说起,生命最重要的一个种元素,可以说就是“碳”因为碳组成蛋白质、遗传物质重要的元素。在其中的一种重要物质——蛋白质。蛋白但本质上就是一堆碳和少量的其他元素具有某种功能的单元。这就是这些蛋白质的生成和遗传物质DNA有密切的关系,DNA和蛋白质组成的生命,某种程度上就是一种软件产品。

    在想象一下,一个密封的和外界隔离的容器里面,里面的气体分子如何运动?一般来说,气体分子是做无规则运动。有一个物理学的术语可以形容这种运动状态“墒”。“墒‘意思就是代表混乱的程度。

  回过头在考虑一个生命,假如生命中的各种元素,碳、氮、氢、氧等做无规则的运动,那一个生命是否还存在呢?毫无疑问,假如这些元素没有任何跪在的排列在一起,那生命也就不存在。

  生命太过复杂,我们只能抽象生命的特征的来描述软件。生命是由元素组成的,软件是也是元素的组成的。生命是由碳、氮、氧、氢组成,软件是由0、1组成。生命是由蛋白质、氨基酸等物质组成的,软件是由整数、浮点数组成的。生命是由血液、肌肉、骨骼组成的,软件是由子程序,数据结构组成的。

   用生命的隐喻形容软件,我感觉其实很恰当的。元素组成生命的重要条件是规则、功能化、架构。人、猴子、牛、羊、犀牛、恐龙,共同点,当然植物有所不同,但这些动物的共同点是都有大脑、四肢、骨架、血液,这些组成部分不妨看做生物框架。爬行动物、哺乳动物、鸟类,基本上都是在这个架构里。

  嗯 ,我感觉自己没有说明白,我举一个具体例子。动物中的”血液“可以类比,windows的中的”句柄“(Handle)。

也就是说,软件可以用生命做隐喻。软件的复杂度和生命很相似。生命成功的构架,可以用在软件开发上面。

从生命的结构可以学习软件开发的构架。

原创粉丝点击