Chinaunix

标题: c程序员重复造轮子是否是好事 [打印本页]

作者: W.Z.T    时间: 2009-05-25 18:24
标题: c程序员重复造轮子是否是好事
今天跟一同事谈了下关于重复造轮子的问题, 我是程序员新手, 毕业一年, unix+c环境编程。 我认为所有c程序员都应该重新造下轮子, 多从基础代码开始写起, 写自己的函数库, 重复造一些轮子来锻炼下软件工程的能力, 等有了一定的编程经验后在, 就不必在造轮子了, 那时你已经有能力来早轮子了, 在继续造就是浪费体力和精力了。 我始终就是这么认为的。 而我那同事却说即使是c程序员新手, 也没必要去造轮子, 因为 the art of unix programming就是那么讲滴, 多改别人代码才是王道。

PS: 看看大家的想法
作者: jamesr    时间: 2009-05-25 18:42
提示: 作者被禁止或删除 内容自动屏蔽
作者: mfzz1134    时间: 2009-05-25 18:44
ACM好像是可以带标程的,只是不能有电子版,打印出来带过去就可以了嘛!
作者: reiase    时间: 2009-05-25 18:46
ACM对语言有要求吗?
作者: mfzz1134    时间: 2009-05-25 18:48
pascal/C/C++/Java好像都是可以的,个别提供Fortran
作者: W.Z.T    时间: 2009-05-25 18:49
怎么跑去谈acm了
作者: Solidus    时间: 2009-05-25 18:55
这个问题其实主要看是在具体的商业项目还是完全属于你自己的开源或者学习性质的项目,如果是商业项目,有具体的要求和时限,那么就是利益最大化,替老板考虑,在这里技术美学就成为扯淡了。

    如果是非商业的完全属于自己的项目的话,那就看爱好,我自己的玩意儿就喜欢完全从头来,因为我觉得弄一个不那么好但是够用的东西以后重构比引入一个庞大的,侵入性强的库要好得多,移植起来也方便,而且更容易推广(我特别讨厌在linux下编译点软件让我四处找这个库那个库的,而且还存在各个版本问题,对此我非常恶心)真有问题了把子模块重写就可以了。而且基础的库一般都是越弄越快,技术积累越来越多,收获也更多。(从我个人的美学观点上看,为了移植CRT都应该重新实现一套自己的--个人观点,无所谓对错,仅供参考)。

    其实自己重弄一套你还是得参考不少现成的代码,附加收获是你可以站在造轮子的人的角度去考虑他当初怎么这么设计的,这些附加价值在未来可以替你节约很多时间。

    还有一个问题是,假如几个爱好者为了非商业性质的目的去合作开发个东西,那这问题就麻烦了,每个人的关注点不同,所以这时候也没个该不该的问题了。

[ 本帖最后由 Solidus 于 2009-5-25 19:00 编辑 ]
作者: daybreakcx    时间: 2009-05-25 19:43
我很喜欢这么干,有时候这些事情还是自己来比较好点,虽然说现在很多功能是已经有人做好的,但是万一你没有那个支持呢?这就不好说了,最好会会,但是不要一直造,需要的时候能弄出来就成了。

顺对5楼,ACM现在只支持C/C++和Java,至于Fortran那是POJ支持的,还有Pascal只是允许高中生用,ACM是不提供支持的
作者: xinglp    时间: 2009-05-25 19:47
造轮子没关系,不要练功夫就可以了
作者: reiase    时间: 2009-05-25 19:50
我一直觉得死扣在链表,散列等数据结构上没有意思。。
作者: xinglp    时间: 2009-05-25 19:52
标题: 回复 #10 reiase 的帖子
如果用C的话,这几个东西显然要有一个通用的代码
作者: zx_wing    时间: 2009-05-25 20:11
原帖由 W.Z.T 于 2009-5-25 18:24 发表
今天跟一同事谈了下关于重复造轮子的问题, 我是程序员新手, 毕业一年, unix+c环境编程。 我认为所有c程序员都应该重新造下轮子, 多从基础代码开始写起, 写自己的函数库, 重复造一些轮子来锻炼下软件工程的 ...

