科學家稱時間是勻速前行的,智者稱萬物以光速而變化—然而科技的瞬息萬變仍舊無從求解,一眨眼,又是另一番景象了。
很多人巴不得能夠看透未來,但未來五年頂多是猜測而已。預測科技發展簡直是天方夜譚,因為創新的影響力足以淘汰當下的很多技能和工具。話雖這麼說,我們還是看看這命運的蛛絲馬跡,或許能幫我們撥開迷霧,瞥一眼未來,看看科技到那時究竟是什麼樣的。
站在科技成就的尖端,我們放膽展望未來。並非所有展望都會實現,甚至連驚喜都談不上—其實很多趨勢在數年前就嶄露鋒芒。希望能夠為開發者們提供有價值的參考,幫助提升針對未來變化的反應能力,快速做出規劃。
- REST一開始就統領了物聯網
REST協定統領整個網路。隨著空調、門鎖、廚房用具等爭先融入日趨成熟的物聯網,這樣的趨勢還將繼續。物聯網就是物聯網,可不是別的什麼的SCSI、USB或SATA聯網。原因很簡單,REST協議的簡潔深受工程師青睞,其基礎架構使得REST協議簡單好用,找 bug 也變得更容易。還沒有任何協定能像這樣用文字形式儲存資料,一目了然。當嶄新的監視器、微波爐或旋轉式鼻毛修剪器隨著80 port上的Nginx一同啟動,HTML和CSS上設備動態源源不斷更新時,千萬別大驚小怪。
- 二進位協定再崛起
基於REST協定在JOSN資料包中傳送資料至少比老一套的XML資料及標籤的90%有效負載而言要簡單很多;但極其注重效率的工程師可能會質疑,為什麼必須將二進位資料轉換為字串才能在JSON中正確顯示,反正字串回頭還要解析成位元組的,不是嗎?既然這樣,特別當物聯網僅僅傳送幾位元組的資料時,為什麼不直接傳送位元組呢?
創建更多二進位協定費時費力,HTTP標準本來又都是文本。許多工程師曾經使用過只能用專有程式庫解譯的專有二進位協定,深知這種方法並不是時時有效,讓人沮喪。
相比之下,開放的JSON和REST的優越性就很明顯了,但這不代表使用二進位協定不能使開放標準高效率發揮作用。物聯網將產生比以往更多的資料,許多設備將使用大量編碼要求更嚴格的小資料包。當效率成為硬性要求,工程師會想方設法為資料庫添加更高效的二進位協定。
- 影音串流將淘汰HTML
在網站之間輾轉,閱讀頁面文字,點擊超連結來獲取更多資訊的時代過去了,如今我們在電視機前渾渾噩噩數小時甚至數天,劇集播完時方慵懶地從沙發上站起來。唯一使用鍵盤的時候,也只是為了知道下一季什麼時候在Netflix上播映。互聯網變成了新一代電視,而穩定的影音串流正沿著文本互動模式鋪展開來,幫我們來思考。
這並不完全正確。很多人覺得網路正在解放電視,讓更多人可以坐在電腦前吃著零食觀看電視節目。我不知道「週六夜現場」是不是仍舊在週六晚上播出,甚至不知道這個節目有沒有直播過,但我知道可以在網站上輕鬆搜到它。它還保留著那開頭的獨白嗎?還有特約嘉賓主持環節嗎?誰知道呢?
但對於這一切,電視迷除了對著螢幕傻笑也做不了什麼。幾乎不用點擊滑鼠,也不用翻看網頁。也許下一代影音應用會添加更多影音層,並改進現存的工具。Flash的消亡、HTML5的崛起為HTML合併影音短片開啟很多可能性,為工程師帶來了福音。在那之前,電視節目背後是互聯網巨頭也好,是三個大寫字母為名的國家廣播公司也好,用戶就只是被動地坐在那裡,跟幾十年前並無差別。
- 通話不再是智慧手機的主要功能
還會有人單純為打電話而買智慧型手機嗎?傳訊息、查郵件、上網站,能做的事情還有很多。這小小的四方型螢幕在過去十多年已徹底改變了生活的各方面,其未來更是讓人翹首以待。更多的感應器,更智慧的麥克風、相機和加速度計(accelerometers )……不過這也意味著手機的商用和私用都會面臨一定的隱私風險。
以前,人們要在醫生辦公室外等待數小時才能得到救助;而現在成百上千的公司正試著把智慧手機變成一個小小的私人醫療設備——麥克風可以聽取心跳,相機可以用來查看喉嚨,加速度計可以追蹤健身狀況——這些資料可以輸送到雲端,快速幫你找到對的醫生。
是的,新一代的智慧設備定將讓如今的科技相形見絀——導航應用可以實現路線規劃;規劃 APP 除了開車之外幾乎無所不能;健身追蹤應用可在睡眠和工作時間不間斷記錄身體的狀況。不論是手機還是其他設備,這樣的行動應用還會層出不窮。
- 資料庫更大、更強
不錯,搜尋引擎可以作為網頁索引,而如今已經存在可以作為世界索引的資料庫了,這都得歸功於新一代定位應用和自動駕駛汽車不斷擴張的市場需求。Waze等應用可以追蹤其用戶,從而為開發者和用戶編制一張包羅萬象的世界地圖,繪圖師眯著眼趴在空拍照片的舊時代已一去不復返。某條路被封住,一頭牛堵住了車流,還是土木工程師新蓋一條路,都能立刻知曉。
資料庫之精細令人歎為觀止,比如自動駕駛汽車可以輸入紅路燈、報紙自動售賣機和消防栓的位置資料,好保證行程的安全。資料規模之龐大,為自動駕駛汽車所用絕對綽綽有餘。什麼時候、什麼地點的道路需要維修,哪裡的路燈壞掉了,市政部門都能掌握資訊;員警掌握的資料遠遠超出了街上行人的範圍。
資料庫甚至能記錄每個城市中的路面坑洞,以及需要修補的時間。如果這一切已經讓你目不暇給了,那麼機器人肯定更能牽動你的心。
- JavaScript將成為主宰語言,卻無需親自編寫
如果我們不編寫JavaScript,誰來做呢?答案就是代碼轉換機器人,它們能將任何語言轉換成瀏覽器或Node.js理解的語言。GitHub上越來越多的 code 需要經過編譯才能運作,比如精簡的CoffeeScript,該語言去掉了很多工程師討厭的標點符號。單單CoffeeScript就有數十個版本—Coco,IcedCoffeeScript和CoffeeScript II: The Wrath of Khan。
這僅僅是開始而已,很多工程師明智地編寫了Cobol、Java、Lisp和C等多種語言的轉換器。現在這些語言經過轉換和改進,經過快速交付和解析後就能在瀏覽器裡運作。既然有了機器人軟體來轉換你熟悉的語言,為什麼還要費盡周折使用JavaScript呢?
- PHP將對Node . js展開反擊
…不過僅僅是為了防止改寫遺留的應用。幾年前,人們還以為PHP會隨著Node.js和JavaScript佔領伺服器機群而退出歷史舞臺。現在看來它的退休時間恐怕要延遲了,知道要打完這最後一場戰役再說。PHP 7和HipHop虛擬機器等最新即時工具運行更快更流暢,讓WordPress和Drupal等代碼庫的運行速度提升了30%、40%、50%,甚至100%。
而JavaScript對於專案開發的其他優勢仍然存在,比如相同代碼在瀏覽器和伺服器上都可以運行,但如此一來,也就沒有了用Node.js代替PHP舊代碼庫的理由了。這些舊平臺最終會浴火重生的。
- 入門容易精通難
軟體發展的教授和學習都變得更簡單。2014年12月8日,美國總統歐巴馬暫且將中東問題和反恐事業擱在一邊,花了一個小時學習並編寫一行 code,不知道這會不會讓他的Obamacare網站更流暢一些呢?
不論教授的物件是人,是寵物狗,還是鸚鵡,這場 code 教授熱潮都會繼續好多年。而真正的工程師最好以一個微笑,一句鼓勵回應就好。當越多的人加入程式設計學習大軍,他們就越能認識到處理協調數位、API等有多棘手。像歐巴馬那樣寫出一行 code 很簡單,但上百萬 code 組成的完整系統卻是常人難以駕馭的。
個別有天分之人入了門就能如魚得水,但絕大部分都是繃緊神經,暗暗叫苦連天。編寫一個迴圈簡單,但選擇最合適的很難;孩童時期學過砍木頭,但又有幾個能在日後掌握木匠精湛的技藝?
- 好為人師的BOSS讓人抓狂
這算不上是展望,因為他們已經做到了—這些上司們在速成班裡學了點程式設計,就覺得自己成了專家,工程師於是就這樣「被幫助」了。
「你要用一個變數嗎?」他們喜歡在旁邊插話:「你確定在這裡使用常量?我覺得迴圈更好一點。」
這種情況下,只要面帶微笑,道聲感謝,這是你唯一能做的。
(本文授權轉載自《CSDN 極客頭條》,原文標題為〈9 predictions for the future of programming〉,原作者:Peter Wayner ,譯者:張新慧,圖片來源:Legosz CC Licensed,未經授權請勿轉載。)