在业内,由于技术布道师的传播,“重复造轮子”成了一个讳莫如深的话题,一个新的项目在各种讨论场合总是会小心翼翼的避开这方面讨论,一旦触及则会马上描述自己系统的独特性和必要性。富有经验的项目管理者,通常在开工前就会想好各种质疑的应对。但是造轮子也并非是一个雷区,有时候造下轮子也是无妨,不必遮遮掩掩,真的需要考虑清楚的是,轮子为了KPI、晋级、虚有的声誉,还是真的出于兴趣及热爱?他们是否可以放在阳光下,和另外一个社区的产品从技术的角度去比较?
在Linux起步的阶段,在服务端有高端大气上档次的Solaris,在桌面端有占据垄断地位的Windows,如果抱着不造轮子的心态,也就无法让高高在上的Unix走下神坛,装进每个学生的学习的电脑,也不会成为最经典的开源协作的项目;在搜索引擎的领域也有同样的故事,一直到最近一两年,还有顽强的公司的不断进入这个领域。设计和使用一项技术就像厨师和美食家的区别,是不同层次的工作与体验。如果你的目标是给用户提供一个更好的操作系统,使用一个引来的产品很难使我们离目标更近。
在一方面,造轮子可以使我们加深对专业领域的认识,帮助我们重新思考这个领域;而且我们可以根据自己对场景的理解,思考改进原来的实现。更难的境界是REINVENT, 而不是迈出造轮子那一步。
另外一方面,富有挑战的项目的轮子可以帮我们更好的聚集人才。好一点的公司都在谈人才争夺战,但是大量的公司对于优秀的人才并没有充分施展的空间。Where Should Top Coders Work?也提到了类似问题,顶级的开发人才希望能发挥自己的才智解决业界最棘手的问题,因此在这些挑战的项目周围聚集优秀的人才之后,就有更好的机会通过创造项目中的智慧,发挥技术的杠杆作用去推动业务。
但是也得强调几句,同一厂中的重复造轮子不值得鼓励,技术团队在造轮子时候得把握好优先级及时机,在农闲阶段造轮子,农忙阶段发挥作用。
这是在黑Linux没有独特性和必要性吗?
Linux是当时唯一能运行在386上的类Unix系统呢。
哈,linux的这个论据不充分吧!我看书上说是Linus认为当时的那些系统不适合他学习操作系统的知识,所以就自己也做了一个,后来机缘巧合就发展成了今天的linux。《Linux内核完全注释》这里面有linux发展的详细介绍。
PS:因为看到linux 0.01版只有几十k的代码,所以想看一下它的源码,没想到掉坑里了.所以找到了上面那本书,它讲的是0.11版的,希望可以从坑里爬出来。