以下精彩的回帖来自C++讨论组:
Unlike other popular languages before it, like COBOL, or after it, like Perl, C++ says,
与流行语言的前辈(如COBOL)和后辈(如Perl)不同,C++语言作出如下声明:
"Ok, we all know that most computers follow a von Neumann architecture more or less, and this is not going to change for the mainstream anytime soon. If you be an engineer, I am going to give you a language of liberation. I am going to give you a language
that allows reachability to almost every conceivable point in the system space of software engineering. I am not going to tell you how to reach these points, of course, but I will allow them to be reached, with great facility, almost entirely dependent on
your skill as an engineer."
that allows reachability to almost every conceivable point in the system space of software engineering. I am not going to tell you how to reach these points, of course, but I will allow them to be reached, with great facility, almost entirely dependent on
your skill as an engineer."
“好吧,我们大家都知道大多数计算机或多或少都遵循冯诺依曼体系,作为主流这一点不会很快被改变。如果你想成为一名工程师,那我将授予你一门自由奔放的语言。利用这门语言,你将会达到软件工程领域中任何可以想象的地点。当然我不准备告诉你如何到达这些地点,不过我确信你将会很便捷地到达目的地,而这一切几乎只取决于你作为工程师的技能和素养。”
Of course, there are exceptions to this claim, like lack of lambda expressions, and more importantly, there is the assumption that the C+ + script will be compiled into a physical, von Neuman architecture, where the CPU itself is the agent of interpretation.
当然,这项声明也存在一些例外,比如说C++缺乏lambda表达式。更重要的是,以下假设也存在:C++代码将被编译进一台冯诺依曼体系的物理机器中,代码的解释执行必须依赖于CPU自身。
But despite these relatively minor assumptions, C++, like no other language, allows reachability into the entire system space, from the primitive to the frighteningly complex.
但在这些微不足道的假设之外,与任何其他语言不同的是,C++将允许你进入整个系统空间,无论这些区域是基本的还是具有骇人的复杂性。
And that is why C++ is so interesting. It's a bit like taking armed fighters, where they can choose any weapons that they can carry, and throwing them on a battlefield, and letting each fighter fight to his best abilitity, dismemberment and death included.
而这正是C++有趣的地方。这就好比那些全副武装的战士,他们能选择任何所能携带的武器并将之投放于战场,在任何一场战斗中这些战士都被允许竭尽所能,哪怕肢解甚至牺牲自己都不在限制之列。
By contrast, other languages restrict which weapons can be used, restrict the types of enemy to be fought, and during every battle, the fighters are must be housed in a giant, roving tank, fighting the enemy indirectly using joysticks (Java interpreter).
Wherever the fighters go, so must the tank (JVM or other interpreter), and when there is a special kind of monster that requires a special kind of stroke to be slain, it becomes hard, because the slayer, no matter how skilled, is stuck inside a tank.
Wherever the fighters go, so must the tank (JVM or other interpreter), and when there is a special kind of monster that requires a special kind of stroke to be slain, it becomes hard, because the slayer, no matter how skilled, is stuck inside a tank.
与此相反,其他语言不仅限制战士们所能使用的武器,而且限制与之对战的敌人的种类。在每一场战斗中,战士们都必须置身于一辆硕大无比且四处巡游的坦克之中,与敌人的战斗也不能直接进行,只能依赖于操纵杆(Java解释器)。无论战士们去哪里,坦克都必须如影随形(JVM以及其他解释器)。当战场上因出现一种特殊的怪物而需要一门特别的必杀技时,事情就会变得困难起来。因为此时的杀手,无论他的技术有多么高超,都已经死死地陷身于坦克之中。
-Le Chaud Lapin-
(作者)
诚哉斯言!于我心有戚戚焉!
Damn right! I should say I agree 100 percent with you, Le Chaud Lapin.