未來程式設計的9大猜想

極客頭條 - 張新慧發表於2016-01-24

科學家稱時間是勻速前行的,智者稱萬物以光速而變化——然而科技的瞬息萬變仍舊無從求解,一眨眼,又是另一番景象了。

很多人巴不得能夠看透未來,但未來五年頂多是猜測而已。預測科技發展簡直是天方夜譚,因為創新的影響力足以淘汰當下的很多技能和工具。話雖這麼說,我們還是瞅瞅這命運的茶葉渣子,或許能幫我們撥開迷霧,瞥一眼未來,看看科技到那時究竟是什麼樣的。

站在科技成就的前沿,我們斗膽展望未來。並非所有展望都會實現,甚至連驚喜都談不上——其實很多趨勢在數年前就“小荷才露尖尖角”了。希望能夠為開發者們提供有價值的參考,幫助提升針對未來變化的反應能力,快速做出規劃。

1. REST一開始就統領了IoT

REST協議統領了整個網路。隨著恆溫器、門鎖、廚房用具等爭先融入日趨成熟的IoT(物聯網),這樣的趨勢還將繼續。物聯網就是物聯網,可不是別的什麼的SCSI、USB或SATA聯網。

原因很簡單,REST協議的簡潔深受程式設計師青睞,其基礎架構使得REST協議簡單好用,找程式碼漏洞也變得更容易了。還沒有任何協議能像這樣用文字形式儲存資料,一目瞭然。當嶄新的監控攝像機、微波爐或旋轉式鼻毛修剪器隨著埠80上的Nginx一同啟動,HTML和CSS上裝置動態源源不斷更新時,千萬別大驚小怪。

2. 二進位制協議再崛起

基於REST協議在JOSN資料包中傳送資料至少比老一套的XML資料及標籤的90%有效負載而言要簡單很多;但極其注重效率的程式設計師可能會質疑,為什麼必須將二進位制資料轉換為字串才能在JSON中正確顯示,反正字串回頭還要解析成位元組的,不是嗎?既然這樣,特別當物聯網僅僅傳送幾位元組的資料時,為什麼不直接傳送位元組呢?

建立更多二進位制協議費時費力,HTTP標準本來又都是文字。許多程式設計師曾經使用過只能用專有程式碼庫拆包的專有二進位制協議,深知這種方法並不是時時湊效,讓人沮喪。

相比之下,開放的JSON和REST的優越性就很明顯了,但這不代表使用二進位制協議不能使開放標準高效率發揮作用。物聯網將產生比以往更多的資料,許多裝置將使用大量編碼要求更嚴格的小資料包。當效率成為硬性要求,程式設計師會想方設法為資料庫新增更高效的二進位制協議。

3. 視訊流將淘汰HTML

在網站之間輾轉,閱讀頁面文字,點選超連結來獲取更多資訊的時代過去了,如今我們在電視機前渾渾噩噩數小時甚至數天,劇集播完時方慵懶地從沙發上站起來。唯一使用鍵盤的時候也只是為了知道下一季什麼時候在Netflix上播映。網際網路變成了新一代電視,而穩定的視訊流正沿著文字互動模式鋪展開來,幫我們來思考。

這並不完全正確。很多人覺得網路正在解放電視機,讓更多人可以坐在電腦前吃著零食觀看電視節目。我不知道“週六夜現場”是不是仍舊在週六晚上播出,甚至不知道這個節目有沒有直播過,但我知道可以在網站上輕鬆搜到它。它還保留著那開頭的獨白嗎?還有特約嘉賓主持環節嗎?誰知道呢?

但對於這一切,電視迷除了對著螢幕樂呵也做不了什麼。幾乎不用點選滑鼠,也不用翻看網頁。也許下一代視訊應用會新增更多視訊層,並改進現存的工具。Flash的消亡和HTML5的崛起為HTML合併視訊剪輯開啟了很多可能性,給程式設計師帶來了福音。在那之前,電視節目背後是網際網路巨頭也好,是三個大寫字母為名的國家廣播公司也好,使用者就只是被動地坐在那裡,跟幾十年前並無差別。

4. 通話不再是智慧手機的主要功能

還會有人單純為打電話而買智慧手機嗎?發簡訊、查郵件、上網站,能做的事情還有很多。這小小的矩形螢幕在過去十多年已徹底改變了生活的方方面面,其未來更是讓人翹首以待。更多的感測器,更智慧的麥克風、相機和加速度計……不過這也意味著手機的商用和私用都會面臨一定的隱私風險。

以前,人們要在醫生辦公室外等待數小時才能得到救助;而現在成百上千的公司正試著把智慧手機變成一個小小的私人醫療裝置——麥克風可以聽取心跳,相機可以用來檢視喉嚨,加速計可以追蹤健身狀況——這些資料可以輸送到雲端,快速幫你找到對症的醫生。

