C#, 程序员的新工具

程序|程序员

这世界上没有什么比编程工具更加牵动程序员的心。VC、VB、DELPHI、JAVA……这些耀眼的名字不仅占据了程序员的生活,而且似乎已经成为了某种信仰。可是,伴随着新世纪的脚步,这些信仰又一次遭遇了重大的挑战。微软,这头被法官和黑客们折腾得既疲惫又恼怒的狮子,发誓要保住它头上的王冠,拼尽全力,拿出了看家的本事——.NET战略。作为 .NET的核心开发语言,C# 顺理成章地浮出了水面。程序员们也就不得不做出一个痛苦的选择,跟在谁的后面?要找出答案就不得不作一番比较和预测。笔者作为一个资深的程序员,斗胆在此狂言,权作抛砖引玉。

如果抛开一切非技术方面的因素,C# 无疑是这个星球上有史以来最好的编程语言,它几乎集中了所有关于软件开发和软件工程研究的最新成果。面向对象、类型安全、组件技术、自动内存管理、跨平台异常处理、版本控制、代码安全管理……你不可能在另外的一种语言中找到所有这些特性。尽管像很多人注意到的一样,当我罗列上述特性时,总是让人想到JAVA,然而C# 确实走得更远。但现实的情况是,非技术的因素往往更能决定一个产品的未来,尤其在计算机软件的历史上,技术卓越的产品,如OS/2、Mac OS、UNIX等,都败在了Windows那漂亮的脸蛋儿下。而这一次,微软的角色好像从一个赤手空拳的革命者变成了仗势欺人的老地主,如果真是要变天,那C# 这孩子岂不是投错了胎?可能情形并非如此糟糕,毕竟瘦死的骆驼比马大,而且C# 已经提交给了一个标准化组织,一旦成了国际标准,说不准真有哪个手痒的大侠(也有可能是微软自己)给移植到Linux 和别的平台上。那样的话,JAVA可就惨了。因为JAVA的用户主要是网络服务的开发者和嵌入式设备软件的开发者,嵌入式设备软件不是C# 的用武之地,而在网络服务方面,C# 的即时编译和本地代码Cache方案比JAVA虚拟机具有绝对的性能优势。何况C# 一旦成为一个像C++ 一样的公共的标准,软件开发商既可以省去JAVA的许可证费用,也不必担心成为微软的奴隶,那些反微软的人士和主张厂商独立的人士可能也不会有什么意见。这可能正是微软所期待的。

如果把C# 和 JAVA 在网络服务领域的争夺比作未来制空权的争夺的话,那么C# 和传统通用快速开发工具——VB、DELPHI等的较量将是地地道道的白刃战。可能最惨的程序员就是VB程序员,在微软,VB就像离任的克林顿,不但失去了所有的光辉,而且乱事缠身。想想吧,VB6写的项目必须用转换工具转换成基于.NET的代码才能在VB7中调入,几乎面目全非。由于VB7遵循为迎合.NET而建立的通用语言规范(CLS),几乎把所有原来只在C++、JAVA等语言中可以运用的特性统统加了进来,只是语法和原来兼容。如果你是第一次在VB7中看到自己的旧VB6项目转换之后的代码,一定要当心你的心脏!所以,努力吧,别告诉我你将就此退休。DELPHI的状况也好不到哪里去,原来的看家本领是做起应用来又快又好,可现在看看最新的VS.NET Beta 1, 你会感到如此熟悉,众多的属性列表、组件……谁让你穷呢,连总设计师都养不住。

其实在编程语言中真正的霸主多年来一直是C++,所有的操作系统和绝大多数的商品软件都是用C++作为主要开发语言的。JAVA的程序员绝大多数也是C++的爱好者,PHP的成功里面也有类似C++的语法的功劳。在操作系统、设备驱动程序、视频游戏等领域,C++在很长的时间内仍将占据主要地位,而在数量最大的应用软件的开发上,C# 很可能取代C++的位置。首先,C# 和JAVA一样,简直就是照搬了C++的部分语法,因此,对于数量众多的C++程序员学习起来很容易上手,另外,对于新手来说,比C++要简单一些。其次,Windows是目前占垄断地位的平台,而开发Windows应用,当然微软的声音是不能忽略的。最重要的是,相对于C++,用C# 开发应用软件可以大大缩短开发周期,同时可以利用原来除用户界面代码之外的C++代码。

