作者jackeyH (麵包小男孩)
看板C_Sharp
標題Re: [問題] C v.s. C#/VB
時間Mon Jun 2 03:39:16 2008
就原PO的問題我說一下我知道的說一下我的看法好了
============系統設計上與實做上差異分隔線===============
在系統設計時C會有別於C++ C# VB.net(甚至Java)
在系統設計階段若實做語言為C的話,會將你的的所有系統需求
切分為以Function的單位的基本個體,而所有的功能則是由這些Function進行
Interaction而實現。
而具有物件導向概念的C++ C# VB.net甚至Java在系統設計階段則是將
所有的需求切分數個不同的類別,讓需求以透過物件之間的Interaction而實現
所需要的功能。
(Anyway有人認為O.O.的程式維護會比Functional Oriented容易維護
這點我倒是不抱著一定會絕對的態度,我是覺得不見得..XD)
實做上由於C# VB.net甚至是Java其Framework中已經提供好現成大量的物件類別
可以使用,以較為官方的說法就是「你可以將新力專注在專案的本身」
而不需要額外太多心力去實做會用到,但是繁雜而基礎的程式碼
例如在專案中你會用到加密的DES演算法,在C裡面你可以能需要自己依照演算法撰寫
或是去找去買額外Third Party的Library,但是在C#/VB.net中.Net Framework
在System.Security.Cryptography就有提供相關的類別可以直接叫用
得以省下不小的時間
==========其他差異分隔線==================
此外運作在Runtime上的由C#/VB.Net開發的.Net也具有跨平台的特性
至於跨平台是什麼應該大家都知道在這裡就不多說啦..XD
這樣看來看似C#/VB.net優點很多? 那可不一定
包山包海的Framework想必是肥吱吱,但是不可或缺也就是說
在你執行環境中必須要有Framework Runtime的存在..
換句話說也就是你的環境必須塞的下肥吱吱的Framework Runtime
受到儲存空間的侷限的環境底下這就是一個很大的問題啦
另外如果你的Processor沒有額外針對你的Framework Runtime行最佳化
或是在Chip設計上就將Runtime硬體化的話
(我記得好像一些ARM CPU就有針對Java做這件事,不過.Net話我倒是沒聽說)
效能的下降是很看得出來的
=======結語分隔線===========
還是那句話沒有哪個好或是壞
不過我到是建議學習的話可以根據你以後要從事開發的專案特性去選
開發Web App,或是Windows Form,C# VB.net是一個不錯的選擇
而如果你要開發的專案是Embedded System或是Driver的話C我認為
會是另外一個不錯的選擇...
還是那句話程式語言嘛沒有絕對無敵~而是看你想用在哪裡
以及能不能以他解決你想解決的問題XD
就簡單的說到這裡啦..天快亮了該睡了..XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 134.208.33.152
※ 編輯: jackeyH 來自: 134.208.33.152 (06/02 03:45)
推 teyou:嗯~~同意你的說法 06/02 13:33
推 leicheong:追加: 在儲存空間侷限的環境有CF可以用, 不過功能當然 06/02 19:54
→ leicheong:少很多... :P 06/02 19:55