编程语言大趋势.doc

编程语言大趋势.doc

ID:50029031

大小:136.50 KB

页数:7页

时间:2020-03-04

编程语言大趋势.doc_第1页
编程语言大趋势.doc_第2页
编程语言大趋势.doc_第3页
编程语言大趋势.doc_第4页
编程语言大趋势.doc_第5页
资源描述:

《编程语言大趋势.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、日志C#之父AndersHejlsberg演讲解读:编程语言大()9:37阅读⑻F-篇:学姐学长的肺腑之...I返回日志列表赞赞赞赞转载⑴分享评论复制地址更多基于対C#之父AndersHejlsberg演讲的总结文/赵胡程序设计离不开编程语言,但是编程语言在国内的大环境中似乎一直是个二等公民。国内的计算机教育和工程培训,似乎一直在宣传“语言不重要,重要的是思想”、“语言一•通百通”等观点,共至在许多人眼屮,语言的讨论完全是不入流的,但其实编程语言与工具、框架或开发方法等一样,都对生产力冇着重要的影响。事实上,语言的发展历史比其他方面更为悠久,并且在过去十几年,甚至最近几年中都依然在不断的碰

2、撞和演变。期间一些新的语言诞生了,而另一些在当时看來阳春白雪的语言和编程范式也重新获得了重视。AndersHejlsberg是微软的TechnicalFellow,扌旦任C#编程语言的首席架构师,也参与T.NETFramework>VB.NET和F#等语言的设计与开发。儿个月nV,Anders在比利时TechDays2010及荷兰DevDays2010分别作了一场演讲,阐述了他眼中的编程语言的发展趋势及未来方向,本文便对他的观点进行了总结。大约25~30年前,Anders开发了著名的TurboPascal,这是一•套集语言、编译器及开发工具于一体的产品,也是Anders进入编程语言领域的起

3、点。Anders谈到,当年TurboPascal所用的Z-80和如今的计算机已经不可同II而语。与那时相比,如今的机器已经有人约10万倍的外部存储容量,1万倍的内存大小,CPU速度也冇大约1000倍的提高。但是,如果我们比较如今的Java代码及当年的Pascal代码,会发现它们的差别其实并不大。Anders认为编程语言的发展非常缓慢,期间当然出现了一些东西,例如面向对象等,但是远没有好上1000倍。事实上,近儿十年来的努力主耍休现在框架及工具等方面(如图1)。例如.NETFramework里有超过一万个类和卜力个方法,与TurboPascal札I比的确有了超过1000倍的增长。类似的,现在

4、的IDE包含了无数强人的功能,例如语法提示、更构、调试器等。与此相比,编程语言的改进的确很不明显。图1近几十年来语言、框架及工具的发展在过去50~60年的编程历史中,编程语言的抽彖级别不断提高,人们都在努力让编程语言更有表现力,这样就可以用更少的代码完成更多的工作。我们一开始使用汇编,然后使用面向过程的语言(如Pascal和C),然后是面向对象语言(如C++),随后便进入了托管时代,语言运行于受托管的执行环境上(如C#和Java),它们的主要特性冇自动垃圾收集、类型安全等。Andes认为这样的趋势还会继续下去,还会有抽象级别越来越高的语言。另一方面,编程语言往往都倾向于构建于现有的工具上,

5、而不会从头写起。现在岀现的编程语言,例如F#、Scala和Clojure等,都是基于现有框架构建的,每次从头开始的代价实在太高。在Anders眼屮,如今影响力较人的趋势主要有三个(如图2),分别是声明式的编程风格(包括领域特定语言、函数式编程)、动态语言(最重要的方面是元编程能力)以及多核环境下的并发编程。此外随着语言的发展,原木常用的面向对象语言、动态语言或是函数式等边界也变得越來越模糊,例如各种主要的编程语言都受到函数式语言的影响。因此,多范式程序设计语言也是一个愈发明显的趋势。图2影响力较大的三个趋势声明式编程与DSL目前常见的编程语言人都是命令式(Imperative)的,例如C#

6、.Java或C++等。这些语言的特征在于,代码里不仅表现了“做什么(What)”,而更多表现出“如何(How)完成工作”这样的实现细节,例如for循环、i+“等,甚至这部分细节会掩盖我们的最终目标。在Anders看來,命令式编程通常会让代码变得十分冗余,更重要的是山于它提供了过于貝-体的指令,这样执行代码的基础设施(如CLR或JVM)没有太多发挥空间,只能老老实实地根据指令一步步地向口标前进。例如,并行执行程序会变得十分困难,因为像“执行冃的”这样更高层次的信息已经丢失了。因此,编程语言的趋势Z—,便是能让代码包含更多的“What”,而不是"How",这样执行环境便可以更加聪明地去适应当前

7、的执行要求。关于声明式的编程风格,Anders主要捉岀了两个方而,第一个方而是DSL(DomainSpecificLanguage,领域特定语言)。DSL不是什么新鲜的玩意儿,我们平时经常接触的SQL、CSS、正则表达式等都丿皿于DSLo有的DSL可能更加专注于一个方面,例如Mathematics、LOGO等。这些语言的目标都是特定的领域,与之相对的则是GPPL(GeneralPurposeProgrammingLang

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。