今天,我要介紹Python網頁開發的標準: WSGI,我個人在看見這類英文縮寫時,都一定會試著去記住它的全寫,因為縮寫本身一點意義都沒有,難以記憶,WSGI的全寫是』Web Server Gateway Interface『,它的發音有點像是whiskey,光知道這個名字還是很難理解這到底是用來做什麼用的,簡單的來說,它是Python定義網頁程式和伺服器溝通的介面,如果你有寫過CGI (Common Gateway Interface),它的作用基本上就是和CGI類似的功用,定義一個標準的溝通方式,讓你寫的程式可以和伺服器溝通,但是WSGI不是設計用來給任何語言使用的,它是設計給Python用的,而它其實是基於CGI的延伸,在Python的部份進一步做更多的定義,而因為他是基於CGI,所以它也可以和CGI的介面相容,只要透過一個轉接器,就能把WSGI的程式接到CGI,說了這麼多,相信大部份人對於WSGI是什麼還是一頭霧水,會有一堆疑問,為什麼有了CGI還要有WSGI? Middleware又是什麼? 這很正常,我一開始也對WSGI一點概念都沒有,接下來我們就來介紹WSGI的特色。
Archive for 一月, 2010
化整為零的次世代網頁開發標準: WSGI
一月 27th, 2010如何評估比較程式語言
一月 8th, 2010有人提到以過去的觀點來看現在的PHP是不公平的,確實我有好一陣子沒有碰PHP,對於新版的PHP並不瞭解,因此我花了一些時間檢視新的PHP規格,的確新版的PHP遠比我預料的進步許多,很多之前提到的問題有所改善,我承認上一篇文章說PHP很爛是在發洩過去對於PHP的種種不滿,有人認為程式語言沒有好壞,全部都事在人為,而我認為程式語言的好壞有主觀也有客觀的部份,當你討厭或喜歡一個程式語言一定有某些原因,但就客觀的來看語言的設計來講,PHP在早期真的是爛得一榻糊塗,是公認的爛,但是在當時少有選擇,能選的工具不多,就只有PHP,在累積夠久的不滿後就會一次暴發開來,對於現在的PHP5.3還有未來的PHP6而言,他已經跳離了以前的單純語言設計上的爛,往更好的方向前進,我能說PHP的壞話少了很多,因為當語言層面的問題大部份都解決了,接著就是哲學和個人喜好的問題了,對與目前和新版的PHP的誤解在這邊說聲抱歉
所以這篇我想說的,怎樣看客觀地評估一款語言的好壞,還有主觀地評估好與壞,很多人說程式語言沒有好與壞,只有適合和不適合,基本上我不認同這樣的說法,如果說兩種差別很大用途不同的語言拿來一起比較就很奇怪,但是如果是性質接近的語言都符合你需求,就可以做好壞的比較,不然你要怎麼做選擇? 就如同我們買車子好了,你的目的是載貨,買的自然是卡車、貨車,但是如果是轎車呢? 就算是卡車也有選擇的,程式語言也一樣,目前大部份人所見到的程式語言,都是所謂的』通用目的』語言,也就是說這樣的語言沒有預設任何用途,基本上他可以拿來做任何用途,很多人因為不知道要從何比較起,所以都說程式語言沒有好壞之分,只有適合和不適合,如果有一堆工具都適合,既然沒有好壞之分,那你又該如何做出進一步的評估與選擇? 適不適合不就是透過比較而來的嗎? 不比較怎麼知道適不適合? 這不是自相矛盾嗎? 只靠喜好嗎? 閉著眼睛亂選? 大家都知道車子我們可以比較它的馬力、耗油、安全評等,但是大多數人不知道程式語言該比較些什麼,而我今天所要說的,就是程式語言該拿什麼來比較
以前的PHP有很多缺陷
一月 6th, 2010有人在plurk上PO了一篇文章的連結,PHP 開發迷思 (三) – PHP 很糟糕?,因為我不認同那樣的看法,所以我回覆說php很爛,當你說一個語言很爛時,就要有心理準備有人準備要跟你戰了,果然有人不認同我的說法,當然任何人都可以不認同我所說的,而且好和爛是很主觀的,同時也是是相對的,但是我所說的是有根據的,說php爛不是我一個人的說法,而是已經被說到爛掉的說法,很多比我有經驗多的網頁程式設計師都異口同聲的說PHP很爛,為了解釋為什麼我認為PHP很爛(我在本文指的爛是指語言設計上的眾多嚴重缺陷),我寫了這篇文章
更新:
我承認這篇寫得有點偏激,也是以前的觀點,也是在發洩以前對PHP的不滿,我沒有寫較新的PHP,所以我收回PHP很爛,改成以前的PHP有很多缺陷,我想表達的是一款語言的很多缺陷,而且是在以前的缺陷,現在PHP確實有改進很多,所以我寫了一篇 如何評估比較程式語言
另外我想表達的一件事是,當有人說你用的程式語言有問題時,為什麼一定要這麼抓狂呢? 如果一個程式語言它的缺陷沒有人罵,大家都愛語言如命,那麼語言的開發者或團隊要如何知道這語言要改進什麼呢? PHP有很多缺陷是事實,然而說出來很多人可能就不高興,然而我選擇用較激烈的字眼是因為他改進實在太慢了,我們可以看到以前的Magic quote、unicode問題等等,至今都仍未解決,要php6才會解決,這些問題不是只有我覺得很糟,而是我發現很多人都跟我一樣覺得這太差了,我每次罵PHP都真的很希望他在下一個版本就把這些鳥問題解決掉,但以我之前的經驗它都讓我失望,所以我怨念很深,這篇文章寫起來也特別偏激,但我想表達的是,我說PHP爛某種程度是希望他變好,那你可能會問,我為什麼不說Python爛,然後哪裡爛,很簡單的原因是我太喜歡Python,當你很喜歡一個東西時你是看不見這東西的缺點,如果有人說Python爛,我覺得很好,我想知道他有哪些缺陷,是我沒看到的
除此之外,對於初學者來說,PHP的低門檻讓他成為吸引新手的蜜罐,而很多人都只知道PHP可以寫網頁,但是不知道其實所有程式語言都能寫網頁,我希望透過罵PHP也能讓更多人知道其實還有更多選擇,但其實這會讓人覺得反感,我在這背後目的是希望其它語言能夠有更多人使用,有競爭才有進步,而對於國內大部份人都只用PHP在刻網頁我也覺得很失望,我同時也希望讓大家知道其實網頁的技術現在已經很先進了,很少有人使用框架等次世代的網頁技術,所以有興趣也可以看一些較新的技術,而不是土法煉鋼

