我是.NET铁杆粉丝,所以如果你要在评论里跟我撕逼.NET怎么怎么烂,Java、C++、PHP、JavaScript怎么怎么好,我奉陪。我这人没什么优点,就是说话直入主题,然后骂到你爽为止,当然咯我不是纯流氓,我是有文化的流氓,呵呵。 为什么我喜欢.NET 我用.NET十年了,说实话C#这个语言我很喜欢,比C++不知道人性化多少,当然前提是不考虑性能的情况下,C++的性能比.NET好上10倍左右,这是官方MSDN里提到的,所以不用质疑。但问题是Java也好不到哪去,慢的跟狗屎一样,只能说半斤八两。倒是JavaScript的V8引擎异军突起,你看Nod.js最近多火呀,当然V8也是用C++写成的,性能赞也不足为奇。 .NET的设计理念是会一种语言即可,但程序会被编译成同一种代码(MSIL),然后运行在同一个虚拟机上(CLR)。其实不得不说微软的有些理念还是很不错的,虽然理想很丰满,现实很骨感。虽然微软经常干虎头蛇尾的事,但.NET是个例外,至少目前来看,.NET的语言层面的推广和维护做的还是很不错的,近期微软对于开源及Linux系统上Mono的支持力度还是很不错的,并且已经开源了CLR,我们可以预见不久的将来很多高级的定制CLR会诞生,微软正在仿效当年Sun的模式来推广.NET。 .NET中最棒的语言自然是C#,这个没有之一,因为C#融合了C++的所有优秀特性,同时也增加了新的东西,如LINQ、Lamda表达式、匿名委托等。有很多特性即使是Java,目前也未实现。而且C#比C++多了两个+,哈哈(这是个笑话)。 微软有全球最好的集成开发环境(IDE),没有之一,这也是我喜欢.NET的关键因素。当然有些脑残程序员会昧着良心说,这种傻瓜IDE是给不懂程序的人用的,我只能说你要羡慕嫉妒恨我是没办法的,Eclips这种鸟玩意定制IDE是不错,要说体验我还真觉得不咋地,启动慢的要命,各种啃爹界面设计。只可惜VisualStudio目前还没有开源,等开源了就没Eclips什么事了,哪凉快哪呆着去! 另外么,有些脑残.NET黑会说.NET那帮人只会拖控件,我可以明确的告诉你,我现在基本用notpad写css,html,js,即使用VisualStudio有没有智能感知对我来说没太大区别,更不要说什么toolbox拖住控件了,这是说明你不懂呢?还是说明你不懂呢?你这种门外汉也好意思来评论.NET,闲得蛋疼大概! 中国.NET生态系统现状 其实中国.NET程序员最痛苦的一件事情恐怕是找工作,据非官方猎头数据,微软.NET程序员的需求量在去年减少了一半以上,大量企业已经转向或正在转向非微软技术,比如Java、Python等,当然有一部分原因可能是一些企业需要更稳定的操作系统平台,比如Ubuntu或CntOS,Java在跨平台方面确实是有优势的,这点我不否认;Python开发wb有点类似于当年的PHP,再加上各种类库齐全(特别是大数据这块),正在逐渐成为一些程序员的主要吃饭语言。 .NET在中国究竟怎么了?是水土不服还是怎么回事?其实吧,我的经验告诉我,与其说.NET本身有问题,不如从人的身上找找原因。基本上我的很多朋友也在转其他语言,理由很简单,因为很多公司不用.NET,那为什么不用呢?因为领导觉得.NET不行,所以要换,问题来了,为什么是“觉得.NET不行?有数据能说话吗?还是拍脑袋的?领导说,.NET大型网站成功案例太少,行吧,这确实是个问题!但是这能说明.NET不行吗?还是做的人水平不行?!如果完全没有案例,那确实是.NET本身的问题,但如果有网站用.NET跑的很溜(比如stackovrflow),然后你说.NET不行,那你说这是谁的问题?是.NET还是人?大家心里有数。目前.NET阵营的情况是紧缺资深架构师,这个问题不解决,再牛的语言也是白搭,因为一群菜鸟在领导着一些大型项目,而且参考案例少,导致他们都不知道该怎么搭建自己的架构。相对而言,Java你即使是菜鸟架构师,随便找个案例一样画葫芦总会把,就这么回事。当然Java也有画错的时候,比如那个做的烂呀,你们不是说Java很棒吗?我笑笑。 重建的时机好不好? 一个平台的生态系统重建绝非一朝一夕,必须大家配合,特别是微软这位大哥的配合。在过去的10年里,.NET其实有过机会,但是微软没有把握好,当然现在重建并不晚,特别是微软完善了全平台产品布局,随着win10的推出,微软将有可能统治各种设备领域,这在过去是很难想象的。 特别是单片机设备、小型手持设备领域,微软比以往任何时候都要强大,再加上bing的市场份额已经接近20%,以及新CEO的上台,对于微软也许是转折的一年。 如何重建中国.NET生态系统 .NET生态系统的重建其实可以参考当年Java的模式,以及Apach基金会的模式,即以开源带动整个社区的活跃性,并且通过个中合作渠道,拉高合作伙伴的商业化热情。 其实Java为什么会这么火,很大程度上要感谢开源社区,其实很多公司选择Java的一个重要原因是因为他们觉得Java的开源组件很多,其实同一个功能选择也很多,而且又是免费+开源的,何乐而不为,大不了让苦逼的程序员去理解源代码然后定制。这一点确实是.NET的软肋,但是我们正在改变这一切,我有资格这么说,因为单单我的团队就贡献了3个非常有用的框架(NPOI,Toxy和Npy),这些框架分别对应于java的POI、Tika以及StanfordNLP(NER部分)。我朋友也有其他的.NET开源组件在维护,我是想说,通过大家的努力,.NET开源领域正在被丰富,而且逐渐你会发现你需要的开源库.NET其实都有了,只是可能没有Java这么丰富,这需要时间和人的投入,以及社区的信任才会得到发展。 微软说实话,在过去的日子里很不给力,基本上.NET社区一直处于”散养“状态。如今随着微软开源运动的推进,这一切正在改变,微软正在主导社区创新,并帮助整个.NET技术社区成长,这个非常有意思。去年呢,.NET基金会也成立了,虽然这帮人到现在还在“打酱油”(谁说只有中国出酱油男),我已经发邮件给几个微软资深PM了,他们已经明确表示接下来会有改观,基金会还新聘了一个市场总监,专门负责推广事宜,既然他们都明确表态了,我相信会有不同。让时间来证明一切。 重新拉拢合作伙伴也是微软应该做的事情,其实在过去,微软中国区合作伙伴比散养好不了多少,无非是你买个白金支持包,我帮你定制一些东西,比如当年魅族的WinCE定制操作系统。但一旦微软说不能做,那帮合作伙伴基本就只能选择放弃,所以微软的MCS部门(微软客户咨询部门)和技术支持部门还是很关键的。但如今,很多东西正在被开源,比如DrivrSDK,一旦厂商有了这些,他们就有了主动权,可以有效改变目前的散养格局。其实哪天微软想开了,把Windows开源了,那么微软可能会成为全球市值最高的软件公司。其实开源了又如何,有多少人真的会去改?反而有利于漏洞的发现和修复,你让他去定制好了,比如中国花了多少钱打造所谓的自主知识产权的军用操作系统——麒麟,说白了就是拿Linux改的,而且关键没改好,一堆问题,很多东西都不知道怎么改,只是改了FrBSD的通讯加密部分,就说整个操作系统是自主知识产权了,我也算服了。你们就算骗经费也稍微搞点高大上的东西行吗?受不了这帮人,特别是某倪姓院士,脑残中的典范! .NET社区的振兴需要大家的努力,说的大点关系到整个微软系开发的发展问题,说的小一点,社区振兴了,你找工作会好找很多,而且待遇会越来越好!我觉得Java、Python语言的高薪资只是暂时的,任何语言都有兴衰,Java自从被Oracl收购后一蹶不振;Python刚刚兴起,正值壮年,关键看谁能熬到最后。你看当年PHP多火呀,再看看现在,找个PHP的资深程序员很难,基本都转了。没事记得在你老板那里吹吹风,说说.NET最近的变化,微软的变化,人是善变的,你说一次他无动于衷,但是说十次就很难说了,但你不需要刻意去改变什么,老板也是人,是人就有跟随心理,一切顺其自然,让时间来证明一切。 一些评论如下: #楼-04-:06HollHuang 超然引用HollHuang引用引用C#还不是抄Java的,LZ你妹的,人家Java开源,C#你开么?java还不是抄c的,抄这回事要追溯那就没底了。还有C#还真的开源了--------------------你笨啊,java你看它哪里像c,回去好好复习下 支持(0)反对(0) 回复引用 #楼-04-:08HollHuang 流火行者引用HollHuang.nt已经开源了,已经支持linux,mac等各大操作系统了。另外monotouch在国外很流行,用C#可以开发所有移动平台的App,Xamarin也是C#,一次开发适应所有平台,虽然这些在国内还不流行,但是未来10年C#和.nt真的会如同搂住所说一统天下的是最近开源的,我也知道,C#是被Java搞得不行了,所以才这样干,Tobl编程语言排行榜经常是Java,c排名第一 支持(0)反对(0) 回复引用 #楼-04-:10xmodygtz masonjiangAndrsHjlsbrg如果对java和sun一切满意也不至于从borland跳到微软搞C#支持(0)反对(0) 回复引用 #楼-04-:11HollHuang 李宏引用HollHuang单纯的说一句,您知道JAVA8里的LAMBDA式和C#里的LAMBDA式谁先有吗?你也很笨,Lambda早在很多语言就有了,如C++,当年我Java风气水起时,C#还没有出世,出世就连很多语法都抄Java的,但Java还是很牛逼 支持(0)反对(0) 回复引用 #楼-04-:17李宏 HollHuangC++11版才有的lambda,在年发布C#3.5版有的,在年3月发布java感觉没有属性很奇怪支持(0)反对(0) 回复引用 #楼-04-:18李宏 HollHuangPS:如果你说C#抄JAVA,C++和C可能会表示很不服。。。支持(0)反对(0) 回复引用 #楼-04-:20HollHuang 李宏引用HollHuangPS:如果你说C#抄JAVA,C++和C可能会表示很不服。。。C#确定是抄Java的,这个很多人都认同,C也是抄前前辈的,C++是对C的封装,没有什么服不服的 支持(0)反对(0) 回复引用 #楼-04-:22microtry 对于高级语言,其实都是差不多的,为了满足需要,各种语言都可以玩弄一下,但是如果你付出真感情,那就不值得了 支持(0)反对(0) 回复引用 #楼-04-:24xmodygtz HollHuang请不要人身攻击。AndrsHjlsbrg在borland原本就开发过jbuildr,所以开发新语言借用大量语法很正常。说c#抄java是因为c#使用了和java类似的技术,使用中间代码。语法对于它们只是很表面的东西。其实我想博主的意思显然是希望.nt的生态得到改善。语法对于任何语言只是一种很表面的东西,但是多数人却对此耿耿于怀。记得我看过的第一本c语言的书,看了两句前言我就认为没必要看下去了,因为它宣称c对于pascal的优势在于他的变量名是大小写敏感的。支持(0)反对(0) 回复引用 #楼-04-:28李宏 HollHuang我认为同系新语言总是要比老的语言有进步,JAVA和C#我都认为是C系列的,因为它们语法的相似性。但在语言上面,我认为C#更加的友好、人性化。在实际开发上,实现同样功能C#比Java更简洁。不可否认的是Java起步早,市场占有量大,但这不代表它一定比C#强。我是两种语言都在用,客户要什么平台就用什么语言做,单纯比较,楼主请理智。支持(0)反对(0) 回复引用 #楼-04-:33microtry .nt发明比java迟了五六年,理当更加先进,但是,由于长期以来,微软热衷于造轮子,希望把开发者绑在自家的封闭环境上,冷落了对工业标准和开源技术的支持和相关技术的开发.要知道,只有工业标准和开源技术才会受到最广泛的厂商的支持,这是众多厂商竞争的妥协结果:失去任何一个厂商,他们所依赖的生态环境仍然能很好地维系..nt其实早就是开源的,当下,微软高调的开源,只是表示一个态度:他会更加积极的支持工业标准和开源技术 支持(0)反对(0) 回复引用 #楼-04-:33xmodygtz microtry引用对于高级语言,其实都是差不多的,为了满足需要,各种语言都可以玩弄一下,但是如果你付出真感情,那就不值得了是的,放到语法层次上,大多数时候,照搬是轻而易举的事情。所以很多时候高级语言的差异还是理念上的。 支持(0)反对(0) 回复引用 #楼-04-:35HollHuang 好吧,如果要是用来做界面开发,肯定是选择C#,如果是做服务器,我会选择Java的,虽然性能上Java比C#差一些,但Java的语法的很非常友好的,面向对象95%以上,C#我却感觉有些乱,像C#定义属性可以不用写st和gt,这感觉编译器做的东西太多了,还是要向Java这种好,比较原生质 支持(0)反对(0) 回复引用 #楼-04-:36蒋先生 即使同样的技术能力NET比Java少个2,3千的待遇,我还是会选择NET,因为工作不只是为了钱,一个用起爽的东西,写代码都开心. 支持(0)反对(0) 回复引用 #楼-04-:37microtry 一个自称java的程序员,如果3天之内不能开始C#编程工作,那是说不过去的,反之亦然Singl-LanguagProgrammrisnotaProgrammrindd 支持(0)反对(0) 回复引用 #楼-04-:41xmodygtz microtry同意支持(0)反对(0) 回复引用 #楼-04-:饕餮21 microtry引用一个自称java的程序员,如果3天之内不能开始C#编程工作,那是说不过去的,反之亦然Singl-LanguagProgrammrisnotaProgrammrindd同意,想当初要搞个Android应用,随便拽了本java的书翻了翻,第三天就开始coding,说实话区别真不大,好多思想都是相同的。 支持(0)反对(0) 回复引用 #楼-04-:02microtry 蒋先生引用即使同样的技术能力NET比Java少个2,3千的待遇,我还是会选择NET,因为工作不只是为了钱,一个用起爽的东西,写代码都开心.其实真没有可比性,这和语言没直接关系,如果非要比java和C#谁工资高,那一定是C#据我所知,最高的那个人年薪是万美金,我想除了我,还有不少人知道 支持(0)反对(0) 回复引用 #楼-04-:18超然 HollHuang引用超然引用引用HollHuang引用引用C#还不是抄Java的,LZ你妹的,人家Java开源,C#你开么?java还不是抄c的,抄这回事要追溯那就没底了。还有C#还真的开源了--------------------你笨啊,java你看它哪里像c,回去好好复习下你没看出来这句话是调侃么。真的要说抄那真没底了。对象,类概念java抄C++函数,逻辑语法概念java抄c变量,常量概念java抄汇编的寄存器概念所以编程语言都是相互借鉴,不断改进的过程 支持(0)反对(0) 回复引用 #楼-04-:20超然 HollHuang引用流火行者引用引用HollHuang.nt已经开源了,已经支持linux,mac等各大操作系统了。另外monotouch在国外很流行,用C#可以开发所有移动平台的App,Xamarin也是C#,一次开发适应所有平台,虽然这些在国内还不流行,但是未来10年C#和.nt真的会如同搂住所说一统天下的是最近开源的,我也知道,C#是被Java搞得不行了,所以才这样干,Tobl编程语言排行榜经常是Java,c排名第一Tobl编程语言排行没发现这几年java一直在持续下降么,就像这几年的i,虽然份额一直是第一,但是再走下坡路。 支持(0)反对(0) 回复引用 #楼-04-:21真爱像深蓝 xmodygtz单论数据库性能而言相同版本的oracl性能一定优于sqlsrvr。但真正能把这一优势发挥出来的DBA在一些国内的软件企业内并不多。学习成本sqlsrvr相对而言要低得多。而且在x86满天下的今天,oracl运行在windows上的机率要大于bsd或商用unix如aix之类的操作系统上。说个不好听的微软如果在os上做一些小手段例如给自己的语言开一点快捷通道,或降低其它数据库在自己OS上部署的运行效率这种种微软又不是没做过,用过offic的都知道java用poi读取写入offic的xcl图片是多麽麻烦的事情。sqlsrvr也许不那麽好,但它却可以和C#紧密结合,就好像php和mysql一样。支持(0)反对(0) 回复引用 #楼-04-:28超然 HollHuang引用好吧,如果要是用来做界面开发,肯定是选择C#,如果是做服务器,我会选择Java的,虽然性能上Java比C#差一些,但Java的语法的很非常友好的,面向对象95%以上,C#我却感觉有些乱,像C#定义属性可以不用写st和gt,这感觉编译器做的东西太多了,还是要向Java这种好,比较原生质C#为了提高效率编译器简化了很多代码,但是并不妨碍你继续使用原先的方法写代码,比如属性你依旧可以使用gt和st,就像和java一样。而C#那种在运行时依旧存在的泛型概念是java没法去实现的。java为了兼容在新的语法特性上做了太多的妥协了。 支持(0)反对(0) 回复引用 #楼-04-:32超然 真爱像深蓝说的没错,还有一个是国内因为盗版的存在,所以oracl泛滥,对于很多公司来说,如果都需要正版化的话很多公司根本用不起oracl治疗白癜风医院哪里好白癜风最好的医院转载请注明原文网址:http://www.helimiaopu.com/cxkf/cxkf/1518.html |