这篇文章原来发在CSDN上,我的CSDN账号不知被啥原因封了之后,这篇文章就找不到了。今天在Evernote的笔记里偶然找到了,转发在这里。
Java和.Net选哪个?这是每一个菜鸟都必须要面对的问题。Java 可能是大多数程序员学习的第一个面向对象的编程语言。它最大的优势就是跨平台性。其实,在国内小型机当道的时代,Java 是唯一可以选择的开发语言,因为.net 根本不能在AIX 上运行。那么为什么国内以前会流行小机呢?这主要是中国人多,所以国内的网站对并发要求很高,所以很难用X86架构来支持高并发。其实,真正的原因是在国内以前软件开发大多是给企业做项目,而不是真正意义的软件公司为自己开发产品,在一个软件项目中,其实软件部分是很难赚钱的,真正的油水则是来自中间件和硬件厂商的回扣,所以软件公司也就不愿意做性能优化这种费力不讨好的事,而很乐于推销小型机,Oracle 这类油水很大的解决方案了。
而这几年,当我们国内的互联网企业开始崛起,开始开发自己的产品的时候,我们看到的则是像淘宝的去IOE ,被业界推崇,其实这并不是敏捷开发,云计算给我们带来了什么,至少我是这么认为的。
回到语言的话题,回到10几年前,那时候的微软数据库是个什么样子呢?问稍微老一点的管理员,特别是现在搞sybase的,他们一定会告诉你,微软的产品就是迪斯尼乐园。其实,十几年过去了,现在微软的数据库已经是今非昔比了。现在通过微软开发体系,是可以胜任大规模系统的开发的。
那么到底是Java 还是C#呢?其实从项目的角度,这并不重要。而对我们程序员来说则是天大的事。因为我们要靠他们吃饭啊。我个人认为,单从语言角度,C#优于JAVA是不争的事实。可以说微软在.Net 2.0 就已经完全达到了JAVA的高度,而后面的版本则是对JAVA的超越。
微软发展一直是本着“跟哥走,有肉吃的”节奏,随着版本的升级,微软为程序员提供了一切开发需要的包,程序员只要学会用它们就好了。在这种跟个走的环境下,我们看大多数基于.Net 的项目都是用微软的解决方案,而不是第三方的。同时,微软又是一个及其“好学”的公司,业界的新的工具,它都会很有心的为我们“抄”过来。
而JAVA的发展在SUN的带领下看似气势恢宏,实则畏首畏尾。这就促成了很多JAVA系厂商不得不自己拉山头了。这就造成了第三方框架漫天飞的局面。同时,由于JAVA语言本身进化缓慢,但是JVM相对开放,基于JVM的语言也就如雨后春笋一样了。
这样的发展使跟着JAVA走的程序员必须要花大量时间学习各种框架。可以说,不会使用一定数量框架的JAVA程序员自己都不好意思说自己会JAVA。同时,由于这些框架都是拉山头开发出来的,直接造成了很大的重复性,这就使程序员不但学习量大增,而且还要自己甄别框架的优劣。同时,大多数程序员可能还要在学习至少一门基于JVM的语言。还有选择和使用一个IDE, 这也就产生了Eclipse 与IntelliJ 之争,选择一个编译脚本,这也就产生了Maven与Gradle之争。搞Java 的人,我想都经历过配置开发环境的噩梦吧。
相比起来,微软在这些方面则是人性了很多。虽然Visual studio真的很大,但是装完了也就可以开发了。但是,微软的模式也不是没有问题,那就是微软的创新实在是太快了,跟这个哥走,实在有点累。且不说ASP到现在已经多少个版本了,也不说为什么.NET REMOTING刚看懂,它又搞了WCF还有后面的Web API ,就看一个sliverlight,说不要就不要了。可能是自己太笨了,要跟上微软的节奏,还真是挺累的。
那么作为屌丝程序员的我们,到底应该怎么办呢?其实我也不知道,呵呵。这几年,至少我是这么摸索的。首先,从自己内心出发,不参与语言之争,不要道听途说。新的程序员很容易挺老程序员的一句话就建立一个错误的观念。其实,作为新手,我们有的就是精力和时间,大可不必事事都请教,有些时候,撞了南墙才会记得清楚,学得明白。
第二,尽量可以找一个什么技术都可以接触到的公司。很多程序员工作几年之后就会钻进一个很小的技术领域,其实这样做对自己的职业发展是没有好处的。在软件开发这个日新月异的行业中,其实只有很少的几个技术是可以吃一辈子的,既然做程序员,就要认需要活到老学到老的命。那么,为什么要找什么技术都可以接触的公司呢?我们自己在周末自己学为什么不行呢?这是因为只有在工作中应用了的技术,我们才可以说自己懂了,自己会了。在周末随便敲的例子很难使我们达到学以致用的程度。
最后祝每个程序员都找到自己喜欢的语言:)。
P.S. 上面提到可以吃一辈子的技术,个人认为在这个排行榜中第一的就是Office了。做好PPT,你就是老板,精通Excel,你就可以在很多需要数据分析的行业成为大牛,熟练Access,你就是大多数人眼中最牛的DBA。只可惜自己对Office真的不是很感冒,所以只能做个屌丝程序员了。。。不过把Office推荐给希望找到一个可以一招鲜吃遍天的程序员。