iCAx开思工具箱

标题: C#断想(喜欢C#的或想学C#的兄弟一定要看看,用C++的作为参考) [打印本页]

作者: 深夜摔键盘    时间: 2005-8-25 09:25
标题: C#断想(喜欢C#的或想学C#的兄弟一定要看看,用C++的作为参考)
原文地址:https://www.royaloo.com/articles/articles.htm
  
C#是现代语言的杰出代表,是C/C++语言家族里第一门面向组件(component-oriented)的语言。
  
C#酷似Java,这没什么好奇怪的。语言发展到今天这个份上,类型系统和控制结构肯定都会大差不差,是不是非得换几个反习惯的关键字才叫创新,我想,任何一名理智的开发者都不会赞成这个观点。
  
今天,谁要能发明一种跟Java或C#很不一样的深度面向对象的程序语言,我不惊讶才怪。
  
从大的方面来看,C#借鉴了Java语言设计思想,这一点毋庸置疑。纵然如此,我仍然不赞成简单地把C#看成是Java的克隆。
  
C#保留了枚举,并进一步增强了对枚举语言特性的支持。更重要的是,尽管它的设计者不赞成在C#中使用指针,但仍然完整保留了使用指针的能力,这一切,都使得C#远比Java更亲近C++。
  
本质上,C#更是.NET CLR语义的C风格的语法表达。
  
C#在一些语言细节上的改进,比如布尔值和整型值不能象在C++中那样互换,体现了一门现代语言应有的严谨。当然了,这是个仁者见仁、智者见智的问题,或许C/C++程序员并不这么认为。
  
C#程序的变量命名方式,不再鼓励使用老式的匈牙利记法,而推荐使用Pascal记法,这也使得这种语言看上去更加现代。或许在一个一切都是Object的语言里,为变量加上表示类型的前缀,意义的确不大
  
在我看来,C#语言难度介于C++和Java之间,且应在Object Pascal之上。
  
C#不但是Java强有力的竞争对手,它也会削弱Delphi(Object Pascal)的势力。
  
尽管微软一再申辩,中间语言(IL)之类的东西,绝不是什么新思想,特别是,它并非由Java首创,但Java字节码(byte code)的巨大成功,无疑增强了微软的信心。走这一条路,不会有太大的商业风险。
  
目前没有 — 将来也不会出现语义和CLR完全映射的.NET语言。即便是C#,在很多语义细节方面,和CLR之间亦存在诸多微妙的差别。
  
但是,纵然如此,C#仍然是.NET最佳语言拍档 — 尽管Visual Basic .NET也是.NET平台上一等语言。假如你打算要做一名地道的.NET开发人员,C#就是最佳语言选择。
  
C#和Visual Basic .NET本质不同点之一在于C#允许编写不安全代码(unsafe code),而Visual Basic .NET不可以。
  
脱离.NET谈C#意义不大,C#的应用离不开它赖以生存的土壤。和C++标准库对C++语言的重要性相比,.NET框架类库对C#语言的重要性,有过之而无不及。
  
C#和.NET框架类库之间的关系,就象是鱼和水的关系。.NET水中可以没有C#这条鱼,.NET水中肯定也不止C#这一条鱼,但C#这条鱼一旦离开.NET,也就不会有什么生命力。而且,C#无疑是.NET水中最引人注目的鱼。
  
假如SUN允许微软定制Java的话,还会有今天的C#吗?我的观点是,微软肯定会弄出个C#语言来,C#的出现,有其历史的必然。
  
道理并不复杂,微软并不拥有C++,它只能在C++规范所允许的范围内,做出某些扩展。怪模怪样的Managed C++,绝对不会成为普及的.NET语言。C++本来就够复杂的了,现在,Managed Extensions for C++又向C++里增添了更多的复杂玩意。
  
Visual Basic是微软自己的语言,它可以爱怎么改就怎么改,但Visual Basic留给广大开发人员根深蒂固的难登大雅之堂的小气印象,使得纵然Visual Basic.NET已经脱胎换骨,也难以吸引更多的开发人员。
  
作为一门年轻的语言,C#还有很大的发展余地,泛型技术绝对是其潜力最大的发展空间。
  
但我认为泛型技术不太可能进入通用语言规范(CLS),道理很简单,并不是每一种.NET语言都有能力支持泛型编程。
  
C#会吸引C++编程人员吗?世界上最自命不凡的编程人员恐怕就是C++程序员了,尽管绝大多数C++程序员并不能游刃有余地运用C++。
  