是的,新一代的智慧裝置定將讓如今的科技相形見絀——導航應用可以實現路線規劃;計劃應用除了開車之外幾乎無所不能;健身追蹤應用可在睡眠和工作時間不間斷記錄身體的狀況。不論是手機還是其他裝置,這樣的移動應用還會層出不窮。

5. 資料庫更大、更強

不錯,搜尋引擎可以作為網頁的索引,而如今已經存在可以作為世界索引的資料庫了,這都得歸功於新一代定位應用和自動駕駛汽車不斷擴張的市場需求。Waze等應用可以追蹤其使用者,從而為開發者和使用者編制了一張包羅永珍的世界地圖,製圖師眯著眼趴在航拍照片的舊時代已一去不復返。某條路被封住,一頭牛堵住了車流,還是土木工程師新添了一條道路,都能立刻知曉。

資料庫之精細令人歎為觀止,比如自動駕駛汽車可以輸入紅路燈、報紙自動售賣機和消防栓的位置資料,好保證行程的安全。資料規模之龐大,為自動駕駛汽車所用絕對綽綽有餘。什麼時候、什麼地點的道路需要維修,哪裡的路燈壞掉了,市政部門都能掌握資訊;警察掌握的資料遠遠超出了街上行人的範圍。

資料庫甚至能記錄每個城市中的路面坑洞,以及需要修補的時間。如果這一切已經讓你目不暇接了,那麼機器人肯定更能牽動你的心。

6. JavaScript將成為主宰語言,卻無需親自編寫

如果我們不編寫JavaScript,誰來做呢?答案就是程式碼轉換機器人,它們能將任何語言轉換成瀏覽器或Node.js理解的語言。GitHub上越來越多的程式碼需要經過“編譯”才能執行,比如精簡的CoffeeScript,該語言去掉了很多程式設計師討厭的標點符號。單單CoffeeScript就有數十個版本——Coco,IcedCoffeeScript和CoffeeScript II: The Wrath of Khan。

這僅僅是開端而已,很多程式設計師明智地編寫了Cobol、Java、Lisp和C等多種語言的程式碼轉換器。現在這些語言經過轉換和改進,經過快速交付和解析後就能在瀏覽器裡執行了。既然有了機器人軟體來轉換你熟悉的語言,為什麼還要費盡周折使用JavaScript呢?

7. PHP將對Node . js展開反擊

…不過僅僅是為了防止改寫遺留的應用。幾年前,人們還以為PHP會隨著Node.js和JavaScript佔領伺服器機群而退出歷史舞臺。現在看來它的“退休時間”恐怕要延遲了,知道要打完這最後一場戰役再說。PHP 7和HipHop虛擬機器等最新即時工具執行更快更流暢,讓WordPress和Drupal等程式碼庫的執行速度提升了30%、40%、50%,甚至100%。

而JavaScript對於專案開發的其他優勢仍然存在,比如相同程式碼在瀏覽器和伺服器上都可以執行,但如此一來,也就沒有了用Node.js代替PHP舊程式碼庫的理由了。這些舊平臺最終會浴火重生的。

8. 入門容易精通難

軟體開發的教授和學習都變得更簡單了。2014年12月8日,美國總統奧巴馬暫且將中東問題和反恐事業擱在一邊,花了一個小時學習並編寫了一行程式碼,不知道這會不會讓他的“Obamacare(奧巴馬醫改)”網站更流暢一些呢?

不論教授的物件是人,是寵物狗,還是鸚鵡,這場程式碼教授熱潮都會繼續好多年。而真正的程式設計師最好以一個微笑,一句鼓勵回應就是。當越多的人加入程式設計學習大軍,他們就越能認識到處理協調數字、API等有多棘手。像奧巴馬那樣寫出一行程式碼很簡單,但上百萬程式碼組成的完整系統卻是常人難以駕馭的。

個別有天分之人入了門就能如魚得水,但絕大部分都是繃直了腦袋,暗暗叫苦不迭。編寫一個迴圈簡單,但選擇最合適的很難;孩童時期學過砍木頭,但又有幾個能在日後掌握木匠精湛的技藝?

9. 指手畫腳的BOSS讓人抓狂

這算不上是展望,因為他們已經做到了——這些上司們在速成班裡學了點程式設計,就覺得自己成了行家,程式設計師於是就這樣“被幫助”了。

“你要用一個變數嗎?”他們喜歡在旁邊插話:“你確定在這裡使用常量?我覺得迴圈更好些。”

這種情況下,只要面帶微笑,道聲感謝,這是你唯一能做的。

相關文章