abstrait:PHP 同樣可以 cli 模式運(yùn)行,同樣也有很多庫和擴(kuò)展,Web 開發(fā)不在話下,結(jié)合 gtk 等庫也可以開發(fā)桌面應(yīng)用程序,為什么沒有取代 Python 呢,他們語法同樣追求的是簡單和快速上手,用開發(fā)效率換運(yùn)行效率,很多地方都很相似,而且現(xiàn)在各種培訓(xùn)機(jī)構(gòu)教 PHP 的也比 Python 要多,總感覺 PHP 使用人群也比 Python 多很多?我以前也試圖用php來解決一切問題,比如寫daemon、
PHP 同樣可以 cli 模式運(yùn)行,同樣也有很多庫和擴(kuò)展,Web 開發(fā)不在話下,結(jié)合 gtk 等庫也可以開發(fā)桌面應(yīng)用程序,為什么沒有取代 Python 呢,他們語法同樣追求的是簡單和快速上手,用開發(fā)效率換運(yùn)行效率,很多地方都很相似,而且現(xiàn)在各種培訓(xùn)機(jī)構(gòu)教 PHP 的也比 Python 要多,總感覺 PHP 使用人群也比 Python 多很多?
我以前也試圖用php來解決一切問題,比如寫daemon、打包桌面軟件、寫cli工具等等,后來證明都是徒勞的,php根本不適合做這些,不是不能做,都是圖靈等價語言,但其他語言可以做的更好。
用php寫daemon,很容易碰到CPU會飆到100%的情況,后面我也碰到有人用php寫的daemon也飆到100%,還把自己嚇一跳的人??赡芤l(fā)的原因是未加超時設(shè)置(stream_set_timeout)、未及時銷毀不斷膨脹的變量、每次打開新數(shù)據(jù)庫連接而不關(guān)閉等等引起的。
后來我再也沒有用php來寫daemon,因為php的腳本特性就是每次請求完成后自動釋放所有資源,所以寫的時候不會去考慮資源釋放、超時等問題,習(xí)慣了這樣的方式,根本不能用來寫daemon,也不適合來寫桌面軟件,嚴(yán)格來說這不是php本身的問題,但php把你慣壞了,濫用資源而不釋放。
另外糾結(jié)一下 php 是有丑陋的shell的,php -a ,只不過每次都要 echo 一下才能出來,也能直接運(yùn)行php代碼,比如:php -r 'echo time(); ',-r 表示run,代碼部分無需加入<?php。