|
|
1
28
它没有明确的含义。在这些类型的讨论中,“语言x比语言y更强大”,通常意味着“我喜欢语言x比语言y”。在另一方面,你通常也会有人对任何图灵完整语言如何能够完成与任何其他图灵完整语言相同的任务产生共鸣,从而使严格来说,R比另一个更强大。 我认为它的一个很好的意义是表现力。当一种语言表现力很强时,它意味着表达概念所需的代码更少。对我来说,这不仅意味着要完成相同的任务,你必须写更少的代码,而且代码很容易被人阅读。当然,总的来说(在一定程度上),要阅读的代码行更少,这使得人类阅读和理解的任务更容易。 拥有一个“强大的”标准库在这里也会以同样的方式发挥作用。如果一种语言配备了彻底的、完整的库,那么该语言中的惯用代码将能够从现有库代码中获益,而不必在应用程序代码中重复或重新设计通用功能。最终的结果是,为了完成相同的任务,必须写和读更少的代码。 我一直说“一般”和“有点”,因为一旦一种语言变得过于简练,人类就很难破译。我认为在这个极端,一种语言可能仍然被认为是“更强大”(甚至“太强大”)。所以我想我是说,我个人对“强大”的理解也包括“有用”和“可读”的一些方面。 |
|
|
2
22
C是强大的,因为它是低级别的,并且允许您访问硬件。Python非常强大,因为您可以快速生成原型。Lisp功能强大,因为它的repl为您提供了极好的调试机会。SQL很强大,因为您可以说出您想要的内容,DMB将为您找到最好的方法。Haskell很强大,因为每个功能都可以单独测试。C++是强大的,因为它是任何人需要或使用的句法结构数量的十倍。APL非常强大,因为它可以将十屏程序压缩成十个字符。该死,科博很强大,因为…为什么所有的银行都会使用它?:) |
|
|
3
11
“强者”没有真正的技术意义,但很多人提出了建议。 一些更有趣的:
作为一个了解和使用许多编程语言的人,我相信语言之间存在真正的差异,“能力”可以是描述一种语言比另一种语言更好的方式的一个方便的速记。然而,每当我听到一个讨论或声称一种语言比另一种语言更强大时,我总是把一只手牢牢地放在钱包上。 |
|
|
4
8
在编程语言中描述“能力”的唯一有意义的方法是“能用最少的资源做我需要的事情”,其中“资源”被定义为“我宁愿不付出任何代价”,因此可以是开发时间、CPU时间、内存空间、金钱等。 所以基本上,“权力”的定义是纯主观的,在任何客观的讨论中都没有意义。 |
|
|
5
6
强大意味着“强大”。“力量”是增强你做事能力的东西。东西的形状、大小和其他方面都不同。因此,不严格地说,当应用于编程语言时,“强大”意味着它可以帮助您快速高效地执行任务。 这使得“强大的”在定义上有些明确,但在域之间不是恒定的。一种在一个域中很强大的语言可能会在另一个域中瘫痪,例如,如果你想进行系统级编程,C是非常强大的,因为它可以让你直接访问机器、硬件和结构,使你的代码比你在汇编时快得多。C编译器还生成运行速度很快的紧凑代码。然而,一旦你转向Web应用程序,C会变得非常“没有动力”,并且非常严重,因为它需要花费大量的精力来启动和运行一些东西,而且你必须担心很多无关的细节,比如内存等。 有时,语言在多个领域中是“强大的”。这给了他们一个通用的“强大”的标签(或徽章,因为我们是在这里)。PG声称Lisp就是这样。这可能是真的,也可能不是。 在一天结束的时候,“强大”是一个很有意思的词,所以你应该评估谁在说它,为什么他在说它,它对你的工作意味着什么。 |
|
|
6
4
人们真正担心的只有两种含义: “强大”的意思是“花费更少的资源(时间、金钱、程序员、LOC等)来实现相同/更好的结果”,而“强大”的意思是“能够完成广泛的任务”。 有些语言对于小范围的任务非常有效。其他的并没有那么有效的资源,但可以应用于广泛的任务(例如,C,它通常用于操作系统开发、编译器和运行库的创建以及微控制器的工作)。 当某人使用“强大”一词时,这两个意思中的哪一个取决于上下文(即使这样也不总是很清楚)。事实上,这常常是两者兼而有之。 |
|
7
4
通常有两种不同的含义:
对于大多数语言来说,这两个定义位于频谱的两端: 蟒蛇 表现力很强,但不是很低; C 是非常低的水平,但不是很有表现力。根据您选择的定义,任何一种语言都是 强大的 或 不强大 . |
|
|
8
2
它可以有多种含义。从最基本的意义上说,就可计算的内容而言,存在着力量。从这个意义上讲,最强大的语言是 Turing Complete 它几乎包括所有通用编程语言(与大多数标记语言和领域特定语言相反,这些语言通常不图灵完整)。 在更实际的意义上,它通常指的是你如何简洁(和可读)地做某些事情。与另一种语言相比,用一种语言完成某些任务基本上是多么容易。 什么语言更强大(除了有点主观)很大程度上取决于你想做什么。如果你的要求是在一个64K内存的小设备上运行某个设备,那么你很可能不会使用Java。很可能正确的语言是C或C++(或者如果你真的是硬核汇编)。如果你需要在1天内完成一个非常简单的CRUD应用程序,也许像Ruby on Rails这样的应用程序是可行的(我知道Rails是一个框架,Ruby是一种语言,但是现在库和框架是可用的,这对选择一种语言有很大影响)。 |
|
|
9
2
什么都没有,绝对没有。 对于高级程序员来说,这可能意味着内置了大量可用的数据类型。或者抽象以轻松地创建或遵循设计模式。 保罗·格雷厄姆是个很高层次的人,他必须说: http://www.paulgraham.com/avg.html Java的人可能会告诉你一些便携性,每个平台的能力。 C/Unix程序员可能会告诉您,它的速度和效率,完全控制了每一寸内存。 vhdl/verilog编程人员会告诉你它对每一个时钟和门的完全控制,以免浪费任何电或时间。 但在我看来,“强大的语言”支持您完成任务的所有功能。文档可能很重要,也可能是可移植性,或者是图形处理能力。它可以是任何东西,从程序集编写一个图形用户界面是愚蠢的,所以尝试在flash中设计一个嵌入式处理器也是愚蠢的。 选择一种完全符合你需要的语言总是会让你觉得自己很强大。 |
|
|
10
2
我想,也许巧合的是, physics definition of power 与此相关:“执行工作的速率。” 当然,烤面包机不能很快完成灭火工作。类似地,编程语言的功能不是通用的,而是特定于应用它的领域或任务的。C是用于编写设备驱动程序或更高级语言实现的强大语言;Python是用于编写通用应用程序的强大语言;xpath是用于在结构化数据集上编写查询的强大语言。 因此,给定一个问题域,语言的力量可以说是 一个有能力的程序员能够用它来解决该领域中的问题的速率。 . |
|
|
11
1
我把这个词看作是市场营销上的一团乱麻,没有一个明确的含义。 如果你考虑,例如,汇编程序,C语言和C++语言。在某些情况下,一个从C++“向下”下降到C,以满足特殊需要,然后从C向下到汇编程序。所以这使得汇编程序最强大,因为它是唯一可以做任何事情的语言。或者,换言之,一行C++代码可以代替几个C(例如,通过函数指针隐藏多态性调度),而C的一行代替了许多汇编程序。所以C++更强大,因为一行“多”。 我认为,当早期数据库和电子表格等产品使用内置语言时,这个术语有一定的通用性,有些则相当有限。因此,供应商们会吹嘘他们的语言是“强大的”,因为它不受限制。 |
|
|
12
1
一个精确的答案可以通过不假设定义“强大”的元素(在语言的上下文中)来自如此多的维度来达到。 看看会有多少,很多会丢失:
这些和更多的参数将“某种语言的编程”在X级别上的情况绘制成X图。这将是唯一的定义,虽然,唯一真正的知识是与实际使用语言的实践,但我离题了。 问题归结为 哪个参数代表语言的内在质量 . 如果你提到 语言 其最终的内在目的是 “表达事物” 因此最具代表性的参数是正确的 表现力 当有人谈论一种语言有多强大时,也会经常引起共鸣。 目前,你试图扩大问答范围,使之涵盖的不仅仅是语言的表现力“作为一种语言,作为一种语言”,你更多地是在谈论不同类型的“环境”、社会环境、发展环境、商业环境等。 根据要定义的环境的复杂性,您必须混合来自多个、大量、重叠的、有时是相互矛盾的维度的更多参数,最终获得定义的点将丢失,或者问题将不得不缩小。 这种近似仍然不能回答“什么是表达性语言”,但是,同样,一个共同的理解是Vinet在其答案中很好地指出的定义,以及评论中的森林评论。我同意,对我来说,“表达”就是“传达意义”。 |
|
|
13
0
我记得大学里有很多老师都说他们教的任何语言都是“强大的”。 让我想到: 强大的= 相对项 比较最新的编码方式与原始或以前的编码方式。 |
|
|
14
-1
我认为电源通常指的是它能处理数据的速度,例如,我发现在Python中,一旦列表超过了大约2000的长度,它就变得难以忍受地慢,而在C++中,一个列表可以很容易地包含20000个条目而不这样做。 |
|
|
Sudhanva c · 如何提高编码技能?[已关闭] 8 年前 |
|
|
hoffm · 为什么Ruby找不到调用方类中定义的常量? 8 年前 |
|
|
Thamme Gowda · “lambda”关键字的较短替代项? 8 年前 |
|
|
AlphaModder · 有没有带有“不寻常”访问修饰符的编程语言? 10 年前 |
|
|
lucasasecas · 有可能静态地使用动态语言吗? 11 年前 |
|
|
Eugenio Laghi · 仅由括号、加号和感叹号组成的语言 11 年前 |
|
dallin · 数组中的逗号运算符是否有名称? 12 年前 |