一些Ruby、Python、Javascript的新手程序员经常抱怨这些语言太低端了,觉得自己没有学过那些真正“高端”的编程语言。本文将详细讨论“高端”编程语言是否真的高端?我见过很多刚接触Ruby、Python和Javascript的新手程序员抱怨这些语言太低端了,好像它们在以某种方式欺骗系统。他们认为自己没有学过那些真正的“高端”编程语言。有些语言真的比其他语言更先进吗?让我们一起研究吧。从频率来看,很多编程语言在各个方面都是不一样的。但从低级机器语言到我们大多数人使用的高级语言,都离不开电频技术。低使用率的机器语言似乎并不比那些高级代码更高端或更先进。低可用性是许多语言设计者为实现特定设计目标而长期选择的。继续,这是一个用机器语言编程的例子:这段代码一旦被数字处理器解析成电信号,就可以直接操作数字传感器和电机。#之后的那些人类可读的东西会被计算机忽略——它们是程序员放在这里的,以便其他阅读这段代码的人可以知道它在做什么。感谢上帝,我们不必编写这样的代码。如果程序要控制计算机,就会转换成机器语言。但是我们创建了编程语言来取代直接用二进制、十六进制或十进制代码编写的机器语言(就像艾伦图灵和他的朋友这样的早期计算机科学家所做的那样),这帮助我们以更快更容易的方式转换你的想法成机器指令。有很多很多方法可以生成你上面看到的机器语言,所以有很多很多编程语言,但它们都在某个地方转化为电频谱。从这个角度来说,选择语言其实就是选择了让计算机帮你生成机器语言的方式。那么,区分高端和非高端的依据是什么?从设计的角度来看,今天所有的编程语言都是人们为了完成某种目的而设计的。这种理解是至关重要的,因为他们的设计目标决定了用户在程序运行时的体验。让我们通过设计目标来比较两种编程语言C和Ruby。C的目标:接近机器语言,但可移植到许多机器架构上。Ruby的目标:美丽、简单和开发的乐趣。虽然它们最终都生成了机器语言,但不同的设计目标使得这些语言的使用体验完全不同。由于C语言的结构更接近机器的实际工作,其机器代码在计算机执行时会更有效率、更快。这里有一张图表,记录了各种可视化编程语言处理一个简单文本的速度。随着文本大小的变化,编程语言的处理速度也会发生变化:(纵轴是处理所花费的时间,横轴是文本的大小)因为执行时间很容易衡量(人们喜欢优化他们可以测量的东西),像C这样“快速”的语言在心理上被认为是一种高端编程语言。这实际上是伪造的,这与不精确的速度测量密切相关。测速C和那些低级语言在计算机硬件低迷、系统资源受限的时代是不可或缺的。《毁灭战士》、《雷神之锤》等第一代3D游戏突破了只使用一种专注于机器速度的语言的局限。然而,今天,相对于我们在计算机上所需的大部分功能而言,计算能力既便宜又充足。软件开发中真正受约束的是开发者的时间和精力。像Ruby这样的语言允许程序员用更少的代码做更多的事情,从而使开发速度更快。更快的开发速度意味着更快地确定您正在做的事情是否真的需要,更容易添加用户请求的功能,以及更少的开发人员更容易完成项目。下图是很多常用语言的代码复杂度排列:(黑色短横线是平均复杂度,红色字是一些最流行的语言,黑色字是一些不太流行的语言)这张图可以让我们清楚地知道哪些语言更容易学习,帮助初学者找到一个容易入门的地方,这也解释了为什么有些人认为某些语言是低端的。到目前为止,你认为哪种方式更“高端”?多样化这是一个虚假的***,因为问题的答案取决于你的需求。科学家、统计学家和数据分析师仍然需要像C这样专注于机器速度的语言来帮助他们的工作。大多数Web开发人员需要像Ruby或Python这样注重速度的语言来快速满足他们的业务和客户目标。在每个场景中,“***”的语言都不同。需求的多样性为不同设计目标下编程语言多样性的重要性提供了强有力的论据。编程中永远不会有人人都会说的世界语,甚至机器语言也不是潜在的通用语言,因为每种计算机体系结构都使用略有不同的机器语言。对于我们这些对软件有不同需求的人来说,这是一件好事。程序员新手阅读本文时的独立知识:希望能帮助大家对自己学习和编写的语言代码有自己独立的理解。对于C语言,要知道它更接近机器语言,却不知道它是更“高端”的语言。我们编程语言的目的是为了减轻我们的负担,更快捷方便地创造我们想要的东西。如果你选择学习C语言,你选择的目的应该是它擅长Arduino和嵌入式单片机编程或者它能快速编译机器算法,而不是你认为它比你的语言更“高端”学会。让你想从事的项目决定你选择学习的语言。因为毕竟它们只是机器语言的一种方言。适当的选择我认识的顶级程序员从他们开始编程以来就一直在做肤浅的事情(他们中的许多人至今仍在这样做)。他们会自己做一些很简单的游戏,或者做一些搜索和可视化的实验。他们所做的一切都出于他们对它的兴趣,编码对他们来说就像一个游戏,非常有趣。对相关问题的反复反馈是掌握任何技能的关键。无论你选择什么语言或项目,一定要花大量时间学习它,并听从导师的建议和反馈。编码语言的真正目的是帮助其他人构建或改进那些很酷的东西。无论使用何种语言,您的选择应该始终是能够为您提供最快和最有效帮助的语言。
