Go语言创始人对Java、C++的复杂性不满
开发者在线 Builder.com.cn 更新时间:2010-07-28作者:csdn.net 来源:csdn.net
本文关键词: 复杂性 c++ JAVA
谷歌高管
Rob Pike
在
OSCON
开源大会上打开了简化式编程语言新议题
今天的商业级编程语言
--
尤其是
C++
和
Java--
太过复杂而不能与今日计算环境充分相容。谷歌资深工程师
Rob Pike
在周四于
O'Reilly
开源大会上的一次谈话中发表了以上论点。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
<?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" />
( Rob Pike, Go 语言创始人, AT&T Bell Lab 前 Member of Technical Staff ,现在 google 研究操作系统。罗伯伯是 Unix 的先驱,是贝尔实验室最早和 Ken Thompson 以及 Dennis M. Ritche 开发 Unix 的猛人, UTF-8 的设计人。)
( 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
说。
Joab Jackson
负责为
IDG News Service
报道企业软件和一般技术突破的新闻。您可以在推客上跟随他:
@Joab_Jackson
。他的
Email
地址是:
Joab_Jackson@idg.com
转载于:https://blog.51cto.com/1889158tom/362172