本文只針對使用 PHP 去開發全新產品,而不是拒絕 PHP 的一切。
PHP(全稱:PHP:Hypertext Preprocessor,即「PHP:超文字預處理器」)是一種開源的通用電腦手稿語言,尤其適用於網絡開發並可嵌入HTML中使用。PHP 的語法借鑑吸收 C 語言、Java 和 Perl 等流行電腦語言的特點,易於一般程式設計師學習。PHP 的主要目標是允許網絡開發人員快速編寫動態頁面。(From Wiki)
這裡有 3 個理由不要使用 PHP 去開發新產品,尤其對於新創公司 (Startup)。
1. PHP 位於工程師鄙視鏈最後位置
PHP 5 或之前的設計實在太差了,語法不夠嚴謹,一堆非常類似的方法,經常爆發安全性問題,令到產品難於維護,大部份軟件工程師也不會想接手 PHP 專案。而網路亦有一堆工程師會拿 PHP 來開玩笑,久而久之令到很多軟件工程師也開始討厭 PHP,經常會鄙視那些使用 PHP 來開發產品的軟件工程師,網上的評價也會影響新進工程師的選擇,所以新創公司如果選擇使用 PHP 去開發產品可能會較難找得到優質工程師。
2. 易學難精
PHP 標榜易於上手,因為只需建立一個檔案,並將 HTML 和 PHP 邏輯混合在一起,然後在瀏覽器打開頁面就可以看結果了,非常簡單,這樣令一眾新入門工程師很簡單就可以建立一個網路應用程式。建構一個系統是有很多事情需要考慮的,當中包括維護性,使用 HTML 和 PHP 邏輯混合在一起的方式,當邏輯在一個檔案內愈加愈多時就會難於維護,當大部份 PHP 工程師也習慣於使用這種方式去開發產品時,就會引來其他工程師的不滿和鄙視。
3. 開發環境較複雜
LAMP 和 LEMP 都是非常常見的 PHP 線上環境。
LAMP:
- L 是 Linux
- A 是 Apache
- M 是 MySQL
- P 是 PHP
LEMP:
- L 是 Linux
- E 是 Nginx
- M 是 MySQL
- P 是 PHP
2 者的差別是網絡服務器軟件不同,一個是 Apache,另一個是 Nginx。PHP 就算在開發環境也需要 Apache 或 Nginx 這類網絡服務器軟件預先處理 HTTP 要求,然後經由這些軟件再呼叫 PHP 程序去處理,最主要的網絡服務器軟件和 PHP 這 2 層很容易令到開發環境和線上環境差異增加,因為開發環境可以是在 Mac 或 Windows 上,而 Apache、Nginx 或 PHP 在 Mac 或 Windows 上的版本亦會有分別,當錯誤發生時,會增加找出錯誤的困難度,可能在線上環境有問題,但開發環境則沒有任何錯誤發生。
總結
雖然不建議使用 PHP 去開發新產品,但有很多優秀的軟件仍然是以 PHP 去開發的,例如 WordPress、Joomla、Drupal 等等非常優秀的軟件,連 Facebook 也是使用大量 PHP 去開發的,這代表 PHP 本身是沒有問題,問題是大多數工程師對 PHP 先入為主的感覺,令大多數工程師也非常抗拒 PHP,從而增加了新創公司找人的成本。
如果你想提供市場上已成熟的服務,例如建立部落格、內容媒體、線上購物等等服務,絕對建議使用現有軟件去建立,第一可以大量節省開發時間,第二市場上已經有大量插件提供,第三懂得這些軟件的工程師很易找。
如果市面上軟件不能滿足你,需要開發全新產品時就請不要選擇 PHP 了。
最後推介一下 PHP 軟件︰
建立資訊應用程式︰
建立線上購物應用程式︰
你好!我是 Lawrence Cheung,這是我的個人部落格。我曾經待過小公司,大公司。有創立個人公司和成為共同創辦人經驗,不怕失敗,永遠保持創業熱誠,籍創業不斷學習並改進自己。