构建自己的语言工具包——关于编程语言,我们需要关注什么?

在业界拥有众多高级编程语言的今天,如何系统化构建自己的编程语言知识库,这是本文的核心。

@

应用领域

这门语言的应用领域主要在哪里?常用于业务开发还是系统开发?
如C/C++/Rust主要用于系统编程,Java/Go主要用于业务开发,Python/Shell主要用于脚本开发,Python也用于机器学习。

开发效率

这门语言的语法是否友好,,标准库是否健壮,支持的数据结构如何?

生态环境

这门语言工具链是否齐全,生态是否强大?编译工具/测试工具?

工程管理

这门语言的工程管理能力如何?

性能

这门语言的抽象程度如何?是否接近机器?

安全性

在缓冲区溢出、数组越界、指针非法访问、未定义行为等领域,这门语言是否做了处理?处理效果如何?

跨平台能力

这门需要能否“一次编译,到处运行”?是否强依赖于体系结构?

执行模式

这门语言的翻译方式是编译 or 解释 or 混合?

命令行

这门语言是否支持界面交互?(一般解释性语言有)

编程范式

这门语言支持哪些编程范式?面向过程/面向对象/函数式/泛型?

面向对象

这门语言如何实现封装、继承和多态的?

并发编程

这门语言有哪些关于并发的语言级机制?有哪些原生支持的并发组件?是否支持异步编程?

网络编程

这门语言的网络编程接口设计的如何?网络编程的一些生态工具是否具备?

泛型编程

这门语言是否支持泛型?

元编程

这门语言是否支持宏、模板、反射、自省...?

类型系统

这门语言是静态类型还是动态类型?是强类型还是弱类型?类型是否丰富?有类型推断机制吗?如何做安全的类型转换?

时间处理

这门语言是否支持高精度的时间类型?

字符串处理

这门语言的字符串类型设计是否优雅?使用简单?

错误处理

这门语言错误处理主要是依靠返回值机制还是异常机制?

内存管理

这门语言的内存管理是手动管理还是自动回收(GC)?
这门语言的内存模型如何?

系统调用

这门语言如何做系统调用?比如文件操作?

其他

这门语言在随机数、散列、压缩编码方面的生态如何?


关于编程语言,如果有更多需要关注的地方会随时更新。

热门相关:地球第一剑   大神你人设崩了   霸皇纪   霸皇纪   刺客之王