什么是“真正的”编程语言?[已关闭]

2022-08-30 08:53:56

最近,一位老师说“PHP不是一种真正的编程语言”,但在我看来,它只是给出了微弱的理由:

  • 它没有编译。
  • 它是脚本化的。
  • 它不会在每个平台上运行。

PHP不被认为是一种“真正的”编程语言吗?什么是“真正的”编程语言?必须编译一种语言才能认真对待?

背景

两天前,我在学校的A-Level计算课上上了一堂入门课——我们在课程的第一年使用Java。我不熟悉Java,但对一般编程基础知识(变量,函数,面向对象,循环等)有很好的掌握。

我们的第一个任务是老师以可笑的速度完成。她懒得解释任何概念,它们是如何工作的,或者你实际上会用它们做什么,并且似乎很高兴看到大多数学生(总的来说,他们是编程新手)在座位上蠕动,因为他们不知道她在做什么。事后看来,我认为她很快就完成了它,看看谁能真正“处理”计算A-Level,因为学生仍然有机会在九月开始之前改变他们的科目。

第一个也是唯一的任务是编写一个 Java 命令行应用程序,将二进制转换为十进制(十进制)。我们进行了两个小时的品尝者会议来做这件事,在解释了二进制系统的工作原理之后,我们不得不开始,尽管总的来说,没有人真正知道从哪里开始。一个小时后,有些人比其他人走得更远,但没有人真正取得任何重大成就。老师自己也变得很困惑,她从隔壁叫来了另一位老师。他过来帮助人们,看看下一步该去哪里。

在没有吹牛的情况下,我可能在课堂上拥有最多的经验,并且在练习中走得最远。他问我以前有过什么经历。我说是的,特别是在PHP中,并开玩笑地评论说,我可以写一些东西,在短短几行PHP中将二进制转换为denary,而Java应用程序正在迅速成长为几个代码屏幕。

他回答说:“PHP不是一种真正的编程语言!...!经过一番讨论,他给出了上述三个原因。但是,我指出您可以在任何运行Apache的平台上运行PHP,但我不认为他真的知道Apache是什么,并且没有这些!


答案 1

首先,我们需要知道什么是编程语言。至少,编程语言是由计算机读取并指示它执行某些操作的东西。许多人还期望通用编程语言图灵完备的。但是,在某些情况下,特定于域的语言不是图灵完备的,但仍然是该特定域的有用编程语言。编程语言可以编译或解释,它们可以在许多平台上运行,也可以只在一个特定的平台上运行。不同的需求需要不同的编程语言。显然,PHP是一种编程语言。

我对“真正的”编程语言的定义是任何在现实世界中至少有一种实际用法的编程语言。这与通常没有实际用法的深奥编程语言相反。由于PHP被广泛用于解决实际问题,它很容易满足成为真正编程语言的要求,尽管它可以说不是一种特别漂亮的语言。

PHP是一种实用语言。它是出于能够快速制作网页的特定需求而创建的(该名称最初代表个人主页),并且根据需要扩展了语言。由于没有理论背景或强大的设计原则来推动它的创建(甚至没有一个正式的语言规范),它不如许多其他更现代的语言干净。诸如正确处理外语字符/ unicode字符之类的功能显然是在之后添加的,并且没有与语言的其余部分完全集成。这种不整洁和缺乏理论严谨性导致许多人(特别是学者)不喜欢这种语言,这可能是你的老师不认为PHP是“真正的”语言的部分原因。

然而,PHP擅长它的设计目的,许多网站都使用它,甚至是Facebook,Yahoo!和Wikipedia等非常大的网站。


答案 2

它未编译

PHP可以编译(例如通过HHVM)。

它是脚本化的

这只是PHP没有被编译的另一种说法。

它不会在每个平台上运行

Java也没有。

听起来你有一个非常糟糕的老师。


推荐