再读:编程语言的发展趋势及未来方向
三年前读过这篇文章 或者 这里,今天了解到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