C#会吸引Visual Basic编程人员吗?那是喜欢C#的人的一厢情愿。不管你如何地讨厌Visual Basic,但Visual Basic编程人员自己大都不会这么认为。叫一个早已习惯了不区分大小写的Visual Basic程序员来使用C#,说不定是一种受罪。
  
C#会吸引Delphi(Object Pascal)程序员吗?Delphi程序员认为自己拥有世界上最好的开发工具,或许Anders Hejlsberg的个人魅力,会使得一些Delphi爱好者转投C#。
  
C#会吸引Java编程人员吗?看起来C#和Java势不两立。自C#诞生以来,两大阵营的争吵就没有停止过。让一个使用Java的程序员转用C#,那和逼迫一个虔诚的教徒改变其宗教信仰一样困难。
  
新事物的出现,总会伴随着鲜花掌声和诋毁谩骂。
  
Java问世之初,好评如潮,但也受到了大批想不开的C++开发人员的群起围攻,但Java终究取得了巨大的成功。现在,C#的来临同样招致了大量的怀疑和诽谤,就象Java当初所遭遇的一样。
  
假如说有什么不同的话,那就是这一次除了狭隘的C++人员外,一些Java程序员也加入了叫骂的行列,完全忘记了自己当初被C++人员骂得狗血喷头的狼狈相,完全忘记了直到今天自己仍然被某些C++程序员蔑称为二等公民。
  
那么,C#究竟会吸引哪些人呢?
  
他们可能会是:任何理智的“面向微软”的企业级软件开发公司,决定要走微软.NET技术的路线的企业软件开发人员,初涉软件开发领域的生力军,勇于尝试新鲜事物的朝气蓬勃的学生。还有,象我这样的总是对老技术感到厌倦、喜欢不断变换口味的、希望跟上技术进步的程序设计者。
  
C#不会吸引哪些开发人员呢?
  
任何“技术守旧者”。这些人,要么害怕学习新东西,要么对自己已经掌握的技术过于自信。
  
我曾遇见过一位老兄,他说,***是世界上最好的开发工具。这种开发工具的名字,说出来,能把你笑死。这种人,怎么能干好软件开发这个行当?
作者: blyleo    时间: 2005-8-25 14:17
初涉软件开发领域的生力军,勇于尝试新鲜事物的朝气蓬勃的学生。
  
我属于这一类,哈哈
作者: xilen    时间: 2005-8-31 00:22
顶一下
作者: blyleo    时间: 2005-8-31 10:45
走在前头有时会孤单无助的,哈哈
作者: dreambzy    时间: 2005-9-18 16:48
我喜欢C#,没有太多的理由,就是用起来很舒服。(虽然我的水平很差)
作者: feria    时间: 2005-9-19 20:21
你的两篇文章一样
没有发现与二次开发有什么关系。
.net是趋势
c#是利器
可惜文不对题。
辜负了很多兄弟对这篇文章的期待。
而且,还要补充两句话,这并不是为你文章中所道的那个人辩解:
1. 最强大的开发工具是双手。
2. 最有用的开发工具是notepad/vi .
如果你明白这两句话,就可以称为开发的顶级高手了。
如果你觉得他们无法和vs.net比................


作者: shaoxjin    时间: 2005-9-20 00:25
这要看每个人的选择了
作者: 深夜摔键盘    时间: 2005-9-20 10:19
转贴的这几篇 文章,只是讲了点技术背景和方向的,有人觉得有用,也有人觉得没用,这就看你怎么去看了。如你所言,.net是发展趋势,大家都知道,可我们的看法也许有些盲目,很多人也是人云亦云,听听专家的说法,不是坏事。

CAD二次开发既不是新鲜事物,也不是独立的东西。CAD理论与实践,计算机语言,程序调试与测试技术,软件工程知识,数据结构,算法,这些都与二次开发有关系啊。如果认为必须得和CAD二次开发有关系的文章才值得看,值得贴,就太功利心切了。我觉得真正决定你能否成为二次开发高手的东西,反而不是直接和UG二次开发有关联的东西。


还有,我也承认,只用notepad,vi写程序的人,真的是很高的高手,能够把自己变成词法分析器,语法分析器,编译器,连接器,调试器的人,那肯定是世界第一人了。不过,我没听说过有这种人。

最强大的开发工具的确是双手,但你要记住,那不是一个人的双手,而是无数人的双手。君子,善假于物。牛顿也是站在众人的肩膀上的啊。
作者: LIUCHANGLIN    时间: 2010-4-26 20:01
唉,来晚了!!




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3