过去三年我一直都用C++做项目。最近由于项目的变化,需要用C#进行编码。从C++到C#,我经历着转变中的快乐和痛苦。
       
         转变的快乐:
         * C#有更强大和丰富的基础库,很多问题都有现成的实现。比如这次使用到的SSL通信和XML解析。若是C++,光是实现这些都要费上很长一段时间,即使是使用开源代码也免不了调查和评估的时间。
 
         * C#提供的诸如event,delegate,LINQ等语言特性可以大大简化设计上的问题。有了event,对于一些较简单的问题就不必自己套用Observer模式,还为此多引入几个类。
 
         * C#的Garbage Collector使得程序员可以免受内存泄露之苦。每当new时候就不要再战战兢兢,时刻挂念着是否delete了。
         
         转变的痛苦:
         * 选择的痛苦。对于同一个问题,C#较之C++提供了更多的可能和实现途径。如何选择最合适的往往很痛苦。选择不当往往就会得不偿失。
 
         * 跟进的痛苦。C++相对比较稳定,而C#更具活力,目前还是处于不断地变化当中,不时都会有新的特性出现。一个C#程序员要想与时俱进,投入还是需要很大的。
 
        面对这C#这样一个强大的工具,刚接触时会有些许的恐惧。一旦掌握了,恐惧消失的同时获得的就是自信。
 
        总之,C#和C++很多东西都是一脉相承的,背后的思想更是共同的。掌握了OO高级语言的基本思想,实现他们之间的切换还是比较自然的,当然也会痛并快乐着。