- 浏览: 241055 次
- 性别:
- 来自: 火星
文章分类
最新评论
-
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 789在互联网时代,苹果不具备一骑绝尘的实力;这也不是时代的主流。I ... -
Google在搞什么?思维信息化?
2010-08-07 19:40 91511月26日消息,谷歌方面下午宣布对在线翻译工具进行改版,并增 ... -
谷歌强项,互联网情报检索分析
2010-08-02 11:05 1143据美国杂志《连线 ... -
Google开始着手统一的android UI
2010-06-27 13:52 802自从2008年第一款Android手机G1问世以来,Andro ... -
谷歌发明新型太阳能反光技术
2010-06-13 14:26 692据国外2月26日电,谷歌公司绿色能源项目负责人比尔.威尔周五宣 ... -
谷歌,Chrome Web Store
2010-05-21 10:25 740北京时间5月20日消息, ... -
谷歌大胃王,欲占领所有渠道--谷歌电视
2010-05-21 10:22 730北京时间5月21日消息, ... -
疼就叫,但容忍创新有失误
2010-05-17 09:49 707谷歌街景车竟然“偷”数据 中新网5月16日电 据新 ... -
手机电视新闻
2010-05-01 05:14 6624月30日消息,据国外媒体报道,有消息称谷歌将于5月份推出基于 ... -
iGoogle个性化首页全新改版--慎重隐私!
2010-04-22 04:01 1051如题。上图。但是,现在不用谷歌帐号登录不能使用了。 ... -
云计算需要多少台服务器?
2010-04-18 03:23 1075一份由INTAC公布的图像显示了主流的高科技公司专用服务器的大 ... -
Oracle须担负起发展java的重任
2010-04-18 03:06 561甲骨文收购Sun之后,业界对MySQL、Solaris以及Ja ... -
谷歌平板电脑操作系统界面原型图
2010-03-31 00:09 1395Chromium官方网站公布谷歌平板电脑操作系统界面图 ... -
Google香港office
2010-03-28 01:10 828Google在香港的office -
Motorola & Android系统
2010-03-26 16:49 935从1928年高尔文公司创立 ... -
谷歌新开源项目ANGLE
2010-03-25 01:22 1008谷歌宣布新的开源项目ANGLE:让WebGL内容渲染不再依赖O ... -
Google,深得“人民战争”之要义
2010-03-25 01:16 677泄密?谷歌街景地图曝光英特种部队军事基地(图) 在谷歌“ ...
相关推荐
<<page 1>> page begin==================== 目 目目 目 录 录录 ... 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念的一天 这一天 微软公司正式推出了其下一代...
1. **C#编程语言基础**:C#是一种面向对象的编程语言,由微软公司开发,广泛应用于Windows平台上的软件开发。在C#中,类、对象、接口、继承、多态等概念是基础,理解这些概念有助于更好地利用Halcon进行编程。 2. *...
本话题将聚焦于如何利用C#编程语言与Halcon进行联合开发,创建一个通用的视觉框架,为初学者提供学习和实践的平台。 首先,C#是一种面向对象的编程语言,由微软公司开发,广泛应用于Windows应用程序、游戏开发、...
标题中的“河北联合大学.net代码”表明这是一组与.NET框架相关的编程代码,可能是由河北联合大学的学生或教师编写的教学实例或者项目实践。描述提到这些代码是使用Visual Studio 2010开发的,使用了Windows Forms...
1. **C#编程语言**:C#是一种面向对象的编程语言,由微软开发,广泛用于构建Windows桌面应用、Web应用以及游戏开发。在这个项目中,C#作为主要的开发工具,用于编写控制程序,实现与硬件设备的交互,处理图像数据,...
在IT行业中,C#是一种广泛使用的面向对象的编程语言,尤其在开发Windows应用程序和服务器端应用方面具有显著优势。在工业自动化领域,C#结合OPC(OLE for Process Control)技术,可以实现与PLC(可编程逻辑控制器)...
在.NET平台上,Entity Framework(EF)是微软提供的一款强大的对象关系映射(ORM)框架,它允许开发者使用C#等编程语言来操作数据库,而无需深入SQL查询的细节。EF6是该框架的一个版本,提供了许多增强的功能和性能...
1. **Visual Studio 2010 (VS2010)**:这是一款由微软开发的IDE,广泛用于C++、C#和VB.NET等语言的开发。在本项目中,VS2010作为主要的开发平台,提供了项目管理、代码编辑、编译调试等一系列功能,便于开发者构建和...
F#语言是.NET框架的一部分,由微软开发并维护,旨在提升程序员的生产力和代码质量,尤其在处理复杂计算和数据处理任务时表现优秀。 F#的设计灵感来源于ML语言家族,同时吸取了其他编程范式的精华,如面向对象和命令...
R(D)COMServer是由Vienna University of Technology和University of Vienna联合开发的一个组件,旨在帮助开发者将R语言的功能集成到基于Windows的应用程序中。该组件提供了免费版和商业版两种选择,其中免费版适用...
C#是一种面向对象的编程语言,由微软公司开发,广泛应用于Windows平台上的应用程序开发。它支持.NET框架,提供了丰富的类库和强大的类型系统,使得开发过程更为高效。 接下来,我们来看看如何在C#项目中引入Halcon...
鲁赫能够与用户进行智能对话,不仅提供相关回应,还能理解和适应用户的社交需求,比如分享情感或对用户内容作出反应。它还具备识别并处理侮辱性语言、敏感话题和控制行为的能力。鲁赫已与超过200万真实用户进行互动...
C#是一种面向对象的编程语言,由微软公司开发,广泛应用于Windows平台的软件开发,包括桌面应用、游戏开发以及服务器端应用。其语法清晰,类型安全,并且支持.NET框架,这使得它非常适合构建复杂的机器视觉系统。 ...
7. **现代Web开发趋势**:随着Web技术的发展,如JavaScript框架(React、Vue等)和WebAssembly的兴起,HTML与DLL的联合编程已逐渐减少使用。现代开发更倾向于将业务逻辑放在服务器端,通过API与前端交互,或者使用...
C#和MySQL的联合编程就是将微软的C#编程语言与MySQL数据库系统相结合,以实现应用程序对数据库的有效管理。本文将详细介绍如何利用MySQLConnector/Net在.NET应用程序中实现与MySQL服务器的通信,以及开发数据库应用...
C#具有良好的类型检查、垃圾回收机制以及对.NET框架的深度集成,使得与Halcon的结合变得非常便捷。 在本项目“MultiThreading”中,我们关注的是多线程技术。多线程允许程序同时执行多个任务,提高CPU利用率,尤其...
这种演进背后的驱动力包括跨模态任务的需求、跨模态数据的融合以及对人类智能的模拟。 2. 多模态AI的应用扩展 多模态AI的出现极大地扩展了应用场景,例如,它可以在语音-文本转换、视觉问答、情感分析等领域发挥...
而C#作为微软.NET框架下的主流编程语言,具有易学易用、跨平台等优势,为开发者提供了便捷的开发环境。将两者结合,可以创建出高效、灵活的机器视觉解决方案。本篇文章将深入探讨基于C#开发的halcon联合标定工具——...