
在最近的一次交谈中,有些人的结论是C不是精心设计的语言。 ç -规范,8年在我的成员我看到所有的C,该决议诞生了。我希望这将有助于读者理解的设计方案C和Java,这使得我们可以当作一般的帮助他们。
有人说,我很少使用长当我使用C,只是旧代码,或书面的进程密切相关的性能,以测试这种方法通常非常小,并提出要求。 (我认为这种做法是使用Python程序快速开发的配置文件,程序的性能优化,以协助,如果有必要的Python ctypes呼吁绩效改进书面C程序)。
由于我是在C标准委员会的成员,我看到了这些决定的出现。这些决定是C,一旦超好超过了他们的Java,值得注意的决议帐户。
但是,正如一些人这样做,C是一个复杂和困难的使用,并充满各种理由很容易忘记,奇怪的规则。当我在写这本书,我只是发现了这些规则的文字描述,而不是试图记住这些规则。
C至使人们了解语言是很难使用,复杂的,但它也是好的设计,你必须记住,这是C,设计的主要原则 - 是用C语言兼容。这是Stroupstru正确的决定,这样做将是一个C程序员很多程序中的快捷方式到C线索:此访问允许C程序员不需要任何的更改可能会在C编译器不。还有一个主要制约因素C语言,这使c创建一种强大的力量,而且还到C是巨大的痛苦和苦难。正是由于这种限制,导致了C,它的成功,也太复杂。
这架C -多合约,让那些谁不完全了解了C,Java设计师犯下愚蠢的。对于例如,他们认为,优秀的程序员可以使用操作员的失误将是非常困难的事情。但是,在C操作失误,这是必要的,因为在C分布,有栈,也是分配的希望,你只是一个爆棚运营商做不同的内存分配结束,以确保没有泄漏的小生产十分硬的!但Java是Java只有一个内存分配系统(译者注:Java是基本上希望奖使用)的类型,和垃圾收集机制,控制在Java错误,是多余的(如C#提供,操作错误和前操作为Python,Python的超载了,但在Java)。但这些年来,从Java小组一致认为,“经营者的错误,也太复杂。这样的决议或其他Java的决议,清楚地表明了Java设计人员提出的决议没有完成他们的工作,这意味着我对Java的蔑视由Gosling和他的团队做出了决议的声誉。
同样,许多例子,基本类型的表演“可能导致”。真正的原因是坚持“都有”,并在同一时间,有效的程序下,中方认为有必要建立一个后门(这包括一些热点技术的实施更有效)。噢,但事实是,你没有办法直接访问浮点处理器来执行超越函数的计算(译者注:超越功能,有业务积分排序)不是,但只用于计算软件,但原来的这种行动是可以使用浮点运算的CPU计算。我就尽量是一个问题,但我听说过的结果总是无用的回答:“这是Java的方式。”
当我写一个多么糟糕的设计一般,可以相同的答案,“我们必须与以前的(坏)决定Java的。”最后,越来越多的人已经收到了有关将军的许多困难的经验,充分的信息 - 事实上更强一般C,一贯和更好的(尤其是现在编译器错误信息越来越清楚,潘 - 这也是最好使用比以往任何时候过一次),其中严重Java的通用设计的,它是困难的,因此人们开始真正处理目前的技术,而不是一般的过程中,,这是一个有益的措施,因为它是为基础,性能不会下降不多对作为一个概念的语言,不是因为它们是自限性的语言缺陷。
事物的清单,针对这种枯燥面对Java可以显得晦暗。那么,这并不意味着Java的是语言,所以失败吗?绝对不是一般的Java程序员在垃圾桶,虚拟机,同样的错误处理模式在世界上(如果你不使用异常处理,这种不正常的区别是非常有用的,因为我“想出来的Java”虚拟4ed )。 ,其设计缺陷,爪哇,并带领我们到一个新水平在此,我们准备会见几位高级语言阶段。 (译者注:作者在这里说Java是很不成熟的,有很多时,可以指出的错误,但他的表现给了我们一个思维方式,超越了开放导致更多的高层次的语言,铺石路作为一个作家。萨季斯的iCal这里的意思。)
另一个角度来看,它被认为是C语言的先驱,许多人也认为,Java语言是一个先驱。但是,由于虚拟机,Java使得它更容易受到其他语言选项。现在,任何人都可以快速创建一个新的语言,Java的相同的功能,但由于适当和有效的地址转换是发展一种新语言的时间。 (译者注:作者在这里C是在Java虚拟机的先驱,因为它允许的表现比较差,有时不作为第二语言。作者再下的地板Java的成就。)
现在我们看到发生的一切 - 无论是像斯卡拉,或更先进的动态语言静态语言(译者注:Python或Ruby等动态语言),或新或移植,如Groovy中,JRuby和Jython的。这是未来的趋势,它上面会很高兴,因为你可以在当前的Java代码,使用这种新的语言,如有必要,你甚至可以在当地产品的Java性能瓶颈重写。
由于C将死,像,Java系统的自我毁灭,或在特殊情况下使用(或只是让支持前面的代码,如Java是发展的机制,如C将使用)。但是,Java实时点,但也是一个意想不到的对象,它作为一个Java本身是已经来发展问题时,您不能爪哇创造,而不是一个坦途。所有