编程语言已经存在很多年,每种语言都是为了满足特定的需要而构建的。

到今天为止,全世界大约有700种编程语言。现在仅剩250种语言能存续下来,其余的基本上已经被编程社区抛弃了。

对于程序员来说,性能一直是一个必须考虑的问题。在过去,程序的运行时间可以用天数来衡量,而现在,归功于科技的进步,仅需几秒钟即可完成运行。

计算机进化的速度遵循摩尔定律:

摩尔定律

在电子学中,速度和性能转化为一个特定芯片可以拥有的晶体管数量。根据摩尔定律,这个数字每隔两年就会往上翻一番。这就是为什么你的手机比1990年代的房间大小的超级计算机快得多。

回到计算机科学,速度快的代码和速度快的电脑是有区别的。速度慢的程序和速度慢的电脑也是有区别的。虽然我们很多人无法影响计算机硬件的运行速度,但是代码的快慢却是我们可以控制的。

在开发时,我们往往都要考虑一个因素,那就是语言期望。每种语言的实现方式都不同,因此每种语言都有各自的优点,可能很少人会把程序的运行速度纳入语言的编程优点之中。

如果你正在做游戏类的项目,或者是需要繁重的数学计算等高要求的任务,最好不要用运行速度太慢的编程语言。

一般来说,编程语言有两种类型:静态类型编程语言

动态类型编程语言

静态类型语言通常是编译的,意思就是编译器的程序会解析并将整个类似英语的代码转换为汇编语言,并生成一个新文件,这个文件可以由用户手动运行。

动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。

大多数人喜欢动态类型语言。诸如Python之类的不易出错且易于人工解释的语言。但这是有代价的,那就是要牺牲运行速度。

在本文中,我们将列出4种相对最慢的常见动态类型编程语言。

1. Perl

如果你以前用过 UNIX,那么一定见过 Perl 脚本。因为大多数 UNIX 文件都是 Perl 格式。

Perl 是一种 Unix 脚本语言。它是为了减轻程序员不得不忍受编码冗长的 Shell 程序的困难而创建的,Perl 就是把很多 Shell 命令塞进了一个文件中。

更重要的是,Perl 还可以用来完成在 C 和其他 Unix 语言中难以完成的任务。

Perl 在运行速度方面的确令人头疼。

另外,现在想找到一个优秀的 Perl 程序员就像试图大海捞针。这是因为,与 Python 不同,Perl 对实现非常敏感,每个操作符都必须在合适的位置上才能拥有一个相对高效的程序。

即使有最高效的实现,Perl 仍然落后于其他的高级编程语言。但是,在2019年,一个版本名为 Raku 的 Perl 6发布之后,Perl 的速度问题正在一个又一个被解决。

2. PHP

PHP 是一种脚本 Web 开发编程语言,通常在网站部署中补充 HTML、CSS 和 MySQL。

许多人认为 PHP 已经过时了,但事实并非如此。

有研究表示:在我们知道服务器端编程语言的所有网站中,有79.0%的网站都使用了 PHP。

除此之外,在关于编程、脚本和标记语言的“ 2020 StackOverflow ”调查报告中,展示了 PHP 依然是一种非常活跃的语言,排名在 C++和 Typescript 之上:

但是,由于 PHP 的学习曲线是渐进的,而且托管成本低,因此在性能方面会有所缺失。

PHP 的速度非常慢,因为缺少实时编译 (JIT 编译器),而且它是一种动态类型语言。很幸运的是,在 2020 年 11 月 26 日,PHP 8 推出了一个性能优化功能:内置的 JIT 编译器。

内置的 JIT 编译器帮助 PHP 在速度和性能方面接近其他同类编程语言。

3. Ruby

Ruby的官方作者 Yukihiro Matsumoto 曾说:Ruby 旨在让程序员满意。

Ruby 是一种面向对象的编程语言,一切都可以被解释为对象。这使得它成为一个容易使用的工具。只需要动动手指,任务就能完成。

但是,在性能方面,Ruby 是一种典型的解释语言。由于解释语言是逐句运行代码语句,因此与使用编译器的语言相比,它们往往比较慢。

Ruby 的速度在全局解释器锁 (GIL)中再次被砍,因为该语言每次只能允许使用一个线程使用 GIL。

最后,Ruby 的速度还受到高内存消耗和垃圾收集慢的影响。

4. Python

在很多编程语言的排行榜中,Python 排名第一,成为最受欢迎的编程语言。它大量用于数据科学、Web 开发和人工智能等。

这里不是夸大 Python,因为它的优点多于缺点。但就目前情况来说,Python 的速度依然是个问题。

Python 和 Ruby 是相同属性的编程语言。由于 GIL 和使用解释程,两者速度都很慢。它们的主要区别在于前者以数据科学为主,而后者更倾向于 Web 开发。

但是,Python 有很多强大的库和功能支持。其中一些库和功能,如 Numpy 模块和 Filter() 内置函数,可以在C++中实现,从而在性能方面得到了显著的提升。这就是为什么Python现在正在迅速超越其他编程语言的原因。

最后

虽然在软件实现方面,速度和性能是需要考虑的重要因素,但不应将责任仅仅归咎于编程语言。

