C++和Java/C#在基本设计理念上是不同的:C++倾向于把强大的功能不计后果的推出去,让程序员自己调整适应,结果就是功能最强大,也最容易被误用的语言;Java/C#则相反,无论一个新功能能够带来怎样的性能或者开发效率优势,如果不完全清楚它在安全和易用性上可能造成的后果,那么设计者宁可限制这个功能的使用。最明显的例子是Pointer,最近在和Justin Shen、Lostinet... 讨论的Generics大约也算是。
More: 对C++来说,合格的语法不一定能拼成合格的程序,像virtual destructor,copy constructor这些概念都要程序员正确理解,编译器对此无能为力。所以C++程序员通常更注重所谓Best Practice,C++著作一大半是这方面的:Effective C++, More Effective C++, Effective STL, Exceptional C++等等;C#的编译器替我们take care了太多的问题,需要注意的语法之外的事项少了不只一个数量级,所以目前C#的著作一多半只是语法讲解,有几本例外:Applied .NET Framework Programming, Advanced .NET Remoting... 寥寥几本。
Best Practice可以用来区分高级C#程序员和初级C#程序员;但是没有Best Practice,就没有C++程序员了。
打印 | 张贴于 2004-04-14 00:19:00 | Tag:.NET
留言反馈