阅读更多

20顶
16踩

行业应用

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

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

谷歌高管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 条 请登录后发表评论
28 楼 faylai 2010-07-27 11:17
的却是广告软文,go 只能在Linux 上跑
27 楼 wenjixiao 2010-07-27 11:12
我倒是同意这种说法,java也很麻烦,c++就更不用说了,确实复杂。
26 楼 wangying95599 2010-07-27 10:49
google自己拿go开发几个项目再说
25 楼 Wallian_hua 2010-07-27 10:38
广而告之~
24 楼 webeasymail 2010-07-27 10:27
最郁闷的是java的泛型、map和list的定义!
23 楼 skydream 2010-07-27 09:56
java的复杂性在jdk1.5发布之后明显上升了,未来如果闭包,模块化等新特性加入,肯定还要继续增加复杂性。

似乎很难在功能强大和简洁之间做到平衡。

Go算是google的一个尝试,但是目前看来,效果似乎不是很好。
22 楼 beeke 2010-07-27 09:56
公司的Gmail服务完全是由JavaScript写的,总代码全长443,000行,全部手写

如果是客户端肯定不需要这么多代码
难道服务器端也是用js写的?
21 楼 messiFCB 2010-07-27 09:55
各有各的用处,何必呢
20 楼 ray_linn 2010-07-27 09:50
就拿C#和Java来说,语言本身并不是太复杂,复杂的是那些类库,比如nio,比如WCF..
19 楼 favey 2010-07-27 09:29
广而告之,是为广告!
18 楼 mathgl 2010-07-27 09:17
liyaxi 写道
真的有功能强大又超 easy 的语言吗?  google 的go 语言的广告!

没这回事。。。

andy说过:因为要解决的问题很复杂,所以用到的工具也不是简单的
17 楼 lkj107 2010-07-27 09:05
最简单的就是01,省键盘,无鼠标

软件不复杂,怎么能够推进硬件的发展
16 楼 liyaxi 2010-07-27 08:54
真的有功能强大又超 easy 的语言吗?  google 的go 语言的广告!
15 楼 AlwenS 2010-07-27 08:37
c++ 和 java在语言本身的复杂性不在一个级别上。

c的话,不叫复杂,叫原始,接近assemble的原始。
也因c的原始给各种xx机制的实现带来了困难。
14 楼 redK 2010-07-26 23:27
资本主义的五毛。。。
13 楼 CharlesCui 2010-07-26 22:54
C复杂么?不明白为什么觉得C复杂
12 楼 tuoxie007 2010-07-26 21:51
那我们该用啥?GO?
11 楼 zsxxsz 2010-07-26 20:44
go 语言看上去也不见得高明哪儿去,其实D语言确实不错,很多语言的优点在D里都有,只可惜D这么长时间还没稳定下来,呵呵
10 楼 mathgl 2010-07-26 17:44
steeven 写道
我看他是微软的卧底,分明在给C#做广告

如何看出??

Rob Pike有没有用过ms的系统都还是个问题
9 楼 steeven 2010-07-26 17:38
我看他是微软的卧底,分明在给C#做广告

发表评论

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

