未来编程语言的发展方向
4个回答
展开全部
在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可以带领他们往着美好的方向走去。前面是天堂,是地狱,没有人知道,所有人只知道,那是微软设计的蓝图.........
程序员、用户、程序: 程序就是一个系统,类似于《信号与系统》中的系统,用户的输入类似于激励源,用户需要的就是系统的输出。这个系统的设计就是程序员的事情了,这个系统是否合理、平衡也是程序员的事情。还有一个原则,同样的输入只能得到的输出,不可能也不应该让程序帮助用户完成所有的功能。比如:搜索一个文件等,用户一定要告诉程序到底想要搜索什么样的东西,而不应该全部交由程序去分析用户的意图,那样的结果只会是徒劳。
一想到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可以带领他们往着美好的方向走去。前面是天堂,是地狱,没有人知道,所有人只知道,那是微软设计的蓝图.........
展开全部
Python是一种易读的语言。它的格式非常整齐,而且在其他语言使用标点符号时,它经常使用英文关键字。与许多其他语言不同,它不使用大括号来限定块,语句之后的分号是可选的。与C或Pascal相比,它具有更少的语法异常和特殊情况。
Python是一种多范式编程语言。面向对象的编程和结构化编程得到了全面支持,其许多特性支持函数式编程和面向方面编程(包括元编程和元对象),所以Python是人工智能机器人研发首选语言,也是未来最赚钱的计算机编程语言。
显式比隐式更好
简单胜于复杂
可读性计数
Swift语言
当谈到移动应用程序开发时,Swift是一种不同于其他语言的编程语言。2014年由AppleInc.发布,它是用于iOS移动应用程序开发的主要编程语言。
但是,Swift并不是Apple独有的,它也逐渐走向了Linux。这种编程语言的好处在于它的开放源代码,以及有趣的工作。下面是为什么在开发移动应用程序时应该考虑Swift的一些更多的原因:读取更简单,它消除了对传统约定的需要
需要更少的代码
维护非常简单,因为它统一了Objective-C的双文件系统
它可以让开发人员检查他们的代码,而无需开发整个应用程序
Ruby
你知道你只需要10分钟就可以在Ruby上创建应用程序吗?令人印象深刻的,对吧这就是为什么全球各地的移动应用开发服务都喜欢这种编程语言的答案。此外,Ruby是其中增长最快的之一,因为它能够支持多种平台。
但是,当涉及到移动应用程序开发时,在Ruby上创建应用程序需要使用RubyMotion和Rhodes等框架。通过利用这些框架中的任何一个的服务,开发人员可以为许多平台构建应用程序,例如Android,Windows,iOS以及OSX.许多热门网站都使用Ruby编码。这些包括Basecamp,Airbnb,Pixlr,彭博等等。想知道Ruby是如此的辉煌吗?这里有一些非凡的功能包括:
它允许你使用现有的代码
动态类型支持
任何人都可以使用它编码
它包括面向对象的语言
Python是一种多范式编程语言。面向对象的编程和结构化编程得到了全面支持,其许多特性支持函数式编程和面向方面编程(包括元编程和元对象),所以Python是人工智能机器人研发首选语言,也是未来最赚钱的计算机编程语言。
显式比隐式更好
简单胜于复杂
可读性计数
Swift语言
当谈到移动应用程序开发时,Swift是一种不同于其他语言的编程语言。2014年由AppleInc.发布,它是用于iOS移动应用程序开发的主要编程语言。
但是,Swift并不是Apple独有的,它也逐渐走向了Linux。这种编程语言的好处在于它的开放源代码,以及有趣的工作。下面是为什么在开发移动应用程序时应该考虑Swift的一些更多的原因:读取更简单,它消除了对传统约定的需要
需要更少的代码
维护非常简单,因为它统一了Objective-C的双文件系统
它可以让开发人员检查他们的代码,而无需开发整个应用程序
Ruby
你知道你只需要10分钟就可以在Ruby上创建应用程序吗?令人印象深刻的,对吧这就是为什么全球各地的移动应用开发服务都喜欢这种编程语言的答案。此外,Ruby是其中增长最快的之一,因为它能够支持多种平台。
但是,当涉及到移动应用程序开发时,在Ruby上创建应用程序需要使用RubyMotion和Rhodes等框架。通过利用这些框架中的任何一个的服务,开发人员可以为许多平台构建应用程序,例如Android,Windows,iOS以及OSX.许多热门网站都使用Ruby编码。这些包括Basecamp,Airbnb,Pixlr,彭博等等。想知道Ruby是如此的辉煌吗?这里有一些非凡的功能包括:
它允许你使用现有的代码
动态类型支持
任何人都可以使用它编码
它包括面向对象的语言
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
越来越智能,越来越简单,能让程序猿更多专注在功能上,而不是语法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
csdn已为您找到关于未来编程语言相关内容,包含未来编程语言相关文档代码介绍、相关教程视频课程,以及相关未来编程语言问答内容。为您解决当下相关...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |