日期:2014-05-20  浏览次数:21285 次

C#之父牛逼还是Java之父牛逼?
欢迎大家打口水战!
C#后面有一个强大的微软,Java早已易主。
C#如今一路飙升,各种特性、类库不断,让人应接不暇,很有活力;95年刚出道的Java就被世人戴上了诸多的光环,如今还是是风光依旧,金枪不倒!
有人说C#垃圾:臃肿,闭源,看不到封装的源代码,运行效率低,不稳定,不安全....
有人说Java好:简单易学,开源,稳定性好,效率高.....

  还记得曾经有一个十多年Java经验、开发过十多个大型项目的讲师对我说:“.....Java对C#的优势是明显的,C#稳定性差,效率低,我以前开发过一个石油项目是用C#的,后来实在不行就改Java了,结果运行的良好.....”

  说实话,我很讨厌Java中extend,implent等等这样的语法,我喜欢C/C++那样简介的语法,每当看见Java中用extend这样的语法表示类继承时,我就有一种恶心的感觉。Java注定与我无缘,不是技术、市场原因,而是它那部分画蛇添足的语法。我08年才偶尔接触到C#,才知道有这么一种语言,我发现我很和它很投机,于是就逐渐的学习起来。

  关于语言,它是个既简单又深奥的话题,有关语言的发展史和各个流行语言的来龙去脉,我整理了一下并发表于自己的博客 http://blog.csdn.net/woaicplusplus/article/details/6208359(当然,写的有些烂,不过还可以凑合着看)

  实质上,基于C#和Java的论战、口水战,它们大多是基于计算机基础概念的指代不明或指代模糊造成的, 一些高质量的论战经常涉及到语言本身的问题,语言性能问题,语言的框架和成熟性应用问题 ,我们常常看到作者论战的内容有理有据,有板有眼,我们如果按作者的演示测试下,发现结果的确如此,可是我们往往忽略了一个最根本的问题-----这个论战题目本身是否合情合理,是否有论战的必要性

  比如前段博客园上关于C#性能的论战,发起者本人比较深入的阐述了C#主题并附有自己身边的切实例子,并且注明不是给C#童鞋看的 ,的确,作者关于反射、元数据、CLR等等论述 一般初学者是很难看懂的 ,总体上来讲,除了一些概念、因果关系混淆、指代不明的语句,我是很同意作者对于C#的阐述,但我们却忽略了一个最根本的问题,作者论战的前提是拿C#和C++做性能比较,这就好比拿大象和蚂蚁比较谁更有力量,然后再详细的从生理学阐述蚂蚁为什么没有力量,从实际上阐述还没见过蚂蚁能搬运100斤粮食的例子。这样看来到十分有些意思,作者本身对C#的阐述倒是反映作者C#挺NB的(还有作者的项目经验,作者的微软、德国同事,作者还向微软的技术权威---CLR及Windows编程的作者矫情的提问,....),这种阐述可以做为我们学习C#的宝贵指导经验来分享,但拿它做这样的论战就显得有些另类了。

  还有CSDN上关于老赵和包建强关于CIL的论战,包建强对老赵的反驳论述内容让一般人看后觉得挺牛逼的,讲的有理有据,有板有眼,还有详细的代码,看过老赵原文博客内容才晓得,包的反驳牛头不对马嘴,偏离主题,但阐述的内容还是很值得学习思考的。

  如是的说,一些论战文章的内容对初学者和我而言的确不错,也反映出作者的实力和成就感,但我们在论战选题上有些令人啼笑皆非,往往竟是些大象和蚂蚁的比较,我是真诚的期待老虎和狮子的巅峰对决

  C#之父和Java之父到底哪个牛逼呢?我们可以从技术上、财富上、未来的影响上好好讨论一下!!!!!!!
   
  编程界流行一句话:"真正的程序员用C++" 也就是说Java,C#,Python,Javascript等等属于业余程序员了,我看差不多,C#和Java冲死量就是一门应用层次上的语言,它们的成功不知对技术人员是好是坏。以前我学语言时,认为主要是熟练应用它的框架、API之类的,能做出来项目就行,何必要理解框架是怎样实现的,它的原理是怎样的,这样做是不是有些钻牛角尖,这样做对于我现在的这个项目用得到吗?

  我后来发现我错了,这源于一个认识和定位的问题。刚开始的时候我认为发明Flash的肯定比那些精通Flash搞应用做出美轮美奂不可思议效果的人牛逼,因为你就是做的再牛逼,你总得用发明者的东西吧。后来想想不对呀,相对论和原子弹的关系就犹如汉字和史记的关系,理论和实际应用是有区别的。折中考虑下,感觉到我这个问题根本不具有可比性,搞语言开发和语言应用的根本就是两个不同领域,你让搞应用的和搞编译的开发编译器,肯定搞应用的不行,让他们搞开发,肯定搞编译器的没有搞应用的经验丰富,但从技术难度上看搞编译的要比搞应用的大,这样分析的话的确有道理。但后来我发现我的这种争论犯了一个概念性的指代不明错误

  其实现在真正支撑IT世界的是儿时经历过打卡引线的那一部分人,中国真正的高手是经历过DOS的那一代人,我们这一代人刚出道学的就是Java这种面向对象的语言,老一代认为我们是幸福的一代,我们渐渐远离老一代C/C++的时光,而越来越多的社会大众选择C#/Java,社会上越来越多的项目也都用C#/Java开发着,但掌控着IT命脉的大公司,微软,IBM,Google等等,它们却数十年闻风不动,依旧用着C/C++开发着它们的东西,的确,我们是简单了、方便了、高效了,但同时我们的定位也完成了,我们不仅在世界上早已有我们自豪的世界工厂称号,我们也成了IT产业的世界工厂----我们成了码农,我们不过是个搞应用层开发的,我们不过干净些,有空调,看着体面些......其实我们就是....

  很奇怪,美国计算机的教材依旧是那么基础,基础的就有些过时了,社交网络中的扎尔伯格对内存分页脱口而出.....





------解决方案--------------------
探讨
java之父是 公认的科学家。
c#之父 严格来说 是个工程师。
境界不在一个层次。