我将在这里揭示我的无知,但在我的辩护中,我是一名会计专业,而且我从未上过计算机科学课。
我即将开始一个新项目,我正在考虑使用Python而不是PHP,即使我对PHP更擅长,因为我听说Python是一种更强大的语言。这让我想知道,是什么让一种编程语言比另一种编程语言更强大?我认为javascript不是很强大,因为它(通常)在浏览器中运行。但是,为什么Python比PHP更强大?在每种情况下,我都在向计算机发出指令,那么为什么某些语言更好地解释和执行这些指令呢?我怎么知道具体项目实际需要多少“力量”?
答案 0 :(得分:8)
当保罗格雷厄姆谈到Lisp是最强大的语言时,他的意思是最具表现力。您可以用任何图灵完整语言表达任何程序。这就是重点。使一种语言比另一种语言(对于特定任务)更好的原因是它能够更简洁或清晰地定义给定程序。对于大多数编程任务而言,这才是最重要的。
偶尔(我的意思是偶尔)性能开始发挥作用,并且诸如能够在程序中轻松嵌入汇编语言的功能很重要。但在大多数情况下,它是关于能够清晰简洁地表达您的想法的能力。
答案 1 :(得分:4)
我讨厌那种语言“语言X比Y更强大”。真正的问题是哪种语言使你更强大。如果语言X允许你比Y更快地编写更好的代码(有效),是的,X更“强大”。
如果你正在寻找对语言强大的客观解释......那么,祝你好运。
答案 2 :(得分:4)
这不是一个权力问题,而是你想要做什么以及你如何去做的事情。你可以说Python“更强大”,因为它带有大量的内置库,或者C ++“更强大”,因为它更快,或者Haskell“更强大”,因为它使用了懒惰的评估 - 简而言之,这真的是一个意见问题。但是我没有看到很多用PHP编写的桌面应用程序,我没有看到用C ++编写的Web应用程序(当然也可能有例外)。
有些语言只提供执行某些任务的“优雅”方式。例如,查看Haskell中的阶乘函数:
factorial 0 = 1
factorial n = n * factorial (n-1)
有些人可能会认为这种优雅主要是因为它清楚地反映了数学定义。但这个比其他实现更好吗?不。(特别是因为这会溢出堆栈。)
总之,使用您认为最适合您的任务 - 如果您最擅长使用PHP,并且您不想学习Python,那么就不要这样做。如果您对它的内容感兴趣,请查看它。不要学习它,因为它“更强大。”
答案 3 :(得分:1)
我不会说计算机语言“更强大”,只是更适合您特定问题域的语言。
也就是说,PHP是一种从黑客演变而来的语言,专为非常具体的问题领域而定制;这显示在几个地方,例如跨数据库接口的参数顺序不一致。随着时间的推移,IMHO PHP社区为新的语法增强做出了一些非常悲伤的决定。
恕我直言Python更通用,设计精良,更优雅,但你的问题通常是启动火焰战争。
答案 4 :(得分:0)
股票答案是使某些语言比其他语言更强大的唯一功能,这些功能是添加库无法轻易替换的语言功能。
这个定义几乎总是列出顶部的LISP,但是除非特别注意排除它,否则列出顶部组件的奇怪副作用。
答案 5 :(得分:0)
这是一个有趣的话题,在我的话语中,我经常遇到这个问题。但是我发现字面意义上的“权力”在语言方面不再具有价值。我担心那些告诉你'python更强大'的人正在混淆语言和实现。
我最近转换为python(过去2周)以前我是PHP编码器。基于python语言编写的库 - 即django -help使语言更强大 - 因为它使用和构建的速度更快。
如果你想做某事,PHP就有了这个寓言。它有一个功能'并且文档很棒 - 因此在这个意义上是强大的。
关于解释语言 - 再次依赖于谁编码它 - 无论如何。通过共识,python可以被认为更快,更少CPU密集,它是否创建了代码的编译版本。但PHP可以有一个很好的缓存系统。
简而言之 - 选择你最喜欢的。