php8.3 更新了

2023-11-24 18:53:03 +08:00
 mimiphp

节节高升 18:06:28 所以被更新了

节节高升 18:06:35 也就是我上次说过的

节节高升 18:06:48 php 核心团队现在产生分歧

节节高升 18:07:04 核心团队成员里面有一个鸟叔是中国人

节节高升 18:07:27 这个鸟叔和 php 创始人两个人更加趋向走 java 路线

节节高升 18:07:48 但另外一批人更取消继续维持动态脚本语言的路线

节节高升 18:08:12 因为鸟叔他们认为走强类型语言更加提高性能

节节高升 18:08:45 但随着 jit 扩展的加入,也就是动态编译的引擎加入,动态脚本语言的开发方式得以保存

节节高升 18:09:04 由于 php 是非盈利组织,基本大方向的决定都是投票决定

节节高升 18:09:12 所以最终鸟叔和创始人退出

节节高升 18:09:43 而现在成立了 php 基金会,保持非盈利,继续由其他核心团队成员开发维护

节节高升 18:09:51 注意,开发 PHP 的都是 C 语言程序员

节节高升 18:10:08 所以 php7 以后,其实鸟叔退出

节节高升 18:10:27 因为 php6 就是鸟叔推出的。。。直接没有上架被否定了

节节高升 18:10:45 php7.4 停滞了很多年,原因就是创始人也退出了

节节高升 18:11:14 现在 php8 以后就其实是基金会提供资金,更多的其他核心成员在开发了

节节高升 18:11:20 并且保持 1 年更新一次

节节高升 18:11:23 这是好事

节节高升 18:11:39 因为包括前端的 js 同样的问题

节节高升 18:11:56 也就是本身你是脚本语言,就必须要解析环境

节节高升 18:12:39 浏览器本来就是个最优秀的解析环境。但强类型语言的程序员,比如微软的,facebook 的等等,都喜欢工程化,打包编译生成二进制的方式

节节高升 18:12:55 但不论 php 还是 js ,最终都要环境才能执行

节节高升 18:13:20 所以微软的 TS 和鸟叔的 php 强类型 PHP ,可以理解都是走错了方向

节节高升 18:13:44 因为他们拿一个动态脚本语言来改变开发方式,根本没有提高任何性能。

节节高升 18:13:57 只是让强类型语言的程序员适应罢了

节节高升 18:14:16 但 php 现在国外很火。 包括原生 javascript 很火

节节高升 18:14:30 所以并不是只有强类型的程序员主导

节节高升 18:14:50 而且幸好坚持脚本语言的都是官方团队

节节高升 18:15:07 强类型语言的程序员不是总喜欢吐槽执行性能吗

节节高升 18:15:24 比如 python 团队从来就没有考虑过执行性能,基本都是嗤之以鼻

节节高升 18:15:34 为什么 python 会这么傲骨?

节节高升 18:16:02 因为他的发展和社区火热程度,导致这些响吐槽的人会被 10 倍喷回去

节节高升 18:16:16 你们也可以去 python 官方社区看一下互喷多好玩

节节高升 18:16:46 python 也是脚本语言,但人家几行代码就能搞定爬虫,甚至高级人工智能算法

节节高升 18:17:24 因为只要涉及到纯后台的算法程序,从来就不是一效率作为第一标准的

节节高升 18:17:38 都是以结果的精准度作为结果的

节节高升 18:18:02 所以强类型语言非常适合开发数据库,等等需要及时响应,高并发的程序员

节节高升 18:18:12 注意,数据库也是个程序软件

节节高升 18:18:27 这种软件就肯定需要强类型语言来开发

节节高升 18:19:05 但更多的场景,比如算法领域,web 领域等等,都是脚本语言的天下

节节高升 18:19:34 特别是 nginx 这个软件的加入,php 和 python ,甚至 nodejs 等等都根本不用关心高并发

节节高升 18:19:44 因为 nginx 才是响应客户的高并发软件

节节高升 18:19:56 数据库也是响应结果集的高并发软件

节节高升 18:20:21 但中间的 php,python,nodejs 等等其实只是简单逻辑+查询数据库+返回信息给 nginx 而已

节节高升 18:20:44 特别是 php 的 php-fpm 。。。动态扩充进程,消减进程

节节高升 18:21:11 也就是强类型语言的人,一谈一个语言,第一步就是谈性能

节节高升 18:21:59 比如 web 领域,我用 java 同样可以搞个监听端口的 web 服务器。。。 然后开始吐槽 php 你也可以监听端口,但你那点并发简直就是垃圾。。。

节节高升 18:22:26 但最终真实情况是,包括 java 开发的 web ,也是用的 nginx 来当作前端响应用户的并发软件

