關(guān)于編程語言未來的 12 個預(yù)測擊中目標很難,擊中移動中的目標更難。正因如此,創(chuàng)造一項合適的新技術(shù)幾乎是不可能的,因為目標的形態(tài)和環(huán)境都在不斷變化。設(shè)想一下,這就好比在筆記本銷量減少的現(xiàn)在打造讓人眼前一亮的筆記本電腦,在智能手機平臺趨近飽和的現(xiàn)在開發(fā)一款必備應(yīng)用,在可穿戴設(shè)備將要主宰的未來在平板電腦上給用戶一個驚喜。 科技趨勢變化很快不是什么秘密——創(chuàng)造這些技術(shù)的工具和方法也在不斷變化。如果你不經(jīng)常太齊頭來看看明年的前景,你可能在編程的時候把坑越挖越深。 為了幫助你做好未來的準備,或是至少開始盤算未來,這未來正以比我們能預(yù)見的更快的速度咆哮著劃過天空。我們列舉了一系列有關(guān)未來五年編程趨勢的預(yù)測。我們的水晶球是非常主觀的,下面的這些預(yù)測可能并不完全正確。其中一些不會在五年中完全實現(xiàn),其他一些可能已經(jīng)實現(xiàn)但是還沒有達到它們應(yīng)該達到的高度和受眾度,有些可能不會完全實現(xiàn)因為一些程序員的因素可能并不會像我們預(yù)測的一樣,有些可能甚至是錯的。 不管這些警告,下面就是這些預(yù)測。趕快讀,因為未來比我們想象的變化的快。 未來編程預(yù)測No. 1:GPU將會成為下一個CPU想想那些人們吹噓自己CPU的日子,現(xiàn)在即使最好的CPU也很少超過$200,但是厲害的顯卡卻可以達到$500、$600甚至更多。玩家喜歡攀比自己顯卡的性能,而不是他們的CPU,這驅(qū)動了這個市場。 剩下的世界正在緩慢追趕。越來越多的軟件正在使用GPU。沒錯,其中一些早期的進展包括原本的圖像處理,就像一些瀏覽器中做的那樣,我們看到越來越多的應(yīng)用雖然沒有繪制精美圖像的需求但還是被重寫以利用GPU的并行架構(gòu)。物理學(xué)家用GPU研究物質(zhì);化學(xué)家用他們研究化學(xué)反應(yīng);天文學(xué)家用顯卡模擬銀河;生物學(xué)家在熱門研究中用GPU處理統(tǒng)計數(shù)據(jù)。今年開始,我也開始用GPU來挖礦了。 像這樣的例子只會變得更多。很快,更好地編譯器將會可以檢測代碼中可以有效地在GPU上運行的部分。學(xué)術(shù)成果已經(jīng)可以有限地做到這一點,但是如果任何人都可以簡單地做到它將變得更加流行。 存好你的比特幣,在這個預(yù)想正在變成現(xiàn)實的現(xiàn)在。 未來編程預(yù)測No.2:數(shù)據(jù)庫逐漸可以完成復(fù)雜的分析程序員一旦把對數(shù)據(jù)的控制權(quán)讓給一個叫“數(shù)據(jù)庫”的東西,那么,他們就不再是“程序員”,而是“數(shù)據(jù)庫用戶”。這也不是一件壞事。畢竟,數(shù)據(jù)庫在處理數(shù)據(jù)上被設(shè)計成比一般的程序員更高效的,尤其是在時間緊急的情況下。他們也(通常)非常有效地使用RAM和處理復(fù)雜的分級存儲器體系。把數(shù)據(jù)導(dǎo)到數(shù)據(jù)庫,讓數(shù)據(jù)庫做自己的事,這往往不是最聰明的處理數(shù)據(jù)的解決方案,而是要讓數(shù)據(jù)庫在時間方面變得更智能才是聰明的做法。 這是因為未來的數(shù)據(jù)庫一定不僅僅是存儲數(shù)據(jù)。許多數(shù)據(jù)庫系統(tǒng)已經(jīng)內(nèi)置了成熟的報表引擎(又稱“商業(yè)智能”),能夠運行更加復(fù)雜多變的算法,能夠分析數(shù)據(jù)、在數(shù)據(jù)模式下更有效地搜索數(shù)據(jù),以及做更多目前被吹捧的“大數(shù)據(jù)”相關(guān)工作。 這個的能力和復(fù)雜度將由移動數(shù)據(jù)的成本所驅(qū)動。單純地從數(shù)據(jù)庫中提取信息,并將其移交給一個獨立的“大數(shù)據(jù)”包將變得越來越耗時,而且需要更多的編碼。把數(shù)據(jù)庫中的數(shù)據(jù)交給它引擎來處理分析將會快很多,因為它不但會限制通信的開銷,而且還減少了程序需要從數(shù)據(jù)存儲中提取數(shù)值的總數(shù)。 未來編程預(yù)測No.3:JavaScript是一切JavaScript在未來的編程語言世界當然不會是唯一的語言,特別是考慮到Cobol程序員的招聘廣告還在熱招中,但它必定會這樣的苗頭。JavaScript是瀏覽器中必不可少的,現(xiàn)在幾乎所有的客戶端計算機中都占有主導(dǎo)地位。在服務(wù)器端則使用像Node.js的工具。 JavaScript無疑也將會在其他領(lǐng)域上更具有優(yōu)勢。要進軍智能手機的領(lǐng)域唯一的方式就是使用制造商所要求的本地語言來編寫代碼:iPhone的是Objective-C,Android的是Java,微軟的是C#?,F(xiàn)在大多數(shù)的手機程序員可以把HTML5的應(yīng)用程序通過類似瀏覽器窗口表現(xiàn)出來。這樣的效果或許沒有本地代碼那么敏捷方便,但是對于Web來說,JavaScript也是不錯的,很輕便的語言。 瀏覽器不只是植入手機內(nèi),它是在吞噬整個平臺。Chrome OS和Chromebooks會定期對廢棄的操作系統(tǒng)做處理。當JavaScript和瀏覽器能做任何事情的時候,又何必擔心那些事情呢? 大型機將主要用Cobol,生物學(xué)家們將可能繼續(xù)做Python,Linux仍用C,但是幾乎所有的一切都是一場公平的游戲,如同JavaScript吞噬整個世界。 未來編程預(yù)測4:多平臺安卓化如果沒有瀏覽器的支撐,安卓將不再是現(xiàn)在的安卓。相機的設(shè)計者們,通過優(yōu)秀的鏡頭來威脅手機的地位,他們計劃在相機上移植安卓系統(tǒng),也就是說你可以在一臺尼康相機上運行Instagram(一款圖片分享軟件)。這會使尼康公司變成一家計算機公司嗎?它真的那么重要嗎? 未來將會出現(xiàn)安卓冰箱,安卓汽車音響,安卓手表,安卓電視甚至安卓耳機等等諸如此類的產(chǎn)品。因為安卓所能做的是太多,也許有人會抱怨它的界面設(shè)計會變的復(fù)雜。但是不要忘了,UI層總是可以被簡化的。如果安卓可以運行的更底層,它將會主導(dǎo)世界。 事情變得越來越復(fù)雜。PC生產(chǎn)商漸漸從傳統(tǒng)電腦市場注意目光,尋求新興的平板電腦市場。他們的解決方案是在Windows上運行Android,讓人們在其桌面上使用他們的Android應(yīng)用程序。它們有的只是運行在有程序員使用的普通安卓模擬器上,但是有的已經(jīng)在尋求突破甚至創(chuàng)造出類似“PC+”的品牌。一旦安卓掌控PC端,將甚至可以做到通過與瀏覽器相結(jié)合,將推動windows本地應(yīng)用作為第三方來支持傳立媒體。 編程語言未來的預(yù)測5:因特網(wǎng)中的對象--比以往更多的平臺。Android和(Linux)的一個負面作用是它使得越來越多的對象加入到Internet中。你家冰箱中的Android系統(tǒng)意味著你可以為冰箱寫一些代碼,無論是用于顯示一些開玩笑話語的應(yīng)用:食物的卡路里含量,還是關(guān)于冰箱中所剩食品的食譜建議。誰知道呢? 在出現(xiàn)的所有新平臺中,最重要的將會是汽車。導(dǎo)航和購物才剛剛開始。隨著智能化汽車的出現(xiàn),開發(fā)者會有更多的機會可以從汽車定位等信息中獲利。 關(guān)鍵的事情是要弄明白什么特征是新的領(lǐng)域所必需的。Android這類操作系統(tǒng)提供了統(tǒng)一的內(nèi)核,每個平臺都需要定制化的特征。例如機器人玩具可能需要提供與年齡相適應(yīng)的內(nèi)容。溫度調(diào)節(jié)裝置需要與天氣預(yù)報相交互。設(shè)計實現(xiàn)具備恰當?shù)奶卣鞯腁PI將會是管理Internet中對象的關(guān)鍵。 編程語言未來預(yù)測6:開源將會用新的方式與我們緊密相關(guān)對于諸多已經(jīng)成功的像Android,Ubuntu,MySQL等開源軟件,棘手的問題是需要找到經(jīng)費來支持開發(fā)。開源的代碼如何幫助到黑客的例子舉不勝舉,但是公司創(chuàng)建了相對穩(wěn)定的生態(tài)環(huán)境,為開發(fā)人員提購買保險或食品,這樣的例子卻為數(shù)不多。 絕大多數(shù)的開源軟件公司會在開源許可證下發(fā)布一個被稱為演示版的應(yīng)用。這類秘籍被藏起來使得開發(fā)者有了討價還價的機會。世界就是這樣,如果你可以得到免費的牛奶那為什么要買奶牛呢?最佳的開源項目需要找到一種途徑:這種方法可以在不嚇跑客戶的前提下以合適的方式增加壓力。 未來變成預(yù)測No.7:WordPress的Web應(yīng)用將無處不在最大的錯誤是奧巴馬政府試圖從頭構(gòu)建其保險交易所的網(wǎng)站。再也沒有人會做這事了。當你添加一個插件到WordPress怎么會感到麻煩呢?如果你真的很吹毛求疵,你可以使用Joomla或者Drupal。這問題的關(guān)鍵已不再是哪個平臺,而是說明一個事實,已經(jīng)越來越少要自己來創(chuàng)建Web應(yīng)用的理由了,因為主流框架已經(jīng)內(nèi)置了很多功能可以滿足需求。 當你開始黑客代碼的時候你會發(fā)現(xiàn)游戲變得更加有趣。WordPress有它自己內(nèi)置的編輯器,這樣你也可以在WordPress內(nèi)進行開發(fā)。沒有調(diào)試功能,但是你可以避開它。如果WordPress添加一個很好的數(shù)據(jù)庫瀏覽器如PHPMyAdmin,且提供一點基本的調(diào)試工具,這將能提高開發(fā)的效率。 關(guān)于編程語言未來的預(yù)測8:插件將取代完備的程序基礎(chǔ)的網(wǎng)絡(luò)應(yīng)用將不只是可以嵌入到大型的架構(gòu)中的那些代碼段的那些應(yīng)用。Phontoshop作為對圖片進行再處理的重要的工具,一定程度上是因為豐富的插件?,F(xiàn)在類似MagicHour這樣新的應(yīng)用使得插件更加的簡便。例如MagicHour的用戶可以像過去分享圖片一樣分享過濾器。絕大多數(shù)的平臺都提供了良好的插件API,很多的平臺都有成千上萬的模塊、類庫和插件等構(gòu)成的繁榮的生態(tài)系統(tǒng)。 這些新增代碼的生態(tài)系統(tǒng)意味著程序員將寫出更多的片段和更小的應(yīng)用。適量的接口代碼可以復(fù)用無數(shù)次,這要比寫一個龐大的、手寫的MB量級大小的應(yīng)用要有用的多。小的片段可以與整個生態(tài)系統(tǒng)中的各片段達成一致,而大的應(yīng)用就需要在內(nèi)部處理所有的事情。 有悟性的程序員將會學(xué)著創(chuàng)建插件,而不是整個項目。他們將要學(xué)習宿主平臺的API并把各部分穿連起來。他們幾乎不再需要從頭開始創(chuàng)建應(yīng)用。 我們都將成為這個新生世界的一部分。 關(guān)于編程語言未來的預(yù)測9:命令行萬歲按你的方式來點擊操作應(yīng)用變得越來越容易,但仍有大量的工作需要在文本編輯器和終端窗口完成。所以,和你想的相反,命令行不會淘汰。事實上,越來越多的工具將只在命令行下工作。 事實上,命令行非常的靈活并被大量的替代。漂亮的圖形界面,有著點擊接口和拖拽控件得到了人們的關(guān)注,但程序員們回歸到了文本。 腳本的便捷是命令行復(fù)活的核心。諸如蘋果這樣的公司有相當正式的工具用于圖形化界面腳本,它們不可能像命令行一樣靈活,一樣容易堆放。有多少人會在Macs上編寫shell腳本,又有多少會寫AppleScripts呢? 命令行將會繼續(xù)存在,因為它是簡單的、易擴展的。如果你有一段腳本,你可以輕松的擴展它,并把它粘貼到其它腳本中。 編程未來的第10個預(yù)測:降低編程難度將失敗在過去的50年里,開發(fā)者已經(jīng)試過讓人學(xué)習編程更加簡單些,對于50年內(nèi)他們已經(jīng)成功了——僅僅除了教最基礎(chǔ)的任務(wù)。世界上百分之九十五的人可能會理解if-then-else結(jié)構(gòu),但這和作為一個程序員并不是一回事。 這不會阻止一些好心人對于進一步降低編程難度的嘗試,讓每個人都將會編程?;浇掏綄⑿麄魇澜缛巳藭幊痰膫ゴ髩粝耄麄儗⑼ㄟ^宣稱X國在該游戲中保持領(lǐng)先的唯一方法是X國的人民學(xué)習Ruby編程或他們的VCR,并以此騙取巨額獎助金。 Alas,真正的編程意味著理解看不見的數(shù)字在小盒子中的舞動。它意味著理解創(chuàng)造軟件和劃分職責的慣例,以使軟件干凈的運行。僅僅很少的頭腦才能處理這項工作,而且看起來在50年的嘗試后,擁有這個能力的人的比例并不可能會顯著變化。教會每個人理解if-then-else子句是一個不錯的想法,但這與培養(yǎng)更多的開發(fā)者不同。 還有,開發(fā)語法更加“像英語”的語言也沒有用。 未來編程預(yù)測No.11:外包和內(nèi)包將繼續(xù)陷入僵局一個標準的預(yù)測,所有的編程工作將流向工資最廉價的國家 這個大膽的經(jīng)濟學(xué)定律是由預(yù)測反映了低端的工作會由自動化工具所取代,而真正的工作將是為那些理解業(yè)務(wù)的人提供。 雙方將繼續(xù)為真實。外包隊伍將贏得與低投標工作,但通過新的自動化工具被擠壓。一組網(wǎng)站,可以很容易地在全球范圍內(nèi)雇傭低工資工人。另一組的網(wǎng)站是使它更容易,更容易從0到60不雇用人的團隊。依賴于外包合同小隊會發(fā)現(xiàn)自己對招投標的誰知道業(yè)務(wù),并不需要幫助的人的內(nèi)部團隊。 編程語言未來預(yù)測12:管理人員將會持續(xù)的誤導(dǎo)編碼者和編碼最令人頭疼的況狀之一是聽西裝革履的非程序員提要求。他們看到FaceBook或者eBay或者其它樣例網(wǎng)站的一些聰明的設(shè)計,然后他們就希望你對那個按鍵稍加修改。有時你可以做到讓它的行為與例子相近。但有時他們的建議是不奏效的,有時他們會沮喪,因為他們沒有得到他們想要的。 典型的例子是他們想要雇傭22歲從斯坦福畢業(yè)的人。其它的學(xué)校都不行。23歲已經(jīng)是衰退期了,或許考慮的是辦公室之外的生活。22歲剛好可以把大量的時間用于把酷炫的代碼增加到CSS。 這些西裝革履的人們花費了很多年學(xué)習技術(shù),但是它很容易把一些年輕人的身價抬高。他們不能理解基礎(chǔ)的技術(shù)這是年齡歧視的最大原因之一。唯一想到的解決方案是尋找只滿足條件之一的程序員,或者不到30歲或者非斯坦福畢業(yè),這需要申請。 超越夢想并找到了一種方式來管理其它所有人的才華的公司將會是找到成功之路的公司。他們將找到一種方式理智的工作來創(chuàng)建穩(wěn)定的軟件并提供足夠多的可用的特性。 英文原文:12 predictions for the future of programming via : http://www.o 原文及評論:http:///article-2610-1-qqmail.html |
|