如果你是认真的话,那我建议你用c#。c#只能开发web完全是误解。c#开发cs是很方便的。
最重要的是,c#对oo的支持,在几种流行的语言中,只有java是和它相同的。做应用软件,oo是很重要的,否则,那些逻辑烦死你。
如果做个不是很复杂的,只需要简单访问数据库,修改表之类的应用,那么还是delphi和bcb比较方便。因为delphi的控件比较多。
如果想做很灵活,复杂性很高,拥有大量类库的系统,那么还是用c#比较好。这类系统,一般有大量的new,那么可不可以随便new,new完了能不能不考虑怎么回收,工作量是一个天上,一个地下啊。
c#有几个特性,是非常优秀的。
第一就是delegate。delegate就是用来实现事件的回调方法。它不但可以异步调用,还支持多播。写网络程序,简直方便极了。无需创建线程,就可以实现异步调用,还有线程池的支持。事件和回调机制,可以使编程者优化代码的结构,更好的划分类的职责。比如,可以把这个类不知道应该如何处理的逻辑,放到事件里面,让类的使用者来实现其逻辑。当然,没有事件机制,也可以用其他方法,但是事件机制是最简捷的方式。
第二就是using语句。一个using加两个括号,就可以代替罗嗦的try catch finally,大大减少了代码量。
第三就是反射。反射可以把程序做得很灵活。c#的一切特性都是可以用代码实现的,包括创建界面。这为开发高度灵活的程序,提供了基础。比如,你可以实现一个通用的界面,用来访问主从表。
第四就是代码动态编译。这一点非常厉害,完全可以用程序来动态生成代码来调用,这意味着什么就不用多说了吧?这完全是另外一种编程天地。c#2.0的partial class,就是为这个目的准备的。
第五是集成的工作流引擎。
第六,集成的orm系统和语言集成查询。不但可以对数据库查询,你甚至可以对一个对象数组查询。酷吧?集成的orm系统,使你的程序无需做修改,就可以适应不同的数据库。要知道,把应用从oracle移植到sql server,可是一个很大的工作量。
做数据库的话,用c#实在是很幸福的。
其实c#还是比较难学的。现在语言特性已经越来越复杂了,指望三天就会是不可能的。不过,每个功能都是有用的。anders从来不玩花哨的东西。我觉得anders是最理解程序员的人,所以才能做出最好的工具。delphi和c#都是非常好的。其实c#有很多特性甚至个性化的关键字都来源于delphi,呵呵,同一个人做的,当然差不多了。
最后,我怀疑你发表这个话题的用心是不怀好意,目的就是想引起大家的争吵。就象陈水扁挑动族群情绪分裂台湾一样。希望大家不要上当。。。。。。
[ 本帖最后由 yongweisun 于 2007-12-1 16:22 编辑 ]