出来的,所以强烈建议都过目一下):
译:我感觉人们过多关注了所谓“效率”以及跟随编程风格的潮流,却严重忽视了本不该被忽视的问题,如“我究竟想要构建什么样的系统”、“怎样才能使它正确”。最关键的问题永远是:“我究竟想要做什么?”和“如何才能知道我的系统是否已经完成了呢?”就拿我来说吧,我会在编写第一行代码之前就考虑测试
方案,而且这还是在我关于应当早于设计完成之前就进行编码的观点的前提之下。
译:诚然,C++非常复杂。诚然,人们迷失其中了。然而问题是,大多数人不是因为首先对自己想要表达什么有了清晰的认识只不过在去C++语言中搜寻合适的语言特性时迷失的,相反,大多数人是在不觉成为语言律师的路上迷失在细节的丛林中的。事实是,只需对数据抽象、类体系结构(OOP)以及参数化类型(GP)有一个相当一般层面的了解,C++纷繁的语言特性也就清晰起来了。
很好,我不认为我做了这样一种交易。 我想要典雅和高效率的代码。 有时我得到它。 这些二分化(在效率对正确性,效率对程序员时间,效率对高级,和cetera之间。)是伪造的。
我认为真正问题是我们(即我们
软件开发商)是在一种永久紧急状态,掌握在秸杆完成我们的
工作。 我们通过尝试、对强力的过份用途执行许多较小奇迹和许多和许多测试,但--那么经常--它不是足够。
软件开发商变得娴熟在建立合理地可靠的系统困难的艺术在不可靠的零件外面。 断枝是我们不确切地经常懂得怎么我们做了它:
系统正义类最小地转变成可接受的事。 亲自,我喜欢知道何时系统将运作,并且为什么它将。
比在是称赞的有在语言开发的更加有用的系统被视为可怕语言美丽的--许多。 一种编程语言的目的将帮助建立好系统,哪里好可以被定义用许多方式。 我简要的定义是,正确,可维护和
充分地斋戒。 美学问题,但语言一定首要是有用的; 它必须允许真实世界的程序员表达真实世界的想法简洁地和付得起。
我是肯定的为烦恶C++的每位程序员,有一个谁喜欢。 然而,我的朋友去会议,主要
报告人要求观众以举手方式表明,一个,多少个人烦恶C++和二,多少个人写了一个C++节目。 比秒钟两次有许多人在第一个小组。 表达您不知道对事的反感通常通认作为偏见。 并且,控诉人比拥护者总大声和肯定--合理的人民承认缺点。 我认为我知道更多关于问题与C++比关于任何人,但我也会如何避免他们和使用C++力量。
无论如何,我不认为它是真实的编程语言是很难学会。 例如,每本第一年大学生物课本比甚而专家级编程语言书包含更多细节和更加深刻的理论。 多数应用介入标准、操作系统、在复杂超出现代编程语言的图书馆和工具。 什么是困难的是部下的技术和他们的应用的欣赏到真实世界的问题。 明显地,多数当前语言有是多余地复杂的许多零件,但程度那些复杂与某一理想的极小值比较经常被夸大。
我们需要相对地复杂语言应付绝对复杂问题。 我注意到,英语可争论是最大和多数复杂语言在世界(被测量总数词和成语),而且一个最成功。
++在演变方法提供一个好,延长的专题研究。 C兼容性比I是期望的坚硬维护或任何人。 一部分的原因是C保留了演变,部份地引导由坚持的人, C++兼容性为C.不是必要和好。 另一个原因-- 大概更加重要--是组织更喜欢在C/C++子集的接口,以便他们可以支持两种语言以唯一努力。 这在用户导致恒定的压力不使用最强有力的C++特点和神话关于为什么应该由只有专家仔细地,少有地使用他们,或者。 与C++落后看的教学结合,导致了许多疏忽获得C++的潜在的好处作为一种高级语言与强有力的抽象机制。
问题是多么深深地集成应用那些系统附庸是。 我更喜欢通过接口代码薄层将概念上设计在隔离从部下的系统,与一个明确地已定义界面对外面世界,然后集成的应用。
有我有机会命名样式编程我最好喜欢,它将是针对类的编程,另一方面,但我不是特别擅长于发现清脆的名字。 我属于的想法-扎根于Simula和相关的设计原理-强调编译时间检查和灵活的(静态)类型系统的角色。 辩解关于节目的行为必须根源于原始代码的(静止)结构。 焦点应该在保证,不变式等等。 哪些严密被栓对那个静态结构。 这是我知道有效地应付正确性的唯一的方式。 测试是根本的,但不可能是系统和完全的