關於未來程式設計發展趨勢的九大預測

51cto發表於2016-02-06

  一部分科學家認為時間一直在以恆定的速率向未來推移,但也有更為睿智的人們覺得在接近光速的條件下,我們熟悉的一切都將發生改變。不過這一切都無法解釋技術世界近年來面對的快速變化趨勢。這種變化每時每刻都在加快,而我們似乎拼盡全力也難以趕上。

  如果大家希望弄清自己該把開發工作的賭注押在哪項趨勢身上,那麼著眼於未來五年,這更像是一項撞大運的任務——而非真正的技術活兒。對高科技的未來前景做出預測幾乎是不可能的,而創新造成的影響也讓一切技能與工具在解決這個問題時都變得非常無力。不過其發展腳步偶爾也會顯露端倪,讓我們從目前的技術場景龜殼當中搖出幾個銅錢,從而透過迷霧預見程式設計領域的未來曙光。

  在這裡,我們整理出了一份關於程式設計行業未來發展趨勢的預測清單,其主要立足於當下已然出現的變革跡象。當然,我們無法保證每項猜測都百分之百準確:事實上,也沒人能做到這一點。其中大部分趨勢將在未來幾年中逐步顯現,而且可以作為一種發展路線圖以指導我們搶先一步為未來做好規劃。

  預測一號:REST將統治物聯網——至少在起步階段

  REST協議已經在Web領域擁有多年統治地位,並將隨著恆溫器、門鎖以及廚房裝飾品等小物件接入網際網路並作為資料包交換物件存在而進一步鞏固其重要作用。畢竟除了REST,這些小東西不太可能採用SCSI、USB或者SATA等其它對接方式,對吧?

  其理由也顯而易見。程式設計師們熱愛REST的簡單特性。歸功於其基礎架構,REST易於理解且能夠相對簡單地進行除錯。我們幾乎可以對以文字格式存在的全部資料進行檢視,並輕鬆瞭解各裝置的當前執行狀態。毫無疑問,各類新型安保攝像頭、微波爐或者旋轉型燙髮器都將由Nginx負責控制並執行在埠80之上,並利用HTML與CSS報告與之相關的全部資訊。

  預測二號:二進位制協議將再度崛起

  在JSON軟體包中利用REST協議進行資料的往來傳遞確實非常簡單,至少相較於傳統XML資料及其90%的標籤載荷而言是如此,但也有一些追求終極高效目標的程式設計師更傾向於直接使用二進位制資料字串,從而保證其能夠直接通過JSON正確顯示。畢竟另一端要做的也無非是解析字串再將其以位元組方式傳送回來。那麼為什麼不乾脆直接傳送位元組呢——特別是物聯網在每次通訊時只需要傳輸極小量資料位元組的情況下?

  開發更多二進位制協議將是一個艱難的過程。HTTP標準似乎天然為文字而生。很多程式設計師在使用專有型二進位制協議時碰了一鼻子灰,因為它們只能由專門的庫進行解包,而且有時候根本達不到預期的效果。JSON與REST的開放性已經使其全面勝出,但這並不是說以開放方式實現的二進位制協議就不能作為開放標準存在。物聯網將生成前所未有的龐大資料總量,而很多裝置將使用大量小規模資料包並要求這些資料包採取緊湊的編碼形式。即使效能表現如此重要,程式設計師們必須要想辦法尋求更多二進位制方案來實現資料包的傳輸。

  預測三號:視訊令HTML失去生存空間

  曾幾何時,我們在網上衝浪、在不同網站之間往來跳轉、瀏覽大量文字並點選無數超連結以獲取更多詳盡內容。但如今,我們更傾向於拿出數小時甚至數天來觀看視訊內容,躺在沙發上昏昏沉沉並在不知不覺中等待其播放完畢。即使是在抄起鍵盤的時候,我們實際要做的也只是在搜尋框中輸入“第x季”並等待Netflix返回正確的結果。網際網路正在演變成由電視節目以及視訊流所構成的新形式,其取代了以往枯燥的文字顯示形式並源源不斷湧來,允許我們在觀看的同時走神甚至不慎睡上一覺兒。

  事實上,甚至有一部分人認為網際網路將徹底令電視失去用武之地。人們更樂於通過某些網站觀看電視節目片段。說實話,我就不知道《週六夜現場》這檔長壽的娛樂節目現在到底是在每週六晚播放,抑或變成了定期舉辦的一場現場狂歡——不過我很清楚的是,劇集中的每段內容都在網上提供單獨的剪輯選項。經典的開場獨白是否還在?是否仍設有嘉賓主持?誰知道呢,反正我們只挑自己喜歡的部分看。

  不過總結來講,除了觀看實時體育賽事之外,電視和客廳對於我們幾乎完全失去了吸引力。只需點一點,我們就能得到全部想要的結果。也許下一代視訊應用程式將增加新的內容篩選層,並對現有工具做出進一步改善。Flash的消亡與HTML 5的崛起可能讓視訊剪輯同HTML之間的結合變成現實。也許程式設計師們可以利用這些機會拿出更加激動人心的成果。不過在此之前,使用者仍將像祖父母那代人一樣正常觀看電視節目——只不過視訊來源由BBC或者PBS等國家級廣播公司變成了網際網路流媒體巨頭。

  預測四號:智慧手機能實現一切——但就是不能打電話

  人們還會通過智慧手機進行呼叫嗎?我們傳送簡訊、閱讀郵件、瀏覽網站——但這一切還僅僅是開始。這塊小小的矩形螢幕已經徹底改變了我們過去幾十年中逐漸養成的生活習慣,而一切變更都非常有趣。我們開始為手機上的麥克風、攝像頭以及加速度計等各類感測裝置找到極為巧妙的用途,這意味著任何業務或者習慣都有可能因此遭到顛覆。

  大家不妨想想原先我們需要將病症狀況交給醫生,然後在辦公室外坐等好幾個小時。目前正有數以百計的初創企業正尋找辦法將智慧手機同醫療裝置相對接。麥克風可以用於測量心率,攝像頭能夠探查我們喉嚨部位的狀況,加速度計則可以追蹤我們的鍛鍊情況。所有這一切都將以資料的形式與雲端對接,保證醫生可以通過這些資訊瞭解到我們的生活習慣以及現有病症。

  是的,下一代智慧裝置將把這一切視為基礎性功能。導航應用除了進行路線定製與規劃之外,還能夠完成其它多種任務,包括控制汽車。鍛鍊追蹤應用則成為一類能夠追蹤我們身體全部健康狀況的工具——從睡眠到工作皆涵蓋其中。另外,有些廠商可能還會開發出一些新的好玩應用,從而幫助我們以更具樂趣的方式進行電話呼叫。

  預測五:更大、更好的資料庫將主宰一切

  誠然,搜尋引擎的主要功能在於檢索網頁,但現在已經出現了能夠直接檢索整個世界的資料庫——這要歸功於日益發展的新一代位置識別應用與自動駕駛汽車。Waze等應用能夠追蹤其全部使用者的動向,為開發商及使用者提供世界範疇內的當前地圖,而不必再勞煩現場工作人員眯著眼睛用什麼鐳射測距工具製圖或者根據航拍照片進行繪製。如果某條道路遭遇交通堵塞,他們會立刻得到訊息。如果一頭牛賴在道中間不肯挪動,他們會立刻得到訊息。如果土木工程師完成了一條新道路的建造,那麼人們也能馬上知悉此事。

  由資料庫提供的如此詳盡的細節資訊確實令人驚歎。舉例來說,自動駕駛汽車將需要了解路燈、自動售報機以及各消防栓的具體位置,同時做好準備駛上極少有人知曉的路段以避開交通擁堵。這些資料當中充滿了值得探究的可能性,其遠遠超出了自動駕駛汽車本身。城市規劃者將能夠隨時調控交通流量以提升出行效率,而路燈也將自行上報當前狀況以降低維護成本。是的,警方也能夠掌握大量行人資料從而快速對緊急事件做出響應。

  在不久的未來,我們的資料庫將能夠記錄全國範圍內每個坑窪的具體位置。那麼城市能否解決數量如此眾多的問題?對於我們這代人來說可能比較難,但機器人已經出現在了可以預見的未來,到時候交給它們處理即可。

  預測六號:JavaScript仍將廣泛存在,但人們不再進行“JS程式設計”

  如果我們不編寫JavaScript程式碼,那麼這項工作該由誰來完成?轉碼機器人,它們負責這項任務。我們可以利用自己熟悉的任何程式語言編寫程式碼,而轉碼機器人將能夠把它們轉化為瀏覽器或者Node.js能夠理解的內容。目前GitHub上已經開始有越來越多的程式碼無法以不經編譯的方式執行。

  在這方面,受影響最深的當數“方言”眾多的程式語言,例如CoffeeScript——這類程式碼過去往往會給其他程式設計師帶來嚴重困擾。目前CoffeeScript的衍生版本多達幾十種,其中包括Coco、IcedCoffeeScript以及CoffeeScript II:可汗之怒~但這一切還僅僅是開始,聰明的程式設計師們已經編寫出更多面向各類程式語言的轉碼方案,包括Cobol、Java、Lisp以及C等等。它們都能夠在經過翻譯以及旨在實現快速交付與解析的優化過程之後直接執行在我們的瀏覽器當中。如果大家能夠利用自己最熟悉的語言編寫程式,並由機器人管家對其進行翻譯,那又何必非要使用JavaScript作為程式設計手段呢?

  預測七號:PHP將捲土重來以對抗Node.js

  ……不過遺留下來的傳統應用還是需要進行重新編寫。幾年之前,PHP幾乎完全無法在伺服器領域與Node.js乃至JavaScript相匹敵。目前這種狀況也許仍然存在,不過PHP接下來很可能捲土重來。PHP 7以及HipHop虛擬機器等剛剛推出的最新工具版本都能夠提供令人印象深刻的效能表現。考慮到這一點,WordPress以及Drupal等程式碼庫在執行速度上很可能提升30%、40%、50%甚至是100%。

  但這並不會改變JavaScript在各類專案當中的優勢地位,例如其能夠確保同樣的程式碼順利執行在瀏覽器以及伺服器之上,但這確實能夠讓一部分出於效能考量而放棄PHP並投入Node.js懷抱的開發人員回心轉意。這些陳舊平臺也許真能在未來煥發新的生機。

  預測八號:每個人都能夠程式設計——只不過很少有人編寫“真正的程式碼”

  教育專案的大量普及旨在教會每個人如何編寫軟體。2014年12月8日,美國總統奧巴馬從維護中東局勢以及打擊恐怖主義的繁忙公務當中抽出了一個小時,學習瞭如何編寫一行程式碼。也許他由此積累到的技術能力可以幫助其“奧巴馬醫改”網站執行得更加順暢?

  我們確實應當重視程式設計教學工作,說不定哪天我們養的小狗或者鸚鵡都能學會軟體開發。而對於真正的程式設計師們,最好的辦法就是報以微笑與鼓勵。新生代當中越多人瞭解程式設計,就會有越多人深刻意識到打理這些數字、API以及其它任何相關元素的難度所在。像奧巴馬總統那樣編寫一行象徵性的程式碼當然很簡單,可要以同樣的方式構建起一套由上億行程式碼構成的完整系統則極為困難——相信每位對程式設計有所瞭解的人都能意識到這一點。

  也許其中會有一些人真正掌握了語言及開發技能,但相信絕大多數人都會扯著自己的頭髮陷入深深的絕望。任何人都能夠寫出一套迴圈,但只有極少數人能夠根據需求選擇合適的迴圈。每個人都能把木料鋸開,但只有木匠才能做出漂亮的傢俱並建起堅固的住房。

  預測九號:準備好迎接新的折磨

  那時候全民程式設計培訓已經實現,而這些拿出幾個小時弄明白了一丁點程式設計原理的傢伙開始插手我們的日常工作了。

  “你是打算在這兒用變數嗎?”老闆走過來插言。“你覺得用常量是不是更合適?你是不是打算在這裡用迴圈?”

  這時候各位程式設計師兄弟姐妹們只要微笑,微笑就好。

  原文標題:9 predictions for the future of programming

相關文章