Re: [問題] java與C#何者較難?
一個程式語言可以分成三部分來看:
語言本身。關鍵字、語法、邏輯結構...
函式庫。提供出來可以用的標準函式庫。
編譯器。支援的指令集、編譯檢查、指令優化...
到了最近十年又多了一個:虛擬機器。
今天的問題既然是"哪一個語言比較好學?" 那就要能先回答幾個問題:
1.學了作啥用?
不同語言提供的不同函式庫API對某領域的支援能力是有極大差別的。
開發函式庫的人必須對該語言有相當的掌握,且熟悉最適合該語言環
境的API設計架構,才能設計出"易用"的API。注意,易用!=好學。且
隨著語言不同、開發者目的不同,對於"易用"的定義也會不一樣。
今天你是初學,那你需要的函式庫就很簡單:
0.Language
1.Collections
2.Input/Output
3.string
4.Time
5.Threading
6.(選)DataBase Connection
7.(選)UI
上頭1~5是任何領域都幾乎得用到的,至於Web Framwork、Middle Tier Service
Web Service。都不是一個"語言"的元素,而是"系統架構"。
2.你之前有什麼樣的基礎?
對我來說,VM + C-like的語言都很好學,對寫Lisp出身的人來說Perl、Ruby簡單的要命
對只會VB + IDE拖拉的人來說,什麼都難學。對都不會的人來說,好不好學是看怎麼學,
好的老師帶你XXX、不好的老師XXXXX,書也是。
3.有啥資源可以參考?
除了書以外,現在不管學啥語言唯一的參考資源管道大概都是網路,去拜Google大神吧
以C#來說,MSDN是你必看的。裡面提供了所有.NET Framwork API、Sample Code與系統
架構,有相當多都是中文的。
以JAVA來說,SUN的網站可以找到所有的 JavaSE API,不過,其實沒有必要,JRE本身就
是標準文件了。Sample Code的話,JAVA是最狠的,你把src解開來就有了,連API到底如
何實做都知道。由於JAVA社群大力擁抱OpenSource,Sample Code在量上頭肯定沒問題。
所以,拉哩拉雜說了一堆,到底那個好學呢?
個人認為單純就程式語言三元素第一項來看:JAVA。
原因如下:
1.C#提供了比JAVA更加嚴格的強制性物件存取控制,override virtual intern一堆在
JAVA中可以默認的東西他強制要求你"一定"要明確說清楚。
2.C#的reference傳遞比JAVA複雜,JAVA只有一種,C#透過ref out關鍵字還可以有兩種。
有看過這種宣告嗎?
public bool FindByPrimaryKey(out Result result,string pk)
Result result = null;
if(xxx.FindByPrimaryKey(out result,"12345"))
{
Console.WriteLine("查詢結果為:"+result.ToString());
}
//一個指向null的reference丟到一個Function裡頭出來竟然就有值了!!
3.unsafe。你懷念指標嗎?unsafe block一開,你就可以開始unsafe了。private
修飾的內部參數照樣外部改給你看。string pool裡的東西想開個惡劣玩笑也可以。
事實上,我自己覺得C#在語言上頭是比較接近C++的,跟JAVA相像的是在物件繼承邏輯
結構與垃圾收集上頭。
從二三點來看,他骨子裡一堆東西都是C++來的,難怪叫C#,四個+嘛~~~
其他還有一堆像是Delegate event等宣告可以達成函式指標的功能。
到了C# 2.0,類似C++裡頭的Functor應該也會出現。
--
JAVA 是一個靜態型別reference指定、強物件型別判定的語言。
屬於類C/C++族。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.248.27.110
※ 編輯: zanyking 來自: 60.248.27.110 (05/22 13:40)
討論串 (同標題文章)
java 近期熱門文章
PTT數位生活區 即時熱門文章