2019年1月1日

PHP 過時了嗎? 2019了,還適合學習PHP嗎?

Is it still okay to learn PHP in 2019?

剛開始學習網站後端開發的人,常常會問:哪一種語言最適合作為後端語言?PHP、Python、javaScript(Node.js)還是ruby(RoR)?其實這個問題沒有標準答案,要看各自的考量還有需求。而我這邊的看法很單純,那就是不管其他語言怎麼樣,PHP並不會是一個差勁的選擇。

為什麼?以下幾點是PHP的好處:

  1. 對新手友善
  2. 資源豐富
  3. 逐漸現代化
  4. 不怕沒工作

以下我會稍微簡述這幾點。

對新手友善

環境建置方便

不論你是什麼作業系統Windows、macOS或是Linux,網路上已經有非常多善心人士準備好的安裝包,讓你可以無腦的完成開發環境建構,可以快速的開始寫程式,開發應用,不用花太多時間煩惱環境問題。

例如:Windows使用的WAMP或是較為輕量化的AppServ;提供各平台都可以使用的XAMPP

容易開始

相較於很多語言來說,PHP是個相當容易開始的語言,新手只要建置好環境,非常容易就可以印出軟體開發界的共同語言:

<?php
  echo 'Hello World!';
?>

此外,因為PHP語言特性的關係,用起來相當方便,方便到幾乎有點隨便了(誤)。

資源豐富

PHP已經有20年的歷史,在網路上累積了相當多的資源。舉例來說,基本的PHP官方文件php manual就非常詳盡,幾乎所有函式的用法都找得到,也有範例可以參考。而學習資源也很豐富,最常見的w3schools.com - PHP 7 Tutorial,對大部分新手來說就足夠了。

另外網路社群資源也相當豐富,大部分新手會遇到的問題,不是有人發問過,就是有人撰寫相關的文章了,基本上新手所有會遇到的問題,網路上都找得到解答,不排斥英文的話,善用Google和Stack Overflow,更不怕找不到答案。

除了網路資源,出版資源也很豐富,有需多書籍、電子書是針對PHP撰寫的,不論是PHP語言本身,或者是使用PHP做網頁的開發,或者是PHP框架的教學,基本上應有盡有。在台灣,要購買程式開發相關書籍,首推天瓏書局,不想購買的話,市立圖書館內其實也有一定數量的館藏。

總而言之,新手自學PHP而言,不用害怕成為孤島,想精進PHP或觸及網站應用的其他相關領域的話,也不用怕沒有相關資源。

逐漸現代化

PHP是一個目前還持續演進中的語言,隨著PHP5的更新還有PHP7的問世,替PHP帶來了執行效能的改善以及引進了現代程式語言特性,包含closure、namespaces等,讓PHP成為了更好用、更現代的程式語言。

PHP現在有自己的套件管理系統Composer,要進行自動化測試,也有PHPUnit提供完整的功能,開發上debug時,也有XDebug這種強大的工具可以讓你解bug更快速。而因為PHP是直譯式語言,不需要編譯就能執行,對於IDE的要求並不高,可以隨意使用自己喜歡的文字編輯器進行開發,但是現在也有強大的的PHP IDE Php Storm,讓有需要的人可以使用。

另外軟體開發上的共同合作最需要的就是共同的規範,目前也有一群人在維護PHP的共同開發規範,也就是PSR,讓PHP可以擺脫過去各自為政,無所根據的開發方式,Composer套件管理系統就是跟PSR相輔相成的存在,只要開發者按照共同的規範設計軟體介面,就可以方便地讓套件讓大家一起使用。

最後PHP過去經常給人一種老套、不夠潮流的感覺,但是目前有許多PHP社群也不斷嘗試將當代軟體工程開發的新玩意加入PHP應用中,其中最著名的就是Laravel框架,另外也還有許多知名的框架Slim、Symfony,等,不論是要開發Microservice或是提供RestFul API服務,都可以。

不怕沒工作

雖然現在講到網頁後端開發,直覺可能不一定是PHP,畢竟PHP名氣沒有以往這麼大了,python、nodejs、ror,c#甚至go百家爭鳴、互有優缺點,但是PHP工作機會依然是蠻多的,光是國內隨便在104人力銀行或1111人力銀行網站上搜尋PHP,就可以分別獲得約2千及4百筆搜尋結果。而且隨著PHP7帶來的現代化,相信PHP7這個語言仍然是相當有競爭力的,不用擔心後續無人使用。

結論

綜合以上四點而言,我覺得PHP在2019年依舊適合新手作為網頁後端程式的開發的起點,有興趣的人不妨試試PHP吧。