程序员面试硬软技能 |常见面试题回答攻略 |校招毕业季Java,Python,C++等程序员岗均适用
“我认为这些语言太难使用了,太微妙,太复杂了,它们太冗长了,它们的微妙,复杂和冗长似乎随着时间的推移会增加,“派克说。 “他们超卖了,用得太广泛了。”
pike详细说明了这些语言的缺点,以此来描述他和其他Google工程师为他们开发的一种新编程语言所设计的目标,称为Go。
为了说明这些语言的复杂性,派克展示了一些C ++代码的例子。一个例子是变量声明几乎延伸到屏幕的整个一行。“我们如何拥有这样的东西[成为]在学校教授的计算的标准方式,并在工业中使用? “他修辞地问道。 “这种编程”非常官僚主义,每一步都必须向编译器证明是合理的,“他说,”尽管派克承认他有些face,,但他断言仍然应该问这样的问题。 C ++的出现是因为人们对低级C语言的工作感到沮丧,而Java则是为了简化C ++。然而,随着时间的推移,这两种语言都增加了新的功能,使得它们变得越来越复杂。“
噪声与复杂性有关。”Pike还补充说,这种语言是在多核处理出现之前开发的以及广泛的网络连接,所以他们不容易适应这些新的环境。
Pike不是唯一表达对传统商业级语言不满的Google员工
在上月的USENIX年会上,Gmail工程师Adam de Boor注意到该公司的Gmail服务完全是用JavaScript编写的,并且它的所有代码约443,000行都是手写的,他惊讶地注意到了这一点。他指出,虽然Java更富有表现力,但它也更加冗长。 “在这一点上,选择使用哪种语言是一个问题,”de Boor说,“JavaScript是整批语言中的一种 - 其他语言包括Ruby和Python--已在过去10年中发展起来以应对C ++和Java日益增长的复杂性。但是,虽然语法较简单,但这些语言也有其缺点,他争辩说,这些新语言往往速度较慢,不能很好地扩展,并且可能带来更多的错误,Pike阐述了这些语言。
倾向于被解释而不是被编译,这意味着以这种语言编写的程序在运行之前不会被编译,所以往往会因此而运行得更慢。它们也倾向于是动态类型的,这意味着程序员不需要指定它们的变量将保存什么类型的数据。“动态类型不一定是好的。在运行时你会得到静态错误,你应该能够“他认为,考虑到这一切,Pike将Go描述为试图融合这两种语言的最佳属性。”“Go是一种尝试将安全性和性能的静态类型语言,以及动态类型化的解释性语言的便利性和乐趣,“他补充说,”在成功之前,你必须为自己做出判断。“
观众的一个成员拉里奥古斯丁,客户关系管理软件供应商SugarCRM的首席执行官,同意派克关于C ++和Java变得太复杂的评估,尽管他指出,这种情况通常发生在所有语言随着他们发展以满足更广泛的用例而发生。
“这些语言复杂性增加的原因是因为他们使用的越多,我们发现的错误和模糊程度越高,以及消除这些歧义和错误的尝试创造了更复杂的东西,”奥古斯丁说,他有一个在软件工程和编程语言设计方面的背景
“我很欣赏他的目标,”他谈到派克的努力。 “问题是他能达到他的目标结果吗?还是随着更多人使用Go而变得越来越复杂,”Augustin说道。
Joab Jackson报道了
的企业软件和通用技术突发新闻。
。在@Joab_Jackson的Twitter上关注Joab。 Joab的电子邮件地址是[email protected]