- 浏览: 231478 次
- 性别:
- 来自: 火星
文章分类
最新评论
-
vinalice:
在国内不能用,真遗憾
机器人'机皇' HTC EVO 4G -
songshuang:
您好~诚挚邀请您加入ITeye HTML5群组,交流分享HTM ...
Html5 -
xfei6868:
有没有用过哪个具体的服务实现过,比如 juddi, openu ...
UDDI -
justdo2008:
你好,请问如果用Python 做webgame怎么样呢?
Python web 框架 Django1.2版 -
coolspeed:
谷歌一直就想网罗全世界的信息。进化成天网或者viki的东西?
...
Google在搞什么?思维信息化?
前言:没有一种语言能适合所有的用途。
谷歌高管Rob Pike 在OSCON 开源大会上打开了简化式编程语言新议题 今天的商业级编程语言--尤其是C++和Java--太过复杂而不能与今日计算环境充分相容。谷歌资深工程师Rob Pike 在周四于O'Reilly开源大会上的一次谈话中发表了以上论点。
(Rob Pike, Go语言创始人,AT&T Bell Lab前Member of Technical Staff,现在google研究操作系统。罗伯伯是Unix的先驱,是贝尔实验室最早和Ken Thompson以及Dennis M. Ritche开发Unix的猛人,UTF-8的设计人。)
“我觉得这些语言太难用了,太精细,太复杂,太冗长。而且这些缺点似乎在与日俱增,”Pike说,“它们被过度接受,被用得太广了。”
Pike详细说明了此类语言的缺点,以此展开描述了他和其它谷歌工程师对所开发的名叫Go的新编程语言所持的期望。
为了证实此类语言的复杂性,Pike展示了一些C++代码示例。其中一例是一个几乎占据了屏幕整行的变量声明。
“我们怎么能让这种东西成为在学校里教、在产业里被使用的操控计算机的标准方式?”他问道。这种语言“太官僚了(制度化)。每一步都必须要考虑编译是否可通过,”他说。
尽管Pike承认他自己有点爱开玩笑,他声明说此类问题确实应该被提及。C++出现是因为人们对使用低级语言C绝望,Java出现是为了简化C++。随着时间的推移,新的特性都加在了新出现的二者之上,使它们越来越复杂了。
“成熟(复杂)会带来噪音(不可预知不被期望的错误),”他补充说。
Pike还说,此类语言还是在多核处理器和网络被广泛应用等大的事物出现之前被开发出来的,因此它们不能简单地与这些新环境相容。
Pike并不是谷歌唯一一个表达对传统商业级编程语言不满的人。
在上个月的USENIX 年度会议上,Gmail工程师Adam de Boor 出语惊动了与会者。他说,公司的Gmail服务完全是由JavaScript写的,总代码全长443,000行,全部手写。
他指出,尽管Java更具有表达性,它也更加繁琐。“在这个节骨点上,对我来说所使用语言的选择问题是一个大问题,”de Boor说。
JavaScript是为避免C++和Java不断增长的复杂性,而在过去十年里被开发出来的一批语言中的一支。其它支还包括Ruby和Python。但是尽管有了一个简化了的语法,这类语言也同样有它的弱点,他论证道。
这类新语言要慢一些,伸缩性较差,还隐藏了更多的错误,Pike详尽地描述道。
这类语言多为解释型而非编译型,它意味着用这类语言写的程序在运行前是没被编译过的,因此运行的缓慢得多。它们也倾向于使用动态数据类型,即程序员无需定义他们变量所属的数据类型。
“动态数据类型并不见得好。本来你可以在编译时找出的错误的,它(动态数据类型)让你只能在运行时找出错误,”他说。
借着这些观点,Pike接下来描述了作为融合两类语言集各自优点的一个大胆尝试--Go语言。“Go是把静态数据类型语言的安全与效率和动态数据类型解释型语言的方便与轻松结合起来的一个尝试,”他说,“它到底能做多少,还得你亲自去尝试了才知道。”
与会人员Larry Augustin, 客户关系管理软件提供商SugarCRM的CEO对Pike所指出的C++和Java变得太复杂了的观点表示赞同,尽管他也说这是在一切为应对广泛应用需求而发展的语言身上所发生着(了)的。
“这些语言在复杂度上增长的原因是,它们用得越多,我们就会发现越多的错误和二义性,然后为消除这些错误和二义性而做的工作又创造出了一些更复杂的东西出来,”具有软件工程和程序语言设计背景的Augustin这么说。
“我很欣赏你们的目标,”他谈及Pike等人的努力时这么说。“问题是他能否达成那一目标,抑或是在被越来越多人用之后,它也会变得很复杂,”Augustin说。
原文:
Google executive frustrated by Java, C++ complexity
Google's Rob Pike makes the case for simpler programming languages at the OSCON open source conference
Today's commercial-grade programming languages -- C++ and Java, in particular -- are way too complex and not adequately suited for today's computing environments, Google distinguished engineer Rob Pike argued in a talk Thursday at the O'Reilly Open Source Conference.
Pike made his case against such "industrial programming languages" during his keynote at the conference in Portland, Oregon.
[ Keep up with app dev issues and trends with InfoWorld's Fatal Exception and Strategic Developer blogs. ]
"I think these languages are too hard to use, too subtle, too intricate. They're far too verbose and their subtlety, intricacy and verbosity seem to be increasing over time," Pike said. "They're oversold, and used far too broadly."
Pike detailed the shortcomings of such languages as a way of describing the goals that he and other Google engineers have for a new programming language they developed, called Go.
As an illustration of the complexity of such languages, Pike showed a few examples of C++ code. One example was of a variable declaration that stretched nearly across an entire line of the screen.
"How do we have stuff like this [get to be] the standard way of computing that is taught in schools and is used in industry?" he asked, rhetorically. This sort of programming "is very bureaucratic. Every step must be justified to the compiler," he said.
While Pike admitted that he was being somewhat facetious, he asserted that such questions still should be asked. C++ came about because of people's frustration with working with the low-level C language, and Java came about as a way to simplify C++. Over time, however, new features were added to both languages, making them more and more complex.
"Noise comes with sophistication," he said.
Pike also added that such languages were developed before the advent of multicore processing and widespread networking, so they don't easily accommodate these new environments.
Pike is not the lone Google employee expressing dissatisfaction with traditional commercial-grade languages.
At the USENIX annual conference last month, Gmail engineer Adam de Boor surprised the audience by noting that the company's Gmail service was written entirely in JavaScript, and that all of its code, around 443,000 lines worth, was written by hand.
He noted that while Java is more expressive, it is also more verbose. "At this point to me it's a matter of choice which language you use," de Boor said.
JavaScript is one of a whole batch of languages -- others include Ruby and Python -- that have been developed over the past 10 years in response to the growing complexity of C++ and Java. But while having a simpler syntax, such languages have their drawbacks as well, he argued.
These new languages tend to be slower, don't scale as well, and can harbor more errors, Pike elaborated.
The languages tend to be interpreted rather than compiled, meaning the programs written in such languages aren't compiled before running, so tend to run slower as a result. They also tend to be dynamically typed, meaning programmers don't need to specify what type of data their variables will hold.
"Dynamic typing is not necessarily good. You get static errors at run time which you really should be able to catch at compile time," he said.
With all this in mind, Pike then described Go as an attempt to fuse the best attributes of both sets of languages.
"Go is an attempt to combine the safety and performance of statically typed languages with the convenience and fun of dynamically typed interpretative languages," he said, before adding, "to the extent that it succeeds you'll have to judge for yourself."
One member of the audience, Larry Augustin, the CEO of customer relationship management software provider SugarCRM, agreed with Pike's assessment that C++ and Java have gotten too complex, although he noted that this typically happens with all languages as they grow to meet a wider range of use cases.
"The reason that these languages have grown in complexity is because the more they are used, the more errors and ambiguities we've found, and the attempts to remove those ambiguities and errors have created something more complex," said Augustin, who has a background in software engineering and programming language design.
"I appreciate his goal," he said of Pike's efforts. "The question is can he achieve his target result? or does Go [become more complex] as more people use it," Augustin said.
Joab Jackson covers enterprise software and general technology breaking news for The IDG News Service. Follow Joab on Twitter at @Joab_Jackson. Joab's e-mail address is Joab_Jackson@idg.com
发表评论
-
苹果挑战巨大 安卓时代必将到来
2011-03-09 12:48 747在互联网时代,苹果不具备一骑绝尘的实力;这也不是时代的主流。I ... -
Google在搞什么?思维信息化?
2010-08-07 19:40 87611月26日消息,谷歌方面下午宣布对在线翻译工具进行改版,并增 ... -
谷歌强项,互联网情报检索分析
2010-08-02 11:05 1107据美国杂志《连线 ... -
Google开始着手统一的android UI
2010-06-27 13:52 767自从2008年第一款Android手机G1问世以来,Andro ... -
谷歌发明新型太阳能反光技术
2010-06-13 14:26 649据国外2月26日电,谷歌公司绿色能源项目负责人比尔.威尔周五宣 ... -
谷歌,Chrome Web Store
2010-05-21 10:25 710北京时间5月20日消息, ... -
谷歌大胃王,欲占领所有渠道--谷歌电视
2010-05-21 10:22 698北京时间5月21日消息, ... -
疼就叫,但容忍创新有失误
2010-05-17 09:49 670谷歌街景车竟然“偷”数据 中新网5月16日电 据新 ... -
手机电视新闻
2010-05-01 05:14 6234月30日消息,据国外媒体报道,有消息称谷歌将于5月份推出基于 ... -
iGoogle个性化首页全新改版--慎重隐私!
2010-04-22 04:01 1014如题。上图。但是,现在不用谷歌帐号登录不能使用了。 ... -
云计算需要多少台服务器?
2010-04-18 03:23 1038一份由INTAC公布的图像显示了主流的高科技公司专用服务器的大 ... -
Oracle须担负起发展java的重任
2010-04-18 03:06 529甲骨文收购Sun之后,业界对MySQL、Solaris以及Ja ... -
谷歌平板电脑操作系统界面原型图
2010-03-31 00:09 1366Chromium官方网站公布谷歌平板电脑操作系统界面图 ... -
Google香港office
2010-03-28 01:10 788Google在香港的office -
Motorola & Android系统
2010-03-26 16:49 894从1928年高尔文公司创立 ... -
谷歌新开源项目ANGLE
2010-03-25 01:22 972谷歌宣布新的开源项目ANGLE:让WebGL内容渲染不再依赖O ... -
Google,深得“人民战争”之要义
2010-03-25 01:16 642泄密?谷歌街景地图曝光英特种部队军事基地(图) 在谷歌“ ...
相关推荐
1 微软.NET框架
微软MVC框架教程以及案例,适合MVC的程序员参考学习。
ASP.NET 应用程序配置及微软用户管理开发框架.pdf
PC/SC 微软智能卡C#开发框架库 ,应用该框架库可让您开发PC/SC更加容易使用,避免了 WinSmart.DLL 的复杂调用过程。
微软ASP.NET AJAX框架剖析 大约在2006年年初,AJAX迅速成为Web 2.0开发中的一个热点,也成为开发以用户为中心的Web应用程序事实上的标准。然而,要开发出高质量的AJAX应用程序,首先要求开发者是一名JavaScript高手...
资源名称:微软官方《JavaScript语言参考》 资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
微软官方PowerQuery语言规范及库函数参考 Power Query Formula Language Specification (February 2014) Power Query Formula Library Specification (February 2015) Microsoft Power Query for Excel (Power Query...
微软C#语言参考微软C#语言参考微软C#语言参考微软C#语言参考微软C#语言参考微软C#语言参考微软C#语言参考
以EnterpriseLibarary为基础,...使用微软Unity把EnterpriseLibarary的各个模块串接起来,从而实现AOP编程,让系统的一些横切关注和业务逻辑分开 代码编译有错误,更正的见:http://download.csdn.net/source/1048770
微软数据库SQL语言帮助,微软数据库SQL语言帮助
微软官方出的C#指导教材很详细的,WORD格式,511页,MSDN有时看起来不方便
微软3.5框架3.5M,下载速度很快,此框架可以在线安装
经典,.Net开发人员必读。微软一站式开发技术框架解决方案(代号 CodeFx)通过不同编程语言和典型示例勾画出微软几乎所有开发技术的骨架。
*微软公司发布* C# 语言参考 C# 语言参考 C# 语言参考
Microsoft.NET框架是微软公司推出的新平台,包含通用语言运行时(CLR)和.NET框架类库(FCL)。本书将深入解释CLR的工作机制及其提供的各种构造,同时还将讨论FCL中一些重要的类型。全书共分为五个部分,包括:.NET框架基本...
微软官方的VBScript语言参考,细致权威,CHM格式,ASP编程必不可少的查询手册。
apploc 微软的软件,根据不同环境选择软件的不同语言
微软ASP_NET页面框架讲座 • ASP.NET页面简介 • 页面生存周期 • 页面事件 • 页面指令 • 内联编程模型与代码隐藏编程模型
微软分布式高性能GB框架LightGBM
微软架构师谈编程语言发展,让我们一起领略大师的想法吧