但是,C# 也有弱点。首先,在大量的现有Windows平台上,C# 的程序还不能运行,因为C# 程序需要 .NET运行库作为基础,而 .NET运行库将作为新一代的Windows(Whistler)的一部分发行, 或以Service Pack的形式提交给Windows Me 和 Windows 2000用户。所以在近期,C# 会主要在服务器上得到应用。其次,C# 能够使用的组件或库还只有 .NET 运行库等很少的选择,没有丰富的第三方软件库可用,这需要有一个过程,同时各软件开发商的支持也很重要。第三,JAVA的成功因素里有一些是反微软阵营的吹捧,虽然“只写一次,到处运行”只是一句口号,但毕竟已经是一种成熟的技术。而C# 的鼓吹者目前只有名声不佳的微软,且只能运行在Windows上。实际上这两种语言都不是不可替代的,理智的说,对软件开发商而言,什么用的最熟什么就是最好的工具。尤其对C++的使用者,C# 没有带来任何新东西,因为.NET运行库在C++中也可以使用,没有要换的绝对的理由。

综上所述,我个人认为,近几年,C# 将不可避免地崛起,在Windows平台上成为主角,而JAVA将在UNIX、Linux等平台上成为霸主,C++ 将继续在系统软件领域大展拳脚。非常有意思的是,这些语言的语法极其接近,因为JAVA和C# 都是由C++发展而来的。其他的开发工具当然还会在相当长的时间里继续他们的旅程,不过在市场份额上,将不可避免地受到冲击。

时间: 2024-11-30 00:05:06

C#, 程序员的新工具的相关文章

20年的老程序员对新入行的朋友的一些建议

从事编程这一行也已经20年了,到今天为止,有关编程方面的知识我也写了六七门课程了,教授课程的时间也已超过了1000小时,下面我所说的全部是我多年来的实践的经验之谈. 编程真的不是一件容易的事. 不管你多喜欢或是多会编程,在学习和解决问题上总会碰到障碍.工作的时间越久就越能明白这个道理.不过这倒是一个让人进步的机会,因为你要一直不断的学习才能很好的解决你面前的难题.如果你已不有了进取心,那么当遇到难道无法解决时你就会想要放弃. 编程也是最让人沮丧的事情 正常的编程过程都是这样的:尝试.失败.学习.

从大三开始奋发的程序员面临新的困惑……

这是一封让我受教育的求助信,主人公的经历本身就是一个励志故事: 这是一个我不擅长回答,但愿意谈些看法的问题: 这封信让我们看到人的力量有多么强大,机会得需要用心的人抓住,汗水浇涛的永远是成就: 这封信中谈及困扰是种幸福的困扰,是写信人自己创造的幸福,而幸福终将更加持久: 这封信也让我再次意识到:疑惑最终需要当事人自己解答,动笔写下来,这是一个朴素有效的办法.其实我给那么多人回信,我希望的也仅仅是我的文字能启发当事人的思考: 给我的信件,我会隐去来信者的基本信息发布到博客上,以求有同类问题的读者共

八块腹肌:硅谷程序员的新标配

人们总是说硅谷的新陈代谢正在火箭式上升,这当然是一个用来形象说明利润.创新.产品或服务激增的比喻.但现在,这一幕就切切实实地发生在我们眼 前.科技行业的文化正在转变:健身已经成为所谓brogrammer(意指善于社交,喜欢出外玩乐的程序员)的新嗜好.软件开发人员一向把世界视为一系列 需要优化的系统.现在,他们开始用这种本能来观察自己的身体.让我们权且将它称为"高效技术人员的六块腹肌"--堪比健美运动员的身材,加上PHP思维的 头脑. "我做梦也没有想到这一幕," 4

