主要观点:作为程序员,日常会接触多种软件工具,偶尔会发现能超越实用性的“启蒙软件”,这些软件能激发想象力、开拓新可能并影响系统设计。文中介绍了对作者有重要启蒙作用的软件,包括 UNIX、Git、Emacs、Boost.Graph、Bazel 等。
关键信息:
- UNIX 让作者从不懂到能理解、探索并与类 Unix 操作系统交互,其成为生活各阶段的重要组成部分和职业基础。
- Git 有陡峭学习曲线但去除了版本控制的摩擦,设计优雅,作者还研究了其他版本控制系统。
- Emacs 可定制,内部架构优美,是强大的开发环境,文档系统无与伦比,作者常使用且难以被其他软件完全替代。
- Boost.Graph 用通用编程思想优雅解决图算法问题,虽未实际使用但加深了对 STL 设计等的理解。
- Bazel 是最终拼图,构建文件是构建工件图的程序,作者帮助将 dfinity 的构建系统转换为 Bazel,它快速、正确、易用且语言无关。
重要细节: - 作者因大学课程未涉及 UNIX 而自学,后发现 Mandriva Linux 等;Git 对比 Subversion 有很大不同,学习其内部很有趣;Emacs 作者因对 Lisp 的痴迷而接触,其内部架构优美;Boost.Graph 作者在游轮上阅读相关书籍对其有深刻理解;Bazel 作者在不同项目中尝试多种构建工具后才真正理解 Bazel。
结论:好的启蒙软件能解决日常难题、体积小功能强且鼓励探索内部,作者呼吁分享自己的启蒙软件。还提到了一些类似文章。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。