三年前讀過這篇文章 或者 這里,今天了解到Go語言,就在想以后語言會是什么樣?我想再多也沒用,因為沒有達到大牛的思想境界,只到再看五年前大神的分析。在些做一點總結。
1.語言發展很慢,而快速發展的是:框架 、工具
2.語言抽象級別越來越高,更簡易使用。比如:scala 基於框架構建的
3.未來趨勢會是:聲明式(Declarative)、動態(Dynamic)、並發(Concurrent)
4.什么是聲明式編程?
聲明式編程:主要有DSL、函數式編程。(如今的兩項成果)
比如查找一個大於20元的單子:
用Java的循環就要寫過程(How)
用數據庫只用寫一句(What)---DSL
5.DSL(Domain Specific Language,領域特定語言,比如:css、sql、Logo)
外部DSL 比如sql、unix-command、XSLT
內部DSL 一系列特別的API、使用模式的別稱 比如LINQ查詢語句、Ruby on Rails、jQuery代碼
6.函數式編程
說白了就如寫數學算式一樣,y=x+1 (x、y都是不可變狀態)。不是平時用的x=x+1 (x是變量,可變狀態)
APL、Haskell、Scheme、ML、LISP
7.動態語言、靜態語言
趨勢:現在分,以后就不會再分了。
動態語言:Ruby Python Javascripts LISP(比如聲明變量,可以不用指定 是int 型,自動會判斷)
靜態語言:C C++ Java
8.元編程:代碼生成的別稱(動態語言容易實現)
9.並發
並發:以前,一個CPU處理多個進程。現在,一個進程讓多個CPU處理!
一個進程多個獨立的任務(用到函數編程的不可變狀態),才能讓多個CPU 高效處理。
總結:
編程語言會更加聲明式,需要設法引入一些如元編程、函數編程的能力。並且讓用戶能夠擴展語法,使他們可以構造特定領域語言。
動態與靜態區別不在。
並發方面,會采納一些特性,可以利用起隔離性,函數式的純粹性,以及更好的不可變數據類型的編寫方式。
http://blog.mreald.com/168