远离.NET

简介: 澳大利亚软件开发工程师Dave Newman曾发表过一篇文章《Leaving .NET》,文章中他指出团体内部存在一种“非我勿用”的通病。当一个社区跟外界隔离时就会发生这种情况。这样的社区里人们不相互往来,不相互合作。

澳大利亚软件开发工程师Dave Newman曾发表过一篇文章《Leaving .NET》,文章中他指出团体内部存在一种“非我勿用”的通病。当一个社区跟外界隔离时就会发生这种情况。这样的社区里人们不相互往来,不相互合作。.NET社区就是这样的一个社区。外刊IT评论对此文进行了翻译,现转载于此。全文如下:

我们,作为软件开发人员,都自我处在各种不同的状态中。

我曾经工作过的一家公司,在多年的运营中,一直认为软件几个月集成一次或部署一次没有什么问题;他们从来不知道什么是持续集成。他们认为每两年把软件从头再开发一次再正常不过了;他们从未听说过测试驱动开发(TTD)或迭代开发。尽管这些技术已经被证明能十分显著的提高软件的质量,降低开发成本、维护成本和提高团队士气。事实证明,就在今时今日,你仍然能找到从未听说过这些术语的软件从业者。

我还看到了很多时候,一些软件开发人员,用一些极其恐怖的方式,自己开发类库和框架来解决世人已熟知的问题。这一遍又一遍的重新开发数据映射工具(data mappers),日志工具,对象转换机制,消息传输系统和Web框架,浪费了大量的时间、精力和耐心。我并不是在谈论公共协作活动,我说的是团体内部的“非我勿用”通病。当一个社区跟外界隔离时就会发生这种情况。这样的社区里人们不相互往来,不相互合作。.NET社区就是这样的一个社区。

去年微软发布了一个新的Web框架,叫做MVC。对于Web标准来说这不是新框架,甚至对于已经拥有Monorail项目多年的.NET标准来说也不算新。然而人们仍然在等待它的到来。人们在等着微软把它提供给他们。虽然开源的MVC Web框架也有,而且这么多的.NET开发人员有能力把它们开发的很好,可什么都没有发生。只有在微软的一小撮开发人员在做着他们自己的框架,于是MVC今天还是一种新颖的框架。

这种情形一定是什么地方出了严重的错误。

这个新的Web框架比之前的那个要并迅速的被人们接受。微软公布了源码。有人在github网站上为它搭建了开发代码库。这个代码库目前只有30个人关注、5次提交。5次提交!为什么这个数会这样出奇的少?因为微软不维护它。他们发布了一个没有任何人参与奉献的新版本的MVC。更糟糕的是,人们只用这些新的版本,每次github代码库都会从新搭建一次。

Paul Cowan和他的horn项目也遇到了同样的问题。他们试图解决.NET中的依赖管理问题。这真是个很难的问题,但也许最大的困难是来自于目前情况下的现实社会的合作问题。他们在这个项目上没有得到什么帮助。如果我要是不离开,我会把我的所有精力放在上面。

.NET社区是在一个没有合作的真空中运营。

这是一个病态的,被那些提供非开源软件“解决方案”的软件厂商毒化了的社区,是被微软那种软件的进化速度刚好能满足解决自己问题的需要的聪明做法束缚了的社区。

第三方厂商的支持论坛里到处充斥着“我把GridView放在了我们CallBack控制器里,可是报了一个ViewState错误”之类的问题。对这个问题的真正的解答不是提供“下一版将会修复这个问题”。真正的答案基本上是“不要使用这么多有问题的抽象做法,从你的同事那里问问如何使#@$#@%正常工作!”。

同样微软的codeplex项目平台网站也不能用,它不是真正开源的!真正的开源是不需要在提交了一个补丁程序后还需要等待/期望有朝一日能被主分支版本接受和合并。

抱怨的够多了,反正我走了!我投入了时间,尽了最大努力,但今天是最后一天,如果你真的对开发软件感兴趣,你应该让自己处在一群志同道合的人之中。

