2009年1月24日 星期六

為Database-Centric Architecture平反 Part 2

誰才是捉得到耗子的好貓?

在Open Source領域中,Java跟PHP兩項技術都非常活躍。不過兩者的方向似乎不一樣。Java感覺上較擅長於MiddleWare與Framework的創新與精進,而PHP則有許多成功的應用軟體。Java有非常優秀的OR Mapping工具如Hibernate,MVC framework如Struts, Webwork,還有Spring、Wicket、iBatis、Sun自己推的EJB等等,真是百花齊放。但是你如果要找Open Source的討論區、Blog、內容管理系統、或是Wiki等應用系統,就是PHP的選擇多而且活躍。像是phpBB, 維基百科的引擎MediaWiki, XOOPS, JOOMLA等。

如果進一步觀察這個現象,又會開始令人覺得耐人尋味。PHP這些活躍的計畫,常常沒有用太複雜先進的架構,往往就是把『組合SQL指令的程式碼』跟『頁面』寫在一起。MediaWiki就自己說他們的程式碼又複雜又髒。但是維基百科用的正是MediaWiki這套軟體呀!想像它的資料量與瀏覽及更新人次。誰說MediaWiki是不好的軟體?而Java有那麼多優雅的架構與工具做基礎,照理說更容易做出好的應用軟體才對。但是這麼多年來,為甚麼應用軟體仍然是PHP的天下?

2009年1月22日 星期四

為Database-Centric Architecture平反 Part 1

對軟體服務業而言,這四十年來資訊技術最重要的發明是什麼?

我的答案是『物件導向技術』以及『關聯式資料庫』這兩項。

我一直是物件技術的擁護者。工作上常常宣揚Design Patterns和Analysis Patterns的重要,喜歡把老舊的程式Refactor翻修成物件的架構。做SA時頭腦中的模型都是繼承、多型與patterns。何況Agile Methodology要透過物件技術才能發揮得淋漓盡致。

另一方面,可能是因為純數學背景的關係,我也很喜歡關聯式資料庫。SQL語法基本上就是充滿了集合論的風格(select from多個table就是做Cartesion Product,where條件就是由Axiom Schema of Separation定義集合的property,還有union, intersection等集合運算)。剛進這一行,SQL就用得很順手,因為它應用到求學時接受的純數學訓練。

2009年1月9日 星期五

迎接春天 聆聽春之聲

今年冬天的天氣不是很舒服,很多同事親友都得了重感冒,連號稱不太生病(?)的老婆大人也咳嗽好久了,令人有些擔心。氣象報告說這波寒流更冷,會持續好幾天。天氣冷還能接受,但是每天天色陰陰暗暗,連沒太多煩惱的我也有點消沉懶散。(好像我原本就一直是這樣,不該牽拖天氣。)不過,新春就要到了。想起這首史特勞斯(Johann Strauss II)的春之聲(Frühlingsstimmen),很好聽的一首歌:


這是1987年的維也納新年音樂會,卡拉揚指揮,花腔女高音Kathleen Battle的演唱。這首歌雖然聆賞起來悅耳輕鬆,聽說其實非常難唱,所以市面上的錄音版本不多。卡拉揚對歌者很嚴格,樂團常不留給聲樂太多呼吸的空間。但是這次演出,Battle以嬌小的體型展現高度的技巧,配合得非常好。

春天就要來了,振作呀,不要被寒冬打敗!希望這首歌能讓大家都記起春天的喜悅。

(古典音樂透過網路,經過壓縮,音質影響都蠻明顯的。這場音樂會,Sony Music有出DVD。這個系列(Herbert von Karajan - His Legacy for Home Video)在台灣賣得很便宜,常有打折,而且畫質音質都不錯。很值得買,我自己買了好幾張,都很滿意。)