c#和java那个好
其实我一听到这个话题就感觉无奈,很无聊
我希望大家在看了我的文章之后,以后要文明讨论这方面的话题。
Java,C++,C#只是语言或者是说你要做某项工作的工具而已。
我的观点是不讨论
原因如下:
1.一个人写的字不好看,你感觉是笔的问题还是人的问题
2.一个程序员用C#写的程序比Java写的程序跑的性能高,你感觉是Java不如C#吗?
3.一个傻子拿把刀被一个正常人用一个棍子打死了,你感觉是刀厉害还是棍子利害
4.一个人做饭非要用盆不用锅,做出来的饭没有锅做出来的好吃,你能说盆没有锅重要吗?只是分工不同
5.一个象棋高手输给了一个围棋新手,那是因为他们在下围棋
以上原因其实说明一个问题
工具,没有好坏之分,语言也没有好坏只分,只有适合不适合,如果真的有好坏之分,那也是人的问题
比如你非要在Linux上用C#,那肯定不如Java。
你非要在.net里使用Java一样也不如C#来的适合。
说的多了,见谅啊,呵呵,我的意思很明白,就是任何Code和工具无关,最终是和人有关的。是人选择错了,写错了。用错地方了。
有多少人是有资格讨论这个话题的。
我感觉一个人如果想讨论这个话题,那么首先应该先明白以下几点
1.你一定是个C#和Java语言的高手,最少要同时都了解两种语言,而且水平应该是不相上下的。
因为讨论要平等,你不能让一个单纯的C#程序员,或者一个单纯的Java员去讨论这话题,因为没有意义,
因为他就不了解对方,又怎么去比较,又怎么知道那个好,那个不好呢?
就好像所有C#程序员都希望使用Sql数据库,所有的PHP程序员都希望使用MYsql数据库一样。因为熟悉,
因为习惯了,因我最在行,因为最了解,因为没有压力我都会,不用再学习,还有可以装逼,呵呵。
2.你确定你说的问题是自己解决不了,还是因为语言本身的问题
就比如刚刚一个博文(存储过程的优缺点个人总结)提到存储过程不能调试,的问题
我很想说在Sql2000的时候就有调试功能了,而且是个Vs的调试基本是一样的,在Sql08的时候调试已经很强大了,连智能提示工具也一样强大。
所以要确认你是不会还是语言没有这个功能。
而且Sql2005都开始支持.net2.0的语言库了,也就是说你写的C#方法可以在存储过程直接调用
这个可以参考我的文章:http://www.cnblogs.com/sufei/archive/2010/04/06/1705590.html 中的
SQL Server 2005中的CLR
* SQL Server 2005中的CLR总结和自定义类型(UDT)
* SQL Server 2005中自定义类型(UDT)深入实例
3.不要不客观
如果出现人身攻击,骂人,等情况,或者是说我写了10年的代码了,能不知道吗?我有什么,什么经历,这些已经不客观了,这样就是第一种情况了,
不是程序问题是人的问题,你是10年的C#编码高手,要和一个1年的Java程序员比较那个语言好,没办法比,有差别的是写Code能力,而不是人家Java的问题。
所以我希望大家客观看问题。
总结
如果你能执行上面的规则我很希望听听您的建议
我特别不喜欢有些人因为C#不能跨平台就说人家微软不行,你们真的以为微软做不出跨平台的东东。
开玩笑的吧。只是人家公司的战略问题。是不想C#在Linux上运行而带动Linux用户,让Windows丧失领地