出于自己锻炼的目的,鼓励造,造的越多越好。
但在项目中,一定要尽量用现成。特别是在像upstream项目贡献代码时,如果你之前没调查完全,自己造了一些已有的轮子,会引来暴风雨般的批评。
实际上很多时候想自己造轮子主要还是见过的轮子太少,等见的多了,做的多了,自然就不会有这种想法了(当然,不排除等你牛了,发现有些轮子太丑陋不能忍受,推到重写:wink: )
作者: prolj    时间: 2009-05-25 20:23
公司的项目,还是选用稳定的轮子为好
作者: reiase    时间: 2009-05-25 20:31
标题: 回复 #11 xinglp 的帖子
为啥不把精力集中在问题上呢

现在基本小程序用数组,大程序用库或者python
作者: langue    时间: 2009-05-25 22:01
标题: 回复 #1 W.Z.T 的帖子
如果你对一件事的看法还停留在“好坏之分”这个层面上,那我觉得也没什么可说的了。

我的看法主要有以下四个方面:

● 你可以把造轮子的行为看作基本功的练习。每深入一个层次,就必须对上一个层次有更细致的了解。着手编写 C 语言函数库,你一定会加深对 C 语言本身的认识。
时间的分配。人的精力是有限的,如果太专注于闭门造轮子,整个知识结构就会发生倾斜,这对学习很不利,工作中更不允许处处都推倒重建,因为工程上还讲究一个延续性的问题。就算没法顾全,也要要稍微照顾一下大局对不对。
经验的积累。这是真实的代码,不是纸上谈兵。写过一遍,无论写全了,还是只实现了一部分,都已经积累到不少的经验,要相信以后一定用得着。
心态。自己写的东西,质量未必好,生产环境中不一定用得上,抱着学习的态度去做就可以了,别管别人怎么说,但求问心无愧。

总的说来,我支持基础扎实的人通过各种造轮子来体会各种不容易,同时也反对连皮毛都不怎么涉及就好高骛远的行为。



[ 本帖最后由 langue 于 2009-5-25 22:10 编辑 ]
作者: gawk    时间: 2009-05-25 23:10
最近几天在造数据库接口的轮子,造的时候发现真是不容易,现在仅仅实现了oracle的部分功能,sysbase,mysql的都没涉及,就留了个函数表在那里,边项目边造轮子,真他nnd的累,更郁闷轮子还有点儿瘪
作者: no2song    时间: 2009-05-25 23:59
“重复造轮子”是一个二意性很强的讲法,这是无数万恶翻译中的又一个,比如“在太空能看见长城”,“宏”,“变量声明”,“正规表达式”云云,永远被专业人士所不齿。

"reinvented the wheel" 翻译成中文应该是“重复发明轮子”,它要说明的重点在于:轮子的特点及原理已经被我们熟知,你不去参考公认的做法而自己凭空思考轮子的原理及构造,最终得出一个被人们所熟知的结论,这个过程是没有意义的。就如在牛顿之后再发表牛顿定律,在爱因斯坦后再发表相对论一样。人们不会把你当成天才,而是把你当成孤陋寡闻的白痴……

学习的主要过程就是了解原理,而如何使用是你自己的问题。轮子的造法理应在学习阶段掌握,正如编程里的各种算法,你都了解也没有错。但如果抛开原有的算法自己非要写出个一样而且效率更低的来,那就真是没话说了……

当然我感觉楼主的意思是:有没有必要学习基础的算法,换句话说就是要不要了解轮子的原理。那答案是肯定的,学没有坏处。

而关于造轮子的问题嘛,仁者见仁。用别人造的和自己造的都可以,反正自己造好了也可以一直用,别人造的也是一样用,完全个人喜好,不必太过在意。当然,如果自己造得比别人好,那自然是更加美好的事情了~
作者: future0906    时间: 2009-05-26 00:35
原帖由 no2song 于 2009-5-25 23:59 发表
“重复造轮子”是一个二意性很强的讲法,这是无数万恶翻译中的又一个,比如“在太空能看见长城”,“宏”,“变量声明”,“正规表达式”云云,永远被专业人士所不齿。