节节高升 18:22:42 所以强类型语言的人总是拿一个单一语言来谈性能。

节节高升 18:22:54 但实际使用,一个系统,都是多种软件配合完成的

节节高升 18:23:27 而 php 又是个异类,一直检查 html+php 可以混编,同时优化解析器性能,比如 jit

节节高升 18:24:39 所以 php 纯后端算法程序,性能也不差了。而继续保持脚本语言开发方式,最大的优势就是任何变量,不需要关心类型。大量的 C 语言提供的内置函数。。这些都是强类型语言无法比拟的

节节高升 18:25:45 特别是 golang 这个强类型语言提出协程后,php 的 swoole 以及官方 php8 都提供了协程开发方式。性能上高并发完全没有问题了

节节高升 18:26:19 这些是其他强类型语言完全无法理解的,也坚持多线程才是天下的观点

节节高升 18:26:52 但不好意思,golang 就是你们强类型语言的阵营,但它提出的多协程性能已经接近多线程了

节节高升 18:27:18 所以实际上程序员开发行业一直都是这样,谁都不服谁。

节节高升 18:27:41 我们公司我有段时间是很担忧的

节节高升 18:28:00 因为老板被 java 团队,和伟达的洗脑。准备放弃 php 了

节节高升 18:28:14 不过无所谓,只是一个打工工作罢了

节节高升 18:30:12 @蕭道钦 所以也就是说,php8.0 这个版本还有创始人和鸟叔的影子

节节高升 18:30:33 但后续的版本会逐步取代什么函数加变量类型的方式

节节高升 18:30:45 完全就是多此一举的事情

节节高升 18:31:48 比如

你这个例子,如果不指定 return 必须是 bool 类型。。。程序也完全不会报错。只是某些编辑器会提示而已。也就是官方的底层都不会认为这是个错误,会自动帮你推到类型了

蕭道钦 18:32:23 嗯

节节高升 18:32:57 这里面微软,和 facebook 是最跳的两个公司

蕭道钦 18:33:19 我觉得如果不是做研发的,我们更多是实现业务逻辑就够了,能快速实现需要的东西就够了

节节高升 18:33:23 微软的 vscode ,facebook 的 react 还有更多的事情都是这两家公司搞出来的

节节高升 18:33:27 一大批的粉丝

节节高升 18:33:45 但离谱的是,这两家公司根本就没有原创过什么自己的语言

节节高升 18:34:01 特别是微软,现在是印度人管理,不是比尔盖茨了

节节高升 18:34:18 基本都是仿造苹果

节节高升 18:34:56 微软自家的语言,都是早期比尔盖茨那批人搞的。比如 asp,vb,asp.net,还有手机版本的微软系统

节节高升 18:34:59 还有 IE

节节高升 18:35:07 但基本都不再更新了

节节高升 18:35:27 facebook 就不谈了。完全就是二手贩子

节节高升 18:35:41 跟国内的 360 公司非常像

节节高升 18:36:27 但问题是中国主流高校,都是 java 课程,像 python,php 这种完全没有官方证书颁发权力的。高校不会开课,要不然你这个毕业证没有任何意义

节节高升 18:36:39 所以才导致国内主流都是强类型语言的程序员

节节高升 18:36:50 特别特别搞笑的就是 javascript

节节高升 18:37:12 要不是浏览器内置这个语言,这些国内的强类型语言程序员肯定老早就想取代

节节高升 18:37:20 但问题是取代不了,不是吗?

节节高升 18:37:59 所以微软和 facebook 正好又出名,又喜欢跳。。。完全符合的国内程序员主流行业的价值观

节节高升 18:38:19 但实际上国际上,就拿 js 来走,走原生的,走 jquery 的多得多

节节高升 18:38:40 动态语言的后端程序,那真的是百花齐放了。我指国外

节节高升 18:38:52 但国内,基本上随便谈,肯定 java 第一

节节高升 18:38:58 第二就是 asp.net

节节高升 18:39:56 蕭道钦
我觉得如果不是做研发的,我们更多是实现业务逻辑就够了,能快速实现需要的东西就够了 @蕭道钦 对的。。上面思路你看明白就知道。大多数都是 C 语言基本的高级程序员在互喷。。。我们这种普通应用级别的程序员,基本上根本涉及不到底层原理

节节高升 18:40:34 我只是特别反感微软和 facebook 而已。。。要么你们自己弄一个出来,不要在那里逼逼不好吗

节节高升 18:41:01 你看看谷歌,那才是高手如云,什么 golang,android 各种原创语言

节节高升 18:41:32 微软说实话比尔盖茨不管了以后,就是个印度人在管理而已,毫无核心竞争力

节节高升 18:41:43 只是市场占有率摆在那里

节节高升 18:41:53 特别是前期默认中国盗版

