PHP 為什麼沒有取代 Python ?
PHP 同樣可以 cli 模式運行,同樣也有很多庫和擴展,Web 開發不在話下,結合 gtk 等庫也可以開發桌面應用程序,為什麼沒有取代 Python 呢,他們語法同樣追求的是簡單和快速上手,用開發效率換運行效率,很多地方都很相似,而且現在各種培訓機構教 PHP 的也比 Python 要多,總感覺 PHP 使用人群也比 Python 多很多。
哈哈哈哈哈哈哈哈哈哈哈哈雖然 Python 挺爛的但是要爛到被 PHP 取代 Guido 還是去卧軌吧
我看不出來它們有多麼相似。
PHP 弱類型;Python 強類型。
PHP 主 Web;Python 主通用。
PHP 早期命名混亂、特性支持不全(Unicode、namespace);Python 比它好多了。
PHP 擴展集中在 Web 開發。有爬蟲么?有科學計算么?有大數據么?連進程式控制制都做不好。
PHP 語法越來越複雜了(跟 C++ 一樣不斷地加特性);Python 相對乾淨不少。
PHP 連個像樣的互動式 shell 都沒有(我找到一個,是用 Python 寫的);Python 不僅原生就支持互動式 shell,還有 ipython、bpython、ptpython 等各種好用的東西,還有以數據分析為主的 notebook。
PHP 之前連 SQL 轉義都搞不定的吧?Python 我剛認識的時候已經是 DB API 2.0 了,正確使用,完全不用擔心 SQL 注入。
PHP 入目一堆美元;Python 更像普通的文本。
.......
PS: 為什麼只說 PHP 的缺點、Python 的優勢?因為我回答的是「PHP 為什麼沒有取代 Python」,不是「Python 為什麼沒有取代 PHP」!你還真以為php是世界上最好的語言啊,少年,現在轉語言還來得及
顏值太低
在web方面Python干不過PHP,在其他方面,PHP干不過Python。兩者沒有必要對比,適用場景不同。
PHP 應該比 Python 先火吧,為什麼成了 PHP 取代 Python 而不是 Python 取代 PHP 呢?
各種語言有自己專長。有所為,有所不為,Python 能勝任的工作,php勝任不了或者說很難勝任。如何訓練自己的編程思路如何訓練自己的編程思路 - 黃哥的文章 - 知乎專欄
python在知乎很火,php在智聯招聘,前程無憂,拉勾上肯定比python火
瞬時型場景 和 長駐型場景
井水與河水,誰能取代誰
php主力在web,大部分web網站都是php的。Python主力在命令行,所以你可以看到很多運維工具是Python寫的。世界上的東西並不是互相替代的,互相競爭的,各種語言都有他們自己的優勢以及不可替代的價值,php和JAVA都能一起組合開發企業級項目,那麼又有什麼理由排斥命令行那麼溜的Python呢?合適的才是最好的。
好比問who取代mall一樣。不是誰取代誰,而是各有生存空間。php曾經一度被認為是夕陽語言,後來流行起來各種框架,使開發一個產品的技術要求越來越低。就社區活躍度來說,兩者沒有明顯的強弱。
學一隻新語言比起用一種不合適的語言來控制非官方API 更省力。
Php 還可以新建com class 來做direct X 輸出呢。PHP-GTK 的坑也是挺相似的。
到坑踩得夠多,會發現其實C# 也很簡單的,不用死抱著PHP 去做這種事。Web開發上PHP比Python更簡單,更高效:
PHP內置模板引擎,熱部署,內置FastCGI等SAPI實現(php-fpm/apache2handler).PHP比Python(CPython)快:
除了不兼容,Python3還比Python2慢,而PHP5比Python2快,PHP7比Python2快得多.C實現的PHP擴展Swoole比Python實現的Tornado快.PHP沒有Python強制縮進的束縛,沒有Python編碼問題的困惑,處理編碼很輕鬆,同樣支持交互的shell:
PHP統一數字數組和關聯數組為數組,共享一套數組操作函數,而且關聯數組是有順序的,反觀Python,還分各種list/tuple/dict/set,真不嫌麻煩,而且dict類型居然還是無序的,很不方便.PHP作為HTML預處理器,其標配的UI語言就是HTML,運行時就是瀏覽器和WebView.內置HTTP伺服器和SQLite資料庫的HTML預處理器PHP可以輕鬆部署到客戶端(包括Android)配合瀏覽器和WebView開發離線GUI應用.php -S 127.0.0.1:8080 -t /www
xdg-open http://127.0.0.1:8080
PHPDroid: PHP APP on Android
phpdroid_20170117.apk 我打包的APK包(5MB)
https://pan.baidu.com/s/1mia21HA
phpdroid_20170117.7z 項目源代碼(Android Studio)
https://pan.baidu.com/s/1miuLk96
用musl-cross-compilers交叉編譯Android版PHP(無腦下一步)
cross_compile_php.txt
https://pan.baidu.com/s/1dEEnBtJ
crossx86-arm-linux-musleabi-1.1.12.tar.xz
https://pan.baidu.com/s/1micZBWc
&prepare("SELECT * FROM posts WHERE id = ?");
$stmt-&>execute(array($_GET["id"]));
$stmt-&>fetchAll();
PHP內置函數命名方式:&
像PHP後來添加的SPL庫是駝峰式,但像一些經典的庫,比如PHP字元串處理函數,就是典型的Linux C風格了,函數名字比較長的時候會用下劃線分隔,畢竟幾乎所有的PECL擴展都是C程序員開發的,他們怎麼可能會用駝峰那種風格的命名方式呢?除非是故意迎合OOP,比如上面說到的SPL庫.
PHP用$符號標記變數簡單清晰,Perl和Shell都是這樣乾的,對了,連jQuery都用$作為自己的函數別名.
PHP的確是最簡單易用的Web開發語言,沒有之一.
真不想回答這個問題,為什麼要邀我?
我只好先問一句:德意志民族是世界上最優秀的民族,那其他民族為什麼還要存在?希特勒也是這樣想的。
所以:且不說PHP和python的應用場景和特性都有很大不同,就算完全相同,又有什麼理由談論取代和消滅呢?
推導出的相關話題:
機槍可以更好的消滅敵人,為什麼還要保留手槍呢?電鋸可以更好的砍樹,為什麼還不消滅斧頭?飛機可以更快的運輸,為什麼不炸掉汽車?中國人可以更節省地球資源(食量),為什麼不消滅其他人?小夥子,你這個想法很清真啊。
因為 python 簡單,shell 自帶的 2.7 版 輸入 1 + 1 回車就返回 2php 需要先在 shell 打開 vim/emacs 創建個 php 文件,然後 輸入 & // 最後在瀏覽器中運行才能看到
當然你可以修改 vim/emacs 配置,在 shell 能里看 php 執行結果。
osx 的終端里則是 輸入 php -a 回車 echo 1+1; 回車但對於新手而言,學習曲線太高,畢竟大部分人只需要 1 +1,而不是大型 web 應用手槍為什麼沒有取代步槍因為作用不一樣 場景不一致
用戶群不同,寫Python的人很多不是計算機專業的
我想說:你是不是傻。。。
這是py在知乎上被黑的最慘的一次。
奧迪為什麼沒有取代奧拓?
推薦閱讀:
※那些精通前後端的大神是如何做到的?
※前端跟後端的MVC架構有什麼不同?
※到底是前端根據後端來寫還是後端根據前端來寫呢?
※前後端分離端nodejs mongodb express後台spring restfui webservice,mybatis mysql這樣適合中大型應用嗎?
※超小團隊選擇django還是flask?