别重新发明轮子!
如果说有那句话让我感到憎恶,那就属“别重新发明轮子”这句了,我打心眼里瞧不上这句话,因为这句话本身就漏洞百出,即使是在一个技术发展很快的开发者社区,我仍然很烦听到这句话。我们总是想尽可能的少花钱多办事,但事情并不天生就是这样的。
首先,让我们从这句话本身来剖析,“不要重复发明轮子”,如果你仔细想想,就会觉得这句话很滑稽,还有什么东西比轮子被重新发明的次数更多呢?如果我们回到公元前4世纪,那时的第一个轮子应该是用木头或者石头做的,但你能想象我们今天仍然使用石头轮子吗?我们一直都在发明新的轮子,我们有火车轮子,赛车轮子,还有滑板轮子等等,这些每一种都是使用不同材料做成,每一种也都有各自的优缺点,但不管怎么说,每一种都是对轮子的重新发明,并且还有很多原因(包括耐久性,强度,美观等等)一直在促使着我们不断重新发明新的轮子。
当这句话出现在开发者社区里,就更显得滑稽了。最有趣的就是经常对我说“别重新发明轮子”的那些家伙通常都使用过不下10种jQuery Slider插件,至少3种不同的模态(modal)脚本,并且常常在Blog上发表“最新最酷的Slideshow插件”这样的贴。再看看微软,他们重新发明了2个最流行的软件,windows(抄袭了OS和当时的其他操作系统)以及IE(抄袭了Spyglass公司的Mosaic浏览器),狗屎,即使是Kinect也只是对动作捕捉的重新发明,然后将它带到了你的客厅而已,可这玩意已经出现了好多年了。
你能想象如果John Resig没有重新发明JS或者是其它像MooTools这样的库?如果Linus Torvalds没有通过Linux和Git重新发明Unix或者SVN?如果Rasmus Lerdorf没有重新发明一门新的编程语言或者Zeev Suraski和Andi Gutmans没有重新发明PHP3的解析器?一切会是怎样?
作为一个严肃的开发者,如果你喜欢你所做的,那就别再说这样的话了,否则只会让你看起来像个白痴。我并不是说让你每次都重写所有东西,不用任何现成的库和插件,我只是想说,如果你觉得有些东西可以变得更好,那就想办法让它变得更好,任何事情都可以变得更好。如果有人批评一个项目,那就鼓励他去写点他自己的东西,不要批评或是阻止他。如果你试图重写一个项目,但到最后觉得太难而没法继续了,也不用灰心,因为你不但将自己推到了一个极限,而且你也会从中学到许多新的技巧,这反过来也会增强你继续使用那个库或者插件的理由,最差的结果,或许你没法重新从头发明它,但你至少找到了增强那个库的方法。
去行动吧,重新发明一个OS,库,编程语言,数据格式,或者任何你想让这个世界发生改变的东西,只有“重新发明轮子”能让一个优秀程序员成为传奇,没别的方式,记住这一点。
文章来源、翻译者、图片来源
进一步查看我的其它网站
你能想象如果John Resig没有重新发明JS或者是其它像MooTools这样的库?如果Linus Torvalds没有通过Linux和Git重新发明Unix或者SVN?如果Rasmus Lerdorf没有重新发明一门新的编程语言或者Zeev Suraski和Andi Gutmans没有重新发明PHP3的解析器?一切会是怎样?
作为一个严肃的开发者,如果你喜欢你所做的,那就别再说这样的话了,否则只会让你看起来像个白痴。我并不是说让你每次都重写所有东西,不用任何现成的库和插件,我只是想说,如果你觉得有些东西可以变得更好,那就想办法让它变得更好,任何事情都可以变得更好。如果有人批评一个项目,那就鼓励他去写点他自己的东西,不要批评或是阻止他。如果你试图重写一个项目,但到最后觉得太难而没法继续了,也不用灰心,因为你不但将自己推到了一个极限,而且你也会从中学到许多新的技巧,这反过来也会增强你继续使用那个库或者插件的理由,最差的结果,或许你没法重新从头发明它,但你至少找到了增强那个库的方法。
去行动吧,重新发明一个OS,库,编程语言,数据格式,或者任何你想让这个世界发生改变的东西,只有“重新发明轮子”能让一个优秀程序员成为传奇,没别的方式,记住这一点。
文章来源、翻译者、图片来源
进一步查看我的其它网站
评论
发表评论