"reinvented the wheel" 翻译成中文应 ...



我想这不是翻译的问题,是传播的问题(个人想法,没任何证据)。

要不要重新做一个轮子要看自己目的。

如果你抱着学习轮子原理的心态,我认为这是必须的;如果你是想要做一个更好的轮子的,我会有所保留;如果你仅是为了要轮子而做轮子,这是没必要的。

做一个更好的轮子需要更多的是耐心,而不是原理性的东西。如果你有,just do it。
作者: W.Z.T    时间: 2009-05-26 07:20
原帖由 future0906 于 2009-5-26 00:35 发表



我想这不是翻译的问题,是传播的问题(个人想法,没任何证据)。

要不要重新做一个轮子要看自己目的。

如果你抱着学习轮子原理的心态,我认为这是必须的;如果你是想要做一个更好的轮子的,我会有所 ...


如果你抱着学习轮子原理的心态,我认为这是必须的;如果你是想要做一个更好的轮子的,我会有所 ...

我想这就是我想要表达的意思了, 我造轮子还是想学习下原理,  掌握好基础。
作者: W.Z.T    时间: 2009-05-26 07:21
原帖由 no2song 于 2009-5-25 23:59 发表
“重复造轮子”是一个二意性很强的讲法,这是无数万恶翻译中的又一个,比如“在太空能看见长城”,“宏”,“变量声明”,“正规表达式”云云,永远被专业人士所不齿。

"reinvented the wheel" 翻译成中文应 ...



"reinvented the wheel"原来一直把这句话理解错了, 的确重新发明轮子没有意义。
作者: W.Z.T    时间: 2009-05-26 07:23
原帖由 langue 于 2009-5-25 22:01 发表
如果你对一件事的看法还停留在“好坏之分”这个层面上,那我觉得也没什么可说的了。

我的看法主要有以下四个方面:

● 你可以把造轮子的行为看作基本功的练习。每深入一个层次,就必须对上一个层次有更细 ...


>>如果你对一件事的看法还停留在“好坏之分”这个层面上,那我觉得也没什么可说的了。
这个突然让我想起关于语言pk的话题来了, 哈哈
作者: cwinex    时间: 2009-05-26 09:03
多看一些OPENSOURCE的代码。
作者: aobai    时间: 2009-05-26 10:05
原帖由 reiase 于 2009-5-25 20:31 发表
为啥不把精力集中在问题上呢

现在基本小程序用数组,大程序用库或者python




大程序用python?
作者: lsupper    时间: 2009-05-26 12:24
我觉的 我们都要从学会造简单的轮子,到以后会用别人的大轮子~~~
作者: 吃烤鱼    时间: 2009-05-26 14:48
不会造轮子的人,可以造车吗 ?
作者: @sky    时间: 2009-05-26 14:53
坚决不造轮子
作者: waguju    时间: 2009-05-26 16:43
轮子还是应该造啊
作者: JohnBull    时间: 2009-05-26 16:59
原帖由 langue 于 2009-5-25 22:01 发表
如果你对一件事的看法还停留在“好坏之分”这个层面上,那我觉得也没什么可说的了。

我的看法主要有以下四个方面:

● 你可以把造轮子的行为看作基本功的练习。每深入一个层次,就必须对上一个层次有更细 ...


说得好!
作者: ge-hw    时间: 2009-05-26 17:02
标题: 造车吧O(∩_∩)O~
除非限量版的名牌车,轮子一般不需要造。
造车的发展空间比较大,可以各式各样的。
作者: gtv    时间: 2009-05-26 17:14
rrdw 轮子是什么?
作者: prolj    时间: 2009-05-26 17:16
CVS的时候,你造一个不如CVS的轮子,全世界都骂你。SVN出现之后,全世界都偏向了SVN。
作者: Solidus    时间: 2009-05-26 17:25
其实我个人认为,如果排除掉经济利益上的问题,那么仅仅是成就感这一条就就已经有足够的理由自己造轮子了~~
作者: reiase    时间: 2009-05-26 19:15
在造轮子的时候,你这样想:

