說到“優秀”,我閱讀了微軟研究院(Microsoft Research)發布的許多材料。坦白說,那些都是相當不錯的材料。當然,其中有許多內容我不懂,但我的理解水平正在逐步上升。我記得微軟研究院沒有發表任何有關VB.Net的材料。
實際上,與VB.Net相比,我看到更多討論F#(再者,這是微軟研究院的一個項目)的作品。微軟自己的研究員也故意避開VB.Net。例如,我看到一組優秀的安全執行緒組件庫,它們沒有為了超高速效能而使用鎖定——它們就是用C#編寫的。
在最初推出C#時,似乎(很可能就是)微軟提供了一個結束Java的策略,以協助Java程式員輕鬆過渡到.Net平台。這樣說有一定道理,VB.Net非常接近典型的VB語言,所以他們可以實現輕鬆過渡,.Net已經支援C++,那麼剩下的唯一功能真正強大的語言就是Java。
我一直認為,微軟用C#吸引Java程式員使用.Net,然後又對他們置之不理。相反,我看到微軟投入大量資源,使C#不僅在文法上結束Java,而且在特性組上成為一種令人異常興奮的語言。
C#不再只是與Java競爭——它在吸引VB.Net程式員方面也表現得相當不錯。
現在,揭示一個殘酷的事實:由於以下這些原因,我從未真正使用過C#:
- 我一直可以編寫出VB.Net程式員能夠維護的代碼。
- VB.Net總能滿足我的需求。
- 用VB.Net可以寫出簡明的代碼樣本,因為它的文法十分詳細,人們不需要學習VB.Net就能夠理解代碼的用途。
說到這裡,我讀過大量的C#代碼,也知道它非常優異。我確信經過幾個小時的應用之後,對Java的記憶(我又一次講到“結束Java”的陳詞濫調)就會蜂擁而至;另外,對C風格的文法的深入理解也會造成影響,我馬上就會感到得心應手。只是現在我還沒有使用C#的動機。
暫時來說,VB.Net是我首選的.Net語言;F#也開始贏得我的心;出於商業原因,我需要研究IronPython(我懷疑,在不遠的將來,我們需要一種動態語言)。
我向自己承諾,我會在下一個小型項目(為期一天或更短)中試用C#。我覺得VB.Net不會比現在有更大的發展,雖然它不會被廢棄。隨著我不再把庫膠合在一起,並將編碼時間用於技巧研發等此類事情上,我需要一種具有前瞻性的語言。
VB能夠與C++程式員編寫的COM組件相容,就像VB.Net可以方便的嵌入.Net Framework(還包括通常的Windows API)一樣。F#非常優秀,但現在還缺少商業支援。
IronPython(我最後一次提到)不能與Visual Studio相容,這是我書中的一個重點內容。那麼,就只剩下C#了。我感到非常激動?並不是這樣。我喜歡他們使用C#,但不是C#本身。但我感到VB.Net已經走到了極限。