博客 2015-04-19


    三年前读过这篇文章 或者   这里,今天了解到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 高效处理。


总结:

编程语言会更加声明式,需要设法引入一些如元编程、函数编程的能力。并且让用户能够扩展语法,使他们可以构造特定领域语言。

动态与静态区别不在。

并发方面,会采纳一些特性,可以利用起隔离性,函数式的纯粹性,以及更好的不可变数据类型的编写方式。


附注:Anders Hejlsberg简历

    Anders HejlsbergMicrosoft公司卓越的软件工程师,领导设计了C#(发音为“C Sharp”)编程语言。Hejlsberg于上个世纪80年代初投身软件事业,为MS-DOSCP/M平台开发了Pascal编译器。成立不久的一家小公司——Borland——很快聘用了Hejlsberg并收购了他的编译器,然后改名为Turbo PascalHejlsberg接下来领导开发了Turbo Pascal的替代产品:Delphi1996年,Hejlsberg在为Borland工作13个春秋后,加盟Microsoft公司(译者注:因为Borland公司内部矛盾和Microsoft的殷勤)。