为什么在这么搓的领域上造轮子呢?因为你搓!那你是在现有水平上造这个轮子呢,还是追求更高层次呢?这个就看个人爱好了。好些人追求内核编程,C++之类的东西,无外乎是目光狭隘。只看得到这些个东西,当然就只有这些东西可追求了。真正内核,C++牛B的人,决不是为了牛B才追求内核或C++开发的。

感觉这个道理,我经常想得非常清楚。不过忘得也快,做着手头的东西,入神了,就把啥都忘了,然后忘乎所以的想搞出些NB东西出来。隔段时间,又一个什么机会想起这么个道理来,老没长进
作者: snail_314    时间: 2009-05-26 20:55
不懂你说的。你是说C语言很搓?
作者: Lordaeron    时间: 2009-05-26 21:06
SVN 這套從頭開始做的輪子, 他們幹了幾年, 才做出來.
但如果沒動做過, 很多人還真的以為他們是高手, 理論讀一讀, 知道Edit Distance
知道socket, 知道file, 就會寫出SVN 呢.
要不要每件事都去做個新輪子, 倒是不必要, 但要能在手邊沒輪子, 或輪子不合用時
能做個輪子出來, 或修改現成的輪子變成合自己用.
作者: reiase    时间: 2009-05-26 21:51
标题: 回复 #34 snail_314 的帖子
复制一个轮子,除了证明自己NB以外,没啥用处。

要造轮子,一定要出于需要才造。如果处于自己无能才造轮子,不如想办法克服自己的无能
作者: gawk    时间: 2009-05-26 21:52
原帖由 no2song 于 2009-5-25 23:59 发表
“重复造轮子”是一个二意性很强的讲法,这是无数万恶翻译中的又一个,比如“在太空能看见长城”,“宏”,“变量声明”,“正规表达式”云云,永远被专业人士所不齿。

"reinvented the wheel" 翻译成中文应 ...

我一直以为轮子的出处是借用的李大师的那套
作者: shaver    时间: 2009-05-26 22:20
打个比方,盖房子的人,需要不需要自己做砖呢?
你肯定的说,为盖房子自己去做砖肯定有病,是的,自己做砖确实有病,因为你盖的只是自己打算住个几十年的房子。
如果你的建筑是想成为百世之作(很遗憾这个比方有点不大合适,因为我们现在的房产开发商没有盖这种房子的),那么砖的问题确实是你所需要考虑的,即使你自己不去亲手做它。
回到软件的例子,photoshop等等之类成功的应用系统,会是在某个ide里面,用控件堆出来的吗?
作者: freebarque    时间: 2009-05-26 22:44
世界本就没有完全一摸一样的轮子, 大小, 现状, 外形, 总量, 适配对象。。。。
说的人多了, 就全成了“重复轮子”。

首提“重复轮子”这个说法的就是个脑残的, 看到圆的就是轮子,其实我是想造个救生圈。

不用理它, 造自己的“轮子”, 让别人说去吧。

重复的轮子, 你今天造了吗?

重复的轮子, 天天造。。。。。


楼下的继续
作者: zhoubug    时间: 2009-05-27 08:49
如果出于学习目的我赞成参考经典开源项目来造,但具体到公司项目要注意到一点 除非这个项目组就你自己 你要考虑其他道友的知识结构,
你造的大家是否能认可,如果都只顾自己用着爽  别的道友会不会不爽 总之 需要从个人发展层面和项目组两方面去考虑吧。
你造的库对于其他使用者来说也是一种依赖,其他组员肯定会想选择自己所信赖的经过考验的代码库。
       ps:我参考经典开源项目造过几次,越造越发现自己考虑的不足,很多时候难以继续下去,不过发现不足就是收获。

