这次我打算好好写, 因为最近有点闲.
首先介绍两种语言:
DLang
如果你不介意阅读英文, 那么DLang的官网有一份非常好的介绍, 简单概括下就是
- C太古老了, 缺乏很多新的特性.
- C/C++太复杂了, 但是语言标准就有数百页之多.
- C++中有很多常用的, 好的特性是通过标准库实现的, 而非编译器, 这样无法做到最好的优化.
- D希望简化开发, 降低复杂度, 但同时保留大多数好的特性.
- 作者希望这能成为C/C++的代替品.
对我来说, DLang意味着:
- 垃圾回收. DLang采用了多线程GC(有时间我会写写这个), 回收精度很高, 性能损耗却非常小.
- C Style Syntax. C和D之间类似的代码具有类似的功能.
- DMD + LDC. DMD是官方的后端, 而LDC则是基于LLVM的后端, 前端则都是相同的DMD Front End.
- 松散的特性集合. D拥有运算符重载, 泛型编程, RTTI, 内建复数支持等.
- 包管理系统. 包的名称和导入与所在文件夹有直接关联, 简化了管理.
GoLang
我没有找到关于Go语言设计哲学的官方文档, Ken, Rox, Rob等人对于这门语言的讨论和介绍散见于他们的博客和群组里.
如果你有兴趣了解这门语言, 官网上有一片
洋洋洒洒的Spec,
我不太想四处拷贝整理出他们的设计思想, 在这里只说说我看到的:
- C太古老, 太低级. C++太复杂