计算机语言的发展,从过程式到面向对象的编程不断的发展。解决的问题也越来越复杂。我记得有一个名人所说:写出一个让计算机理解的程序并不困难,要写出一个人能理解的程序就非常困难。
我自己在这方面就有很深的体会。很多程序写了较长时间,回过头再去理解就非常困难。至少要花很长时间。显然,这很不经济,白白浪费大量时间。可能有人要问,为何不写文档?事实上,一方面写好文档就非常困难,因为程序本身应该就是最好的文档。另外一方面,文档和程序本身就是重复,两个重复的东西必然牵扯到同步问题。同步工作量也大的惊人。
我又想起一个名人,重用粒度即为发布粒度。根据这个原则,我最喜欢的写DLL。使用DLL最大的好处就是不用看源码。
有一种说法,一个人能同时干的事情是7(+/-)2。这个说法说明一个道理,就是人的大脑的处理能力是有限的。但是,人又想解决更复杂、更庞大的问题。这是一对矛盾。从另一个角度来说,软件开发和管理还是相同的。随着社会生产力的发展,导致生产关系异常复杂。管理难度越来越大。同样,软件开发也是这样,牵扯到很多人、很多模块的交流。未来计算机语言,我个人认为还是要在便于理解,特别是整体理解上下功夫。现在MDA开发方法很有趣,是一个不错的趋势。不过解决问题的领域还是很窄。大胆预言一下,未来语言必将引入图形来描述编程模型。
我自己在这方面就有很深的体会。很多程序写了较长时间,回过头再去理解就非常困难。至少要花很长时间。显然,这很不经济,白白浪费大量时间。可能有人要问,为何不写文档?事实上,一方面写好文档就非常困难,因为程序本身应该就是最好的文档。另外一方面,文档和程序本身就是重复,两个重复的东西必然牵扯到同步问题。同步工作量也大的惊人。
我又想起一个名人,重用粒度即为发布粒度。根据这个原则,我最喜欢的写DLL。使用DLL最大的好处就是不用看源码。
有一种说法,一个人能同时干的事情是7(+/-)2。这个说法说明一个道理,就是人的大脑的处理能力是有限的。但是,人又想解决更复杂、更庞大的问题。这是一对矛盾。从另一个角度来说,软件开发和管理还是相同的。随着社会生产力的发展,导致生产关系异常复杂。管理难度越来越大。同样,软件开发也是这样,牵扯到很多人、很多模块的交流。未来计算机语言,我个人认为还是要在便于理解,特别是整体理解上下功夫。现在MDA开发方法很有趣,是一个不错的趋势。不过解决问题的领域还是很窄。大胆预言一下,未来语言必将引入图形来描述编程模型。