[Other]概念釐清-Java?.net?

[Other]概念釐清-Java?.net?

不曉得是第幾次聽到這樣的話了,常常有人會跟我說他寫.net的心得,又有人會拿Java跟.net來做比較,也有人會說Java比.net複雜的多.....

上面這些話乍看之下沒有什麼問題,因為網路上大家習慣的用詞都是這樣,但.net跟Java兩者在立足點上根本不一樣,Java嚴格來說只是程式語言,而.net是framework,要比也是拿J2EE/J2ME來比.net,或拿Java來比C#/VB,而不是拿兩個不對等的東西來比較,你所寫的程式當然是Java或者C#,但你所用的framework則稱之為J2EE或.net framework,所以寫.net這種用詞嚴格來說是不存在的。

硬要拿兩者來比,一定要在相同的基礎上去比較,以程式語言來說,Java本身與C#相似度非常高,當初切換語言時很快就上手了,但在熟悉framework上著實花了我好多工夫,以一個研發人員來說,熟悉程式語言本身並不能稱為熟悉這個領域,因為這個領域所重視的重點是在framework的熟悉上,而非程式語言本身....

有一次面試時,面試者暢談Java/.net的差異時,我問了一個問題:在你的認知中,請你描述一下.net?他的回答是以C#為基礎在說明,我跟他解釋完程式語言跟framework的差異後,再請他比較一下兩者…

又有一次面試,面試者跟我說寫.net的程式很簡單,因為只要拖拉就可以完成了,相對的寫Java挑戰性比較高,因為要寫比較多的Code,聽完我笑著問他:所以.net相關的開發工具作的太完整是不對的囉?面試者啞口無言....

我個人反對全部用拖拉完成功能,但如果有機會使用時,又幹嘛不用呢?工具提供給你,用不用在你個人,不用你就多花點功夫自己寫;用了你就要了解它的概念,有問題時才能解決,也才懂得靈活變化,一定要好好的搞懂,你才會知道差異點在哪邊。

以上兩個只是個案,但其實我們自己也發現,有些人對這樣的概念存有誤解,當兩個領域在對等的層級拿來比較(程式語言對程式語言、framework對framework、IDE對IDE、API對API),我想應該是各有千秋的,但如果拿不對等的東西來比(好比張飛打岳飛),大概什麼都比不出來了。

剛剛用一些關鍵字查了一下java/.net、.net framework/j2ee、java/C#等等組合,發現Java對.net這樣的用法真的很廣泛,或許是大家想到Java時是會想到J2EE一類的框架,而非Java程式語言本身吧,所以這篇文,不知道是不是我自己在雞蛋挑骨頭.....XD

游舒帆 (gipi)

探索原力Co-founder,曾任TutorABC協理與鼎新電腦總監,並曾獲選兩屆微軟最有價值專家 ( MVP ),離開職場後創辦探索原力,致力於協助青少年培養面對未來的能力。認為教育與組織育才其實息息相關,都是在為未來儲備能量,2018年起成立為期一年的專題課程《職涯躍升的關鍵24堂課》,為培養台灣未來的領袖而努力。