搜索一下“造轮子”或者“程序员为什么喜欢造轮子”,会看到很多相关的讨论,这是个老生常谈的话题,很多人谈过了,谈了很多年。不过还是有再谈的必要。
“造轮子”的含义:
明知道你做的不可能比前辈做得更好,却仍然坚持要做。
就软件开发而言,“造轮子”是指,“业界已经有公认的软件或者库了,却还坚持要自己做”。
在软件开发过程中,有时你想造轮子老板却极力反对,有时你不想造轮子老板却坚持要造一个出来,为什么会有这种两极状况?
这篇文章就来讨论“造轮子”这件事,包括下列主题:
- 程序员为什么会重复造轮子
- 为什么有人不让“造轮子”
- 什么时候可以造轮子
为什么会重复造轮子?
每个造轮子的程序员都有自己“不得不造”的理由。比如:
- 以为自己的需求独一无二,现有的库就是在某个点上满足不了
- 老轮子没有规格说明书,或者接口太复杂,不知道怎么用,搞明白太难
- 需要在老轮子上添加新功能,然而老轮子代码难读无人可问,不知道何时能弄明白,看不到结果,容易放弃
- 眼界有限,不知道已有这样的轮子
- 版权原因无法使用第三方库,比如Google Android实现JVM(Google曾因为一行代码而和Orac