不得不爲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已死」的謬論,都不敢去學習,去使用了。因此忍不住站出來講幾句話,若有得罪您的地方,請見諒!
相關文章
相關標籤/搜索