我为什么放弃.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代码除外。

讲好话:

  1. C#是一门很好的语言,我现在还认为C#比Java要优雅(很俗,但找不到更恰当的词来形容了),每次写Java代码,碰到类型转换啊,异常处理这些东东的时候,无比怀念C#。
  2. 入门门槛低,能用低成本程序员迅速启动项目,比如我曾经的一个同事,就是上海英雄钢笔厂一个多年的钳工上几个月北大青鸟转行过来的,当然,他后来总是怀念以前在国企时福利多么优厚,过年过节可以大块扛肉,大箱拿东西回家的日子,这是后话。
  3. 版本升级流畅。
  4. MSDN真全啊,几乎绝大份问题都可以从MSDN中得到答案。
  5. IDE真强大。

 

不过这男一人变心,看问题的角度一变,有时候优点变缺点,上面2、4、5就是这种情况。

讲坏话:

  1. 入门门槛低,往往带着的潜台词是团队整体素质相对低,在项目启动的时候不会暴露太多问题,但一旦进入发展期,团队解决问题的能力不高。这也是多数.net团队只能作中小项目的原因。
  2. MSDN太全了,当在MSDN里找不到解决方案时,习惯性放弃了寻找别的解决方案的尝试。普通.net程序员(非牛B程序员)在google上查阅资料的能力低于使用python等开源技术的程序员。
  3. IDE太强大的后果是,程序员学习.net系列语言其实是学习怎么使用Visual Studio .Net,对语言特性等等往往是在学习了很久之后才意识到。
  4. .net团队习惯性依赖微软的官方技术支持,当出现问题,而官方也没有解决方案时,.net开发人员通常选择的是等微软发布下一个.net版本。
    非心灵鸡汤小故事:
    A:在jQuery插件还没这么发达的年代,我当时所处的一个开发团队有一名Javascript高手,本来打算写一个下拉菜单,但是看到预告说asp.net下一个版本要内置这东西,然后放弃了,而这“下一版本”,等了差不多半年。
    B:我担任架构师的某垂直电子商务网站,我首先使用了asp.net的图表控件,但是生成图片的,很不生动,后来打算换silverlight,再后来把这部分开发工作转给另外一个同事,不了了之。。。事实上,当时的flash解决方案处处皆是,而且跟.net结合也不是什么难事,所有人都明白这一点,但是,大家都习惯性地依赖微软,到现在为此,我离开那家公司两年多了。。。还是用当初那个图表控件。
  5. 对中小团队来说,VS.NET,Sql Server,Windows服务器等,都价格不菲(要说是可以用盗版,就只能,嗯,啊,今天天气不错啊)

 

当然,如果你足够牛B,你是可以避免以上总总缺点的,但是从整个业界来看,这些问题集中发生在.net开发团队上,而就我个人来说,离开.net技术的短短三年,所学习的不同技术和了解到的不同解决方案,远超前面九年。

For example, "name@something.com". If someone replies to you it will be via email.
For example, "http://someaddress.com"