编程的概念

  • 各个语言之间看起来差异大,其实用到的编程概念是一样的,一门语言用到了几个概念,另外一门语言用到了另外几个概念,还有可能共同使用了一些概念
  • 异常,泛型,同步异步,序列化都要用语言作为载体体现

    面向对象

    封装,继承,多态,Prototype,Mixin,Traits,Duck Typing

    函数式编程

    高阶函数,闭包,惰性求值,递归,不可变状态,无副作用

    元编程

    Java动态代理,Cglib
    Ruby,Python
    Lisp宏,代码即数据

    并发模型

    Python协程
    Go routine
    Erlang Actor
    同步,互斥,死锁,事务

    虚拟机和垃圾回收

    垃圾回收解放程序员
    JVM垃圾回收是集大成者

    静态类型,动态类型,类型推导

    静态类型语言在编译期就能确定类型,编译期帮忙优化
    动态类型在运行时确定类型
    动态一时爽,重构火葬场

    抽象语法树(AST)

    几乎所有的编程语言都要转成AST

    指针

    指针是C语言的精华,理解指针对理解计算机底层大有好处