寫之前其實(shí)我并沒有明確主題,到底想說什么,是說壞話還是說好話,我沒有明確立場(chǎng)。寫這些東西應(yīng)該是幫我梳理我的想法,幫助我思考,讓我最終敲定一個(gè)我的想法。
在這兩年里,其實(shí)很多時(shí)候我分不清什么是C#里的語言特性什么是.NET里的類庫,對(duì)于語言C#,我所知甚少,對(duì)于框架.NET我所知更少。.NET是個(gè)龐大的框架,我接觸過WinForm, WPF, Silverlight, ASP.NET, ASP.NET MVC, .NET CF, 之前主要參與應(yīng)用WPF或ASP.NET技術(shù)的項(xiàng)目的開發(fā)。.NET提供了龐大的類庫,所以個(gè)人認(rèn)為語言往往顯得相對(duì)很是無力,有的時(shí)候,我會(huì)迷惘,學(xué)語言到底是學(xué)什么?
事實(shí)是我已經(jīng)好幾個(gè)月沒有接觸過C#和.NET了,最近學(xué)習(xí)了一些別的語言,了解了很多開源技術(shù)框架。然而這話又不準(zhǔn)確,中間由于一些原因用過一次C#和.NET。時(shí)隔一段時(shí)間后,反過頭來用,反而有一種清爽的感覺。由于很久不用,有了一些生疏。這時(shí)候再用,就不是像過去的慣性一樣,無腦敲代碼,似乎一切就應(yīng)該是那樣,什么都不想。經(jīng)過一段不用后,再用的時(shí)候敲每一行的時(shí)候似乎都要想想,思路反而開闊了很多,想通了一些東西。
雖說寫了兩年的代碼,做了兩年的技術(shù),可大多都是業(yè)務(wù)邏輯,對(duì)技術(shù)本身知之甚少。后來接觸一些開源技術(shù),主要是學(xué)習(xí)了Python,Google App Engine,Linux相關(guān)知識(shí),接觸到了廣闊的開源世界,并且Follow了一些開源人士,耳濡目染,了解了很多東西。所以視野開闊了不少,而且了解了一點(diǎn)技術(shù)細(xì)節(jié),稍微底層的一些東西。而且這段時(shí)間自己獨(dú)立做了一些面向用戶的項(xiàng)目,雖說之前也曾做過自己獨(dú)立完成的東西,但都是作業(yè)課設(shè)之類的。而其它團(tuán)隊(duì)項(xiàng)目都是項(xiàng)目一角,很多方面沒有接觸過。而這段時(shí)間自己獨(dú)立做了幾個(gè)小項(xiàng)目,項(xiàng)目雖小,但五臟俱全。從創(chuàng)意想法、制定計(jì)劃到編碼實(shí)施和中間的不斷更改維護(hù),從前端到后端都自己動(dòng)手。有的時(shí)候你面對(duì)需求變更覺得很煩,覺得辛苦寫的代碼不能用就白寫了,經(jīng)過一些事情后開始覺得有些代碼寫起來就是為了將來扔掉。當(dāng)然對(duì)于不了解的技術(shù)細(xì)節(jié)和非技術(shù)方面的事情會(huì)覺得很辛苦,但還是體會(huì)到一些不一樣的東西,而且對(duì)于一些當(dāng)前流行的技術(shù),特別是互聯(lián)網(wǎng)技術(shù)有了初步的掌握。而且通過將這些網(wǎng)絡(luò)應(yīng)用部署到網(wǎng)上,吸引用戶也是一大問題,或者說是主要難題。有沒有人用是很重要的一點(diǎn),所以這段時(shí)間看了一些商業(yè)書籍,不能說沒有收獲,但總覺收獲微乎其微。
回來說C#和.NET,其實(shí)細(xì)說起來我沒有系統(tǒng)學(xué)習(xí)過C#,在C#之前有那么一點(diǎn)點(diǎn)C++基礎(chǔ),面向?qū)ο蟮闹R(shí)主要從C++身上繼承學(xué)習(xí)而來,當(dāng)然細(xì)節(jié)是有不同的,但面向?qū)ο笏枷氲臒o差別的。對(duì)于C#語言細(xì)節(jié)看書看過一些,但都止步于前面那些最基本的東西,大部分都是現(xiàn)學(xué)現(xiàn)賣。所以用了C#很久之后,我才知道泛型,知道lambda表達(dá)式,才知道有Dictionary這個(gè)東西。雖說了解一些面向?qū)ο蟮闹R(shí),但其實(shí)很少有用武之地。主要是被.NET的迷霧搞得不分東南西北,理論上還有那么點(diǎn)感覺,一實(shí)踐就全然無知了。Visual Studio生成的代碼模板,又是什么partial局部類之類的,很久以前什么都不知道,事件委托什么的,也什么都不知道。就知道這樣行,不知道為什么這樣就行,自己什么都不知道。后來通過深入學(xué)習(xí),了解了一些,但所知仍然甚少,所學(xué)甚淺。
Microsoft自己將一切包裝的太好了,所以帶來一些便利,但同時(shí)也給我?guī)砹嗣曰�,�?dāng)然我相信這份迷惑不是我獨(dú)有的,每個(gè)學(xué)習(xí)這些東西的人都會(huì)有迷惑。還有一點(diǎn),Microsoft就是大包大攬,什么都自己弄,雖說人多,但還是不利于技術(shù)的發(fā)展,而開源技術(shù)往往開發(fā)者眾多,當(dāng)然存在一些不穩(wěn)定的因素,但還是廣大人民群眾的力量大。Windows最大的成功之處就是上面應(yīng)用眾多,這些應(yīng)用誰開發(fā)的,99.9999%都不是Microsoft開發(fā)的,一個(gè)人的能力是有限的。所以Apple出了App Store收買開發(fā)者,這樣人就多了,Google也出了Web Store。然而桌面應(yīng)用在我國基本沒錢賺,只能通過增值服務(wù)掙錢,想掙代碼的錢那時(shí)絕對(duì)沒有可能的,除非我國民對(duì)版權(quán)意識(shí)加強(qiáng),然而我國倡導(dǎo)社會(huì)主義,最終要到共產(chǎn)主義的,就是大家有什么好東西就要共享,版權(quán)神馬的都是浮云。飛信還因?yàn)?NET容易被反編譯,又用C++開發(fā)了,大家覺得還是二進(jìn)制安全。還有就是對(duì)于一些非主流的技術(shù)Microsoft團(tuán)隊(duì)維護(hù)能力有限導(dǎo)致bug叢生,又不開源用起來費(fèi)勁,各種hack,別無它法。
又跑題了,接著說C#和.NET,我常上博客園看看,這是.NET社區(qū)中較大的。經(jīng)常在上面看到有人批評(píng).NET,說著說那,我覺得都是沒事閑的,你要是不喜歡,就退出搞別的技術(shù)就完了,我覺得這事沒必要表態(tài),你的態(tài)度也無法左右Microsoft。然而這類文章,往往置頂,而且引來眾多口水。討論什么的都是浮云,點(diǎn)擊量才是王道。
我接觸C#和.NET不過2年,沒有能力評(píng)判是非,雖說我有意向別的技術(shù)靠攏,但是C#和.NET還是陪我度過了我的啟蒙階段,不敢說愛,當(dāng)然也對(duì)它基本無愛。
寫完一通,也沒梳理順溜,就此作罷。當(dāng)然如果沒有感情是不會(huì)寫這么多得,無論愛恨。所以說無論如何不能在一棵樹上吊死,偶爾出來看看,世界很美好。這也是很多前輩提出的學(xué)習(xí)第二語言和其它框架的重要性。
我突然蹦出來,發(fā)現(xiàn)外面世界很美好。