挺巧,这 3 个都用过,而且都用来开发过 web 应用/系统。
PHP 我用的时间最长,十多年吧,不过近 3 年用得少,听说 PHP 7 性能提升很多。首先当然是简单了,开发和维护都挺容易;其次是 PHP 的各种开源小型项目很多,只要涉及到 WEB 类,各种领域都有,是很多初始小公司的首选,找一个相近的,然后改和扩展。
Python 我用的时间不长,实际工作中有 1 年,做 WEB 相关不过半年,只对 Django 熟悉,Django 的 ORM 挺省事,然后 Django-admin 挺好用,搭起来比较快。但是如果仅仅做 WEB 相关,个人觉得没 PHP 方便,无论是 ORM 还是开箱即用的管理后台,PHP 下大部分流行的框架都有。如果要顺带做做爬虫、统计之类,不想用太多语言导致维护和管理麻烦,可以考虑 Python。
Java 我用得早,差不多 04 年就开始了,但其间由于一些原因去写了 PHP,实际工作中用得很少,算是非主流技术流派。与前两个比较起来,我喜欢 Java 的细节控制能力,比如 PHP (排除 Swoole 环境)在多个请求间想共享状态,只能通过数据库、Redis、Memcache这些,同理,想弄个简单的队列,也要借助额外的软件,计划任务也如此(可以用 ignore_user_abort 函数让其"常驻”,非主流);如果是 Java,这一切都不是问题,小打小闹甚至不必借助第三方库。至于开发效率,看你封装了,比如你大部分时候就读个小文本文件到字符串,自然没必要每次都绕那么一大堆,完全可以自己封装一个像 php 和 python 那样的 fopen 和 open 函数或类。
至于性能,没刻意做过对比测试,平日里的测试由于环境不干净,没有可比性。一般的 web 信管类应用,性能瓶颈基本都在数据库层面;至于缓存,一向认为必须像洋葱的皮一样,仅决定活得好不好(新鲜),不能决定生死,见过很多 PHP 系统围绕着缓存来设计,同步就很头疼,做复杂了后经常莫名其妙这变了那不变。总之,对小型应用来说,性能差异可以忽略不计。
开发和维护,前面已经说过了,PHP 比较容易。但这个还取决于开发人员的素质,我见过十万行以上的 PHP 代码编写的应用,干的活却没多少,内部改了这另一处就可能出错,千丝万缕、错综复杂。
对写出来的程序,如果从用户角度来看,没区别,用户体验当然是前端的势力范围了,跟后面的 PHP、Java、Python 没关系。如果是谈的是这个区别,那就跟火电和水电对播放音乐有什么影响一样。