`
897371388
  • 浏览: 528963 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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

AD:2013大数据全球技术峰会课程PPT下载

谷歌高管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说。

分享到:
评论

相关推荐

    Linux之父炮轰C++是糟糕程序员的垃圾语言

    这场争论的主角之一,微软的Dmitry Kakurin有一句话非常正确:“这是一种信仰问题。因此,任何讲道理和争论都会无穷无尽,而且也毫无意义……”

    LINUX之父炮轰说

    LINUX之父炮轰C++.。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    星辰急便总裁陈平炮轰电商自建物流.docx

    星辰急便总裁陈平炮轰电商自建物流.docx

    android语音识别两种方法(讯飞+google)

    我之前用google的语音识别一直不行,后来才发现我的google语音服务控件给我删了,安上过后就可以了。经兄弟介绍说,讯飞的语音识别相比google更稳定,所以也下载了一个。这里的工程都是网上下载的,为了以后方便找,...

    用类封装的战舰小游戏

    本程序模拟了一个炮轰战舰的小游戏,战舰由三块组成,随机生成,炮弹由用户输入。击沉则告之,并显示最终分数,仅作为C++入门新手对类的封装的熟悉之用

    让荣耀和小米高管互掐的ToF技术究竟是什么?

    这不,荣耀和小米两边的高管前几天就打起了嘴仗。  先是荣耀手机的副总裁熊军民发了条微博,晒了晒肌肉。    没过多久,小米集团的副总裁卢伟冰就看不下去了,直接炮轰荣耀近重点推技术是噱头,骗用户...

    二十三种设计模式【PDF版】

    于原著都是以C++为例, 以Java为例的设计模式基本又都以图形应用为例,而我们更关心Java在中间件等服务器方面的应用,因此, 本站所有实例都是非图形应用,并且顺带剖析 Jive论坛系统.同时为降低理解难度,尽量避免使用 ...

    真正免费,好用的SD、TF卡数据恢复软件,带注册文件,不能用炮轰我。

    真正免费,好用的SD、TF卡数据恢复软件,带注册文件,不能用炮轰我。 为数不多的真正免费可用的SD卡数据恢复软件,百度上的那些什么SD卡数据恢复软件免费版,超级XXXX试用版 都TM得坑爹。

    大炮轰小鸟

    一个flash as2.0编写的小游戏,可以提供给需要的朋友参考

    23设计模式简讲

    如果你不能很好的延伸J2EE的思想,那你岂非是大炮轰蚊子,认识到J2EE不是适合所有场合的人至少是明智的,但我们更需要将J2EE用对地方,那么只有理解J2EE此类框架软件的精髓,那么你才能真正灵活应用Java解决你的问题...

    该是普及G语言的时候了——LabVIEW学习

    Linux之父炮轰C++:糟糕程序员的垃圾语言 C语言已经死了,5个需要忘却它的理由 看看9种编程语言的发明者是怎么说的 顺应时代没有不好,但是时代在变,大家在顺应着的“时代”是真正的时代吗? 模糊!就停下来,停...

    炮轰“测试左移”,向软件测试领域的“歪理邪说”宣战

    由于一些人或组织有心或者无心的制造一些焦虑,让软件测试的从业者尤其是刚入行的软件测试工程师,对软件测试本身的意义,以及软件测试职业的发展、技术路径、充满了疑虑!在 为什么会有这么一个话题呢?...

    一次性施肥对春玉米产量和环境效应的影响

    一次性施肥对春玉米产量和环境效应的影响,杨俊刚,高强,采用田间试验,比较了农民习惯施肥、一炮轰和缓释一次施肥3种施肥措施对玉米产量和土壤残留NO3-N以及氮素表观损失的影响,结果表明

    KC网络电话辅助呼叫

    KC网路电话辅助呼叫 软件自动重播,挂断KC网路电话

    卡尺:用于测量图像和PDF尺寸的Node.js库

    构造Calipers的目的是提供一种比炮轰ImageMagick更快,更省资源的方法来确定图像或PDF的尺寸。 在我们必须在API请求有效期内验证图像和PDF的大小。 最简单的方法是将Shell封装到ImageMagick中,以识别文件的类型和...

    宇润xv格式视频转换工具

    真正免费版,迅雷视频转换,好用,不能用炮轰我

    英文文献1

    小贴士到第 3 章刷新上设置你的路径语句,使用的内存,请参阅命令行工具。一旦你炮轰到服务器,你需要定位到数据库将保留的位置。安卓系统的所有 SQLite 数据库

    pactman:契约管理(模拟,生成和验证)

    关键区别在于所有功能都是在Python中实现的,而不是炮轰或分叉到ruby实现中。 这样可以提供更好的模拟用户体验(直接模拟urllib3),更快,更简单的配置(多个提供程序意味着在不同端口上产生多个ruby进程)。 在...

    scratch编程项目源代码文件案例素材-[僵尸大战1.4].zip

    scratch编程项目源代码文件案例素材-[僵尸大战1.4].zip

    authorware7.0 作品--士兵突击

    这是我们课本附赠光盘的 精品赏析 士兵突击的 绝对好资源 如果下了感觉资源不好 你可以直接加我QQ:451092524 来炮轰我

Global site tag (gtag.js) - Google Analytics