[ 本帖最后由 zhoubug 于 2009-5-27 08:52 编辑 ]
作者: A.com    时间: 2009-05-27 09:19
不造一个轮子,你就永远不会知道轮子是怎样造出来的 知道如何造轮子,才能知道别人造的轮子到底是个什么样的轮子,具有鉴别轮子的能力可以让你更好地利用轮子.
作者: anthony1983    时间: 2009-05-27 14:24
有时间有闲心的就造轮子玩,造得好就拿到项目用,不然就直接“拿来主义”
作者: fera    时间: 2009-05-27 14:31
原帖由 Solidus 于 2009-5-25 18:55 发表
这个问题其实主要看是在具体的商业项目还是完全属于你自己的开源或者学习性质的项目,如果是商业项目,有具体的要求和时限,那么就是利益最大化,替老板考虑,在这里技术美学就成为扯淡了。

    如果是非商业 ...

严重同意!
作者: flyinox    时间: 2009-05-27 15:59
造轮子的问题,我觉得是这样的,如果发现轮子需要轴承,需要刹车盘,那是不是轴承和刹车盘也要自己造呢?再往里看,轴承里面的钢珠是不是也要自己造?
  所以我只能说,把握好你的目的。
作者: wsw    时间: 2009-05-27 16:30
千万不要去造轮子,千万!
但是当你有足够的理由去造自己的轮子的时候,请千万坚持造下去。

比如PCC,clang(llvm),造GCC的轮子;svn,造CVS的轮子;因为它们都有理由。

Plan9还造整个Unix的轮子,因为大虾们觉得Unix这个轮子不圆了,所以从编译工具链到日常小工具到程序编辑器都全部造了一遍。
作者: benkoo    时间: 2009-05-27 18:13
各位观众 轮子不是造出来的 是滚出来的 就算你造个方形轮子 天长日久也会滚回圆的
作者: lsupper    时间: 2009-05-27 21:58
标题: 回复 #46 benkoo 的帖子
汗~~~
作者: beepbug    时间: 2009-05-28 07:12
小沈阳说:“人生最痛苦的,是人死了,钱没花完。”
赵本山说:“人生最痛苦的,是钱花完了,人还没死。”
两头看,都对。
我没本事造轮子,就羡慕会造轮子的。
造轮子是本事,是档次。在学习中造了旧轮子,工作中就容易造出新轮子。
作者: W.Z.T    时间: 2009-05-28 08:39
事实证明重新造一个轮子很困难, 这几天我一直在利用空余时间来造一个linux平台多线程下载程序。因为对目前已有的下载器都不满意, 这是我造轮子的理由。 可是程序越写, 感觉越复杂, 要顾全http协议, ftp协议, ssl, 断点续传, 多线程的调试等等。最终我败在了一个线程bug上

不过通过造这个轮子, 我也学到了不少东西哦
作者: prolj    时间: 2009-05-28 08:51
原帖由 wsw 于 2009-5-27 16:30 发表
千万不要去造轮子,千万!
但是当你有足够的理由去造自己的轮子的时候,请千万坚持造下去。

比如PCC,clang(llvm),造GCC的轮子;svn,造CVS的轮子;因为它们都有理由。

Plan9还造整个Unix的轮子,因为大虾们觉得Unix这个轮子不圆了,所以从编译工具链到日常小工具到程序编辑器都全部造了一遍。

稍微纠正一点点,Plan9没有重建Toolchain。
另外,造不造轮子往往只是感情驱使,PCC和llvm/clang都是感情驱使的,而不是去管什么理由的。人是感性动物,虽然有理性,但是很多问题还是感性决定的。还有就是对于高人来说,心情好就造,心情不好就不造。
坚持,才是关键,意志薄弱的人,别说坚持造轮子了,就是用轮子都坚持不了3个月,这样的人根本造不了轮子。
作者: W.Z.T    时间: 2009-05-28 09:45
原帖由 prolj 于 2009-5-28 08:51 发表

