我为什么放弃.net作为主要开发技术?
2001年到2002年,使用asp为主要开发技术开发网站,偶尔用VB写COM+业务组件,2年。
从03年到09年,使用.net作为主要开发技术做B/S管理软件项目,以及建立垂直电子商务网站,7年。
2010年才开始混开源社区,开始学习python,linux,重新回头练习C语言,到现在为此,3年多一点,哦,差点忘了,这期间还穿插Objective-C,Node.js之类的语言或者技术用于开发衍生项目。
这中间,少不了Java的身影,中间参与过J2EE的项目,但主要职责不是在一线开发,Android的Java代码除外。
讲好话:
- C#是一门很好的语言,我现在还认为C#比Java要优雅(很俗,但找不到更恰当的词来形容了),每次写Java代码,碰到类型转换啊,异常处理这些东东的时候,无比怀念C#。
- 入门门槛低,能用低成本程序员迅速启动项目,比如我曾经的一个同事,就是上海英雄钢笔厂一个多年的钳工上几个月北大青鸟转行过来的,当然,他后来总是怀念以前在国企时福利多么优厚,过年过节可以大块扛肉,大箱拿东西回家的日子,这是后话。
- 版本升级流畅。
- MSDN真全啊,几乎绝大份问题都可以从MSDN中得到答案。
- IDE真强大。
不过这男一人变心,看问题的角度一变,有时候优点变缺点,上面2、4、5就是这种情况。
讲坏话:
- 入门门槛低,往往带着的潜台词是团队整体素质相对低,在项目启动的时候不会暴露太多问题,但一旦进入发展期,团队解决问题的能力不高。这也是多数.net团队只能作中小项目的原因。
- MSDN太全了,当在MSDN里找不到解决方案时,习惯性放弃了寻找别的解决方案的尝试。普通.net程序员(非牛B程序员)在google上查阅资料的能力低于使用python等开源技术的程序员。
- IDE太强大的后果是,程序员学习.net系列语言其实是学习怎么使用Visual Studio .Net,对语言特性等等往往是在学习了很久之后才意识到。
- .net团队习惯性依赖微软的官方技术支持,当出现问题,而官方也没有解决方案时,.net开发人员通常选择的是等微软发布下一个.net版本。
非心灵鸡汤小故事:
A:在jQuery插件还没这么发达的年代,我当时所处的一个开发团队有一名Javascript高手,本来打算写一个下拉菜单,但是看到预告说asp.net下一个版本要内置这东西,然后放弃了,而这“下一版本”,等了差不多半年。
B:我担任架构师的某垂直电子商务网站,我首先使用了asp.net的图表控件,但是生成图片的,很不生动,后来打算换silverlight,再后来把这部分开发工作转给另外一个同事,不了了之。。。事实上,当时的flash解决方案处处皆是,而且跟.net结合也不是什么难事,所有人都明白这一点,但是,大家都习惯性地依赖微软,到现在为此,我离开那家公司两年多了。。。还是用当初那个图表控件。 - 对中小团队来说,VS.NET,Sql Server,Windows服务器等,都价格不菲(要说是可以用盗版,就只能,嗯,啊,今天天气不错啊)
当然,如果你足够牛B,你是可以避免以上总总缺点的,但是从整个业界来看,这些问题集中发生在.net开发团队上,而就我个人来说,离开.net技术的短短三年,所学习的不同技术和了解到的不同解决方案,远超前面九年。