tumblr_l96hroX0z81qb48c6

明天我要用Ruby开发一个新项目。我将会遇到很多、各种各样的有才能的、热情的人们,他们由衷的希望相互合作,为大家把软件改进的更好。我工作空间的每一部分,包括操作系统,数据库,框架,Web服务器,甚至语言本身都是开源的,这是一大群共同努力的人们的见证。

对于.NET社区里这些年给我鼓励的人们:OrenEini, Jeremy Miller, Hamilton Verissimo, Rob Conery, Scott Bellware,

Scott Hanselman,以及所有试图建立一个真正社区的人们,我想对他们的努力表示我最大的谢意,我希望你们成功!

对于那些想成为一个由热情的具有创新和奉献精神的开发人员组成的充满活力的社区里的一员的人们,行动起来吧,不要局限于某一种框架和语言。找到你自己的群体。全部找出来。在github建立自己的帐号,干起来吧。

原文链接:Leaving .NET

译文链接:http://www.aqee.NET/2010/10/07/leaving-net/

目录
相关文章
|
9月前
|
小程序 定位技术
.net 多地点计算中心点
.net 多地点计算中心点
44 0
|
机器学习/深度学习 人工智能 计算机视觉
基于 U-net 的裂缝检测
基于 U-net 的裂缝检测
|
SQL NoSQL 关系型数据库
.NET5真的来了,你准备好了吗?
.NET5真的来了,你准备好了吗?
159 0
.NET5真的来了,你准备好了吗?
|
XML 测试技术 C#
一起谈.NET技术,七种武器武装.NET(常用开发工具介绍)
我学习.Net快一年了,偶然间发现大家用的开发工具很多我都没见过,于是暗中的进行收集(呵呵,夸张了),现在收集满七种特来做此总结!我称他们为“七种武器”\(^o^)/   第一种武器长生剑、NUnit (用于编写单元测试)   NUnit 是为 .NET 框架生成的开放源代码单元测试框架。
1300 0
And“.NET研究”roid 情景模式的设置
  情景模式的设置大家应当相当熟悉了,但是在Android中如何通过自己的程序进行情景模式的设置呢,情景模式分为多种多种,即可以使用系统自带的,也可以使用自定义的,但是在开发某些程序时,可能需要在程序中更改情景模式,那么此就需要进行情景模式的设置。
906 0
|
前端开发 .NET C#
一起谈.NET技术,可选参数在.NET中全面开花
  .NET一直都支持可选参数,但是C#语言却并不支持,除了调用COM库以外,可选参数通常是被禁止使用的。现在,随着C# 4对可选参数的支持,我们可以看到可选参数被越来越多的使用,而不仅仅限于遗留代码中。
953 0
一起谈.NET技术,.Net令人纠结的Null
  从我们刚学.Net编程起,我们的程序不断被从天而降NullReferenceException打断。直到今天,我们仍然时常为C#的Null或者VB的Nothing困惑。什么情况下我们该返回null,如果参数是null代表什么。
759 0
.Net令人纠结的Nu“.NET研究”ll
  从我们刚学.Net编程起,我们的程序不断被从天而降NullReferenceException打断。直到今天,我们仍然时常为C#的Null或者VB的Nothing困惑。什么情况下我们该返回null,如果参数是null代表什么。
915 0
|
安全 C#
一起谈.NET技术,对.net事件的看法
一、事件的本质 事件是软件系统里的两个子系统之间,或者两个模块之间,或者两个对象之间发送消息,并处理消息的过程。在面向对象的世界里,就可以统一认为是两个对象之间的行为。 两个对象之间发送的这种消息,对发送方来讲是产生一个事件,对接受方来讲是需要处理某个事件。
1007 0
|
网络协议
回顾.NET R“.NET研究”emoting分布式开发
  记得在下第一次接触.NET Remoting分布式开发是在2003年,那时候是Framework1.0初次亮相之时,Remoting分布式开发是Framework1.0其中一个亮点。经过多年的发展,在2005年,WCF随着Framework2.0首先亮相。
1202 0