[原创]面向生命(Life oriented 简称 LO)编程

来源:互联网 发布:泰安java 编辑:程序博客网 时间:2024/06/05 06:06
序言:
软件是个生命体!
万事万物皆变化!
为什么我会提出"面向生命(Lifeoriented)"编程的思想,因为我们一直以来以建筑学的角度来审视软件工程,将软件定义为一种无生命的产品,而事实是外界的需求的无时无刻都在变化要求我们做出来的软件也随之变化,你难道想让一所盖好的房子会每时每刻根据外界的环境变化吗?而有生命的植物和动物则可以,会依据环境的变化而变化,一株草会根据压在上方的石头而改变自身的生长形态而曲折生长,软件应该也会为适应变化而调整自身的结构和功能来避免被变化的环境所淘汰!没错这是个适者生存的世界,软件也一样。
还有一个原因就是软件和人一样是有生、老、病、死的,诞生的时候具有面向对象思想中人类的基本属性和行为,但是还很弱,就像婴儿一样,但是面向对象的思想将世界万物都抽象成类,类的实例创建了对象,但是根本没有发现一类的对象之间是存在差异的,难道你看到过世界上长的完全一模一样的人吗?没有,因为每个人都是鲜活的生命体,尽管具有人类的共同属性和行为,但是每个人都有自己的性格、学习能力、、、、、、、,同时每个人的成长历程是根据环境的不同而不同,也就是适应变化,刚生下来的婴儿是最原始的对象,然后通过人类具有的基本行为嗅觉、听觉、视觉、味觉、触觉、学习能力来获得信息不断完善对世界的认识,从而形成不同的性格,也逐渐成长起来从需要外界服务,到能够对外界提供服务,而每个人接受的知识和自己的能力决定了最终他能够为外界提供哪种服务,随着时间周期和自身的消耗慢慢老化,直至死亡,软件也是如此,开始我们只是依据目前的静止的需求将其创建出来,可我们错就错在用一种静止的眼光去看待软件,其实它是在我们的不断提供信息的过程中,不断成长,同时从我们提供的信息中它在学习强化了自身的功能,并能够提供给我们更多功能,也就是目前各大网站提供的对外接口服务,其实yahoo或google开始这些网站系统是没有能力提供这些服务的,为什么是因为它们没有足够支持这些服务的信息,就好比它们开始只是婴儿还需要我们提供信息给它,让它成长一样,当它在我们不断的信息营养下成长成为一个巨人的时候,它们反过来能够为我们做更多以往我们都没有想过能做的事,这就是一个软件生命体,而不是我们传统意义上的建筑,建筑的功能是有限的而生命体的功能是无限的,因此你硬要将一个不变的软件去适应不断变化的环境那是种错误!因此,我们需要一种全新的思想去指导我们去设计软件那就是“面向生命”!
第一章:什么是面向生命编程
面向生命编程是以面向对象为基础,将对象赋予生命特质的一种编程思想。