PHP 是最糟糕编程语言?

2022-12-09 0 708

PHP 是最糟糕编程语言?译者 | Oscar Merida 

翻译者 | 弯月

公司出品 | CSDN(ID:CSDNnews)PHP是两门有意思的C词汇。词汇与借助词汇构筑的流程一般来说归属于三种内部结构设计经营理念。这儿我指的不是峡谷式或灵巧等等的应用软件开发开发周期,而要应用软件管理工作的基本上价值观。没人将那些价值观称作“恰当的形式”以及“Worse is Better”PHP 是最糟糕编程语言?PHP包涵许多怪异的难题,许多人由于那些难题而贬抑尖萼词汇,但他们也没有错。尖萼词汇有许多难题。没人取笑PHP差劲的内部结构设计,还明确提出了许多恰当的观点,虽然那些观点是十二年前明确提出的,但它仍然是恰当的。不过,开发者却能借助PHP建立内部结构“恰当”的应用软件,所以还导入了其他普遍认可赞誉的课堂教学。你可能碰触过Laminas和Symfony等等的架构,它保有最差面向对象课堂教学,开发者能借助那些架构撰写内部结构恰当的标识符。为何会这种?因为PHP是最差劲的C词汇。PHP 是最糟糕编程语言?

内部结构设计应用软件

1991年,Richard P. Gabriel刊登了一则专文《Lisp: Good News,Bad News, How to Win Big”》的学术论文。该学术论文的论据是,对于应用软件的内部结构设计和使用寿命,“Worse is Better”,换句话说很脆越少。他或许得出结论这种的观点,原因在于他意识到流程内部结构设计出现了三种迥然不同的门派,他称作“MIT/Standford Style”(现代主义)和“The Right Way”(恰当的形式,又称作波士顿艺术风格,即而后的Worse is Better)。这三种经营理念的最终目标相近,但对关键性应用领域的观点不同。三种艺术风格都着重于五大关键性价值观应用领域:单纯性、恰当性、连续性和准确性。现代主义的艺术风格叙述为:单纯性:内部结构设计必须单纯,无论是实现还是接口。接口的单纯性比实现的单纯性更重要。恰当性:所有可观察方面的内部结构设计必须都是恰当的。绝对不允许错误。连续性:内部结构设计不能出现不一致。为了避免不一致,允许内部结构设计稍微削弱单纯性和准确性。一致性与恰当性同样重要。准确性:内部结构设计必须尽可能涵盖重要情况。必须涵盖所有合理预期的情况。不允许单纯性过度降低准确性。至于波士顿艺术风格,Gabriel认为的最终目标是:单纯性:内部结构设计必须单纯,无论是实现还是接口。实现的单纯性比接口的单纯性更重要。单纯性是内部结构设计中最重要的考虑因素。恰当性:所有可观察方面的内部结构设计必须都是恰当的。但是单纯性比恰当性略微重要一点。连续性:内部结构设计不能过于不一致。在某些情况下,为了单纯性,能牺牲连续性。虽然如此,为了避免导入实现的复杂性或不一致,最好放弃内部结构设计中不太常见的情况。准确性:内部结构设计必须尽可能涵盖重要情况。必须涵盖所有合理预期的情况。但是为了其他最终目标,能牺牲准确性。事实上,一旦危及实现的单纯性,就必须牺牲准确性。如果能保持单纯性,则能牺牲连续性来实现准确性,接口的连续性尤其没有价值。争论的关键性是以LISP和C为例,讨论为何很脆越少。Gabriel 是一名 LISP 流程员,他认为LISP比C更好。LISP 不仅和C一样快,所以Common LISP花费了数年时间进行内部结构设计、开发和标准化。定义词汇的规范充分借助了各种不同版本的LISP的优点,所以LISP是最好的现代开发环境之一。PHP 是最糟糕编程语言?

LISP 是恰当的形式

