设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 IT综合资讯 查看内容

语言创造者谈:为什么我们需要新编程语言

2010-8-3 09:43| 发布者: joejoe0332| 查看: 4540| 评论: 0|原作者: yeeyan|来自: yeeyan

摘要:   罗布•派克是Google公司的一名工程师,也是程序设计语言Go的发明者。他对Java、C++的看法参见“Google executive frustrated by Java, C++ complexity”(July 22, 2010 http://www.infoworld.com/d/developer-wo ...
  罗布•派克是Google公司的一名工程师,也是程序设计语言Go的发明者。他对Java、C++的看法参见“Google executive frustrated by Java, C++ complexity”(July 22, 2010 http://www.infoworld.com/d/developer-world/google-executive-frustrated-java-c-complexity-375)一文。

  创造者介绍了他们期望会彻底变革计算的程序设计语言

  两打新程序设计语言的创造者——有些设计用于实现功能强大的新型Web应用程序和移动设备——上周在美国俄勒冈州波特兰市介绍了他们的工作。这次聚会是为了在O'Reilly出版社开源大会上第一个新生语言营地。

  这些设计师包括渴望在新型开发中施展拳脚的业余爱好者、希望影响下一代计算的学者以及来自像微软和Google等公司哪些想用新工具对付不断变化的应用程序和基础设施的研究人员。

  在信息量大得难以理解的20分钟演示过程中,设计师们分享了他们各种语言胚胎的细节。设计师个个都有的强烈愿望是,为有几十年历史的、似乎越来越不适应于现代计算的编程大会蜕皮——这是这个技术领域共享的一个愿望。“语言设计在此刻复兴,”Google公司工程师罗布·派克,也是这家公司开发出来的一种程序设计语言Go的共同设计师说,“而设计新语言的最大理由是,现有的主流语言不能解决人们想要解决的问题。”

  对于像Google和Facebook以及Amazon一样的大型企业来说,其中一个问题利益攸关,就是如何应付与数据中心和云计算网络类似的分布式多芯计算平台激增的复杂性。Google于2009年年底推出程序设计语言Go,作为C++的一个替代品。按照派克的说法,C++不让程序员轻易地利用现代并行计算体系,“C++在Google和许多其他公司都是主要的系统语言,基本上现在有20岁了,”派克说。“我们现在所了解的硬件和网络的许多事情——以及它们如何改变软件设计思想——都没有机会影响那样的语言设计。”

  派克和他的队友发现,在Google的规模上,C++要花数分钟或数小时进行编译,限制了生产效率。(编译是把人类可读的源代码成批翻译成计算机CPU可以执行的二进制“机器语言”的过程)。Go减少编译过程的冗余意味着,“程序能够在大约几秒钟之内准备好执行,”派克说。他不认为Go会把C++推到一边,自己成为一门占优势的语言,他说,“我们只是觉得需要一些竞争对手,”但又补充说,在Google公司内部,Go已经用在一些“实际项目”上。

  另一个不断发展的计算领域牵涉到在移动设备上运行的程序,这些设备链接到“专门的”无线网络。来自比利时布鲁塞尔自由大学的汤姆·范·卡特塞姆介绍了一种实验语言AmbientTalk,探索一种所谓“面向周围环境程序设计”的新范式,它在两个主要方面背离了传统分布式计算。第一,它不依赖中央基础设施。第二,它假定网络连接都不稳定并且不可预测(情况通常就是这样,移动设备进出彼此的范围)。依范·卡特塞姆所说,“AmbientTalk缓存信息足够聪明,因此,连接中断时不丢失信息,而在连接恢复时,就把那些信息完全发送出去,仿佛什么事也没有发生一样。”

   在一个试验性的AmbientTalk应用中,两个智能手机可以以无线方式相互交换各自音乐库的元数据,并提供推荐歌曲给各个用户。如果一个用户在此同步过程中走出界外,该应用程序也不会崩溃,只是挂起。虽然还有其他语言能够提供这种功能,但利用AmbientTalk的服务,“使您不必另外编程就可以编制这些应用程序,”范·卡特塞姆说。“这种语言默认内置预期并接受网络崩溃的行为。”

  由微软公司未来社会化体验实验室(FUSE)的马特·麦克劳林介绍的语言Kodu解决光谱另一端的问题:如何让年轻人从一开始就对程序设计感兴趣。“我们的基本看法是,程序设计本质上是迷人且有趣的,如同纵横字迷或数独游戏,”麦克劳林说。“我们正在努力改变编程是什么的文化观念,从娃娃抓起。”

  Kodu是一种适用于Xbox 360和Windows个人计算机的免费“可视化程序设计语言”,以视频游戏方式介绍编程概念。作为使用文本界面中的变量和字符串之类抽象概念的替换,Kodu提供三维游戏背景,背景布满可编脚本的卡通人物,(通过Xbox游戏控制器或者键盘与鼠标器)容易执行可以理解的行动——像吃苹果或对敌作战。不过,那些对象和行动全部都直接映射为“真正的”编程概念,使Kodu成为一门完整的语言,能够实现复杂的逻辑。“我们已经得到了微软公司部分语言学家很好的验证,”麦克劳林说。“真正的成功是,房间里没有计算机科学老师的时候,孩子 能够捡起它,然后编制一些我们没有料到的东西。”

  派克、范·卡特塞姆和麦克劳林都同意,专业程序设计语言将在今后几十年变得越来越重要。但是,那并不一定意味着推陈出新,新语言就要独占鳌头。

  举办新生语言营地的Twitter前工程师(现在是个人金融新兴公司BankSimple的产品和技术总监)亚历克斯·佩恩说,随着程序员熟练掌握多种针对不同问题进行优化的不同语言,“使用多种语言编程”更有可能成为常态。“从这里开始,巴别塔一定降临,”他说。“但我未必认为那是一件坏事。”


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部