当前位置: 首页 > 科技观察

您必须使用过的4种缓慢的动态编程语言

时间:2023-03-18 20:03:00 科技观察

编程语言已经存在多年,每种语言都是为满足特定需求而构建的。截止到今天,世界上大约有700种编程语言。今天只有250种语言存活下来,其余的大部分都被编程社区抛弃了。对于程序员来说,性能一直是必须要考虑的问题。过去,一个程序的运行时间可以用天来衡量,而现在,由于技术的进步,只需几秒钟就可以完成。计算机的发展速度遵循摩尔定律:摩尔定律在电子学中,速度和性能转化为给定芯片可以拥有的晶体管数量。根据摩尔定律,这个数字每两年就会翻一番。这就是为什么您的手机比1990年代房间大小的超级计算机快得多的原因。回到计算机科学领域,快速代码和快速计算机之间是有区别的。慢速程序和慢速计算机之间也有区别。虽然我们中的许多人无法影响计算机硬件的运行速度,但我们可以控制代码的运行速度。在开发的时候,我们往往要考虑一个因素,那就是语言期望。每种语言的实现方式不同,所以每种语言都有自己的优势,可能很少有人会把程序的速度包括在语言的编程优势中。如果你正在做一个类似游戏的项目,或者是一项需要大量数学计算的艰巨任务,最好不要使用运行速度太慢的编程语言。一般来说,有两种类型的编程语言:静态类型编程语言动态类型编程语言静态类型语言通常是编译型的,意味着编译器的程序将整个类英语代码解析并转换为汇编语言,产生一个New文件,这个文件可以由用户手动运行。动态类型语言是指在运行时进行数据类型检查的语言。也就是说,当使用动态类型语言进行编程时,您永远不需要为任何变量指定数据类型。使用变量时,内部记录数据类型。大多数人喜欢动态类型的语言。一种容易出错且人类可解释的语言,例如Python。但是这是有代价的,那就是牺牲运行速度。在本文中,我们将列出4种常见的动态类型编程语言,它们的速度相对较慢。1.Perl如果你以前用过UNIX,你一定见过Perl脚本。因为大多数UNIX文件都是Perl格式的。Perl是一种Unix脚本语言。它的创建是为了让程序员不必忍受编写冗长的shell程序,Perl将许多shell命令塞进一个文件中。更重要的是,Perl还可以用来完成用C和其他Unix语言难以完成的任务。Perl在速度方面确实令人头疼。另外,如今要找到一个优秀的Perl程序员就像大海捞针一样。这是因为,与Python不同,Perl对实现非常敏感,每个运算符都必须到位才能有一个相对高效的程序。即使采用最高效的实现方式,Perl仍然落后于其他高级编程语言。但是,在2019年,随着Perl6版本Raku的发布,Perl的速度问题陆续得到解决。2.PHPPHP是一种脚本网页开发编程语言,通常在网站部署中补充HTML、CSS和MySQL。许多人认为PHP已经过时,但事实并非如此。根据研究,在我们知道服务器端编程语言的所有网站中,有79.0%使用了PHP。此外,在“2020StackOverflow”关于编程、脚本和标记语言的调查报告中,显示PHP仍然是一种非常活跃的语言,排名在C++和Typescript之上:但是,由于PHP的学习曲线是渐进的,并且具有较低的学习曲线托管成本,将错失性能。PHP非常慢,因为它缺乏即时编译(JIT编译器)并且因为它是一种动态类型的语言。幸运的是,2020年11月26日,PHP8引入了一项性能优化功能:内置JIT编译器。内置的JIT编译器帮助PHP在速度和性能方面接近其他可比较的编程语言。3、RubyRuby的官方作者YukihiroMatsumoto曾经说过:Ruby是为了让程序员快乐而设计的。Ruby是一种面向对象的编程语言,其中一切都可以解释为对象。这使它成为一个易于使用的工具。只需动动手指,即可完成任务。然而,就性能而言,Ruby通常是一种解释型语言。由于解释型语言逐条语句地运行代码,因此与使用编译器的语言相比,它们往往更慢。Ruby的速度在全局解释器锁(GIL)中再次降低,因为该语言一次只允许一个线程使用GIL。最后,Ruby的速度受到高内存消耗和缓慢垃圾收集的影响。4.Python在众多编程语言排行榜中名列第一,成为一种非常流行的编程语言。它广泛用于数据科学、网络开发和人工智能等领域。这并不是夸大Python,因为它的优点大于缺点。但就目前情况而言,Python的速度仍然是个问题。Python和Ruby是具有相同属性的编程语言。由于GIL和解释器的使用,两者都很慢。它们之间的主要区别在于前者侧重于数据科学,而后者更倾向于Web开发。然而,Python有许多强大的库和功能支持。其中一些库和函数,例如Numpy模块和Filter()内置函数,可以用C++实现,从而显着提高性能。这就是Python现在迅速超越其他编程语言的原因。最后,虽然速度和性能是软件实施的重要考虑因素,但不应仅将责任归咎于编程语言。事实上,速度和性能问题的根源是程序实现和代码设计不当。尽管速度较慢,但??动态类型语言提供了出色的编程体验并提高了生产率。因此,很多事物都有两个方面,编程语言也是如此。