节节高升 18:42:07 目前中国要改变不使用微软,基本不肯能了

节节高升 18:42:15 但谁不在吐槽呢?

节节高升 18:42:22 跟微信一个德行

节节高升 18:42:27 这就是垄断的后果

3891 次点击
所在节点    PHP
40 条回复
dobelee
2023-11-24 20:36:21 +08:00
岁月不饶人,鸟哥变鸟叔了。
jtsai
2023-11-24 20:57:40 +08:00
PHP 话题现在热度这么低了,帮忙支持一下
NessajCN
2023-11-24 21:14:48 +08:00
> 节节高升 18:21:11 也就是强类型语言的人,一谈一个语言,第一步就是谈性能

当然不是了.....ts 提高了个毛毛的性能,很多情况完全就是方便调接口和 debug 而已
Python 还有 type hint 呢
kenvix
2023-11-24 21:29:03 +08:00
所以你转发这个人的一大堆暴论是要说啥
BBCCBB
2023-11-24 21:38:43 +08:00
https://www.laruence.com/2022/04/12/6089.html


你发的这些很多都是错的. 比如 php7 后面就不关鸟叔什么事了.. 我一个不写 php 的我都看到过新闻,
neoblackcap
2023-11-24 21:47:54 +08:00
Python 什么时候不注重性能了? Python 是因为注重 C 扩展兼容性以及单线程效率所以很多改动没法做。但是随着这些年大厂的不断投入,Python 也开始动了,新版本已经加入颗粒度更小的子解析器。有利于日后解决 GIL 问题。
至于 Javascript 还不够激进么? V8 早年都是直接生成机器码执行的。V8 在我看来,都属于 VM 的第一梯队了
pubby
2023-11-24 22:07:06 +08:00
从 php4 开始的我。。。。。

现在除了历史遗留项目的维护,已经没有理由选择 php 了
Features
2023-11-24 22:39:38 +08:00
PHP 太好用了,一直用 PHP7.4 ,美滋滋
dongisking
2023-11-24 22:47:07 +08:00
php 写到后面特别难维护,尤其是被魔术方法__call 以后,没有人知道中间发生了什么,只能自己看源码,打印数据、除非你在注释里声明了 @method 。另外 ide 对 php 的支持不够,导致后期 debug 尤其痛苦
Enzoliu
2023-11-24 22:59:48 +08:00
@dongisking #9 太真实了!
mimiphp
2023-11-25 02:15:30 +08:00
@kenvix 我是基于 php8.3 更新了,跟同事有感而发,而且我也是发在 php 讨论组,怎么就变成暴论了呢?
mimiphp
2023-11-25 02:17:36 +08:00
@BBCCBB 我不是 php 核心团队的人,很多信息也是看资料了解的,时间隔太久记不太准确,抱歉。但大体就是这么个情况,php 核心成员确实产生分歧,鸟叔确实不管 php 了。但其实还有其他中国人在核心团队,只不过投票确认的方向是大多数人的选择
mimiphp
2023-11-25 02:33:57 +08:00
@neoblackcap 主要谈的是 php ,但由于 python 和 javascript 都是脚本语言,附带提到。至于你说的 V8 ,VM 。本质上还是脚本运行环境,但我主要想表达,把 javascript 工程化,本地打包编译,是一个错误的发展方向。更夸张的是微软提出的 typescript 了。也就是不论基于浏览器引擎的浏览器 js 还是基于 v8 的 nodejs ,本质都是脚本语言,脚本语言最大的特性就是不是二进制,是字符串。我们开发的代码不是编译执行的字节码,而是解析引擎需要读取的 API 而已。你可以理解为跟 sql 字符串一样。。但数据库或者 php 解析引擎或者 python 解析引擎,或者浏览器的 js 解析引擎等等,都是得到我们的脚本代码,去激活内置的 C 语言逻辑,与 cpu 内存交互的底层还是 C 语言。
如果理解上面的说法,则任何基于脚本语言开发的所谓打包过程,工程化过程最终都会还原为脚本代码而已,没有提高任何性能。至于其他回复说到的可以规范 debug 可以规范开发等等。。这都是强类型语言编译打开的思想。

脚本语言最大的特性就是简化了开发,随时修改随时迭代。并且 php-fpm 还是个异类,可以说 nginx 与之交互的 php-fpm 多个线程之间毫无关系。这种特性可以保证你修改代码前一秒其他线程都能能完成用户响应,后续新的请求响应的就是你修改后的代码。

但强类型语言做不到。甚至 php+html 坚持的混编也是 20 年前 asp,cgi 等脚本语言发明的。

