远去的代码
作者: 闻怡洋
Wednesday, July 10 2002 11:17 AM
在.NET开始向外界进行宣传的时候,也同时提出一个新的开发语言C#。当时微软就以C#的高效,安全,可移植和类似与C++的语法特性作为宣传C#的重点,这种宣传的论调让很多VC开发者都误以为Visual C#将会是VC一种升级产品,但当C#的开发工具VS.NET出现时我才真正看到了微软对C#的态度,C#无疑就是一个具备C++语法的另一个VB。我甚至想说Visual C#和Visual C++没有任何的关系,所以我想大家以后没有什么必要再将VC#和VC相提并论了。
C#的血亲是VB和JAVA而不是C++,在语法上融合了JAVA和VB的语言特性,当然为了适应COM的要求加入了对COM的内置支持。在开发环境上俨然就是另一个VB。所谓的对指针的支持不过是微软为了吸引C程序员的一个弥天大谎,我相信没有多少开发人员会真正在程序中使用指针,当然理由有很多,例如破坏安全性,使程序难读和隐讳,编写代码的麻烦,但是我想更大的原因就是实在没有必要这么做了,没有必要为了实现一个C#本身无法满足的功能而使用指针了,按VB程序员的说法就是找个控件就行了。所以我想C#真的没有必要起名C#,或者成为J# B# JB#也许更加确切。:-)
VC#是一种面向桌面应用和商业应用开发工具,如果需要使用C#来开发系统服务我想这将是一个非常有挑战性的工作,对于它的性能我实在不敢恭维,我不敢想象这样一个庞然大物可以以光速飞奔。不过VC#和VB和其他一些RAD工具将会平分Windows桌面开发的天下。用VC来开发桌面应用现在看来真是有些不合时宜了。回想当初VC的出现的确是为了从Borland C手中抢回Windows桌面开发份额,但经过这么多年现在的RAD已经有了飞跃,所以VC很难在桌面开发中立足。随着微软放弃支持JAVA,JAVA的开发工具在Windows上将会越来越难以立足,此外随着.NET的出现,微软也将把持住.NET开发工具,其他的开发工具将很难和微软进行抗衡。也许几年后所有的Windows开发工具都会烙上微软的标签(那时的所有也许就是一种或是两种吧)。
现在的开发已经越来越依赖于鼠标,让我感到一个程序员的成就感和编写代码时的乐趣越来越少(从整个项目来讲这是件好事)。开发人员在以后对于代码的控制能力也将会越来越差,因为系统已经为你做了很多事情。去年我本来以为学习VC的人会越来越少,但是我错了,现在学习VC的人有增无减,从我的论坛上看到很多的人已经在为了满足自身的求知欲和满足感去做开发了,而不只是为了一份优厚的待遇。
在以前对一个程序员来说代码就是他的根,代码中包含了他对于系统的理解,对于流程的认识和自己的思维,但现在这些已经逐渐转变为对工具的熟练了,这并不是坏事,但对于我来说经历这样一个转变多少都会让人觉得失落。事实中,看不见代码对于开发来说几乎没有任何影响,但是对于维护来说却意义重大,没有明确的代码和流程对于错误的定位来说简直是一个恶梦,我想这一点无法用软件工程来弥补,即使你有再多的文档和再严谨的设计都难以避免未知的错误。我看见C的代码时如同看见一条路,而看见VB和C#的代码时确好象看见了很多扇门(这种原因和所开发软件的类型当然也有关系,毕竟对于面向桌面的应用对于各种事件的处理看起来就有够让人头疼)。
我很幻想有一天自己能够重新去写一些纯代码的东西,而不是那些在桌面上飘来飘去的应用。所以想到我去年时使用Perl做开发的那段时间真是让人愉快,PERL语言的灵活和丰富加上代码的完全可见性,让人在开发的工程中非常的充实和有成就感。不过唯一让人遗憾的是我用Perl做的软件现在只在自己的网站上使用,而且慢慢的都会改为用ASP去做了。
本来有用Perl做的内部系统给过一些公司内部使用,但由于无人能够维护和发展都被替换掉了,所以从适用性和发展的角度来讲一些更高级的RAD工具才是更能够更好的满足未来发展的需要。
前几天我完成拖沓的VC开发教程,说它拖沓是因为第二部教程我写了很久才将其写完,我一直在考虑是否要写一个关于C#的教程和一些VC#开发教程,到现在我还没有拿定主意。如果微软能够很好的推行.NET计划,那么VC#将是开发.NET应用的有力开发工具,但是由于我对VB有着多年来成见所以让我接受在开发方式类似与VB的VC#有些困难。
我又不得不说VC#在Windows开发领域将会是一种非常有前途得开发工具,这绝非VB可以相比的,因为C#的产生就远比Basic有力和优秀,而且C#就象一个没有包袱才开始长跑的运动员(不过虽然C#没有什么包袱,但却有些臃肿)。如果你是一个微软的死硬派,VC#真是一个不错的选择。
计算机的开发(程序)语言在现在来说已经不是单纯的语法,词法和代码流程了,它更多的代表着开发工具厂商所定义的开发规则和为你制定的开发思路甚至是开发习惯(对于微软的开发工具更是如此),代码的本身已经不能够说明问题了。而且随着开发的多元化,选择不同的应用开发类型的同时也就是选择了自己在开发上的工作习惯,思维方式和注意力方向,所以以后即使是做具体开发的人都可能会逐渐脱离开代码编写。这对于即将加入开发行列的人来说无疑是一件喜事,但对于已经从事开发很久的人来讲却是一种冲击。无论是以前的,现在的和以后的开发人员都必须学会一点,那就是适应新的开发方式。
C/C++会在Windows的开发中逐渐消失或者是萎缩吗?我真的有些担忧,无论如何C#的出现都给C/C++带来了巨大的冲击,这种冲击远不是VB所能够相比的,它的名字和微软的宣传都足以改变C#在别人眼中的本质。
转自VCHelp