稍微纠正一点点,Plan9没有重建Toolchain。
另外,造不造轮子往往只是感情驱使,PCC和llvm/clang都是感情驱使的,而不是去管什么理由的。人是感性动物,虽然有理性,但是很多问题还是感性决定的。还有就是对 ...


大牛说的正是我这样的人阿
作者: prolj    时间: 2009-05-28 09:52
标题: 回复 #51 W.Z.T 的帖子
从内心深处,我支持造轮子,自己的总比别人的有感情,这是人性,而且我承认。
你就是我说的那种“心情好就造,心情不好就不造”的大牛
作者: fieldstream    时间: 2009-05-28 11:27
自己没事多造轮子,也看别人的轮子,谁的轮子好轮子用着方便合适就用谁的
作者: bandaotidejia    时间: 2009-05-28 16:03
可以看的出,lz为用c语言开发而高兴。
作者: bandaotidejia    时间: 2009-05-28 16:07
:wink:

[ 本帖最后由 bandaotidejia 于 2009-5-28 16:09 编辑 ]
作者: W.Z.T    时间: 2009-05-28 17:15
原帖由 bandaotidejia 于 2009-5-28 16:03 发表
可以看的出,lz为用c语言开发而高兴。


我坚持用c写语言写程序, 因为我感觉c++虽然很方便, 但是容易让程序员变傻
作者: bandaotidejia    时间: 2009-05-28 18:27
我和你一样,但现在公司让我捎带用c++做点东西,我不想做啊。没法子。我也是对c情有独钟,用完c再用其他语言,感觉就像被蹂躏。就算是重复造轮子,也好。就像玩完以前的黑白机街机,再玩现在的cs魔兽,觉得很没趣。经典永远是经典。

[ 本帖最后由 bandaotidejia 于 2009-5-28 18:30 编辑 ]
作者: reiase    时间: 2009-05-28 18:37
标题: 回复 #57 bandaotidejia 的帖子
神创世花了6天,
C++折腾了XX年,还在玩创世的把戏...
作者: jhcom    时间: 2009-05-29 20:06
很有必要的。人在造的轮子,是人家的,你造的是你的,在说轮子也有不同的,造出来的轮子比他好就有意义。。
作者: beepbug    时间: 2009-05-30 07:45
原帖由 jhcom 于 2009-5-29 20:06 发表
很有必要的。人在造的轮子,是人家的,你造的是你的,在说轮子也有不同的,造出来的轮子比他好就有意义。。

我造的,就是比他差,我也觉得有意义。我因造轮子而提高。
我的问题不在该不该重复造轮子,而在于我不会重复造轮子。
作者: nonobug    时间: 2009-05-30 10:25
重复造轮子绝对是农民干的事情~~~

但是作为打算造罗斯莱思总工程师,绝对有必要了解轮子。造出了基本能用的轮子,然后扩展到能适合晴天、雨天、沙地、沼泽的轮子——再然后就有精力关注其它圆形的东西啦,比如方向盘——最后达到所有的部件在你心中,但是手中只有圆轨和直尺...
作者: redor    时间: 2009-05-30 13:12
原帖由 W.Z.T 于 2009-5-25 18:24 发表
今天跟一同事谈了下关于重复造轮子的问题, 我是程序员新手, 毕业一年, unix+c环境编程。 我认为所有c程序员都应该重新造下轮子, 多从基础代码开始写起, 写自己的函数库, 重复造一些轮子来锻炼下软件工程的 ...


跟有这种意识的人最好不要合作, 因为这种人的代码能力一般都很烂......
作者: pinkguy    时间: 2009-05-30 14:33
原帖由 zx_wing 于 2009-5-25 20:11 发表

出于自己锻炼的目的,鼓励造,造的越多越好。
但在项目中,一定要尽量用现成。特别是在像upstream项目贡献代码时,如果你之前没调查完全,自己造了一些已有的轮子,会引来暴风雨般的批评。
实际上很多时候想 ...