实际上,造成速度和性能问题的根本原因是糟糕的程序实现和代码设计。

尽管动态类型语言的速度很慢,但它们提供了很好的编程体验,并提高了工作效率。所以,很多事情都有两面性,编程语言也是如此。

python 动态类型检测 性能_4种速度最慢的动态编程语言,你一定用过相关推荐

  1. python序列类型包括哪三种映射类型_python序列类型包括哪三种_后端开发

    python中表达式4+0.5值的数据类型为?_后端开发 python中表达式4+0.5值的数据类型为浮点型,因为4是整型,0.5是浮点型,在python中规定整型和浮点型相加,结果是浮点型,这是为了 ...

  2. python序列类型-python序列类型包括哪三种

    python序列类型包括哪三种 python序列类型包括:列表.元组.字典 列表:有序可变序列 创建:userlist = [1,2,3,4,5,6] 修改:userlist[5] = 999 添加: ...

  3. python序列类型包括哪三种映射类型_python序列类型包括哪三种

    python序列类型包括哪三种 python序列类型包括:列表.元组.字典 列表:有序可变序列 创建:userlist = [1,2,3,4,5,6] 修改:userlist[5] = 999 添加: ...

  4. python整数类型提供了4种进制表示_关于整数类型的 4 种进制表示,哪个选项的描述是正确的?_学小易找答案...

    [单选题]锦葵科植物的雄蕊为() [单选题]决定地衣体形态的多是(1) [多选题]以下企业简介描述中,选择定位于利基市场的有() (2.0分) [单选题]异层地衣的藻类细胞排列于(2) [单选题]木犀 ...

  5. python序列类型包括哪三种映射类型_Python序列类型包括字符串、列表和元组三种,列表是Python中唯一的映射类型...

    Python序列类型包括字符串.列表和元组三种,列表是Python中唯一的映射类型 更多相关问题 [填空题] 秦以后的地方基本建制为().但西汉因分封形成了(). [单选] 药物过敏性口炎的临床特征为 ...

  6. python组合类型有哪三种_Python基础语法三组合数据类型

    一.列表(Lists) 列表属于Python中的序列类型,它是任意对象的有序集合,通过 " 位置 "或者 " 索引 " 访问其中的元素,它具有可变对象.可变长度 ...

  7. python映射类型包括哪三种_Python映射类型

    映射对象用于将哈希表值映射到任意对象.在python中,有一种称为字典的映射类型.这是可变的. 字典的键是任意的.作为值,我们可以使用不同种类的元素,例如列表,整数或任何其他可变类型的对象. 一些与字 ...

  8. python映射类型包括哪三种_python新手入门必备——映射类型相关函数

    [摘要]当我们了解字典的四种功能后,我们就需要深入的了解字典为我们做事情提供的大量方法,这里就需要对映射类型的相关函数进行了解,所以今天的文章将会从这一方面入手,帮助大家彻底了解字典. dict()工 ...

  9. 三种python序列类型

    python序列类型包括哪三种 python序列类型包括:列表.元组.字典 列表:有序可变序列 创建:userlist = [1,2,3,4,5,6] 修改:userlist[5] = 999 添加: ...

最新文章

  1. limbo可以运行linux,这次真的了,安卓手机可以安装 Windows 10 了
  2. Hibernate的复合主键映射
  3. git reset --hard_Git紧急自救简易指南(二)——版本的游历
  4. pyqt5子窗口跳出主窗口_弹出式窗口与 可用性,转换和跳出率
  5. sqoop同步时间戳到mysql_在sqoop导入中使用24小时时间戳
  6. .net如何获取文件夹中的文件_access递归列出文件夹中的文件
  7. 批量重命名同一文件夹下的文件
  8. 阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_2 Mybatis中编写dao实现类的使用-保存操作...
  9. 不知不觉,写了一个编译器(一)
  10. 计算机无法打开文档,电脑txt文件打不开怎么办-修复电脑中无法打开txt文档的方法 - 河东软件园...
  11. VMware ESXi客户端连接控制台时提示VMRC控制台连接已断开...正在尝试重新连接的解决方法...
  12. qq音乐linux版本下载地址,qq音乐linux版本下载
  13. 一个特别好用的免费json数据API接口--特别推荐
  14. CentOS7.5.1804 Minimal 静默安装oracle 12c R1企业版
  15. 设计模式——终结者模式
  16. app开发流程:手机软件开发app的6个步骤
  17. 117道有关大数据面试题解析,希望对你有所帮助
  18. npm常用命令(持续更新)
  19. 打开一次outlook msg格式邮件后就不能再打开
  20. 基于深度学习的绘画风格迁移

热门文章

  1. 我觉得要技术者上升到整体去考虑会好点
  2. 读研打比赛领奖金免费旅游,国内算法竞赛平台了解一下
  3. linux常用命令(1)帮助命令man使用
  4. ansible service模块使用示例
  5. CDH6.3.2界面配置hbase-site.xml的方法
  6. JavaFX控制器:设置按钮点击事件代码示例
  7. helm部署kafka完整记录
  8. idea pycharm设置鼠标滚轮改变字体大小的方法
  9. kafka topic常用命令
  10. Python爬虫开发:https请求加密问题解决