編程的未來

       隨着IT技術的發展,編程正在發生改變,PC時代即將被移動時代所取代,軟件開發人員的硬件配置、職能以及所遇到的問題,與單機時代相比,都有着非常大的差異。尤其是大數據時代的來臨,編程已不單單是維護工程的祭司,編程能力將變得愈加重要。

       本文抓住目前影響編程的幾大領域,結合當前的編程變化及趨勢,對未來的編程進行了探討。旨在讓大家瞭解短期和長期的編程變化,以及需要關注的領域和該掌握的基本技能,讓自己永遠走在技術的最前端。

分佈式計算

      即使今天非常“普通”的編碼環境都與十年前有着非常大的區別,隨着Web應用、移動和大數據的流行,一個程序只涉及一臺電腦的時代已經結束。對程序員而言,意味着我們必須克服諸如併發、鎖定、異步以及網絡通信方面等問題。即使是最基本的Web編程,你都必須要熟悉概念,如緩存。

     鑑於以上所說的壓力,我們也看到,在計算機堆棧領域也相應地以不同的級別呈現。在高層次上,雲計算旨在減輕對多臺服務器維護的麻煩;就應用開發層次而言,框架試圖體現出熟悉的模式和把執行細節抽象出來;在語言層次上,像Go或Scala等語言使得併發性和網絡計算更加簡單。

硬件計算

      現如今,大多數電子設備上都有處理器和應用程序,而電腦已經變得愈來愈小衆,並不是說每個人都需要從事嵌入式開發,但開發者最好去學習下移動開發是做什麼的。在不久的將來,無人駕駛汽車無人駕駛飛機等都會出現在我們的生活中。

     即使是非常傳統地計算,作爲一種先進數據運算的協同處理器GPU陣列的迅速崛起需要各種不同的編程方法,同樣,不同的因素也需要不同的編程方法。

     此外,程序員對先前專家們遺留下來的問題作出響應,比如低內存和CPU速度、功耗、無線電通信、軟/硬件的實時需求。

數據計算

     現如今比較流行的編程形式有面向對象編程,其重點主要放在訪問方法時的包裝數據和將數據集合封裝的更緊。在數學世界中,數據雖然沒有行爲,但是嚴格的C++或Java程序員會擔心如何訪問這些數據。

     由於數據和分析變的越來越重要,數據在編程語言中的地位也相應地水漲船高。在這股潮流地帶動下,R語言的地位也有所上升,在通用的編程語言中,Python和Clojure使數據操作變得更加容易。

民主化的編程環境

      越來越多的人從事編程,而這些“臨時”的開發者在Excel宏、JavaScript工藝以及與Web服務器方面都會存在爭論或爭吵。這是很合理的,因爲他們不熟悉軟件開發。

     然而,在許多情況下,這種“臨時”的程序員會更容易在編程上遇到麻煩,雖然他們只是想要做好事情。好一點可能就是有一點煩人,最壞的情況,就是要承擔僱主責任。但更重要地是,這不是程序員的錯誤。

    對於這些“臨時”開發者,該如何爲他們提供更好地可編程環境?在現有的語言中,我們是否需要新的語言,更好的框架?它不僅僅是教育方面的關注,還涉及到方方面面,甚至是生活方面。

安全因素

     最後,值得探討的是當前我們正在構建的軟件開發方法。問題很簡單:大腦只能夠承受這麼多。作爲當今社會的程序員,你需要根據大腦裏的想法來編寫程序。

    當問題空間變大時,大家的反應是編寫一個框架來使問題變得愈來愈小。所以,我們在頂級的CPU上運行操作系統,庫和UI同樣也運行在這些操作系統上,這些庫在應用框架和Web瀏覽器上運行,JavaScript運行於瀏覽器上,JavaScript庫運行於JavaScript之上,就這樣,一直循環下去。

     我們製造更快更強大的CPU,但得到的確是與10年前一樣的應用程序性能,安全漏洞在框架中大量出現,使大量的系統處於危險之中

     我們爲什麼要這樣使用電腦,爲什麼要讓這些漏洞頻出的東西和其有限的功能充斥着我們的大腦?未來應該繼續這種觀念還是尋找另一種出路?

總結

      關於編程趨勢和未來的發展,我們仍將繼續研究下去,如果你有更好地觀點或經驗,歡迎與我們進行分享。(編譯/張紅月審覈/王果)

本文來自:HTML5中國 http://www.html5cn.org/article-5376-1.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章