LISP代表了应用软件设计的“恰当形式”。LISP易于交互,你能通过各种形式与之交互。想通过Fortran调用 LISP?你能通过Fortran调用LISP并传入输入数据,反之亦然。在处理遗留标识符时,你能奢侈地享受 LISP 的所有现代特性。LISP的规范保证了内部结构设计的连续性。看一看Python等等的现代词汇就会发现,规范对于提供多个后端和编译器提供了很大帮助,所有解释或编译标识符的形式都相同。LISP的工具是一流的,1991年的LISP就保有我们至今仍在享受的各种“福利”,比如逐步调试、数据检查和精美的编辑器。作为一种词汇,LISP是完备的。它具有先进的面向对象编程层、多重继承、一流的对象以及函数和类型。LISP似乎是开发者心中所想的C词汇。1991年是LISP尖萼C词汇的最差时期。这种技术上的恰当性并不是由实际使用来证实的。LISP的开发正在走下坡路。多年的负面新闻和定位失误影响了 LISP 的外部声誉,不再被视为向最终用户提供应用软件的一种形式。在开发方面,LISP提倡的许多价值观与“预先做大量的内部结构设计”不谋而合。如果你曾使用过诸如峡谷模型等等的内部结构设计方法,就能看出许多难题。“恰当的形式”非常强调连续性、恰当性,并确保考虑到所有能想到的难题。LISP本身也不止一种词汇,它有一个词汇家族。虽然 Common LISP是标准,但 LISP 本身也可用于实现各种基本上的功能。Lockless Inc网站上的一则文章认为,这种分化是LISP最终失败的决定性原因之一。即使LISP坚持应用软件内部结构设计的“恰当形式”,但这种分化导致标识符维护和可移植性均受到了影响。PHP 是最糟糕编程语言?

C 和 Unix 是错误的形式

与此同时,多亏了Unix,C成为了开发应用软件的首选词汇。C是为Unix内部结构设计的,而 Unix是从C内部结构设计出来的。C的开发者采取的内部结构设计形式与LISP不同。1972年,C还是两门非常简单的C词汇。到1991年,C发生了许多变化,但基本上原理没有改变。功能都是根据开发者的需要和 Unix 的需要添加的。撰写编译器和流程很容易,因为词汇本身非常单纯。虽然你也能借助C撰写复杂的流程,但与LISP相比,估计C只保有流程员想要的50%~80%的功能。不过,C的便携性非常惊人。与一般来说用于LISP应用软件和环境的硬件相比,C还能在能力有限的硬件上运行。因此,C能够在更广泛的机器上编译和运行应用软件。C 应用软件和Unix非常容易运行,Gabriel认为Unix和C会像病毒一样流传开来。C的开发始于 Dennis Ritchie 内部结构设计和构筑Unix时。由于贝尔实验室不被允许正式进入计算机应用领域,因此 Unix 很容易分发给其他的各种用户。那些用户为了满足自己的需求给Unix打补丁。Dennis Ritchie能够根据需要合并那些补丁,而不必提前想好那些需求。与LISP不同,C至今仍被广泛使用。虽然PHP、JavaScript和Python等高级词汇和解释性词汇是许多开发者的首选,但许多高级词汇都是用C开发的。虽然如今出现了像Rust这种的竞争对手,但在小型低功率设备上运行仍然是C的优势。PHP 是最糟糕编程语言?

PHP最差劲

首先,很脆越少的应用软件会被接受;其次,用户的期望更低;第三,那些应用软件能被改进,直到接近“恰当”的程度。—— Richard Gabriel几年后,Rasmus Lerdorf开始致力于建立个人主页/表单解释器(Personal Home Page/Forms Interpreter),即我们现在所说的PHP。PHP/FI的诞生原因在于Lerdorf 需要维护他的主页,并与表单和数据库进行交互。PHP/FI的内部结构设计甚至称不上C词汇,而要作为C之上的脚本和函数层。PHP 是最糟糕编程语言?

PHP 很单纯

