阅读更多

20顶
16踩

行业应用

转载新闻 谷歌高管对Java、C++的复杂性不满

2010-07-26 14:49 by 副主编 just_cool 评论(48) 有16593人浏览

谷歌高管Rob Pike 在OSCON 开源大会上打开了简化式编程语言新议题 今天的商业级编程语言--尤其是C++和Java--太过复杂而不能与今日计算环境充分相容。谷歌资深工程师Rob Pike 在周四于O'Reilly开源大会上的一次谈话中发表了以上论点。

 

“我觉得这些语言太难用了,太精细,太复杂,太冗长。而且这些缺点似乎在与日俱增,”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

来自: Linux人社区
20
16
评论 共 48 条 请登录后发表评论
48 楼 zhhaogen 2010-09-18 22:38
chrislee1982 写道
讲了这么多,无非是在推荐GO语言而已。无聊。

go也不觉得怎么简洁啊
47 楼 zdx3578 2010-09-03 10:07
erlang 更简洁吧!!
46 楼 lzy.je 2010-07-29 15:46
只能尽量减小偶然复杂性,本质复杂性没发通过语言解决。
45 楼 bittercoffee 2010-07-28 10:14
webeasymail 写道
最郁闷的是java的泛型、map和list的定义!

那是你不懂
44 楼 rocwon 2010-07-28 09:28
JavaScript是为避免C++和Java不断增长的复杂性,而在过去十年里被开发出来的一批语言中的一支。
-------------
这在扯淡吧
43 楼 七月十五 2010-07-28 08:43
一日,Google抱着他的孩子Go上了辆公车。邻座见Go生得丑陋,不停的偷笑。Google非常生气的对司机说:“你看,他在笑我的孩子”。司机回道:“那你去揍那家伙吧,我帮你抱着你手上的丑猴子”。
42 楼 qdzheng 2010-07-27 20:37
在多年的职业生涯中,我用过C,C++,Pascal,Java,Javascript,Python,Basic,..., 我切实的感觉在所有语言中,只有ASM是最简单的。
41 楼 xo_tobacoo 2010-07-27 20:32
你只用你需要的部分,又没叫你从头到尾除,做任何东东用java的所有东西。这些人不搞笑不
40 楼 ray_linn 2010-07-27 18:02
就Go语言而言,其语法就是丑陋版的C#或者Java
39 楼 熊笨笨 2010-07-27 17:19
我还是热爱java
38 楼 ray_linn 2010-07-27 17:10
mathgl 写道
ray_linn 写道
就拿C#和Java来说,语言本身并不是太复杂,复杂的是那些类库,比如nio,比如WCF..


C#现在很有些C++的味道呀...语法糖很好玩



Ruby有点C++的味道,比如mixin就等于多根继承,re-open等于友元。。。
37 楼 chrislee1982 2010-07-27 14:59
讲了这么多,无非是在推荐GO语言而已。无聊。
36 楼 mathgl 2010-07-27 14:48
ray_linn 写道
就拿C#和Java来说,语言本身并不是太复杂,复杂的是那些类库,比如nio,比如WCF..


C#现在很有些C++的味道呀...语法糖很好玩
35 楼 12345678 2010-07-27 14:22
唉,如果真到了语言太简单的那天真不知道我这个程序员该如何生存了。。
34 楼 wjm251 2010-07-27 14:21
xuby 写道
这种论调唱了好多年了。
但只要我们用的计算机还是冯诺依曼结果,C语言就不会退出主流。

这两个没必然联系
33 楼 lost_alien 2010-07-27 13:06
现实业务越来越复杂,语言当然不得不跟着复杂,要怪就怪你们这些商人吧。。。整天胡乱想些点子。。。
32 楼 rambosir 2010-07-27 12:52
“我觉得这些语言太难用了,太精细,太复杂,太冗长。而且这些缺点似乎在与日俱增,”Pike说,“它们被过度接受,被用得太广了。”

不知道是夸还是讽。
31 楼 liuzhaomin 2010-07-27 12:42
呵呵,那是因为java用的更加广泛。
30 楼 xuby 2010-07-27 11:41
这种论调唱了好多年了。
但只要我们用的计算机还是冯诺依曼结果,C语言就不会退出主流。
29 楼 weiqiang.yang 2010-07-27 11:25
beeke 写道
公司的Gmail服务完全是由JavaScript写的,总代码全长443,000行,全部手写

如果是客户端肯定不需要这么多代码
难道服务器端也是用js写的?


如果是客户端肯定不需要这么多代码
--
这个不一定,首先,这里的44w行是未压缩的,然后你可以打开gmail页面,看它加载的js文件,是一大堆高度压缩的js,我觉得还原之后44w行应该是有的

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

Global site tag (gtag.js) - Google Analytics