相关推荐

  • 纯转发:谷歌高管对Java、C++的复杂性不满

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

  • Google高管炮轰Java和C++过于复杂

    Google高管Rob Pike在开源大会上公开表示Java和C++过于复杂,太精细太难用了。难道Google是想渡推自己的Go语言?

  • 编程命名规范 C++(Google)& Java(阿里)

    C++ 文件命名规则 文件名全部小写,可以含下划线或连字符,按项目约定命名,且尽量保证文件名明确。比如: cmd_save_player_info_class.cc my_use_full_class.cc 定义类的文件名一般是成对出现,如: foo_bar.h ...

  • Go语言创始人对Java、C++的复杂性不满

    Go语言创始人对Java、C++的复杂性不满 开发者在线 Builder.com.cn 更新时间:2010-07-28作者:csdn.net 来源:csdn.net 本文关键词: 复杂性 c++ JAVA 谷歌高管Rob Pike 在OSCON 开源大会上打开了简化式编程语言...

  • 开发语言特性对比 java python golang c# c++

    java的跨平台+c#的ide和语法+python的库+c++语言的性能+go语言的协程 python和java比 运行速度比java慢,java强大于改进n次的强大jre,但python在很多领域能调用很多现成的开源库,在数据分析中有优势,pyhton的...

  • 谷歌C++编程规范

    Google 经常会发布一些开源项目, 意味着会接受来自其他代码贡献者的代码. 但是如果代码贡献者的编程风格与 Google 的不一致, 会给代码阅读者和其他代码提交者造成不小的困扰. Google 因此发布了这份自己的编程风格...

  • C语言、C++、Java,Python之间的区别,哪个更有前景,哪个更难 ?

    从这四种语言的难度、受欢迎度还有作用以及优点缺点给大家做一个全面的分析,我们可以从中了解其区别,以及难易程度...C语言、C++、Java,Python之间的区别 一、C语言开始 难度★★★★ 欢迎度:★★★★★ 创始..

  • Java:Java和C++哪个更好

    Java 和C++哪个更好是一个非常热门的话题。Java 和C++都是面向对象的编程语言。C++ 是 C 的高级版本,而Java是在可移植的虚拟机上开发的。

  • 深入理解一致性与 C++ 内存模型

    本文旨在对计算机科学下的一致性模型以及 C++ 的内存模型做一个系统的、深入浅出的介绍。一共 3 个 章节:第 1 章介绍一致性模型,第 2 章介绍 C++ 内存模型,第 3 章是参考资料...

  • Google:C++、Java、Scala、Go四种语言性能对比

    谷歌发布了一个研究报告,仔细比较了C + +、Java、Scala和谷歌自己拥有的Go编程语言的性能。根据谷歌的测试报告(PDF格式),C + +是四种语言中运行速度最快的。但是该文件同时也指出,优化代码相对困难,这需要相当...

  • C/C++编程工具及实用小软件推荐

    本文详细介绍C/C++常用开发工具Visual Studio和QT Creater、代码查看编辑工具Visual Studio Code和Source Insight,以及两个实用小工具Notepad++和Everthing。

  • Android C/C++层hook和java层hook原理以及比较

    c/c++层与java层hook的对比 目前的android hook方式具有以下缺点: 实现复杂:需要支持各种开发环境,eclipse android studio,各种自动化编译工具,每种都比较复杂,开发和维护成本都比较高。需要支持各种用户使用...

  • C/C++开发人员要了解的几大著名C/C++开源库

    本文详细讲述C/C++开发人员需要了解的几大著名C/C++开源库。

  • C++没落了?学习C++没有前途了?从业者给你揭晓答案

    C++没落了?学习C++没有前途了?从业者给你揭晓答案,并进行深度解析

  • C++软件开发值得推荐的十大高效软件分析工具

    C++软件开发值得推荐的十大高效软件分析工具

  • python、golang、java、c++如何选择?各有什么优缺点!

    python、golang、java、c++如何选择? 四门语言的简单介绍 (1)Python难度:★ 欢迎度:★★★★☆ 创始于:1991年 学完之后可以干什么:web开发、应用开发、大数据、数据挖掘、科学计算、机器学习、人工智能、运维...

  • Google终于开始革C++的命了!

    微软通过TypeScript 革了JavaScript的命苹果用Swift革了Objective-C的命JetBrains 用Kotlin 革了Java的命现在,Google终于要拿C++开刀了。这个黑色圆圈中的C可不是C语言,而是叫做:Carbon为啥Google要搞一个Carbon...

  • java/Python这么火,c++这么难,为什么我们还要选择用C++?

    java/Python这么火,c++这么难,为什么我们还要选择用C++?C++ 的意义什么时候该用 C++?问题来了:你在开发上额外付出的时间,能从性能上省回来吗?如何学习 C++?资料整理 C++ 可算是一种声名在外的编程语言了。这...

  • linux基础进阶笔记

    linux基础进阶笔记,配套视频:https://www.bilibili.com/list/474327672?sid=4493093&spm_id_from=333.999.0.0&desc=1

  • IMG20241115211541.jpg

    IMG20241115211541.jpg

Global site tag (gtag.js) - Google Analytics