欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP 是一门高级语言吗?为什么总是被其他语言黑?

程序员文章站 2022-05-19 23:39:17
...
ps。 我知道高级语言不一定“高端”。但问题是,既然属于高级语言,既然图灵完备,为什么会“低端”。哪里招惹其他语言了?

回复内容:

N卡和A卡其实都很牛逼,但是你看N卡党和A卡党还不是互相黑来黑去的?
iOS 和 Android 其实都很牛逼,但是你看 iOS 党和 Android 党还不是互相黑来黑去的?
同理,来来来,题主你告诉我有哪个编程语言是不被黑的?
编程语言大体可分两种:1) 被人黑的 2) 没人用的
——奥斯托洛夫斯基

楼上说得对
——卡巴斯基
这个话题经久不衰

XXX语言才是真正的程序员。
XXX编辑器才是程序员的最终归宿。
XXX语言在未来是一种趋势,必将干掉XXX。

你看他们讨论出来什么了吗?

我好想把这些XXX补上,为了避免大规模战争,还是算了吧。
PHP 是一门高级语言吗?为什么总是被其他语言黑? 高级语言才会被黑 低级语言黑不动 哈哈哈,首先我们要坚持PHP是世界上最好的语言~

话说PHP low确实是入手简单,写起来也快,内置函数多,基本都大多数人用。
没啥设计模式,随便怎么写都能run,运行成本低(是个空间就能跑)

PHP是高级语言,同时也是被黑次数可以与java抗衡的语言。

另外,PHP写得快是因为不会有下面这种类名 。。。。。

临走前黑下java。喏,你看
javax.swing.plaf.nimbus.InternalFrameTitlePaneMaximizeButtonWindowNotFocusedState Class Reference

链接:JavaDevelopmentKit(JDK)1.7.0_03: javax.swing.plaf.nimbus.InternalFrameTitlePaneMaximizeButtonWindowNotFocusedState Class Reference 呵呵,哪个语言不被黑?就算再优秀,那也不可能被所有人喜欢。 *是这样解释低级语言的:
低级语言(英语:Low-level programming language),在计算机科学之中,是电脑编程语言的一类。该类编程语言之所以被称为低级,是因为该类语言在运作时无法进行进一步的抽象化,而与*处理器的机器语言或指令直接对应,因此一般亦被指是原始的编程语言。即使是与高级语言相对,但这并非指低级语言较高级语言为差,相反,低级语言由于无需大量的编译动作即可被*处理器所运行,因此以该类编程语言编写的源代码编译和运作效率一般较高级语言的源代码为高。

低级与高级其实只是相对的概念,Java对比C语言可以被认为是一种相对高级的编程语言。
有一篇博文是这样解释高级语言和低级语言的区别:

一般来讲高级语言和低级语言有一下特点:

高级语言:实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好

低级语言:实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差


我们都知道CPU运行的是二进制指令,所有的语言编写的程序最终都要翻译成二进制代码,但是为什么实现会有以上众多差异呢?下面以C语言为高级语言代表,汇编语言为低级语言代表来解释一下。

越低级的语言,形式上越接近机器指令,汇编语言就是与机器指令一一对应的。而越高级的语言,一条语句对应的指令数越多,其中原因就是高级语言对底层操作进行了抽象和封装,使编写程序的过程更符合人类的思维习惯,并且极大了简化了人力劳动。也就是说你用高级语言写一句,会被转换成许多底层操作,大部分的工作交给了负责转换的机器(即编译器),从而人力得到了解放。因为机器就是用来为人类提供便利的,所以说高级语言的出现是计算机发展的必然结果。

下面重点解释为何低级语言的执行效率更高:

1.低级语言可以通过控制硬件访问来优化效率

越低级的语言月接近底层,即控制硬件访问的能力越强,对硬件资源的利用效率越高。比如说汇编语言能够访问寄存器,而C语言就做不到。通过对寄存器等硬件的访问,我们可以将程序的运行效率优化到最大,而像C这样的高级语言用的最多的是堆栈这样的内存结构,访问速度自然不如寄存器了。

2.高级语言程序存在工作冗余,有效率损失。

各种语言需要通过编译器翻译成机器码,不管编译多么智能和强大,都是会产生冗余。这里的冗余不是指指令的多少,而是有没有做没有必要的事情。 产生冗余的多少关键要看语言跟机器指令之间的耦合度。耦合度越大,编译器翻译过程越简单,产生的冗余越少。对应汇编来书,由于与机器码一一对应,所以翻译后基本没有冗余。而高级语言由于进行了抽象和封装,所以与机器指令间的耦合度较低,因此整个翻译过程较复杂,因此在高级语言在具体化的过程中不可避免会产生较多的冗余。据说C语言有10%的效率损失。

3.效率高不高,还取决于程序员水平。

一个差的程序员用汇编写程序,可能存在很多没有用的操作,而程序高手用c语言写,可以将程序优化到最大。最终的结果可能是汇编的程序跑不过C语言程序。


总之,完成一项工作的工作量是不变的,机器做的 多了,人就做的就少了,同时人对程序的很多细节的控制性也减弱了。各种语言都是在这个平衡点附近纠结。从C/C++的注重机器运算效率的优化,到C#/JAVA注重开发效率的优化。人操作起来更加方便了,更高效了,代价就是,机器要处理的东西更多,运算效率被进一步压缩。但是这个压缩在许可范围内,那么这也是一种进步。

我是这样认为的:
  • 低级语言可以直接操控计算机硬件,而达到一些功能,(可以直接操作硬件CPU 和 内存)如果程序员的水平够好的话,直接可以写出高性能的程序,但是由于,每次开发程序都需要对程序的重新编程,代码量比较巨大,于是出现了封装。
  • 封装的优点是,复用率高,可以质性强,但是缺点也有就是封装后的东西为了适应计算机的各种环境,和复用,不得不牺牲掉内存,和CPU,不够简洁。但是利大于弊,随着科技的发展,计算机硬件不在这么值钱。
  • 高级语言也就是低级语言的封装,封装成一系列的函数,便于程序员学习,和开发,不必要再学习一些以后用不到的东西。由于低级语言可以直接操控硬件,提高程序的性能,和大部分高级语言的底层语言,也就不会被淘汰。
编程语言俗称“计算机语言”,种类非常的多,总的来说可以分成机器语言、汇编语言、高级语言三大类。C、java、PHP都属于高级语言。
高级不等于高端。 对于 PHP 有一篇完整的吐槽 PHP: a fractal of bad design / fuzzy notepad,没有什么要补充的了。 一群傻逼没事干。