居然还能这样——程序员加薪新方法

这是一个真实的故事-- 我的朋友A君是个典型的.NET开发人员,技术不错,人品也不错,在一家小公司(姑且称为甲公司)做项目开发,是技术骨干. 3个月前,他找到我说想跳槽,让我帮忙介绍工作.我说为什么想跳了? 为什么想离职? 他简单说了一下他在甲公司当时的状况:A君在甲公司做了两年多,这两年多完成了一个大项目,作为开发的核心主力,开发压力很大,特别是项目上线前的几个月是非常辛苦,几乎每晚都要加班到12点以后,周末最多只有一天休息.在最困难的时候,老板给大家打气,"大家再坚持坚持,项目上线赚钱了,就

程序员成长规划

引言 我的程序员成长之路 程序员的成长经历往往很相似,大部分的人走过了最前面相同的一段路,而有的人则走得更远.总结自己这些年来的历程,这也许能让年轻的程序员少走一些弯路,成长得更快:或许更好一些,能让大家从中得到一些启发,早日进入优秀程序员的阶段,实现梦想,释放激情. 第一阶段,最初是在学校里学习计算机基础知识,学习经典的程序设计语言,编写测试用的小程序.这个过程可以说是对计算机和程序设计的入门阶段.这个阶段主要是培养了自己对计算机软件的兴趣,打下了良好的计算机基础知识. 第二阶段,而后参加工作

未来的程序员面临着怎样的职业变化

作为程序员,我们总是身处于如万花筒般变化无常的技术世界里.我们可能也是那群能够最早感知到科技变化所带来巨大影响的人.然而,面对这一波又一波向我们袭来的技术变革,我们是否也能从中窥见一丝规律,从而使自己更好地应对未来呢?让我们打开脑洞,预测一下未来10年,程序员这个职业可能发生的变化. 程序员将变得更加全能 许多文章或艺术作品中将程序员的未来描绘得过于科幻或戏剧化,而基于我们看到以及正在发生着的现实,有一点却是不争的事实--程序员将变得更加全能.如果你是一名iOS程序员,你一定能感受到最近几年市场

《程序员的呐喊》一一1.4 名词王国里的执行

1.4 名词王国里的执行 程序员的呐喊 "他们中有些家伙的脾气可大了--特别是动词,最傲气的就是他们--形容词可以随便捏,但动词就不行--不过他们都得听我调遣!不可捉摸!我就说这么多啦!" --矮胖子 1 大家好!今天要讲的是邪恶的Java国王和他满世界消灭动词的故事.(首先要干掉的动词就是"消灭"(to stamp out),取而代之的是VerbEliminatorFactory.create VerbEliminator(currentContext).oper

浅谈程序员的数学修养

可能有很多朋友在网上看过Google公司早几年的招聘广告,它的第一题如下了:{first 10-digit prime found in consecutive digits e}.com,e中出现的连续的第一个10个数字组成的质数.据说当时这个试题在美国很多地铁的出站口都有大幅广告,只要正确解答了这道题,在浏览器的地址栏中输入这个答案,就可以进入下一轮的测试,整个测试过程如同一个数学迷宫,直到你成为Google的一员.又如Intel某年的一道面试题目:巴拿赫病故于1945年8月31日.他的出生

精通型程序员的特点

你知道有能力胜任和精通之间的区别是什么吗? 这听起来像一个很难回答的问题,因为这两者似乎意味着同样的事情.但它们之间的微妙区别至关重要. 有能力胜任是指有足够的经验和知识来完成各项工作:精通涉及知道为什么你要用某种方式来做事情,以及如何融入到大局中.换句话说,精通型从业者总是有能力胜任,但反之可能不成立. <Dreyfus Model of Skill Acquisition>非常详细地涵盖了这个主题.虽然标题听起来有点学术化,但是论文非常平易近人. 我建议阅读原始资源材料以便于能更好地纵观从