赞一个:wink:
作者: pinkguy    时间: 2009-05-30 14:36
原帖由 redor 于 2009-5-30 13:12 发表


跟有这种意识的人最好不要合作, 因为这种人的代码能力一般都很烂......

严重BS你
人家都说是新手了,你还这样说……
作者: xialele    时间: 2009-05-31 01:44
干久了,就什么都有了。系统和软件理论都了解一些。个人比较倾向于多了叫系统的原理。理论上的东西提炼到实践中就那么一点。感觉很重要,感觉就是靠年头磨出来的
作者: W.Z.T    时间: 2009-05-31 08:34
标题: 回复 #65 xialele 的帖子
ls的好能潜水
作者: 战雨灾    时间: 2009-05-31 08:57
原帖由 pinkguy 于 2009-5-30 14:36 发表

严重BS你
人家都说是新手了,你还这样说……

还有个同事在呢,不是说他
作者: 战雨灾    时间: 2009-05-31 08:59
原帖由 W.Z.T 于 2009-5-31 08:34 发表
ls的好能潜水

海底深渊。。。
作者: jeanlove    时间: 2009-06-01 15:03
原帖由 W.Z.T 于 2009-5-25 18:24 发表
今天跟一同事谈了下关于重复造轮子的问题, 我是程序员新手, 毕业一年, unix+c环境编程。 我认为所有c程序员都应该重新造下轮子, 多从基础代码开始写起, 写自己的函数库, 重复造一些轮子来锻炼下软件工程的 ...


确切是说,所有语言编程都是在重复造轮子,因为轮子总是相似的,你要"找"到重复的地方,总能找到,就像你要找到两个陌生人之间的共同点,也会有很多。什么不是重复造轮子?就是M$/IBM/Borland/Oracle用来培养程序员民工的,基于控件的,可以用鼠标完成的编程过程,"用轮子而不是造轮子"。不造轮子,要么不搞具体的coding,要么成民工,2选1。

没有什么王道,那本书的作者不是上帝。吃饭,繁衍,上下班,也是一种重复劳动,这些是不是也算是重复造轮子?

所谓的不重复造轮子,不是说已经有了很好的轮子自己再弄一个蹩脚的,而是说,这个轮子满足不了我们的需求,参考它的样子再造一个全新的,更强大的----也就是说重复的目的必须是得到某种进步。
作者: sunnyfun    时间: 2009-06-01 22:45
当老板要你在一天干出三天的活时,你还想造轮子不?估计挖空心思在想的是从哪里拆个过来比较方便吧。
作者: wsw1wsw2    时间: 2009-06-02 17:34
原帖由 prolj 于 2009-5-28 08:51 发表

稍微纠正一点点,Plan9没有重建Toolchain。
另外,造不造轮子往往只是感情驱使,PCC和llvm/clang都是感情驱使的,而不是去管什么理由的。人是感性动物,虽然有理性,但是很多问题还是感性决定的。还有就是对 ...


plan9不是重新造了Toolchain了吗? 从编译器到汇编器到连接器。对i386来说8c,8a,8l不是都是新的吗?
作者: 阳光雪人    时间: 2009-06-03 14:19
支持一下!
我的C語言,基本上是廢掉了。
作者: ahocat    时间: 2009-06-03 14:45
为了修炼自己,造轮子是必要的,也是很有效的。
做项目的时候还是用现成的轮子吧。
一来自己造轮子成本太高(包括时间成本),而来我相信凭自己这点水平造出的轮子好不到哪儿去。
作者: wuhaosen11    时间: 2009-06-03 20:16
偶觉得也许还是必要的
作者: timeboy    时间: 2009-06-04 08:33
提示: 作者被禁止或删除 内容自动屏蔽
作者: btdm    时间: 2009-06-04 08:56
典型的学生腔,现在的应用越来越复杂,哪来那么多时间一个人去做通用软件? 开发软件5%的时间用于设计结构和策略,95%的时间用于处理细节。对于那些并不是自己主攻方向的软件,观其大略比务于精纯要高效得多




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2