您的位置 首页 五金机械设备

未来编程语言

未来编程语言未来编程语言   这@是AndersHejlsbe㎞rg(不用?介绍这是谁了吧?)在?比利时Tec…

未来编程语言未来编程语言

  这@是AndersHejlsbe㎞rg(不用?介绍这是谁了吧?)在?比利时TechDa?ys2010所做的开场演÷讲。由?于最近我在博客上?关于?语言的讨论比较多,出于应景,也打算﹣将Anders的演讲完整地听写出来。我希望这个讲座可以∥从侧面回答某些朋友关于℉“语言∵讨论是否有价值”的疑问,并且展示出目前?语言的发展状况以及微软在这方面的努力。完整内容将分为多次发表,每次?一小部分,包含大≯约10分钟的演讲内容。等不及?的朋友也和可以下%载演讲℃视频一睹为快。现在的第1部分则?包含Anders对编?程语言?发展的历史回顾,以及对趋势简单概述。

本文引用地⊿址:htt?p://w″ww.eepw.com.cn/articl∝e/201703/345867.htm

  如果没有特别说明,所有的?文字都直接翻译自Anders的演讲1,并使用我自己的?口语习惯表达出来,?对于Anders的口误?及反复等情况?,必要时在译文中自然也会进行忽略。为了∑方便理解,我也会将视频中关键部?分进?行截图,而某?些代码?演示则会??直接作为文章内容发表?。

?

  (听写开始)

  

  大家?好,?我是AndersHej?ls?ber⊙g,现在≧是微软的Te=ch?ni?calFellow,担任C#编程§语言的首席架构师,也参与并领导.NETFra?mew?ork以及各种语言的开发。我+现在打算谈一下……实际上是?我脑海中一些影响未m来?5到10年编程语言设计的内容。比如C#ml或V?B该怎么走,F#该怎么办,这次演讲主要就是?讨论这些影响我们?的东西。

  

  mol虽?£然主要内容是?谈论未来的,但是我还是想先回顾一下历史。你们有些人可能对这个产品有?印象,这是我大约27年﹢前的工作内容≡,?Tur◎boPasca>l,这也是?我进?入这个领域的起点。我先?在拿出这个东西是想展示⌒当年写程序的情况,然后可以讨≦论目前究竟的发展到哪儿了?。

  

  ㈱事实上,我现在√的机器里正好有TURBO.COM文件,大约3‖9K,嘿?,现在还可??以运行。我们现在来试着·写一点程序。先m来创建的程序叫做Hell㏒o.pas……(开始写代码)……一个Pascal小程序写好了,我∪们来运行一下…⊕…(出现编?译错〒误)啊噢,有地㎝方我写错了……这个特性在当年是?个创新,它×∟会自动打开编㎏辑器?,直接把我们带23去出错的地方。嗯,我们现在来纠正语法错误,把双引号改成单引号。

  

  再﹥运行一?下,≒现在成功了,(观众掌声∈)呵№呵?,谢谢,谢谢。事实上,在27年后这个程序还能在这台机器上运行还真是挺神奇的。

  

o

  现在,我们来看一下,从那?时算起硬∶件£已经发展了……嗯,我那时写Pasca﹣l∽的机器是?Z-80,拥有48K内存?。从那时算起,我现在这台机器已经有大约10万倍的外部存储容量,1万倍的内存大小,CPU速度也有大约1000倍的提高。

  

  但是如果-你关注一下目前≥的软件≤……过去27年里编程语言到底进步了多少?=呵呵,有趣的是如果你仔细观察这些代码,会发现C#还比㎎TurboPascal的版本多一行。这也给我们带来了一些值¥得关注的东西。﹤

  

  首先,编程°语言的发展非常缓慢。期间当然出现了一些东西,例如面向对象等∞等,但是远没有好上1000倍。另一方面?,你可能会想,那么这些努力都到哪里去了呢?事实上这㏄些努力没有体现?在编程语言上,而是%出现在框架及工具等方面了。如果你关注如今我们使用的※框架,它们的体积的确有1000倍的增长。例如当年Turb?o×Pasc?al所带的框架大约有?,比如说10℡0个功能,而现?在的.NETFramewo?rk里则有一万个类,十㏕万个方法,的确有1000倍的增长。与此类似,如果你观察现在的IDE,∠我们现在已经有了无数强大的功能,例如语法提示,重构,调试器,探测器等等?,这方≮面的新东西有很多<。与?此相比,编程﹢语言的改进的确?很不明显。

  另一方面,如.NET,Java等框架的重要/性提高了许多。而编*程语言往往都倾向于?构建于现有的工具上,而不会从头写起。现在出现的编程语言,例如F#,如果你关注J㎜ava领域那么还有Scala,Clojur?e等等,它们都是基于现有框架?构建的。现在已经有太多东西可以直接利用?了,每次从头∷开始的≈‰代价实在∧太㎡高?。

  

  还有件事,♀便$是在过去5、60年的编程历史中,我们都不断♂地提高抽象级别,我们∨都在不断地让编程语言更有表⊥现力,让我∩们可?以用更少的∏代码完成更多的工作。我们一开始先使用汇编,然后使?用面向过程的语言,?例如Pascal和C,然后便是面向对象语言,如C++,随后就进入?了托管时代──受∮托 ??管≌的?执行?环境,例如.NET,Java,它们的主要特性有自动的垃圾收集?,类型安全等等。我目前还没有看出这样的趋势有∷停止㏑的迹象,因此我们还会看到抽象级别越来越高的语言,而语言的设计者则必须理解并预测下一个抽象级别是什么样子的。

  

  我认为?,现在影响力较大的趋?势主要有3种。首先,我们会越来越多地使用声明式的编程风格。这里∫我主要会?提到例?如DSL(DomainSpecificLanguage,领域特定语言)以及函数式?编程。然后在过μ去的±五年里,?我发现对于动态语言的研究变得非常火热,其中对我们产生重大¥影响的无疑是动态语言所拥有¤的良好∴的元编程能力,还有一些非常有趣的东西,例如JavaScri?pt引擎的发展?。然后便是并发编程,无论我们愿不愿意,多′核的产生都在迫使我们不得不重视并发编程。

  有一点值得?¬一提≠,那便是?随着语言的发展,原本的编程语言分类方¢式也要有所改变了。以前我们经?常说?面向对象语言?,动态语?言或?是函数式语言?。但?是我们?现在发现,这些?边界变得越来越模糊,经常会互相学习各自的范式。静态语言中出现??了动态类型?,动态语言?里也出现3了静态能力,而℅如今所有主要的编程语言都*受到函数式语言的影响。因此,一个越来越明显的趋势是“多范式程∣序设计语言”。

  在接下来的部分中,我?将深入?讨论以上提到的这些内容。

关于更多未来编程语言内容,可以收藏本网页。2015nba全明星 编程语言的发展趋势及未来方向(1):历史回顾及趋势概述

未来编程语言未来编程语言
本文来自网络,不代表天津五金网立场,转载请注明出处:http://www.mgnqyz.com/mgnqyz/955.html

作者: mgnqyz

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@wangzhan.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部