星期六, 5月 26, 2007

為什麼我還頗喜歡 PHP5

為什麼我近來頗喜歡用 PHP5 來寫些「不大不小」的程式?

我猜想,最主要的理由,應該是 PHP5 體積不胖、夠簡單、也夠便利。此外,自己目前所寫的程式與系統,利用現成元件與資料庫來開發後,通常也不算太複雜。

為了防止世界被破壞、為了守護世界的和平,我們不得不將各種應用程式的變異性考慮在內 --- 我們在實務上需要有一套通用的程式開發環境。

就個人的喜好,我比較欣賞「小而美、便利性好、實用性強、且各類延伸環境支援度高」的程式語言與開發工具。雖然從程式語言的角度來說,PHP5 並不算很美;但從理論與實務兼顧的角度來看,我覺得它是一個相當好的工具,頗適合被用來快速開發一般的網頁應用程式。

有人說,PHP 不是相當「髒亂」的程式語言嗎,為什麼我不選用 Java、C#、或者像是 Python、Ruby 之類的語言?但我認為,PHP5 其實也支援了物件導向的語法,寫程式會弄到「髒亂」的地步,通常是程式設計者自己的訓練不夠、習慣不好、經驗不足,似乎不應該把責任推到程式語言的頭上。

這幾年來,主流的程式開發,使用的工具應該是 Java 與 .NET framework (新近的 Python 或 Ruby 或許也能算上「半個主流」),但 PHP 的使用者似乎也不少。跟隨「主流」有個優點,就是「使用者多,就比較能夠吸引目光,取得較多資源」。而大家都這麼選擇,通常也暗示「若跟著這樣做,相對的風險並不會太高」。

另外,現代的電腦運算能力強,而一般常見的 Web Applications 通常並不需要太多的數學計算(什麼叫做龐大的數學運算?嗯... 算 Ackermann's function 的值應該就算吧 :p)。一般說來,繁瑣的中文編碼的轉換、網頁內容的編排、人員帳號的控管、資料庫內容的讀寫(通常是字串的處理,而非數值的運算),就會佔去大半設計與開發時間。

當然,還是有許多工作,需要用到龐大的運算能力。遇到這種狀況,通常的解決方式是,先把耗時的運算結果先存起來,當使用者發出 request 時,就用「查表」的方式來減少所需的即時運算。

這樣,若不是想把 scale 弄到「非常大」,就應該能解決大半的實務問題了。至於「理想中的程式語言,應該有什麼樣貌」這類問題,就留給理論學者去爭辯囉。

13 則留言:

匿名 提到...

"為了防止世界被破壞、為了守護世界的和平"
這個好像是火箭隊的口號

--------------------無法登入的阿尼

tu 提到...

神奇寶貝的影響力,果然還是很驚人的 :)

mph 提到...

看到那兩句話的時候,氣氛不由自主地就冷了下來。

我是覺得前兩句比較好用啦:「既然你誠心誠意的問了,我們就大發慈悲的告訴你...」

tu 提到...

火箭隊應該算是「可愛」的反派角色吧。

有時,我更喜歡最後的兩句:「就是這樣,喵~」 :D

lcat 提到...

沒想到小朋友沒有被洗腦,Lord Du 反而被洗腦了!

就是這樣,喵~

匿名 提到...

我女兒到公園看到草地上的凹陷洞洞,就會指著大叫...啊!小心火箭隊....

tu 提到...

覺得日本人能夠創造出「神奇寶貝」和「火箭隊」這樣的角色,也真是令人佩服。

反觀台灣,是不是也該多些創造,該多給現在、未來一些「具理想、有前景、且實際」的希望?

雖然知道社會上有許多人仍默默地為台灣而努力,但想到掌權勢的政治人物卻只會在表面上喊喊口號,就覺得頗難過...

匿名 提到...

借問一下,本文不是關於PHP5嗎,怎麼扯到火箭隊了?

向來我最氣學生在課堂上說些五四三的,每次都越說越遠,看來,連大人都這樣......

PS 火箭隊真的是很搶眼,皮卡丘被比下去啦!

匿名 提到...

假設 AdSense for Content 在這篇文章旁帶出 Pocket Monster 相關的廣告連結,算是該被當掉,還是給它鼓鼓掌?

lcat 提到...

jlchang,

我是覺得從「神奇寶貝」、「火箭隊」能夠牽連到「具理想、有前景、且實際」及「政治口號」,這種邏輯實在令人佩服 :P

ankh,

如果這樣才是真正厲害 @_@

回到 PHP ,PHP 應該算是非常成功的工具,除了聽說安全堪慮外,如果不想自己寫程式,而想使用現成的程式來弄一些網頁應用,例如phpbbs,MediaWiki...等,這些架在 apache+mysql+php 上的程式,實在是很方便。

匿名 提到...

在 Blog 裡拉拉雜雜地牽扯,不也頗有趣嗎?

有「留言版」的功能,有時還甚至可以拿來作為「offline 聊天室」。至於有沒有「離題」,有時也不是那麼重要吧?

匿名 提到...

喔,對啦,貓啊,Apache + PHP5 是應該有些「潛在的安全性問題」。你能幫我找些精簡的參考資料嗎?

lcat 提到...

這個倒是沒有研究,建議你請咕狗幫你查一下吧~