PHP 越来越靠近编译型语言了

2020-12-25 22:22:02 +08:00
 fxjson

php7,8 支持变量类型约束了,开源框架也都在慢慢引入类型约束,感觉之前 php 的优势就是简单,快速开发,引入变量约束,四不像的感觉

9182 次点击
所在节点    PHP
89 条回复
coolesting
2020-12-25 23:09:16 +08:00
后期肯定要变得肿涨,转 nodejs 吧。
特别是那框架,一个个都模仿 ROR,更加怪异。
sagaxu
2020-12-25 23:28:45 +08:00
动态一时爽
learningman
2020-12-25 23:32:58 +08:00
@sagaxu GC 火葬场
ferock
2020-12-25 23:35:27 +08:00
再不转型,就毫无优势了
cmdOptionKana
2020-12-25 23:39:55 +08:00
js 是命好,才有微软这个级别的公司给它搞一个 typescript, 而 PHP 现在不受宠了,只能自己引入类型约束。

事实上在现代化 IDE 的加持之下,类型约束并不会影响快速开发,又方便了重构,利大于敝。
Mac
2020-12-25 23:41:53 +08:00
引入有什么不好么?你照样可以用之前的特性继续做快速开发呀。
aofall
2020-12-26 00:16:39 +08:00
就目前来说还不是强制要求的,虽然说弱类型可以快速开发之前是它的优势
但一门语言是要考虑自己未来的发展的,相比其他语言来说 PHP 的性能目前还是一个需要优化的问题。

快速开发->能用+上线+修 Bug->发展面临性能不足的问题->优化->还是不足->换其他语言重构

如果最后因性能不足或者功能缺陷导致被重构抛弃,那 PHP 这门语言是不是也丧失了他的地位?

其实在 OPCache 的引入之后就已经在往相关的方向靠拢了,个人感觉 PHP 社区目前饼画的还行,就看后期他们能不能推出让人惊艳的版本了,比如支持多线程和内存常驻(不包括 Swoole )
aofall
2020-12-26 00:18:32 +08:00
#7 引入强类型可以让性能变得更好的情况下,可以一定程度的缓解“换其他语言重构”的结局。
anguiao
2020-12-26 00:35:20 +08:00
我对动态类型完全没好感,甚至连“一时爽”的感觉都没有。
主要还是 IDE 用惯了,没有完善的代码补全,写起来真的很难受,完善的代码补全可以大大降低我查文档的次数。
sn01615
2020-12-26 00:39:06 +08:00
其实我不想约束类型的,都是 IDE 逼的
hantsy
2020-12-26 00:48:00 +08:00
很多年前的 PHP 5.x 就开始 OOP 了吧,5.6 已经具备成熟的 OOP 语言特性。

https://github.com/hantsy/angularjs-zf2-sample

8.0 支持 Union Type,PatternMatching 等比较潮流的特性。但是一些基础的东西,PHP 应该补充,比如 Java Collections 对应的。

OOP 编程基本上用 Symfony,Doctrine 和 Java 开发效率差别不大了。
hantsy
2020-12-26 00:51:10 +08:00
如果没有强类型约束,后期维护太难了。
MengiNo
2020-12-26 00:53:55 +08:00
快速开发感觉是个悖论。当你选择想开发速度妥协的时候,就意味着这个项目的最终归宿就是 shit mountain 。虽然绝大多数人都知道这是饮鸩止渴,但是毒发的速度永远是超过预期的。大家都想后期换语言重构什么的,但往往是还没坚持到后期,自己就把自己搞得非常难以维护最终拖死了。
MengiNo
2020-12-26 00:55:49 +08:00
毕竟都 2021 年了,idea + demo 甚至 idea + ppt 就能融到钱的故事早就被写到历史书里了。
hantsy
2020-12-26 00:57:12 +08:00
PHP 社区比较扯淡,主要是个人参与,这点与 Java 太不一样。

PSR 这一套出规范的机制,好不容易抄袭了 Java 的 JSR,将一些基础的东西全部标准化了,缓解 PHP 各项目一盘散沙的书面。

现在摆停了。
hantsy
2020-12-26 01:01:11 +08:00
@MengiNo 跟开发团队有关,跟语言无关,Java 见过太多的项目也一样。做为开发人员,有时心理想做好,无力回天,SB 公司,SB 管理,加上遇到一些巨婴共事。

开始求快,后面一锅粥,天天折东墙补西墙。
hantsy
2020-12-26 01:05:18 +08:00
@coolesting 要说模仿 ROR 的 PHP 框架,CakePHP 应该是的。https://github.com/hantsy/angularjs-cakephp-sample

ZF2, Symfony, Doctrine 几乎把 Java 的一套全部搬过去了。

* EIP
* Spring
* Hibernate

有这些基础,写 Symfony 很容易。
hantsy
2020-12-26 01:08:20 +08:00
不知不觉,发现好多年没写 PHP 了。 过几天写个 Symfony 程序玩玩。
hantsy
2020-12-26 01:10:37 +08:00
对了,PHP 8 还有内置 Attribute,不用再用 Doctrine 的 Annotations 了。
hantsy
2020-12-26 01:15:49 +08:00
除了 Symfony 适合大型程序 Module 形式的开发外,一些轻量的也开始流行了。比较典型是 Slim 这种,有 Vertx 的风格,开发比较自由,代码组织全靠自己。
https://github.com/slimphp/Slim

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/739051

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX