Sunday, September 7, 2008

好程式,爛程式

http://ptrace.fefe.de/wtfm.jpg看到這格漫畫。




簡單的翻譯:

每分鐘幾個三小。



寫出好的程式需要具備的條件不少,這話題可會讓幾位熱情的程式設計師辯個沒完。對我來說對於所使用語言與API有一定程度的熟悉及絕對清晰的頭腦是最重要的。不恰當的使用電腦語言及API所產出的程式,每分鐘應可達到五個三小外加向原作母親表達最誠敬的問候。除了平日積德祈禱不要碰到這種程式碼,更是不希望自己或家庭成員被熟人或陌生人過度的問候。


而另外一個常被忽略或以其他藉口不願正視的問題是程式可讀性。程式與文件有著很大的共通點,他們需要被看懂。如果程式碼是有生命的,他一定渴望被理解,這可是他的本性啊。而我們這些偉大的創作者將他們一一創作成無法理解的謎題,有如對虛擬世界中的程式生命們開了個哲學的玩笑。無論將來解讀這些小生命的人為原作者或是哪個不幸的菜鳥,寫程式時皆需將這些將來可能的月讀者放在心裡,寫出優美易讀的程式。註解有其必要,而註解需要多頻繁出現在於作者希望如何將這程式碼呈現。所以定義每多少行程式碼就需要有註解是沒意義的,應該視程式的複雜度酌量。不過回到現實,註解往往不夠或狗屁不通。


埋頭開發程式時請注意,寫程式有如文學創作,請記得讀者群能不能夠瞭解你的大作。因為當無人能瞭解時,他將比失敗文學下場更慘,三小!

Wednesday, September 3, 2008

Google以瀏覽器將網路帶入下個紀元

Google終於推出瀏覽器了,Chrome。熟悉Google所提供為數不少服務的人應該也不會太驚訝如此的結果。優秀的網路服務當然要有容易使用的介面,當這使用介面的技術掌握在微軟、FirefoxOpera、蘋果電腦手上時,一個可用資源不盡的網路公司提供一套配合自家服務的瀏覽器可說是理所當然。

只是一個瀏覽器嗎?

Chrome是個完整現代的瀏覽器。除了Google在他的介紹漫畫中提到種種對瀏覽器開發技術的提昇外,第一次使用的感覺是他速度比FirefoxIEOpera都來得快。而其簡潔乾淨的使用者者介面也宣示著上網只需專注於網頁內容,而非瀏覽器邊框中的按鈕及連結佔據珍貴的螢幕空間,妨礙上網的樂趣。加上Google的品牌,這瀏覽器名氣也許很快就會超越Firefox。也許還可以讓大眾了解到網路其實不只是IE,不過這點或許期望過高。

那除了當作一個擁有佔據市場龐大潛力的瀏覽器外,他還有什麼意圖。Google成功的推出一個完整、快速且實用的瀏覽器,但嚴格來說他沒有太多新意。不過這瀏覽器並不單純,他是稍微進化的瀏覽器,有如已經長了羽毛的恐龍。「建立應用程式捷徑」功能透露了些網路的未來。

帶領網際網路進入另一個階段


另一階段?是Web 3.0嗎?我也不知道,因為Web 2.0是什麼我也不清楚。我們先來談談「多功能網際網路應用程式」(RIA, Rich Internet Application)。瀏覽器與HTML的設計原本是為了簡單的文件呈現所設計的,所以有「網頁」這個稱呼。所有的內容是以一頁一頁的文件呈現,這在學術及新聞機構可說是非常適合,不過當網頁提供網路信箱(Gmail)或是行事曆(Google Calendar)功能時事情就變的有點詭譎了。網際網路的歷史是一次又一次將更多功能加到或整合至HTML中以符合設計師及大眾的需求,不過瀏覽器的設計似乎沒有太大的變革。在這些改變網際網路用法的嘗試中有AdobeFlashFlexAIR,微軟的Silverlight,還有被大部分人遺忘的Java Applet,當然還有由Gmail帶出名的AJAX技術。簡單的說「多功能網際網路應用程式」可說是使用介面靈活豐富的網際網路程式。如果較嚴格的定義,就是「擁有網際網路相關功能且使用時程式反應快速有如已安裝於電腦的應用程式般」。網路上最有名此類型的程式就是Gmail了,但卻需要在古老的瀏覽器上使用,號稱「應用程式」似乎有點過度。而Adobe AIR是把網路程式脫離瀏覽器讓他成為電腦中獨立的程式,但AIR普及率太低且開發門檻偏高。目前RIA的狀況可說是無頭蒼蠅胡亂嘗試,試圖找出一個能夠普及的方向。


Google對此無頭蒼蠅指點的方向就是這小小的功能「建立應用程式捷徑」。此功能將正開啟的網站連結設定到「桌面」、「開始功能表」或是「快速啟動列」。這並不是什麼新功能,IE至少於Windows 98時代就提供了「建立捷徑」到桌面的功能,而如果要送到「開始功能表」及「快速啟動列」只需將捷徑另行拖拉至他所屬的位置。不過Chrome在這功能上又更勝一籌。第一點,一般使用者是不會將捷徑拖拉到「開始功能表」或「快速啟動列」,而Chrome可直接將捷徑建立於該處,當連結出現在這些地方時,他無形中升格為已安裝的程式。第二點,當連結被開啟時,不會是由預設的瀏覽器開啟而是由Chrome開啟,並且只顯示出一個很簡單的視窗,沒有網址列也沒有多餘的按鈕。

瀏覽器消失了


安裝於電腦上的網際網路應用程式,有看到網路下個紀元的雛型了嗎?可是這還是瀏覽器啊!當然他還是,不過看起來不是了。拿來使用GmailGoogle Calendar看看,不需要打網址頁到別的網站,不需要上一頁或下一頁,不需要加到我的最愛(因為已經加到所有程式中啦)。這招真是高明!對於使用者及開發者來說RIA還是以網站AJAX型態門檻最低。而在還沒能夠接受純RIA的使用者來說,目前很難自主動去安裝AIR程式。Google以瀏覽器型態悄悄地將RIA送到每個人的桌上。Chrome為開放原始碼的程式,Google鼓勵其他人引用他們的程式,如Firefox就可使用。之後Google只需稍微修改Chrome讓他提供的服務於桌面上使用更加順暢,其他瀏覽器跟進順水推舟下,所有使用者將會不知不覺的接受新的RIA模式,不再拘泥於傳統瀏覽器。也許將來Chrome不會是最受歡迎的瀏覽器(如果瀏覽器還存在的話),但這隻長著羽毛的恐龍代表著另一個嶄新的演化。

歡迎來到網路新紀元!