1
HuangLibo 2016-12-13 22:09:27 +08:00
|
2
Scholer 2016-12-13 22:12:02 +08:00 2
从哪儿解读出来吐槽了 Laravel ?
|
3
ykjsw 2016-12-13 22:17:18 +08:00
说的挺好的, PHP 还是简单点好。
|
4
orvice 2016-12-13 22:54:26 +08:00 1
|
5
Scholer 2016-12-13 23:07:32 +08:00
@orvice 优雅的框架是说明 PHP 也不简单,后面断句了。本身人家也没影射什么,没必要按照自己的意愿去解读。
反正我一直觉得 Laravel 挺简单的,比大多数框架都简单。 |
6
anewg 2016-12-13 23:10:55 +08:00
稍微熟悉 php 的人都会对框架源码或自己实现框架感兴趣,刚碰到 Laravel 这种用的组件多,抽象层次多的。对比其它看一眼目录结构就能快速定位的框架, Laravel 算是复杂了。
当然了,排除源码层面这点,用起来舒服就好。 |
8
echo111222 2016-12-13 23:25:20 +08:00 via Android
这就尴尬了
|
9
jhdxr 2016-12-14 00:25:59 +08:00
如果几个月能能合并到 master 的话那么 7.2 应该是能赶上的,毕竟现在半年一个版本。
至于吐槽 laravel ,哪怕点名吐槽又如何呢? 7.1 里通过的 rfc 大部分不也投的是反对么。。。 |
10
dtfm 2016-12-14 00:28:23 +08:00
PHP 再这样搞下去,让 Python 很尴尬啊
|
11
sagaxu 2016-12-14 00:48:36 +08:00 via Android 1
@dtfm 如果 php 框架都抛弃 fpm 用 cli 跑,性能上应该可以碾压 pure python 了。不过 Python 的库比 PHP 更全,比如说机器学习或者科学计算和统计,甚至还有 micropython 这种可以用 python 驱动的单片机。
|
12
q397064399 2016-12-14 06:05:03 +08:00
都要 JIT 了,为什么不用 Java
|
13
chenset 2016-12-14 08:44:00 +08:00
@q397064399 都编译了, 为什么不用 C
|
14
araraloren 2016-12-14 08:47:09 +08:00
@q397064399 。。 php 就是 php , 有了 JIT ,这 和 Java 又有什么关系呢。。
|
15
q397064399 2016-12-14 08:57:44 +08:00
@araraloren
你这是抬杠,没心情回复 @chenset PHP Java 都有各自的领域, PHP 最初的设计,就不是针对 大规模 高并发 集群 等玩意的 JIT 是很久以前 JVM 标准下就已经成熟的技术,如果你真的需要 JIT 这种针对性能优化的玩意,直接用 Java 得了, 选 PHP 大多是针对业务需求 都是考虑 PHP 的 快速开发,动态类型等优点, 在现有的机器性能下,如果你的 PHP 做的业务 到后面都需要 JIT 来优化性能的时候,公司架构师的技术选型 肯定会直接切到 Java ,而不是继续使用 PHP |
16
ragnaroks 2016-12-14 09:01:51 +08:00
@q397064399 https://www.taobao.com/index.php 淘宝的并发不小吧
虽然我本身用.net,不过我现在越来越觉得大公司之所以使用 java/.net/python,并不是这些语言有多好,而是高层就会这几种. |
17
setonfocus 2016-12-14 09:07:31 +08:00
是的, php 核心开发组成员里已经有人证实 了
http://weibo.com/ttarticle/p/show?id=2309404052280251914593 |
18
q397064399 2016-12-14 09:09:29 +08:00
@ragnaroks 不说了,你去淘宝看下后台 阿里的 Java 系 是有多牛逼
|
20
likezun 2016-12-14 09:10:57 +08:00
Laravel 都嫌复杂的话,你叫我大 Symfony 怎么办?
|
21
setonfocus 2016-12-14 09:12:45 +08:00 1
在国外 php 的性能问题得不到重视,毕竟他们的网站才多少并发,而我们国家的人口基数大,并发自然也比国外高很多,自然要考虑到性能方面。
|
22
q397064399 2016-12-14 09:15:19 +08:00
@ragnaroks 语言本身就没有好坏,
大家用不用 针对某个领域,只取决两点 1.生态 2.生态 没有生态环境的语言,再牛逼也只是牛逼而已, Java 那么蛋疼的泛型,不还是有人用么? JDK7 里面 要实现很多高级语言特性,十分繁琐,大家不还是忍了 大家为什么要忍 Java ,因为 Java 轮子多啊,满大街的 Java 程序员 便宜啊 PHP 那么蛋疼的运行时环境,,但是在针对某些业务场景, PHP 有奇效啊,开发上手速度贼快, 我不用 PHP 我傻啊 |
23
gouchaoer OP @q397064399 java 是静态类型语言,和脚本语言没法比的, jit 实现上也一样。另外社区生态 java 也是没的说,但是你的观点不对。。。。对性能的追求是没有止境的,况且这些提升对用户来说是透明的。。。至于 php 不适合集群高并发,这是错误的。。。只是 php 的性能比 java 差而以, php 写起来快部署简单耐艹,二者需要一个平衡。。。大厂继续用 php 支撑业务的又不是没有,而且纠结用啥真的没意义,后端 crud 根本不是难点。。。
|
24
liuzelei 2016-12-14 09:21:19 +08:00
都什么年代了还有人认为一个 stack 能够通吃所有业务。看到淘宝首页是 php 的扩展名真以为淘宝是 php 做的么?
|
25
q397064399 2016-12-14 09:22:39 +08:00
@setonfocus
国内 用 Java ,企业领域用的很多,无非两点, Java 成熟的早,企业框架发布的早, PHP 还在玩泥巴的时候 Java 已经针对企业 BS 应用开发 提供了一套完善的解决方案, 而且很多 企业应用 业务逻辑 十分繁琐,架构十分繁杂, PHP 早期还没有面向对象等特性, 后来的互联网浪潮,小型软件 居多 php 的轻量 动态类型的优点就出来了, Java 像 Struts2 等重量级别的框架 已经不适应这个时代了,但轻量级的框架 像 SpringMVC 之类的还是很符合时代特性的 |
26
gouchaoer OP @q397064399 身在福中不知福, jvm 和 java 的生态好我也同意,但是 java 语言本身我认为做的很好了,规规矩矩的够用了。
|
27
ragnaroks 2016-12-14 09:25:19 +08:00
@liuzelei 看到淘宝首页是 php 的扩展名就以为淘宝是 php 做的的那种人肯定是没得救了的,不过恰好淘宝前台用了 php,有趣啊
|
28
q397064399 2016-12-14 09:25:43 +08:00
|
29
setonfocus 2016-12-14 09:26:24 +08:00
@q397064399 其实政府,银行才是 java 大户
|
30
ragnaroks 2016-12-14 09:27:10 +08:00
@q397064399 我给出淘宝使用 php 是想说明,php 虽然性能不如.net,但是还是能应对大并发的,就算淘宝不够看,那 fb 总算大佬了吧
|
33
ragnaroks 2016-12-14 09:32:07 +08:00
@q397064399 语言本身确实没有好坏,黑 java 的那么多,也说明了用 java 的人多,但是 php 追求性能并无不妥,换句话说,java 那么好用了,为什么还是有人要学 C#,java 能做 web 也能做 desktop.
|
35
tabris17 2016-12-14 09:38:34 +08:00
啥时候能出个官方的 reactor 框架
|
36
levn 2016-12-14 09:40:48 +08:00
还以为撕点会停在 laravel 上呢
我真是太年轻了 |
38
defclass 2016-12-14 09:59:02 +08:00
语言不就是, 英国人说英语好, 法国人说法语, 中国人说中文好? 有啥好争的
|
39
fatedier 2016-12-14 10:01:57 +08:00
@ragnaroks 要怎么看出一个网站是否用了 php ? index.php 可以访问不能代表什么吧,也许只是匹配了路由规则。
|
40
sagaxu 2016-12-14 10:06:00 +08:00
@q397064399 历史遗留代码,说换 java 就能换? 有了 php7+jit ,几百台规模的部署,可以减少到几十台,每年省百万。
|
44
type 2016-12-14 10:27:13 +08:00
都要 JIT 了,为什么不用 Java , , ,都编译了, 为什么不用 C
----- 各种撕 B , 好无聊。 |
45
ylsc633 2016-12-14 10:29:32 +08:00 2
JIT 我不评论,因为不知道是啥...特别百科了一把...就不评论了
不多 laravel,难道只有我 这个菜鸟觉得, laravel 用起来很简单,而且 有助于我 代码质量 和 规范的吗? 举个栗子吧.....记得国内入门框架都是用 TP,一个分页写上我一堆代码,laravel 两三行搞定! 不挺好的嘛.... 明明要 拔起一颗钉子, 有锤子你不用,嫌他重,自己用木头去撬...那也没办法..木头确实轻... 不过对于高级的 拍簧片攻城狮 ,他们的感受我就不知道了... 毕竟我还在菜鸟级混... |
46
ylsc633 2016-12-14 10:30:17 +08:00
尼玛,一行一个错别字... 怪 linux 上的 搜狗输入法吧.....
|
47
reeco 2016-12-14 10:33:37 +08:00
|
50
ragnaroks 2016-12-14 10:40:08 +08:00
@reeco 我看完了,看来可能是我信息落后了,晚上有时间再去核实一下.不过淘宝首页到现在也仅做了 /index.php 的路由,是故意的?
|
51
ragnaroks 2016-12-14 10:46:02 +08:00
@77alex (<!--<?php Yii::app()->wm->runWidget('debuginfo') ?>-->)这个?
除此之外还有: ``` <p> <a href="//www.taobao.com/about">关于淘宝</a> <a href="//www.taobao.com/about/partners.php">合作伙伴</a> <a href="//pro.taobao.com">营销中心</a> <a href="http://jubao.alibaba.com">廉正举报</a> <a href="//service.taobao.com/support/main/service_route.htm">联系客服</a> <a href="//open.taobao.com">开放平台</a> <a href="//www.taobao.com/about/join.php">诚征英才</a> <a href="//www.taobao.com/about/contact.php">联系我们</a> <a href="//www.taobao.com/sitemap.php">网站地图</a> <a href="//www.taobao.com/go/chn/tb-fp/2014/law.php">法律声明</a> <em>© 2003-2016 Taobao.com 版权所有</em> </p> ``` https://life.taobao.com/market/sdmjf2011.php 等等... 上面那篇文章也仅仅提到了"淘宝首页". 其实说这么多,php 作为 web 开发肯定是合适的,在此之上提高性能有何不妥? 如果哪天宇宙第一 IDE 原生支持 PHP,说不定我都会把现有的.net 项目用 php 重写了 |
52
Balthild 2016-12-14 10:51:15 +08:00 via Android
@q397064399 為什麼一定要換呢
|
53
cnqncom 2016-12-14 10:52:33 +08:00
喜欢 PHP ,期待 PHP 成为第一流行语言!!!!!
|
54
yoke123 2016-12-14 11:06:57 +08:00
PHP 是世界上最好的语言~
|
55
1023400273 2016-12-14 11:24:56 +08:00
为什么要 jit ?
|
56
5yesan 2016-12-14 11:37:55 +08:00
听说越来越重了,虽然我也没用过 哈哈哈
|
57
usedname 2016-12-14 11:51:55 +08:00
我就想问下 以及鸟哥委婉的吐槽了 Laravel 楼主是怎么推断的?还是楼主先入为主?
|
58
barbery 2016-12-14 11:55:17 +08:00
为什么要吐槽 laravel ?大公司追求高性能,小公司追求高开发效率,不同的场景有不同的需求,这不是很正常么?
|
59
elarity 2016-12-14 12:00:21 +08:00
@q397064399 都有大众汽车了,还要啥奔驰。都有汇编语言,还要啥别的语言。
|
60
Actrace 2016-12-14 12:26:35 +08:00
@sagaxu 作为一个长期使用 PHP 写 CLI 程序的人必须站出来说一下, PHP 在 CLI 模式下内存是个问题。目前似乎还不会主动收缩用于内存分配的链表(没看源码,所以只是猜测)。另外还存在第三方组件的内存泄漏问题。
虽然并不影响 CLI 程序发挥效果,大不了就重启进程呗。 |
61
Jakesoft 2016-12-14 12:38:41 +08:00
我喜欢的
乐队是 muse, pulp,他们在国内 都不火 亦如我写代码用 php,它也不是世界上 最好的语言 可是有什么能挡住 我对生活 的热情呢? |
62
quericy 2016-12-14 12:52:36 +08:00
PHP 最初的设计如何并没有关联吧,每个语言都是在发展的,互联网的环境也是在变的.PHP 最初设计的时候,互联网的规模和并发数和现在能比么?语言随着时代的变化而跟进有什么不妥?
就如同加入可选的类型系统,可以让 PHP 开发者更加没有选择 Hack 的理由一样, 当 PHP 的业务大到需要 JIT 优化性能的时候,如果这个时候 PHP 已经有了 JIT,公司还有什么理由付出重构的成本来切到 Java? |
63
quericy 2016-12-14 12:53:02 +08:00
@q397064399 PHP 最初的设计如何并没有关联吧,每个语言都是在发展的,互联网的环境也是在变的.PHP 最初设计的时候,互联网的规模和并发数和现在能比么?语言随着时代的变化而跟进有什么不妥?
就如同加入可选的类型系统,可以让 PHP 开发者更加没有选择 Hack 的理由一样, 当 PHP 的业务大到需要 JIT 优化性能的时候,如果这个时候 PHP 已经有了 JIT,公司还有什么理由付出重构的成本来切到 Java? |
64
sumuu 2016-12-14 13:01:52 +08:00
```
某女:你能让这个论坛的人都吵起来,我今晚就跟你走。 某软件工程师: PHP 是最好的语言! 某论坛真的就炸锅了,各种吵架…… 某女:服了你了,我们走吧,你想干啥都行。 某软件工程师:今天不行,我一定要说服他们, PHP 必须是最好的语言…… ``` 还是这个笑话! |
65
gouchaoer OP @Actrace 我用 php-cli 循环 3400w 次往 redis 里面插数据,内存泄露退出过,不知道是第三方库的锅还是扩展的锅。。。。我基本上也是写 php-cli ,别的情况下 php-cli 倒是很稳定,我 win 下 php-cli 几个月的跑也没问题。。。链表你是说 array 么?这个是基本数据结构不会有问题的
|
66
Actrace 2016-12-14 15:31:47 +08:00
@gouchaoer
不是指 Array 类型的实现。按照之前看的鸟哥关于 PHP 源码对动态数据类型实现的一些介绍, Hashtable 会自动做扩张处理,但是有没有回缩就不知道了。即使不存储数据,空的 Hashtable 也会占用不少的数据,特别是大量创建并销毁变量的情况下。 因为之前写过的 CLI 业务程序占用过高达 GB 级的内存,所以对这个现象比较在意(虽然后来也是通过重启进程来释放资源)。 PHP 编写的 CLI 程序其实本质上和 C 写的程序并没有区别。稳定性也不用担心。 主要是第三方扩展是一个很大的不确定因素,特别是之前用 pthreads 库,各种退出。现在基本不考虑第三方扩展了。 |
68
gouchaoer OP @Actrace GB 绝对是内存泄漏(第三方扩展泄漏,第三方库泄漏,或者你自己存了变量没释放),第三方扩展也分稳定和不稳定的, krakjoe 维护的 apc 、 pthreads 都是那种不稳定的,没必要一刀切
|
69
Actrace 2016-12-14 16:00:04 +08:00
@gouchaoer 额,泄露不是内存占用大的主因。一部分内容(比较大的数据)确实是需要存入内存。我的意思是在频繁创建并销毁变量之后,用于存储这些变量的 Hashtable 只扩张不收缩(猜测),结果是即使销毁了这些变量也没有彻底回收掉消费的内存。
另外 curl 的内存泄漏也是一个坑,直到现在还没修。 |
70
Dlad 2016-12-14 16:03:23 +08:00 1
论性能,我查到的 benchmark 都证明 PHP 干不过 JAVA.
不过目前这个阶段, WEB 领域, JAVA 能干的 PHP 也都能干。 淘宝的案例,只看当下,蜻蜓点水说那么两句,这是孤立的看问题,没有触及实质。 淘宝的技术栈选择,跟其业务规模发展密不可分,是个螺旋上升的过程。 我前几个月写了一篇文章,论证了为什么说 PHP 目前还是一门有生命力的语言: https://wobu2.com/2016/05/09/php-is-not-the-best-language-md/ |
71
gouchaoer OP @Actrace 每个 array 或者 object 变量都是单独的 hashtable ,变量超出作用域了肯定回收了,所以说你的猜测是不存在的。加载了大量 object 情况下内存变大是很正常的,比如 composer 安装一个库动则几百 M 上 G 。
至于 curl 扩展内存泄漏,我用的 Guzzle ,底层包装的就是 libcurl 扩展,我每个 php 进程会发起几千上万次 http 请求我并没有观测到泄漏,所以你如果观测到泄漏把代码样本贴出来,不可能不修的 |
72
sagaxu 2016-12-14 18:06:27 +08:00
@gouchaoer 5.3 以前的 php 没有 gc ,所以循环引用会导致内存泄露, 5.3 之后,没关闭 gc 的话,合适的时机会释放内存的,不过也不保证短时间内触发,跟 java 一样,系统决定该不该触发。加上 php 很多扩展都是 C 写的,质量也良莠不齐, cli 模式下有泄露也是很常见的,不像 Java 那样可控。
|
73
gouchaoer OP @sagaxu php 的垃圾回收指的是检测循环引用的那个算法, php 本质上还是基于计数引用的简单垃圾回收,这和 jvm 不太一样。。。而且触发条件也很明确,性能在非极端情况下影响不大: http://m.weibo.cn/1170999921/3783767585644423?sourceType=sms&from=1067295010&wm=2468_1001
|
74
sagaxu 2016-12-14 19:23:51 +08:00 via Android
@gouchaoer 本质上没什么不同,都是系统自身决定是否需要来一发 gc ,正常代码逻辑中,无法准确预测下一发 gc 什么时候发生。细抠的话,光 oracle 一种 jvm 就有 4 种常用 gc ,每种 gc 又有参数控制和运行时环境输入值。从功能和成熟度比较, php 的 gc 只是个小玩具。
|
75
solaro 2016-12-15 09:43:46 +08:00
啧啧啧,
@setonfocus 给你点赞,什么东西到我大天朝,都得变样。我大天朝就是新技术的试验田。 |
76
jsq2627 2016-12-15 14:24:03 +08:00 via iPhone
有点惊讶 php 竟然还没有 jit
|
77
gouchaoer OP @jsq2627 php 的 jit 在 5.x 时代就做了尝试,虽然在 cpu 密集 benchmark 上提高巨大,但是在 wordpress 之类的真实场景下看不到提升,所以一直没并入分支,这次是真实观察到提升后的结果。。。
|
78
ericgui 2016-12-16 00:28:15 +08:00
@q397064399 估计上 JIT 是为了和 HHVM 竞争。
|
79
mingyun 2016-12-17 22:29:21 +08:00
laravel 多优雅
|
80
huigeer 2016-12-19 19:17:54 +08:00
php7.2 的 opcache 扩展还用不了啊, 用不了 jit
|
81
terrywater 2018-01-23 15:22:49 +08:00
@Scholer 有啊,吐槽 laravel 仔细看:
回过头来说,你说 PHP 简单吧它也不简单,PHP 相关的东西现在也有很多,比如一些很优雅的框架。有些框架我自己看半天也会觉得还挺复杂的,学起来费劲。 |
82
resturlaub 2018-03-23 10:48:58 +08:00
提问是: ”还有种说法就是 PHP 学习起来特别简单,不利于展示个人能力,对此怎么看?“
回答是: "回过头来说,你说 PHP 简单吧它也不简单,PHP 相关的东西现在也有很多,比如一些很优雅的框架。有些框架我自己看半天也会觉得还挺复杂的,学起来费劲。" 这里表达的是 php 有些学起来有时候也并不简单, 也没有说不简单不好啊,php 也能强大到实现一些复杂的很优雅的框架,还是很考验个人能力的。 |
83
wo642436249 2018-10-10 15:13:06 +08:00
我想知道有没有出来?
|