作者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)
1F:推 teyou:嗯~~同意你的说法 06/02 13:33
2F:推 leicheong:追加: 在储存空间局限的环境有CF可以用, 不过功能当然 06/02 19:54
3F:→ leicheong:少很多... :P 06/02 19:55