专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »编程综合 » 编程语言的发展趋势及未来方向(1):历史回顾及趋势概述 »正文

编程语言的发展趋势及未来方向(1):历史回顾及趋势概述

来源: 发布时间:星期三, 2010年5月26日 浏览:0次 评论:0
  这是Anders Hejlsberg(不用介绍这是谁了吧)在比利时TechDays 2010所做开场演讲由于最近我在博客上有关语言讨论比较多出于应景也打算将Anders演讲完整地听写出来我希望这个讲座可以从侧面回答某些朋友有关“语言讨论是否有价值”疑问并且展示出目前语言发展状况以及微软在这方面努力完整内容将分为多次发表每次小部分包含大约10分钟演讲内容等不及朋友也和可以下载演讲视频睹为快现在第1部分则包含Anders对编程语言发展历史回顾以及对趋势简单概述

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

  (听写开始)



  大家好我是Anders Hejlsberg现在是微软Technical Fellow担任C#编程语言首席架构师也参和并领导.NET Framework以及各种语言开发我现在打算谈下……实际上是我脑海中些影响未来5到10年编程语言设计内容比如C#或VB该如何走F#该如何办这次演讲主要就是讨论这些影响我们东西



  虽然主要内容是谈论未来但是我还是想先回顾下历史你们有些人可能对这个产品有印象这是我大约27年前工作内容Turbo Pascal这也是我进入这个领域起点我先在拿出这个东西是想展示当年写情况然后可以讨论目前究竟发展到哪儿了



  事实上我现在机器里正好有TURBO.COM文件大约39K现在还可以运行我们现在来试着写先来创建叫做 Hello.pas……(开始写代码)……个Pascal小写好了我们来运行下……(出现编译)啊噢有地方我写错了……这个特性在当年是个创新它会自动打开编辑器直接把我们带去出错地方我们现在来纠正语法把双引号改成单引号



  再运行现在成功了(观众掌声)呵呵谢谢谢谢事实上在27年后这个还能在这台机器上运行还真是挺神奇



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



  但是如果你关注下目前软件Software……过去27年里编程语言到底进步了多少?呵呵有趣是如果你仔细观察这些代码会发现C#还比Turbo Pascal版本多这也给我们带来了些值得关注东西



  首先编程语言发展非常缓慢期间当然出现了些东西例如面向对象等等但是远没有好上1000倍方面你可能会想那么这些努力都到哪里去了呢?事实上这些努力没有体现在编程语言上而是出现在框架及工具等方面了如果你关注如今我们使用框架它们体积确有1000倍增长例如当年 Turbo Pascal所带框架大约有比如说100个功能而现在.NET Framework里则有万个类十万个思路方法确有1000倍增长和此类似如果你观察现在IDE我们现在已经有了无数强大功能例如语法提示重构调试器探测器等等这方面新东西有很多和此相比编程语言改进确很不明显

  另方面如.NETJava等框架重要性提高了许多而编程语言往往都倾向于构建于现有工具上而不会从头写起现在出现编程语言例如F#如果你关注Java领域那么还有ScalaClojure等等它们都是基于现有框架构建因此现在已经有太多东西可以直接利用了每次从头开始代价实在太高



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



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

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



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

  文章来源:http://blog.zhaojie.me/2010/04/trends-and-future-directions-in-programming-languages-by-anders-1-history-and-trends.html



标签:
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: