1
sagaxu 2020-11-27 00:26:32 +08:00 via Android
php 5 跟 java 6 一样顽固,php 7 跟 java 8 一样坚挺,php 8 估计会跟 java 11 一样普及缓慢
|
2
lights 2020-11-27 00:30:11 +08:00 via iPhone
Php 多好一语言呀
|
3
MeteorCat 2020-11-27 00:41:38 +08:00 via Android
有 vm 了吗?
|
4
Myprincess 2020-11-27 00:52:18 +08:00
有没有 PHP 运维呀?修 BUG 的兼职。
|
5
s609926202 2020-11-27 00:54:43 +08:00 via iPhone
Php 是最好的语言
|
6
yklaxds 2020-11-27 01:40:12 +08:00 via Android 1
天天水版本号,也不知道向下兼容一下
|
7
maigebaoer 2020-11-27 01:50:59 +08:00 via Android
php 的版本发布很激进🤣不过作为世界上最好的语言,激进点有好处,中小项目的历史包袱没那么大。
|
8
yunye 2020-11-27 01:58:30 +08:00
新东西挺多的
|
9
akira 2020-11-27 02:17:59 +08:00
有几个特性看起来不错,大幅减少代码量了,写起来也舒服了很多
|
10
jhdxr 2020-11-27 02:57:31 +08:00 22
@yklaxds ?????? PHP 槽点很多但第一次见有人吐槽 php 向下兼容性的。。。你是还在写 4.x 年代的代码吗?
|
11
lihongming 2020-11-27 03:11:37 +08:00 via iPhone
@jhdxr 对程序员没啥影响,主要是运维头疼,升级了环境,老代码就罢工了。
|
12
msg7086 2020-11-27 06:39:39 +08:00
@lihongming ermmm 环境不是跟着代码版本要求走的吗……
|
14
liuzhaowei55 2020-11-27 07:40:08 +08:00 via Android
@sagaxu 我觉得不一定,PHP8 有几个特性还是很吸引人的,性能上也有一定提升
|
15
zachlhb 2020-11-27 08:20:24 +08:00 via Android
php 的 composer 越来越难用了,国内没一个好用的源,每次安装都得换不同的源才能把包装齐
|
17
yekern 2020-11-27 08:23:54 +08:00
反正我们写代码很激进的.一般都是紧跟版本, 使用新特性
|
18
mitu9527 2020-11-27 08:25:50 +08:00
终于出来了,自己可以先尝尝鲜,不过产品上还是等一年后再升级吧。
|
19
des 2020-11-27 08:28:46 +08:00 via iPhone
|
21
mitu9527 2020-11-27 08:56:55 +08:00 1
@sagaxu 刚看了一下 PHP 8 的 Release Announcement,主要还是完成 PHP 7 没做完的工作,比如,继续加强类型系统并引入了一些新的语法和语法糖,进一步统一 PHP 内部代码和用户空间代码的错误处理方式,引进 JIT 。都是实用的特性,过渡上也没有什么可犹豫的点,我觉得普及起来不会慢。
|
22
linxb 2020-11-27 08:57:28 +08:00
@zachlhb https://developer.aliyun.com/composer 阿里云的源还不够你用吗
|
23
CodeCodeStudy 2020-11-27 09:03:46 +08:00
PHP8 跟 PHP7 的兼容性还挺好,普及应该比较快
|
24
CodeCodeStudy 2020-11-27 09:38:08 +08:00
PHP9 的计划是什么?
|
25
mitu9527 2020-11-27 09:42:31 +08:00
@CodeCodeStudy 现在就开始考虑 PHP 9 了?我觉得别说是我们,就算是鸟哥可能也不知道 。
|
26
chotow 2020-11-27 09:44:22 +08:00 7
作为一个 phper 感觉过年了,开心如此简单 😃
|
27
lijialong1313 2020-11-27 09:48:43 +08:00
诶不是说 php8 不支持 windows release 下载的么……
|
28
assad 2020-11-27 09:49:14 +08:00 via Android
@Myprincess 联系我啊
|
30
ben1024 2020-11-27 09:54:06 +08:00
@zachlhb
阿里的源还行,或者用 slince 的 (composer-registry-manager)[https://github.com/slince/composer-registry-manager] 切换下 |
32
CodeCodeStudy 2020-11-27 09:59:37 +08:00
@mitu9527 发布一代,预研一代
|
33
CodeCodeStudy 2020-11-27 10:01:30 +08:00
@lijialong1313 以前 Windows 的版本是微软编译的,现在微软不干了,现在是 PHP 官方开发组自己编译
|
34
TORYOI 2020-11-27 10:03:05 +08:00
真香
|
36
oneonesv 2020-11-27 10:08:25 +08:00
|
37
Carlgao 2020-11-27 10:32:51 +08:00
php8 类型系统越来越完善了,还引入了 WakeMap 为 Jit 优化做准备,什么时候要是能引入协程,去掉$符号就完美了。
|
38
GM 2020-11-27 10:38:51 +08:00
@maigebaoer PHP 版本发布很激进???/黑人问号脸。
|
39
zjttfs 2020-11-27 10:41:46 +08:00
php 9 就可以搞多线程 /协程 了..
|
40
lijialong1313 2020-11-27 10:44:03 +08:00
@CodeCodeStudy 这俩有啥区别啊……
|
41
sorshion 2020-11-27 10:45:42 +08:00
$符号是特征,去掉就没识别度了
|
42
wmwmajie 2020-11-27 10:53:56 +08:00
个人感觉 php 真正要起飞应该主要还是看 php9 是否包含协程这样的异步机制和连接池,能支持这两点直接起飞,PHP8 已经铺好了代码编译方面的优化,期待 php9 计划。
|
43
zjsxwc 2020-11-27 10:56:28 +08:00
谁有 8.0 jit 性能提升数据 发出来看看
|
44
mitu9527 2020-11-27 10:58:44 +08:00
@zjsxwc 官方做了一些简单的基准测试。https://www.php.net/releases/8.0/en.php 里面有提到。
|
46
danielhuo 2020-11-27 11:06:41 +08:00
@Myprincess aHVvZGFuaWVsQGdtYWlsLmNvbQ==
|
47
learningman 2020-11-27 11:09:13 +08:00
@Carlgao 最后改叫 python (
|
48
Felldeadbird 2020-11-27 11:25:17 +08:00
@yklaxds 活久见,10 年来,第一次见吐槽 PHP 向下兼容。
|
50
mitu9527 2020-11-27 11:40:23 +08:00
@ben1024 就是因为感觉官方不见得能吸纳 Swoole 才觉得工作量会比较大,希望结局能尽人意,也不枉众多 PHPer 们的期待。
|
51
Immortal 2020-11-27 11:44:57 +08:00
PHP 作为当年的入行语言 我还是很有感情的
从一定角度来看 真的挺好的 主流 web 语言没有一个能像 php 这样丝滑更新的 都得自己整一套热重载 |
52
keepeye 2020-11-27 11:53:35 +08:00
就差个原生协程了 加油
|
53
yujieyu7 2020-11-27 12:00:52 +08:00
滋瓷一下
|
55
fox0001 2020-11-27 13:24:24 +08:00 via Android
say yes~
|
57
fenglangjuxu 2020-11-27 14:05:09 +08:00 1
希望能重夺江山
|
59
leonidas 2020-11-27 14:09:28 +08:00
yes baby
|
60
pein 2020-11-27 14:28:50 +08:00
多线程不要想了基本不可能,引入协程就很棒,PHP 一旦全面协程化,预计会焕发第二春,官方是不指望了,某 s 开头的扩展不靠谱,谁认识鸟哥的联系他让他带领团队开发个协程分支啊,开发资金可以众筹。
|
61
leonidas 2020-11-27 14:48:11 +08:00
谁来做个性能评测
|
64
shellic 2020-11-27 15:16:52 +08:00
据说性能比 PHP7 还要高一些?
|
65
Mrxx 2020-11-27 15:45:05 +08:00
php 性能再好,wordpress 都能给你拖下来
|
66
zjsxwc 2020-11-27 15:48:55 +08:00
@mitu9527
额,本质上不都一样吗, 当然如果说 python 的 gevent 这种与多进程用起来像的协程(提供了 fork/join ), 那么 php7 确实还没有。 而 swoole 的协程是抄了 golang 的 channel,又是另一种协程了。 |
67
mitu9527 2020-11-27 16:28:42 +08:00
@zjsxwc PHP 还没有原生支持协程,目前 PHP 想使用协程,主要是用 Swoole 。另外,我没听说协程在 PHP 中和生成器有啥关系。
|
69
NoonTime 2020-11-27 17:34:17 +08:00
@Mrxx 鸟哥关于 PHP8 中 JIT 开发历程的博文.统计 Wordpress top50 函数然后 JIT,性能提升 10%
|
70
NoonTime 2020-11-27 17:34:28 +08:00
|
71
ryh 2020-11-27 17:59:23 +08:00
https://wiki.php.net/rfc/constructor_promotion
这个 rfc 真心不懂为啥这么做,虽然简单了很多,但很容易歧义吧,还是有 10 票反对很说明问题 |
72
mitu9527 2020-11-27 18:29:15 +08:00
@ryh 我觉得就是个语法糖,喜欢用就用,不喜欢用就不用,没啥影响的。就比如 PHP 的箭头函数我也不太喜欢,我觉得它没精简到表达式的级别,用起来感觉不太舒服,但有不少人觉得还可以。
|
74
sagaxu 2020-11-27 19:09:42 +08:00 via Android
|
75
sagaxu 2020-11-27 19:28:36 +08:00 via Android
|
77
2kCS5c0b0ITXE5k2 2020-11-27 20:00:39 +08:00
@BBCCBB 就算有协程也不会无缝修改的。 肯定坑很多
|
78
meshell 2020-11-27 20:01:01 +08:00 1
|
79
zjsxwc 2020-11-27 21:34:44 +08:00 via Android
|
80
meshell 2020-11-27 22:38:09 +08:00
@zjsxwc 这个是原文也是 PHP 开发组的,作者目前在 PHPstorm 开发组. https://nikic.github.io/2012/12/22/Cooperative-multitasking-using-coroutines-in-PHP.html
|
81
whahuzhihao 2020-11-27 23:20:56 +08:00
php 早就有协程了啊,只不过不像 golang 这么方便,比较像 lua 那种,要手动调度。
|
82
baobao1270 2020-11-27 23:21:51 +08:00
PHP Yes ! Exciting !
个人比较关注语言方面的: 联合类型、错误类型统一、命名参数,PHP 终于和主流语言接轨了 注解这个真的是 Web 开发的福音 |
83
Lemeng 2020-11-28 00:59:06 +08:00
虽说江山不在,但 php 必须支持
|
86
zjsxwc 2020-11-28 09:20:37 +08:00
我测试了 php8 开启 jit 在我电脑里的性能提升,提升巨大,见图:
https://i.loli.net/2020/11/28/qSpY9niTcxfoy1L.png 在我的帖子在 https://www.v2ex.com/t/603272 @leonidas |
87
CodeCodeStudy 2020-11-28 10:49:51 +08:00
@whahuzhihao 你指的是 yield 吗?那个不太好用,容易出错,像 Golang 和 Swoole 一样使用 go 包起来更方便些
|
88
hantsy 2020-11-28 11:08:15 +08:00
PHP 8 这个不讲武德,这么多特性,还得分 7,8 个版本实现吧。看看现在的 C#,Java 每个大版本都在挤牙膏。
看了一下 PHP 8 的 Match Expression,这个设计不错,不知道是否支持 Sealed Class 类似的 Class 匹配,有用过的回复一下。Java 中的实现直接复用 Switch,到最新的 15 还不支持 Sealed Class 。 Attributes (或者 Java 中 Annotations )将原来的 Doctrine 中使用 Attribuite 直接标准化,辅助说明从 Comments 中直到放到代码上,语法更接近 C#,这算得上语法上的一次革命,不错。这个过程类似于 Java 中使用 Doclet (用过 Hibernate1.x 2.x 基本都是用过的 ) 到 Java 5 Annotations 。 JIT 不用说了,大杀器,但这个不属于语言语法范围。 |
89
hantsy 2020-11-28 11:10:51 +08:00
@sagaxu Java 是容易容器化的,你完全可以用最新 Java 15 的语法写程序,比如 record 在最新的 Spring 5 。3 可以轻松使用。Text Block 不讲了,如果你还在写 SQL 或者类似的 XXXQL,一下子感觉多行显示舒服多了。
|
90
hantsy 2020-11-28 11:18:46 +08:00
@sagaxu Quarkus 很早之前有提醒可能新版本不支持 8,过渡到 11,但是但现在 Quarkus 还是在兼容 8,虽然邮件列表中很多人提议删除 8 的支持。个人觉得 Quarkus 一开始就是为容器准备的,用 Java 11 一点问题也没有。Quarkus 在 1 。0 的时候,它的介绍是 a container first framework. 现在网站上写的是 A Kubernetes Native Java stack tailored for OpenJDK HotSpot and GraalVM, crafted from the best of breed Java libraries and standards,显然它又将 jvm 运行环境当成一种目标。
|
91
sagaxu 2020-11-28 12:50:47 +08:00 via Android
@hantsy Java 8 比预期的更坚挺,官方支持到 2030 年,Java 11 却只支持到 2026 。现在这个阶段哪个框架不支持 8 就是自掘坟墓。
|
92
ahu 2020-11-28 12:55:50 +08:00
|
93
CodeCodeStudy 2020-11-28 14:06:09 +08:00
@ahu 不错,看得很清楚
|
94
1627072329 2020-11-28 16:36:39 +08:00
终于发布了,等好久了
|
95
hantsy 2020-11-28 17:07:33 +08:00
@sagaxu 如果你做的是一些公共库,或者通用框架,考虑到兼容性,定格在 Java 8 无可厚非,毕竟要更多的考虑用户习惯。目前看到的可能 Helidon2 是第一个宣布 Java 11 起步的吧(太多的新特性,不得不放弃 8, 比如 reactive, 雇用 Rxjava 大师操刀,基于 Flow 重写,另外也启用了 Micronaut 的团队成员丰富功能 ),但它还在维护 Helidon1 。x ( Java8 )。
但是如果自己的业务项目,完全可以跟进最新的 Java 版本,甚至可以使用一个 CI 来检测当前版本至最新的 ea 版本兼容性,代码可以一直持续跟进新语法。 |
96
hantsy 2020-11-28 17:08:25 +08:00
好几年没写 PHP 代码了,得玩玩 PHP 了。
|
97
limingxinleo 2020-11-28 17:09:40 +08:00
@pein 你们打算众筹多少钱,让财务自由的鸟哥,来做这个呢?
|
98
jhdxr 2020-11-28 17:30:53 +08:00
PHP 内置的 IO 相关的方法全是同步的,要支持异步的特性,那些方法大部分都得提供一个异步的版本(不然没啥意义)。工作量太大,目前还没有看到有任何人有去推动 /做这个的打算。
|
99
sorshion 2020-11-28 19:14:18 +08:00 2
|
100
dd112389 2020-11-29 02:35:32 +08:00
PHP 是世界上最好的语言!
|