摘要:「方便」有的時候,不見得是好事 …
「方便」在某些層面上,的確不是見好事,特別是程式語言的學習。
比較Java與.NET,事實上它們的概念與實作,基本上是一致的,都是非常徹底的物件化語言開發平台,都以類別庫提供應用程開發所需的功能,萬事萬物均被封裝成為物件作處理。
儘 管 Java 與 .NET 均是以OOP為基礎而發展的應用程式開發平台,但是你去觀察這兩者的開發人員,他們一開始入門的方向卻有很大的差異,Java開發人員會從文字模式開始入 門,然後逐步討論類別、oop設計,瞭解基本的套件與核心類別的使用之後,才會進入Swing等視覺化設計的UI課程,相反的,.NET開發人員,一開始 可以就直接從視窗下手,按兩下按鈕,建立事件處理程式碼,就開始了視窗程式的設計之路。
對於一個具備基礎的Java程式設計師來說,所謂的Java應用程式是:以Java言語為工具,OOP為基礎,引用現有類別與設計新類別,根據應用程式的對象,再決定以網頁或是Swing為視覺化UI包裝應用程式的內容。
對 於一個具備基礎的.NET程式設計師來說,可能以為VB.NET是一種視窗應用程式開發工具,C#是一種視窗應用程式開發工具,ASP.NET又是另外一 種Web應用程式開發工具,可能經過漫長的學習過程才會發現,VB.NET與C#其實只是一套語法,運用.NET類別庫與設計新類別的語法,而所謂的 ASP.NET,只是以網頁為視覺化介面,透過VB.NET或是C#引用.NET類別庫與設計新類別建立的Web應用程式。
會有這些差異的原因,會有這些認知上的差異,很大的一個原因在於,微軟總是為開發人員包裝了很多好用、方便且功能強大的工具,入門者很容易透過這些工具建立.NET應用程式,但是,相對的,學習的方向也就同時被糢糊掉了。
回 到前一篇討論的LINQ,.NET開發人員初次接觸這門技術,同樣將焦點放在它的方便性與一致性,然而,對於資料存取技術,只是為了將其包裝得更好用,更 一致化,因此微軟大費周章的建立一套新的語法 ?? 我想,開發人員不會在意用SQL存取關聯式資料庫,更不會在意用API存取XML,更何況,這些技術他們都很熟了,而且夠好用了…
LINQ 經由物件來處理資料的搜尋運算,同時完美無縫的融入程式語言,就如同 if-then 等內建言法,成為語言的一部份,這兩點,才是 LINQ 的威力所在,從這裡出發,你會看見 LINQ 的價值,當然,要有具體的認知,需要一些範例來說明,未來,我們將針對這一部份進行更深入的著墨。