永发信息网

编程今后发展趋势和发展方向

答案:1  悬赏:10  手机版
解决时间 2021-02-03 06:23
  • 提问者网友:暗中人
  • 2021-02-02 05:31
编程今后发展趋势和发展方向
最佳答案
  • 五星知识达人网友:荒野風
  • 2021-02-02 06:50
建议多去www.csdn.net上去看看
先小说一下
我觉得语言应该向简单发展,我的简单是指跟计算机越来越没有关系,更多的是自然语言的考虑,而且功能也越简单越好。因为惟有这样,写代码才越容易,软件才能大规模制造,如果大批的下岗工人都能够通过简单的培训变成程序员,那么那个语言就是非常好了。到时候中国的外包业就会像制造业一样强大。

呵呵
再继续长篇大论
在C语言入门了之后,我体会到了编程的乐趣,那是人生最快乐的一件事情。当用创造世界的工具(编程语言和IDE),设计出虚拟世界的运行规则(程序),然后虚拟的世界就按照自己设计的法则运转时(程序将严格按照程序员的意愿去运行),那种乐趣是常人难以想象的!

程序员、用户、程序: 程序就是一个系统,类似于《信号与系统》中的系统,用户的输入类似于激励源,用户需要的就是系统的输出。这个系统的设计就是程序员的事情了,这个系统是否合理、平衡也是程序员的事情。还有一个原则,同样的输入只能得到的输出,不可能也不应该让程序帮助用户完成所有的功能。比如:搜索一个文件等,用户一定要告诉程序到底想要搜索什么样的东西,而不应该全部交由程序去分析用户的意图,那样的结果只会是徒劳。

一想到C#、VS、Windows就怒,在用户、程序 、 程序员、编程语言、集成开发环境、操作系统之间,每个角色的职责和功能和权利,全部被Microsoft给颠覆了。

用户的需求是获得最安全的产品、最可靠的产品(无内存泄漏、内存写越界等问题)、运行速度高的产品(也就是程序)。但MS不这样做,MS觉得自己有必要绑定在一起销售的东西,就全部强加给用户,不管用户需不需要。比如Windows里的那么多后台服务、那么多的系统自带程序,用户想不要都不行,即使想删除也不行,因为删除起来不那么方便。可怜的用户,花了那么钱买一个商品,但最后即使是自己不想要的东西、可能给自己带来祸害的东西(比如没有必要的后台程序和服务),也没办法拒绝。"顾客就是上帝", 在IT行业,变成了"Microsoft就是上帝"。

同样,编程语言本来就是一个工具,为程序员更快速地设计规则(程序的运行规则)服务的。编程语言和IDE本来是给程序员服务的,程序员希望编程语言和IDE应该提供什么方便快捷的功能,那就是语言和IDE的发展趋势。题外话:但程序员自己应该完成的职责,不应该由编程语言去完成。比如,整个程序有没有内存泄漏问题,整个程序的效率高低问题,程序设计合不合理,这些应该由程序员去完成,而语言和IDE只应该提供一些辅助的分析工具和预防措施,而不能替代程序员的职责。

自然世界遵循的是对称的原则,程序也是如此,编程语言语言也是如此。有constructor,就有destructor;有malloc,就有free;有new就应该有delete;函数的设计也是如此,有QueryPlugin,就有ReleasePlugin;if else 分支里面的内容应该完全对称;

break,continue,return破坏了程序的顺序执行,破坏了函数的前后对称,所以很大一部分内存泄漏问题都是发生在这些地方。程序设计美观、对称,不太可能发生内存泄漏问题。

但Java把delete关键字去掉之后,世界全部变味了。对称破坏掉了,在Java里,当代码写的不是很好时,某块内存同样可能成为死内存。即使这块内存没人用,但Java的垃圾回收机制根本无法收集。谁申请的资源,谁负责释放。担心内存泄漏、因为内存管理太复杂,所以把内存操作全部去掉,交由语言和IDE和内存回收工具去做,有点像中国古代的因噎废食。程序员的水平不够,应该靠培训、靠学习来解决,而不应该靠语言和工具来解决。

C#不往给程序员提供方便的自然规则描述语言入手,而把Java的破坏对称的招数直接照搬过来,看来也不见得很高明。

编程语言的本质就是描述自然,描述自然界运行的规律。面向对象语言的成功,就是因为她能更自然、直观、方便、快捷地描述自然界以及规律。比如,一个物体或生命本身的属性就是一个对象的数据,一个物体或生命的动作,就可以看成是一个对象的成员函数。自然界的生命体有生、有死,对应编程语言中的构造和析构函数。 如果仅仅是一个很简单的属性,对应语言中的基本数据类型;一个物体很多的数据类型,对应struct;如果此物体仅仅只有数据特性,那么struct完全足够(struct对应设计模式中的Compsite设计模式)。我们可以复制它。如果还有相关的操作,那么就是一个类,类应该是一个比struct更高级的东西。 虚函数(也就是多态)的特性,表示自然界是可以进化的。由后来者(派生类)取代前人(祖先类)。正因为有了多态的特性,程序才可以更好的描述自然世界,更完美、更自然地模拟自然规则。程序里各个模块、各个类的功能对应自然界的各个物体和生命的功能和职责。互相之间和谐地工作,就组成一个平衡的世界。

所有的面向对象语言都可以用C语言改写。用C语言和汇编语言的年代,就像刀耕火种的年代,一人种1分地(程序的性能当然好啦),但耕种的速度慢。用面向对象语言的本质就是,用更符合事物本质的语言来描述事物,会牺牲一点点性能,但提高了耕种的速度(用面向对象的方式去设计整个系统,之后的扩充和移植都很方便,效率也会高一些。所以大型软件肯定不适合用C语言),结构上也清晰很多,维护和扩充肯定也方便的多。

在一切都变是MS说了算的年代,没有人关注编程语言发展的方向。语言只是给程序员使用的工具,但程序员自己根本不知道这是自己的基本权利,因为他们从来没有过这个权利,因为就连Stanley Lippman都没有这个权利。所有的程序员都在等着MS给大家设计好的语言,而这门语言是不是大家需要的已经没有人去关心了。所有的程序员都相信伟大的Microsoft可以带领他们往着美好的方向走去。前面是天堂,是地狱,没有人知道,所有人只知道,那是微软设计的蓝图.........
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