都说 Java 比 PHP 稳定安全,可维护性好,为什么啊,难道就因为 sun 公司提供的一系列的技术支持?难道像阿里那种电商就不能 PHP?如果阿里用 PHP 较之 Java 会出现哪些问题?本人入 PHP 只有一年时间,参与过类似搜房的房地产网站开发,做过几款 App的接口,目前兼职参与搭建一个多用户的电商平台。之前在学校只懂 Java 皮毛。 感觉 PHP 好的,真搞不懂 PHP 哪里不如 Java 安全稳定。
回复内容:
这东西完全看人。。。
那些说,java因为它的特性,不至于被菜鸟写太乱的我也只能呵呵了。你们也太小看菜鸟的实力了。
咦,看来我有资格来谈一谈,,,
1.编码规范JAVA大小写敏感,PHP对 函数名、方法名、类名是不区分大小写的。
这在生产中容易导致问题,比如window系迁移至类Unix系。
在编码规范上SUN给出了一个好的风格样式,再加上使用的各类Jar包的规范。
一个菜鸟只要用心,是不会写烂代码的风格的。
PHP确有些小头痛呢,因为之前流行的是面向过程式编程。
独立开发者各有各的风格,个人觉得那些DISCUZ、DECMS等等是带坏一票人啊。
二次开发那个命名随意,真是任性。
当然,现在PHP也支持OOP了,各类框架的命名风格也一定程度的约束了编码人员的风格。
当然,要写烂一样很简单。
再加上是弱类型语言,代码质量的好坏比JAVA,对程序员的要求是更高的,虽然PHP简单。
正如 @Cweili 所说:“安全和稳定就需要开发者的水平来保证了”。
结论就是JAVA容易养成更好的统一编码规范,利于维护、阅读。
菜鸟都能写出一手规范的代码。
2.变量、强类型强类型语言,导致变量之间转换繁琐,定义、初始化、转换麻烦。
JAVA中,代码块的很大一部分是变量的定义、初始化与转换,又臭又长。
如果忘记初始化,程序容易报空指针错误。
PHP在这一块就很好,变量随处用。再加上PHP的可变变量特性。
同样的一个route功能实现,JAVA要繁琐太多,这也是我对强类型语言一直诟病的。
PHP可以省去大量繁琐的定义、初始化和类型转换,代码结构轻便,更加专注于业务逻辑上。
JAVA强类型也决定了代码在编码时期的严谨性和可靠性,这个比PHP优。
PHP一个可变变量可能就会让你无法重构,所以对IDE不是很友好,调试起来你要发疯。
JAVA重构方便,但结构笨重,开发节奏慢,调试倒是很方便。
拿PHP来做数据安全要求高的业务还是不建议的。
3.异常、业务完整性PHP的生命周期(PHP的生命周期
)设计决定了它的异常处理功能的使用没有JAVA广泛。
接触过的如DISCUZ、DECMS、ECSHOP这些系统对于异常处理很弱。
很少使用try{}catch{}处理异常,因为一旦执行期发生异常就可能导致程序崩溃,
对于业务性要求高的系统来说不是一件好事。
谁都不希望执行到一半,程序异常就崩溃了吧,那业务回滚怎么办?
就如 @石峰 说的:“入门简单的语言,给我的感觉是想要用的好其实更难,比如js或者php”。
个人看法有限,知友请轻喷!
PS:
为什么大型网站前端使用 PHP 后台逻辑用 Java? - Java
PHP 和 Java 的主要区别有哪些? - 编程语言
语言选择不决定代码稳定与否与可维护性高低,这两者主要取决于写的代码本身。
如果用Java和PHP开发一般web后端程序,安全性取决于写的代码本身是否安全,如是否总是做输入检查,XSS预防等等,而不是用的语言本身是否安全。
特例可能是和Finance相关的业务,通常不考虑用弱类型语言来写,这有部分安全的考虑,但更多是精度和效率。
PHP 垃圾程序员太多。某天我生成了 PHP 的 SDK 给 PHPER ,然后人家都不 include 文件的,就是一口咬定我得接口有问题啊调不通啊,唉,都不知道他们怎么面上的。。。。。。 PHP 还是一门好语言来着。
我觉得楼主的假设是错的
不要说了,PHP是世界上最好的编程语言!
Java 是比世界上最好的语言 PHP 更好的语言!
阿里系有一部分页面是用PHP实现的啊,大概现在还存在。
阿里系的规模和历史使很多技术选型不能完全靠技术层面来决定,不是一个好参考对象。
例如说,没记错的话淘宝最初的最初就是基于一个PHP框架快速开发出来的。后来规模稍微大了一些,请来Sun做技术顾问,自然而然转为用Java EE。有很多淘宝的页面是用Velocity模版写的也是历史原因,很难说它当时是不是最好的(至于很多年后它还好不好就更加不好说了)。一言难尽。题主如果对淘宝的技术演进背后的故事感兴趣的话可以读读@子柳的《淘宝技术这十年》
。
至于笼统的“为啥PHP没Java稳定”,这话题还是留给各语言/框架教徒们战了(逃
因为大量低水平php程序员的存在。
他们真能把code写的非常之烂。
java规矩多,写烂不容易。
记得看过一句对java的评价,java是一种工业级的编程语言,个人以为很有道理。无论使用者水平如何,java开发出来的程序不会太差。
而入门简单的语言,给我的感觉是想要用的好其实更难,比如js或者php。做了很多封装也就意味着隐藏更多原理,原理不明白自然没法做的更好。