线上服务咨询
PHP会死,为什么不呢?
发表时间:2019-07-30 15:46:09
文章来源:沈阳软件开发
标签:网站建设 小程序开发 小程序制作 微信小程序开发 公众号开发 微信公众号开发 网页设计 网站优化 网站排名 网站设计 微信小程序设计 小程序定制 微信小程序定制
浏览次数:0
作为在此期间出现的新的Web开发人员,事情变得清晰和自然:Perl不再适应新的应用程序开发环境。在Perl中,页面需要冗长的,正式的CGI实现,可以使用基本的默认编程在PHP中实现。 Perl语言充满了旧时功能 - 引用,不方便的数据结构以及许多其他小的奇怪语法语义。——这使得Web开发变得乏味,不稳定且不方便。难怪没有一个用Perl编写的优秀的Web应用程序,但是使用PHP可以快速轻松地完成它,即使PHP具有当时显而易见的缺陷。
1999年支持Perl对PHP有很多论据:Perl更快,有更多的库和驱动程序支持,CPAN是一个神奇的地方,内部预编写的代码可以节省大部分任务。工作量的百分比。现在看起来有点荒谬,但“PHP缺乏可扩展性”是一个真正的缺点。但简而言之,PHP赢了,因为上面提到的问题并不是这种语言所固有的。 PHP解释器可以更快,库可以开发,PERA和PECL现在非常大,不包括供应商希望人们使用其API的非正式库。
时间在推移
十年后,我可以感受到历史的潮流正在重演。开发人员对语言的期望正在向前发展。如果Perl在PHP中缺少令人惊讶的灵活“关联数组”(即智能哈希表),PHP现在缺少的是lambdas和方法链接。同时,PHP通常用于编写只有20行代码的网页,但现在认为如果你不使用类似MVC框架的东西,你就不会认为它是正确的。公式化代码显示了问题:这种语言需要一个框架来为人们做这些事情。
回到过去,我认为那些使用Perl进行Web开发的顽固人员是愚蠢的。现在,经过10年的PHP开发,我处于同样的位置。我可以使用PHP在一小时内淘汰一个好的网站并在一两天内开发出一个好的网站。 PHP的性能是众所周知的,我可以无限扩展它。我雇用的每个开发人员都会拥有它,并且我集成的每个系统都有一个用它编写的打包代码库。我深深沉浸在PHP的便利性中,虽然它不适合我的任务。
转向Ruby on Rails
在PHP中取得成功的最明显的潜力是Ruby on Rails。 Ruby是一种新的,干净的语言,具有现代语言特性,松散,优雅的语法(很像Python)。 Rails保存了我们的常见任务,无需在集成的Web应用程序中进行配置,将PHP中的三行和四行习惯编写转换为一流的语言结构。这看起来非常像我需要的PHP替代品,以及使开发工作更快的事情。
我每天都使用Rails来修改由经验丰富的Rails专家编写的Rails应用程序,他喜欢这个框架和语言。七个月之后,我无法断言Rails是出于难以表达的原因的正确选择。我的文章的目的是试图说明原因。
我必须提到的主要抱怨是表现。之前已经说过,这种问题不应该被视为语言中的致命缺陷,它只是语言实现中的一个暂时问题。所以我不能认为这是一个真正的问题,即使这是我将当前应用程序移植到PHP的主要原因之一。我可以让Rails像PHP一样快速运行,但这需要2到4倍的硬件。我估计这将在五年后发生,我可能不必在五年后将程序移植到PHP。但现在,它无法满足我的要求。
其次,我讨厌Active Record。 Active Record是一种模式,不是Ruby固有的模式。它在最新版本的Rails中是可选的,但它的使用和这种模式已深入到Rails DNA中。我已经解释了为什么我认为这个数据库上的ORM不是一个好习惯,所以我不再重复,但我需要总结的一点是你已经保存了手动写入CRUD并且性能不仅仅是ActiveRecord。失去事实的有效性,花时间弄清楚它是如何工作的,符合框架的原则,并防止它做这些事情。
第三,我非常不信任自动生成的代码。工具可以帮助您生成模板式代码,但是您的程序有很多无用的代码来实现这些目标,这并不好。代码生成喜欢“魔术推理”,因为生成器不确定代码的某些特别有用的特征是否是在区域设置中专门编写或固有的。神奇的推理是危险的。
代码生成让我想起Ruby on Rails最基本的问题之一,就是它不是一种语言。 Ruby是一种语言。但Ruby解决了PHP的一些基本问题,并没有解决核心问题,即现代Web应用程序需要一系列改进:例如路由,模型/视图分类,插入功能等等都非常共同。特点。它位于Rails中,但它只是像PHP中的Zend,Symfony和Code Igniter这样的MVC框架。
那么缺的是什么?
可以取代PHP的语言必须非常擅长PHP,就像PHP优于Perl一样。它必须承担Web应用程序的主要实现任务。就像PHP一样,代码的主要功能是输出网页——。这是一个有点激进的要求,它不适合其他东西,比如shell脚本语言。我希望有一种语言可以承担我在开发MVC风格的Web应用程序时的所有任务。所有函数都内置在内核中,而不仅仅是一个包。
问题是没有这样的语言。有一段时间,服务器端JavaScript似乎是统一Web应用程序的前端和后端编程语言的下一个主要语言。但是这些关于JavaScript的好主意总是站在行为的一边,比如nodejs:事件驱动模式是非常积极和强大的,允许你开发高性能应用程序,最大限度地利用新硬件,但这是一种方式开发服务器端应用程序,而不是网页。你仍然需要写很多可怕的网页。其他CommonJS结果如ejScript开始尝试替换PHP,但仍然没有解决框架问题。
仍在等待
我必须得出结论,PHP的替代品还不存在。 Ruby on Rails很棒,但并不比PHP上的类似MVC框架好,更不用说Ruby本身的低效率以及ActiveRecord的ORM恶搞的双重打击。 Python似乎对下一代Web语言不感兴趣,而JavaScript的服务器端解决方案只是一个开始。
网站建设,小程序开发,小程序制作,微信小程序开发,公众号开发,微信公众号开发,网页设计,网站优化,网站排名,网站设计,微信小程序设计,小程序定制,微信小程序定制