9
本文作者: TW洞見 | 2016-04-07 21:33 |
按:本文作者陳計節(jié),ThoughtWorks 高級咨詢師。多年的跨平臺 .NET 開發(fā)者,全棧工程師,技術(shù)布道師。擅長互聯(lián)網(wǎng)應(yīng)用程序的設(shè)計、開發(fā)和運維等工作。
近年來,微軟堅持為社區(qū)提供更多靈活性,并以更開放的思路重構(gòu)其已有平臺,一改從前封閉高冷的姿態(tài),迅速調(diào)整戰(zhàn)略以適應(yīng)新的產(chǎn)業(yè)格局,向全世界展示了一個靈動敏捷,積極向社區(qū)看齊的新形象。
在最近的微軟開發(fā)者大會(Build 2016)上,微軟展示了其最近獲得的成就,以及各個產(chǎn)品和平臺上針對開發(fā)者的更新,還宣布了一系列讓開發(fā)者們激動不已的消息,比如將在 Windows 上包含能夠直接執(zhí)行 Linux 程序的子系統(tǒng),Xamarin 將會免費并且開源等。
開發(fā)者從 Build 2016 中獲得的,不僅是微軟贈予的高效的工具,更是一種求和共贏的心態(tài),一種面向未來的胸襟。這份禮遇,與平臺無關(guān),與編程語言無關(guān),更與 IDE 或編輯器無關(guān)。
在互聯(lián)網(wǎng)和云的時代,由于有了新的架構(gòu)方法和開發(fā)方式,語言和平臺的選擇顯得沒有那么重要,我們已經(jīng)掌握了太多可以跨語言和平臺完成協(xié)作的技能。在這個惜時如金的時代,我們需要的是開發(fā)效率更高的工具,是能夠用于迅速構(gòu)建輕量級應(yīng)用程序的框架。
技術(shù)的多樣化正像人與人之間的差異:有的人默默地研究、分享,有的人卻會糾集一些技術(shù)之間的優(yōu)劣之比、是否之爭。技術(shù)之間的比較是有裨益的,有助于為設(shè)計決策提供依據(jù)。但高下之分大可沒有必要,不同的技術(shù)可以用于解決不同場合的問題,在合適的時機,它們都可能成為得力的工具。
微軟已經(jīng)為非 .NET 開發(fā)者和非 Windows 平臺提供了大量的工具和產(chǎn)品。
比如發(fā)布基于 Linux 操作系統(tǒng)的 Sql Server 數(shù)據(jù)庫,在 Windows 中引入 Linux 子系統(tǒng)并內(nèi)置 Bash 命令行終端,在 .NET Core 的開發(fā)中將跨平臺作為第一要素考慮,并官方提供基于 Sublime Text 等第三方編輯器作為開發(fā)環(huán)境的示例等。對于微軟來說,是不是 .NET 開發(fā)者,是不是基于 Windows 平臺早就沒有那么重要了。
不過,如果你想找機會嘗試“微軟技術(shù)”的話,我仍然樂于分享:如果聽說“C# 是優(yōu)雅高效的靜態(tài)語言”的話,那么在 .NET Core 跨平臺框架發(fā)布的時候,你只需要花幾分鐘就能親自體驗一把;如果你認(rèn)為在 OS/X 上基于 Linux 相關(guān)開發(fā)更接近仿真環(huán)境,你也可以關(guān)注 Windows 上要引入 Linux 子系統(tǒng)的細(xì)節(jié);在你覺得 Sublime Text 的價格不菲的時候,不妨考慮免費的 Visual Studio Code 在你已有經(jīng)驗的基礎(chǔ)之上,可能還附送了令人欣喜的特性;在你需要在構(gòu)建跨平臺移動應(yīng)用希望共享 80% 代碼的時候,Xamarin 提供的靈活性,你值得擁有。
微軟并不是惡魔,過去不是,以后也不會是。微軟提供了這許多便利的工具和方法可以為你所用,多試一試總是好的。當(dāng)你開始從微軟提供的工具中發(fā)現(xiàn)價值,你也就能夠切實感受到來自微軟的誠意,也就能夠感受到一個開放的新微軟了。
對于 .NET或 Windows平臺的開發(fā)者而言,無論從哪個角度來看,本次Build 大會帶來的都是“全方位無死角”的利好消息。
在Build大會上展示的基于.NET的Web應(yīng)用程序現(xiàn)在都已經(jīng)換成了開源且跨平臺的 ASP.NET Core示例。在即將到來的 Windows 10 更新中,我們將會看到 Linux 子系統(tǒng),這將讓 .NET 和 Windows 開發(fā)者更近地接觸到跨平臺特性,因而大大降低開發(fā)跨平臺的應(yīng)用程序的難度。Xamarin 的免費和跨平臺,不僅讓“宇宙第一 IDE”Visual Studio 默認(rèn)擁有開發(fā)全平臺原生(Native)應(yīng)用程序的能力,同時還意味著 Mono 項目現(xiàn)在也由微軟主導(dǎo),這將使得其與 Windows 平臺的 .NET 有更好的兼容性,以及更快速的同步更新能力。
不過,云的重要特性是平臺無關(guān)。Visual Studio 支持的目標(biāo)平臺,編程語言的應(yīng)用模型也越來越多。雖然 .NET 平臺正在變得比以往更好,但對于目前的 .NET 開發(fā)者來說,還有一些挑戰(zhàn)需要面對。
一直以來,.NET 平臺由于其自身龐大復(fù)雜,應(yīng)用框架、開發(fā)工具和操作系統(tǒng)各個方面的關(guān)聯(lián)緊密等內(nèi)在原因而備受質(zhì)疑。這也使得在互聯(lián)網(wǎng)和云的大勢所趨之下,.NET 平臺被不少人認(rèn)為不適合新的趨勢。
為了解決 .NET 平臺“天生”的問題,微軟采取了一系列的動作,包括重寫 .NET 以使其更輕量級、提供跨平臺的能力,并將其完全開源;提供免費的社區(qū)版 Visual Studio,并開發(fā)跨平臺的開發(fā)工具 Visual Studio Code。幾年下來,不僅解決了大量一直被人詬病的問題,還保持了 .NET 平臺高效的開發(fā)效率,優(yōu)雅的編程語言特性等獨有的優(yōu)勢。
另一方面,一直被看作企業(yè)開發(fā)首選的 .NET 平臺也因為開發(fā)人員素質(zhì)良莠不齊、對跨平臺和開源不夠友好等外在原因被不少人不看好。這顯然需要開發(fā)者自己去努力:刷新自己的意識,更新自己的技能。
.NET 開發(fā)者需要理解:
總會有更靈活高效的方案
社區(qū)合作是重要的技術(shù)活動
跨平臺的靈活性并非沒有必要
云時代,不僅在高端峰會,還在代碼的字里行間
服務(wù)器上、瀏覽器里和終端設(shè)備都已進入新時代
如果還有開發(fā)者固守陳規(guī),守著 Web 三層架構(gòu)和 Windows 窗體應(yīng)用程序模型準(zhǔn)備吃鐵飯碗的話,那么很快就會被新一代的開發(fā)者所替代,也必將會被技術(shù)本身所拋棄。一些人,他們對新出現(xiàn)的事物麻木無感,抱怨要學(xué)的技術(shù)太多、更新又太快。當(dāng)軟件有新的版本發(fā)布出來時,他們的態(tài)度往往是“新版本還不夠穩(wěn)定,等一陣子再說”。我希望 .NET 開發(fā)者不要成為這樣的人。
不管是從這幾年的開發(fā)者大會上的分享,還是線下對開源社區(qū)的參與,以及對已有產(chǎn)品的調(diào)整,我們都能看到微軟在切實地支持開源運動的同時,其自身也比以往更開放。這個軟件巨人已經(jīng)認(rèn)識到,繼續(xù)采用過去的封閉平臺、大包大攬的思維已經(jīng)不適用于新的格局了。更開放的微軟在向世界展示一個全新的形象:他已經(jīng)使用新的思路完成了轉(zhuǎn)變,他將與社區(qū)一同努力,與開發(fā)者一起建設(shè)共同的基于云的未來。
即使像微軟這樣一家擁有龐大產(chǎn)品線和歷史包袱的軟件企業(yè)都能華麗轉(zhuǎn)身,作為開發(fā)者,我們就更能夠開闊思路了。當(dāng)我們好好利用微軟和社區(qū)一起構(gòu)建的更健康開放的生態(tài),定能游刃有余,決勝千里。(編輯:小芹菜)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。