内部结构设计必须单纯,无论是实现还是接口。实际上,PHP底部使用了C词汇,我们认为这是“最差劲的”。不过,这带来了许多优势,最重要的是,单纯的底层词汇更加方便扩展。虽然 Hack/HHVM 采用了更多的C++方法,但PHP本身仍然是C词汇。你能在短短几个小时内学习 PHP 词汇的内部内部结构。Elizabeth Smith 曾刊登过一个关于 PHP 扩展的精彩演讲(https://www.slideshare.net/auroraeosrose),其中介绍了大量关于 PHP 的内部工作原理。PHP借鉴了其他C艺术风格的语言,不仅方便阅读,所以还能切换成C艺术风格系列的其他词汇。PHP的大部分接口或标准库都很单纯,因为大部分核心功能只不过是对各种C库进行了包装,然后原封不动地公开了。虽然这会导致接口的不一致,但也为C或C++开发者提供了一个熟悉的环境。局变量$_GET 和 $_POST。PHP的接口很单纯,所以内部内部结构也非常单纯。PHP 是最糟糕编程语言?

PHP(几乎)是恰当的

所有可观察方面的内部结构设计必须都是恰当的。单纯性比恰当性更好。此处,在单纯性与恰当性的选择中,PHP更倾向于“单纯”。在HHVM出现之前,并没有任何关于PHP的外观或功能的规范。Zend解释器本身就是规范,所以该词汇的行为形式始终是“恰当的”(不包括实际的 bug)。如果你想替换掉PHP  引擎,则需要实现该引擎的所有怪癖。许多核心函数的参数和返回类型都不是特别严格,主要目的是让系统更易于使用。例如strpos()等函数的返回值能是整数或布尔值,这比严格内部结构设计的返回整数或抛出异常的方法更容易使用。看看PHP词汇的发展,几乎所有新功能都是以开发者的需求为基础,而不是追求“恰当”。更多地关注严格的类型和异常错误是一种更恰当的形式。虽然如此,短箭头函数、属性和枚举等等功能才是开发者希望简化对标识符。PHP 是最糟糕编程语言?

PHP 不必保持连续性

内部结构设计不能过于不一致。在某些情况下,为了单纯性,能牺牲连续性。我从不会说PHP具有连续性,但它的连续性已经足够了。提及数组与字符串函数,人们可能会抱怨Needle/haystack的参数顺序。不过一般来说,数组函数是一致的,字符串函数是一致的。与保持词汇的连续性相比,保持与底层  C 库的一致更单纯。PHP在其他方面也很一致。比如strpos()函数,PHP的函数在遇到错误时,就会返回FALSE,这一点非常一致。不一定恰当,但很一致。函数命名是否带下划线往往也是与底层库保持一致。PHP词汇为了单纯性牺牲了连续性,但即使没有规范,它也在努力在有意义的地方保持一致。PHP 是最糟糕编程语言?

PHP 的准确性符合一定的需求

内部结构设计必须尽可能涵盖重要情况。在某些时候,PHP尽可能保持完备,它符合内部结构设计的需求:撰写Web应用流程。PHP的内部结构设计最终目标从来不是成为一种适用于所有编程难题的词汇。虽然如此,由于单纯性,PHP也适用于Web之外的编程。PHP最初的目的就是为Web编程提供最基本上的功能,所以一直延续至今。核心词汇的变化主要由开发者的需求驱动。整个社区明确提出修改意见,然后经由社区投票,决定新功能被拒绝、修改还是接受。该词汇中的大部分创新都原因在于我们需要更快地完成工作。即使我们窃取其他词汇的特性,也原因在于那些特性能够减轻开发者的负担,很少原因在于另一种词汇“更恰当”。如今你能借助PHP构筑Web应用程序,所以在接下来的五年内你还能继续用PHP制作Web应用流程,只不过会添加许多新功能。不过,这种词汇本身已经达成所需。如果有需要,我们能随时添加新功能或修改词汇。PHP 是最糟糕编程语言?

很脆越少吗?

Gabriel承认,“很脆越少”的价值观是说内部结构设计看起来很差劲,可能不应该作为更好的选择。唯一的难题是,审视这三种内部结构设计经营理念,比较现代主义与“恰当的方法”,那么自然“很脆越少”是更灵活的选择,还有“具有更好的生存特性”。看看 PHP,它证实了“很脆越少”的价值观。在此期间,Gabriel承认他也很犹豫哪种经营理念更好。作为一个社区,PHP不断争论我们应该恰当地做事还是继续单纯地做事。我们有像Laminas这种的架构,以经典的计算机科学形式构筑的库,还有Laravel这种的架构关注开发者的体验和速度。能说PHP二者兼具。下次再听到没人批评PHP,就随他们去吧。这种词汇确实很差劲,但PHP的长盛不衰以及广泛使用证明了这种一个事实:“恰当的形式”未必比“最糟”更好。如果没人抱怨你使用的架构,也无需在意,从长远来看这无关紧要。更重要的是,选择一种舒服的内部结构设计经营理念,并告诉自己“很脆越少”。参考链接:https://www.phparch.com/2021/09/education-station-php-is-the-worst/

PHP 是最糟糕编程语言?

PHP 是最糟糕编程语言?

PHP 是最糟糕编程语言?

英特尔携手东软,加速智慧医疗应用创新

周鸿祎称互联网公司要科技报国;iPhone13第三方更换屏幕将丢失面容识别;“layui”官网将于10月13日下线|极客头条

首批 iPhone 13 用户直呼太“坑”:拍照有马赛克、不能用高刷、还与 Apple Watch “失联”?

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务