前端 vue ,react 等等框架提出的虚拟 dom ,diff 算法,最终到了今年 2023 年了。作者 vue 作者都在思考虚拟 dom 到底有没有必要存在。也就是以虚拟 dom 建立,却最终发现真实的 dom 才是根本。因为不管第三方折腾多少年。js 官方团队一直有自己的更新节奏。juqery 也一直在更新。。如果 vue 自己推到虚拟 dom ,最终不就跟后端 php 或者 asp 把 html 理解为普通字符串,然后混编 php 代码替换修改节点内容了吗?兜兜转转不就又回去了吗?
javascript 官方团队本身就在以浏览器解析基准的情况下提出模块组件式开发。一直在更新。
那微软的 typescript 到底在做什么?不就是让强类型语言的 java 程序员等等适应开发前端代码吗?不论解释如何优化,工程化,避免错误,debug ,最终还是编译成原生 javascript 不是吗?
那没有 typescript 之前,或者说 javascript 官方团队的开发方式就是垃圾?
明显就是弱类型语言的脚本语言开发方式不符合强类型语言的开发方式才搞出来的 ts 嘛。。。。所以我上面聊天时就说了态度,微软你这么出名,没必要改变 js 的编程习惯,你可以自己弄一个出来专门针对强类型语言的程序员的前端开发方式啊。并且打包编译二进制效率更高。要求每个用户安装一下就好了嘛。。。

但普通用户都是浏览器呀,javascript 就内置在浏览器内的呀。。。你搞这么多还不是要还原 javascript 嘛。。。你改不了啊。微软你自己不是有 IE 吗?现在没市场了,就来破坏前端开发流程参一脚了么?
mimiphp
2023-11-25 02:43:41 +08:00
@dongisking 我不知道你对 php 的理解程度是到了什么级别。但是你提到的__call,包括__set,包括__get 。不是写得很清楚了吗?
调用不存在的方法,设置不存在的属性,和调用不存在的属性。。

这种魔术方法,魔术常量 php 非常多。你是在质疑 php 提供的这些方法和常量不可靠还是质疑看不懂?

你比如__DIR__ 就是获取当前脚本所在的系统绝对路径。。。你是想分析他的 C 语言代码的执行逻辑吗?对于应用级别开发的程序员,你只需要知道__DIR__就能拿到绝对路径,为什么能拿到你去关心什么呢?

同样的道理,当你实例化一个对象,然后调用了一个不存在的方法,你可以借用__call 来统一封装提示信息,或者跟踪日志等等。。

如果你开发过自己的框架

__set 方法和__get 方法是非常强大的两个魔术方法。

当控制器中直接
$this->aaa='你好';

由于当前控制器就没有这个这个成员属性。。所以__set 方法会被激活。你可以正好利用这个机制把调用的属性名称和值记录下来,然后做模板方法 display 的参数注入。。。这样在模板文件中就可以直接得到控制器对应的变量名和值了。

这些魔术方法已经说明了使用场景,为什么你要去知道执行过程呢?就是因为不清楚原理,所以叫才叫魔术啊。。。。
icy37785
2023-11-25 02:45:27 +08:00
@mimiphp #10 还以为你是转发了别人的暴论,原来是你自己说的话啊。
怎么说呢,感觉有点儿没常识了。
但是我怕你拉着我辩论,所以我先把你 block 了。
mimiphp
2023-11-25 02:53:41 +08:00
@pubby 你现在就是在一个 php 开发的社区讨论没有理由选择 php 。。。你可以自己用 java 或者 nodejs 去开发相同的社区,然后在那边各种挖苦讽刺都无所谓。但最离谱的是,在一个 php 程序开发的社区来讽刺 php 有多么不堪。。岂不是自相矛盾?
而且我发布的聊天记录已经说清楚了,国内环境是由于高校主流只有 java 课程,证书认证。php 这种纯非营利性组织本来就没有官方认证证书。

你让这么多计算机毕业的程序员如何标榜自己是高人一等呢?

但就连淘宝,百度,小米,虎牙都在用的 php ,这么多小虾米却看不上,并且国外反过来却这么火,不应该自己反思一下吗?
mimiphp
2023-11-25 02:55:00 +08:00
@icy37785 多谢拉黑,因为沟通的过程其实很无聊,还要保持风度。既然互相看不上,没必要讨论是最好的结果
nicoljiang
2023-11-25 04:24:52 +08:00
PHP 这几年真是肉眼可见地飞速进步啊。
以前主要就靠 WordPress 赏饭吃,然后现个 Laravel 赏饭吃,很好奇未来会再出个什么。
前景真是无限好。
zzzkkk
2023-11-25 06:49:12 +08:00
@pubby
现在用什么
superares
2023-11-25 09:18:11 +08:00
PHP8.3 可以给类常量指定类型了,没看出来他们想弱化强类型啊

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

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

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

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

© 2021 V2EX