`

Why .NET Sucks?

阅读更多

写此文纯粹为了回复.NET不死,为什么企业招聘都要java? 一文。从01年以来,.NET从最初的2000beta2一路凯歌猛进到了2008,Framework从1.0一下子跃进到了3.5,从3.5以来 wpf,wcf,wwf,Linq,ASP.NET MVC,我们的感觉是.NET很好很强大,什么都有。但是.NET的程序员怎么就越来越不值钱了呢?很简单的对比,在我原来所在的一个公司里,有java的项目也有.NET的项目,做Java的程序员待遇普遍比做.NET的高出一大截。就程序员本质来说其实并没有多大的区别,那么问题就只能在.NET本身上头来找,所以就有了本文:Why .NET Sucks?

第一,一种技术是否值钱,首先取决与市场价值,当然对于C#或者Java这类应用领域非常一致的商用语言来说,其实越难学的也就是工资越高的。越难学的工资越高这句话绝对是话糙理不糙。难学说明了人力成本中的培训成本会比较高,所以这类技术人员的工资确实就要高一些。那么.NET的超级工具,让我们开发起来超级方便的超级工具:VS.NET其实就是制约我们工资提升的最大障碍,老板会理直气壮的告诉你,会用VS.NET拖拖拉拉就能开发的程序员量产起来快得很,就这点工资你不老实干就开掉你换一个,你后头还有好几个找不到工作的.NET程序员供我选呢。

其二,.NET提供给我们的发展空间太狭窄了(或许是我眼光太狭窄),罗列一下之前我提到过的:wpf,wcf,wwf,Linq,ASP.NET MVC,微软把什么都做了,留给我们的除了傻乎乎的拿起linq,wcf,wwf去吭叱吭叱的码格子堆代码,还剩下些什么呢?架构设计?那是少数人的事情毕竟也轮不到程序员。做业务分析?那也是少数派报告。不可能一个项目从头开始全部手写代码吧?这样是不是活回去了?java程序员从Struts到Spring到Hibernate可谓武装到了牙齿。整套下来还不要钱,觉得Hibernate不合适还可以换ibatis,apache下头一大队候补的佳丽,可谓是后宫佳丽3千,试问.NET又能够靠什么让六宫粉黛无颜色呢?前有JAVA的堵截,后头还有ROR,Python,PHP,一大群追兵,从标榜自己开发起来不是一般得快的ROR(不知道沉得是否也快),到标榜自己跑起来飞快的Python(豆瓣的神话造就了Python的急速传说),还有标榜自己光膀子不怕穿鞋,完全免费的PHP。再换句话说,我们就坚定不移的跟着微软走吧,那么除了拿着VS.NET做网站,我们还剩下了些什么事情做呢,那就怪不得人家招JAVA的人多了,用JAVA做工作流中间件的可以卖钱,你用.NET试试,人家直接跟你说我们用WWF了,还用花钱用你的?做个ORM,MVC框架能卖钱?到处都是免费的,微软自带的,绝对没有任何一个开发企业会为了ORM还是MVC什么的花一分钱,要用都用开源的,所谓微软这种大包大揽的行为极大的打击了开源团队的积极性,MonoRails还没说要收钱呢,微软就忙不迭的搞了个自己的MVC框架出来。看着Java下第三方厂商的中间件热火朝天的时候,还真不知道我们应该在.NET下做点什么能卖钱的。

 

其三是我个人多年来在使用.NET的时候的积怨,其实我到现在为止都挺厌恶微软给.NET设计的API,太恶心,尤其是Drawing下边的哪些API流露出浓重的MFC的味道。而且异常处理的机制也异常的混乱,既然有了异常处理的机制就用异常来解决问题嘛,结果有的通过返回bool来提示错误,有的通过错误标示的参数来返回错误,异常也没有声明的机制,结果很多时候在使用一些类的时候根本不知道有哪些异常需要处理,很多新手就很笼统的给个Exception了事,那么这个异常处理的机制还有什么用呢?习惯了JAVA的声明式异常之后会很迷惑于这种模糊的方式。

 

还有一个很搞笑的地方就是异常的抛出:throw ex,throw,throw new XXException("error",ex);一个会中断异常的堆栈,一个不会另一个也不会,这不是多此一举么,简直就是茴香豆的回有四种写法。直接让throw ex不会中断异常堆栈就行了何必还要多此一举呢?

-------------------------------------------------------原文------------------------------------------------------------------------------------

还有一个很搞笑的地方是,你在捕获到一个异常的时候还不能直接把它抛出去,还要new一个异常,把捕获到的异常作为InnerException包裹一次后才能抛出去,不然在调试的时候就跟踪不到真正出现错误的地方而是在直接抛出的那个地方中断了。

-----------------------------------------------------------------------------------------------------------------------------------------------

都到了3.5了都还没有提供对DynamicProxy的支持,结果现在.NET下的AOP看起来都还是那么怪异,实现起来也麻烦。

 

其实发了很多牢骚,说.NET Sucks也不过是气话,我们无法否认.NET是一个伟大的开发平台,无法否认微软是一个伟大的公司,不过.NEt再伟大,得到利益的始终是微软而不是广大的开发人员而已。

 

 

分享到:
评论

相关推荐

    大师品软件_Why Software Sucks

    找到这也知道是书讲什么了,呵呵~~ 与该书Djvu格式相比改进了: 1、添加中文书签,书签翻译来源“csdn图书品读”提供的目录 2、导出pdf时压缩了图片,文件较小

    Why.Software.Sucks

    Any book is the product of a team effort. In this one, I've had an out- standing supporting cast. Everyone at Addison-Wesley understood and got behind the concept of a book for the users of ...

    itsucks-0.4.1开源爬虫

    开源爬虫itsucks,最新版本,可以使用,简单的图形化界面,容易上手

    信息安全_数据安全_Why_the_role_of_CISO_sucks_and_w.pdf

    信息安全_数据安全_Why_the_role_of_CISO_sucks_and_w 信息安全研究 金融安全 安全人才 安全对抗 法律法规

    itsucks开源代码

    爬虫源码,开源 java 很好 强大 可扩展

    itsucks-0.4.1.zip

    itSucks是一个java web spider(web机器人,爬虫)开源项目。支持通过下载模板和正则表达式来定义下载规则。提供一个swing GUI操作界面。

    why-your-test-suite-sucks

    这是关于测试的话题 在卡座中启动presentation.markdown以查看

    IE Sucks-crx插件

    IE SUCKS这么糟糕,实际上是有趣的观看失败! IE样式信息条在页面中的障碍码时发光。 无广告! Internet Explorer是一个浏览器的F ****笑话,并字面上持有进步! 在逐步淘汰之前庆祝最终几天,用IE吸收插件。 每当...

    itsucks:http

    ItSucks 网络爬虫 描述 这个项目是一个具有下载(和恢复)文件能力的java网络蜘蛛(网络爬虫)。 它还可以使用正则表达式和下载模板进行高度定制。 所有后端功能也可在单独的库中使用。 官网 执照 本地开发使用 将 ...

    IE吸盘「IE Sucks」-crx插件

    使用IE Sucks插件庆祝淘汰前的最后几天。 每当遇到旨在帮助Internet Explorer像老人一样上楼的代码时,我们都会像过去一样发出经典的IE信息栏。 您知道,这意味着您只有更多无用的废话可以破坏您的浏览器,除非这次...

    kevingreen.sucks

    用于运行kevingreen.sucks网站的Simple Next App

    admiral-sucks:Chrome扩展程序旨在消除Admiral非常邪恶的Adblock Recovery:angry_face_with_horns:

    ,解压缩并将admiral-sucks文件夹拖至chrome://extensions Chrome扩展面板。 为什么? 是一家通过帮助网站将其内容货币化而获利的公司。 它们提供多种服务,但非常令人讨厌的是AdBlock Recovery :首先,它们向网站...

    Vegandale Sucks-crx插件

    此扩展名用实际的含义代替了对讨厌的“ Vegandale”的任何提及:Gentrified Parkdale。 支持语言:English (United States)

    Atc Sucks-crx插件

    语言:English (United States) 讨厌ATC 大家可能都知道atc很烂,因此我做了扩展说明atc很烂。

    Moments Sucks-crx插件

    如果您确实讨厌Twitter内的Moments标签,并且在尝试查看通知时始终单击此处,则只需安装此… 如果您确实讨厌Twitter内的Moments选项卡,并且在尝试查看通知时始终单击此处,则只需安装此轻量级扩展程序即可将其发送...

    DuPont Sucks FTP-开源

    DPS-FTP是一个FTP客户端,其功能包括站点管理器,允许从多个站点上的多个目录中的多个文件上载和下载的队列,以及自动恢复部分传输的文件的功能。

    DailyUIchallenge_quartitine_sucks:我参加了由dailyui.co组织的每日ui挑战

    DailyUIchallenge_quartitine_sucks 我参加了由dailyui.co组织的日常ui挑战,在这里我每天都使用Adobe XD软件设计UI。 设计问题由上述网站邮寄。 而且我必须在dribble.com上上传

    Admiral Sucks!-crx插件

    语言:English 只需单击一个按钮,即可摆脱海军上将的AdBlock Recovery! 该Chrome扩展程序提供了一种简单的一键式绕过叠加层的方式,该叠加层要求用户在访问内容之前先停用其广告拦截器。 这项技术由包括Admiral在内...

Global site tag (gtag.js) - Google Analytics