Re: [問題] java與C#何者較難?

看板java作者 (遙遠的旅人)時間19年前 (2006/05/22 12:39), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串16/21 (看更多)
一個程式語言可以分成三部分來看: 語言本身。關鍵字、語法、邏輯結構... 函式庫。提供出來可以用的標準函式庫。 編譯器。支援的指令集、編譯檢查、指令優化... 到了最近十年又多了一個:虛擬機器。 今天的問題既然是"哪一個語言比較好學?" 那就要能先回答幾個問題: 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)
文章代碼(AID): #14SK1q_F (java)
文章代碼(AID): #14SK1q_F (java)