世界是并行的----先不说宇宙,就整个地球来说,世界万物都是并行发生的;天生对并发支持良好的go语言更容易描述并行的世界;
世界是由物质组合构成的---微观世界:由小的粒子组合成大的粒子;宏观世界:由小的物体组合成大的物体;
继承只能描述现实世界的一小部分,使用继承是不全面的;go的设计选择的是组合,这个和现实世界比较吻合的设计,表现力更强;
世界是标准化的---随着生产力的发展,社会分工越来与详细,越来越多行业有了国际标准,任何一个国家的、任何一个公司只要按照这个标准生产器件,就能装配到一台机器上;IBM/PC就是硬件模块化和接口化一个最成功的例证;
软件也可如此,go的接口是duck模型,面向接口编程,而不需要显示的声明,将语言能做的事情交给语言做;
正交性--几何上的正交指的是两个向量垂直关系,一个向量在另一个向量方向的投影是一个点;现实中的正交是指多个因素,一个发生变化,不会影响其他的因素;在不减少表现力的情况下,正交是保持事物稳定性和简单性的最好设计;
go很好的遵循了这个规律,go的多个特性之间都是正交的:goroutine,接口,组合,类型系统等;举一个典型的正交设计例子:比如客户嫌雨伞太小,单纯的加长伞杆是不行的,这会增加雨伞的长度;最后计出折叠式的雨伞;这种设计能保证雨伞大小和雨伞长度满足正交关系,当然这会增加雨伞生产的复杂性)把复杂性留给厂家,把便利性留给客户;对于编程语言:尽量把复杂性留给语言实现者和编译器&