2008年3月19日

Jerry Tsai’s “Size Does Matter” Chart, 2008 Edition, Service Pack 1

我其實之前也在懷疑,.NET 1.1「才」23MB,怎麼.NET 3.5會躍升到197MB,裡面是裝鉛塊了嗎?不過我自從這幾年人變老之後,已經沒有以往追根究底的精神,我懶得去分析這驚人的197MB成分為何。

有讀者告訴我,其實197MB裡面同時包含了64位元和32位元的.NET執行環境,儘管如此,我依然無法想像為何會包成這麼大一包。我印象中,不管32位元的CLR或64位元的CLR,都是使用32位元的Managed PE檔。這就好像不管32位元的JVM或64位元的JVM,都是使用相同的.class檔(Java Bytecode)一樣。

.NET體積雖然大,但是有將Enterprise的程式庫放進去。我列出的JRE體積雖小,但是只有J2SE,並非J2EE。Adobe AIR雖然一出生就11MB,感覺很大,但它內建資料庫、和網頁展現引擎,這是其他執行環境(Java和.NET)所沒有的。所以本來體積的比較,就不會太公平。

所以體積的比較,只能讓你瞭解大概的狀況,軟體是不是真的「虛胖」,你必須分析它的功能才知道,這工程浩大,我就無法代勞了。

2008年3月18日

Size Does Matter, 2008 Edition


我承認在「Size Dos Matter」一文中,資料有些舊了,所以剛剛花了一點時間重繪這張圖,移除大家不熟悉的LISP,新增剛推出的Adobe AIR。

方塊內所標示的數字,是各種語言執行環境的體積MB數。為了要有一致的比較基準,這裡的軟體都一律是Windows平台上最新版,且是普遍使用的版本(例如Java使用的是Sun的版本,Perl使用的是ActivePerl的版本)。

這只是單純的體積比較。各種語言執行環境的能力(例如GUI、資料庫、Web框架、網頁展現引擎)不在這裡考量之列。

2008年3月17日

推薦一本自然語處理的好書


如果你對自然語處理感興趣,想瞭解如何寫出相關的程式。我推薦這本書,由James Allen教授著作的「Natural Language Understanding, 2nd Ed.」。雖然這是13年前的舊書,但內容還是很實用,就怕這本書絕版不容易找到了。
REBOL相當適合用來寫自然語處理的程式。

馬賽克與柔邊

剛剛寫了一篇短文,內容請見 mosaic and anti-aliasing。

REBOL的命名慣例

  • 型別名稱後面加上驚嘆號,例如「integer!」、「char!」、「block!」。
  • 只詢問資訊,沒有命令動作,也不會更動任何資料的函數,名稱後面加上問號「?」,例如「length?」、「type?」、「exists?」。
  • 一個單字如果由多個字組成,則字和字之間使用-當連接符號,不使用底線當連接符號,例如「to-local-file」、「split-path」、「make-dir」。
  • 目的與作用一樣,只是多了一點小變化,則名稱也多了一點小變化,通常是在名稱後面加上「*」或「+」或「~」,例如「first」與「first+」、「system/options/locale」與「system/options/locale*」。