不得不为LINQ说几句话,驳“LINQ已死”论

原由

近日不断看到有关“LINQ已死”,“LINQ玩完了吧”的言论,甚至于更有牛人说出“程序开发最终会回到本机代码上”,暂不说这些言论是否正确,且先来看看各位的惊人言论,下面仅摘录部分:
言论1
我看园子里还有蛮多人学习和用Linq to SQL 还写了一系列文章
哎~~ 程序员的悲哀呢
被他们牵着鼻子走
言论2
玩LINQ的人傻了吧
言论3
又是一次证实跟着微软是浪费青春的,当心C#喔,各位,
我发现程序开发最终会回到本机代码上来,而不是托管的
言论4
Linq 是 Anders 最失败的一个做品, 看来当年的牛人真的老了。
linq将程序的复杂性提升了一个数量级,强迫程序员在两个语法体系间跳跃,却本质性提升开发效率
linq is dead!
言论5
废弃了好 这样的垃圾不应存活,搞得程序员劳命伤财的学习!
垃圾啊!
幸好我拒绝LINQ
以上言论,我仅摘取了部分,其实经过这些,我只想说几个问题:

请认清事实真相

首先根本没有“LINQ已死”的说法,也没有“LINQ to SQL已死”的说法,关于“LINQ已死”的言论彻底来自于社区,而原由则是ADO.NET团队的一篇《 Update on LINQ to SQL and LINQ to Entities Roadmap》,文章最后说到
做为.NET 4.0的一部分,实体框架是咱们推荐的在关系场景中针对LINQ的数据访问解决方案,咱们聆听了客户关于LINQ to SQL的反馈,并将整合在社区收到的反馈,继续开发和改善该产品。
因而社区中就猜想微软将会放弃LINQ to SQL,请注意,ADO.NET团队只是说推荐使用ADO.NET Entity Framework,将会加大对它的投入,而并无没有什么“废弃”言论,“已死”更无从谈起!退一步讲,就算微软再也不开发LINQ to SQL,这跟LINQ又有何关系呢?LINQ to SQL只是LINQ家族中众多Providers中的一个而已,没了LINQ to SQL,不是还有LINQ to Object、LINQ to XML、LINQ to Entities的吗?何况LINQ to SQL还没死,它也不会死,做为一个轻量级的ORM框架,LINQ to SQL在中小项目以及快速开发中的优点仍是很是明显的,这一点,若是你没有用过LINQ to SQL,就不要再说它是多么多么的垃圾!
投入小不等于放弃,就算微软再也不开发LINQ to SQL,LINQ to SQL如今的功能已经可以大部分开发的须要,再加上它灵活的可扩展性,彻底能够经过自定义一些扩展来知足本身开发的须要。
再强调一遍:请中止“LINQ已死”或者“LINQ to SQL已死”的荒谬言论吧!

请区分清概念

做为“专业的开发人员”,请在了解了某个技术以后,再对其发表看法吧,最起码你得知道这个技术是怎么回事吧?如别人说“LINQ to SQL已死”,而后就有人跟着说“幸亏我没用LINQ”,这又关LINQ啥事了。博客园老赵曾经在6月份写过一篇文章《 以为有必要来澄清几组重要概念》,其中介绍了LINQ以及LINQ to SQL的区别,可是很遗憾,社区中不能正确区分LINQ和LINQ to SQL的朋友太多了,看到这些言论,让咱们为老赵这篇文章默哀一分钟吧。
再强调一遍:LINQ to SQL只是LINQ家族中众多Providers中的一个而已,这是真的,请不要怀疑,不要把LINQ等同于LINQ to SQL,若是觉的LINQ to SQL字母太多了,可使用L2S来代替,但请不要使用LINQ来代替LINQ to SQL。

请收起LINQ无用论

“LINQ很垃圾”,“拒绝LINQ”,看到这些,真的有些悲哀,LINQ仅仅是一个语言特性,它可以让咱们在编写代码时使用内置的查询语法对于数据集合进行操做,提升咱们的开发效率,仅此而已。固然若是你的数据集合来源不一样,会对应不一样的Providers。既然拒绝LINQ,为什么不干脆连泛型、数组以及.NET Framework中内置的基础类库等等一块儿拒绝,甚至于拒绝C#语言,而回到所谓的“本机代码”上去呢,直接编写二进制的“01101100”程序是否是比C#语言更方便,更快速?若是是,请原谅,我错了,我道歉。
再强调一遍:LINQ仅仅是一个语言特性而已,请收起LINQ无用论。

后记

写下本篇文章,其实不是想针对某我的,只是看到你们都在误解LINQ,甚至有些初学者由于看到“LINQ已死”的谬论,都不敢去学习,去使用了。因此忍不住站出来讲几句话,若有得罪您的地方,请见谅!
相关文章
相关标签/搜索