不遠的將來 程序語言是怎樣的
其實很久就看到Bruce Eckel的文章了《Programming in the Mid-Future》,原文發表于2010-3-10日。作為一個經常被自己無聊的求知欲所控制的程序員,我利用工作或者業余時間學習了N多種語言,也常常在想,到底怎么樣的語言才是我們需要的、真的想要的,是能讓(絕)大部分程序員所能接受的、公認的好語言,而不是一提到某某語言,就必定引發一場無休止的口水戰呢?
Bruce Eckel提出了一些他的看法,雖然他不僅講述了關于程序語言的內容,而且涵蓋了程序設計的各個方面,但是。很顯然,程序設計再多方面,主要的內容還是在程序設計語言上面。在這里,在大牛面前,我發表太多言論就類似班門弄斧了,這里先摘錄一下原文的小標題及核心內容。
在Bruce Eckel心中,不遠的將來,程序語言是這樣的:
1. 極端動態(Extremely dynamic)
有越來越多的問題是靜態語言解決不了的,所以,程序語言將向越來越動態的方向發展。
2. 極其簡單的并行(Stupidly parallel objects)
對象將管理他們自己的進程,就算不知道啥叫并行編程,也能無誤的使用。
3. 無盤持久化環境(Persistent diskless environment)
你將創建對象并隨時使用它們,而不用關心它們在哪里,對象將在必要的時候包含必要的數據。
4. 本地開發和云部署開發一致(Transparency between local and cloud)
程序員將不用考慮這些問題,它們將自動化。
將來的測試要更快,更周密,更自動化,為測試所寫的代碼也要少的多。
6. 代碼安全測試(Security via suspicious systems)
將來的測試不僅包含現在普通意義上的測試,邏輯測試、安全測試也將存在。
7. 以查詢為基礎的數據模型(Query-based data)
將來查詢數據庫就像使用Google一樣簡單............
8. 更大尺度上的復用(Reusability on a vast scale)
未來的對象交互會以'組件'為基礎,組件間的接口將是通用的,向一個系統中添加一個新的組件將非常容易。
9. 簡單的系統集成(Effortless System Integration)
你可以自由選擇單獨使用一個程序/組件,或使用由這些程序構成的更大的系統。
用戶界面的元素將分類存儲,并且獲取和顯示數據,大部分時間,我們選擇并粘貼它們到系統中就能添加某個功能。
11. 簡單的效率伸縮性(Effortlessly Scalable)
一個程序在無論在多大規模下使用都不需要進行更改。
12. 內建的可進化性(Built-in Evolvability)
無論向多大規模的程序中添加新特性,都是一樣的簡單。