[TL][讨论]重复发明轮子?有关轮子我的一些看法。轮子也不一定适应所有的地面和场合。

9 views
Skip to first unread message

LeeoNix

unread,
Apr 2, 2010, 4:30:32 AM4/2/10
to TopLanguage
前几天,某位同学在TL发了一个贴,又在感叹所谓的“重复发明”或者“重复制造”轮子的事情了。而且特别针对了C/C++程序员。

我认为,学习可以说是占了首位的。我就是如此,我自己写了数据自己的一套数据结构库和算法库之后,我可以很轻易的理解和使用别人写的库,尽管我写的库早已弃之不用了。如果我此前并没有自我动手写算法库的话,只是为了用而用,我很难——更好——的使用轮子。用轮子用的最好的人,自然是会造轮子的人。

其次,是需求的变化。就一个string,编程方面可以说使用最广的东西,在C/C++有众多的方案。STL的的string也不是最好的,举例:
1、TinyXML想必C/C++程序员不陌生,他也自己搞了一个String类随时可以替换相对比较低效的std::string。
2、CEGUI,如果做游戏的想必会听说过,为了应付国际化,他也弄了一个可以支持utf32的String类。
3、CString应付了很多地方,但就我以前的一个同事,他被CString给搞的头疼无比,用OllyDbg查了好久才知道是CString自己的问题。他所遇到的问题是用CString的人1万个人里面或许更多的人都不会遇到的问题,可悲的是他却遇到了。他愤慨的我说,他以后永远都不用微软的CString,哪怕自己去设计String类。

单单一个string可以说明很多问题:
1、库提供的现有功能的效率问题。是不是好轴承做的轮子,还需要验证。
2、库的兼容性问题。是不是都能装在福特车型的轮子,还需要实验。
3、库的质量问题。是不是能跑1000公里的轮子,还需要路程验证。

特别提一下兼容性问题。轮子毕竟是轮子,适应的只是某些“好”的路段。为什么坦克用履带而不用轮子?那就说明坦克需要适应更复杂的地段。
记得以前看湖南大洪水之后的灾后重建。各种牵引车拉不出一些阻碍的重物,一辆坦克开过来了,拉上去一下子就拖出来了,当时我就赞叹。坦克啊,真TMD的牛!可以当牵引车用了。

还有历史问题,因特网的广泛交流还没有出现的时候,各个老牌公司都有自己的一套规则。记得我一个网友,进了一个外企工作,这个外企存有维护了20多年之久的C代码,高达3G字节的代码,他研究底层库就研究了3个多月。本来就是自己的彼标准来制造的轮子,根本就不考虑其他方面的轮子,纯粹自给自足。

还有个性问题,使用的“爽”不“爽”。比如Vi和Emacs这些编辑器,派生的也不少。虽然历史已经证明他们是非常棒的编辑器,也容易扩展。但编辑器的编写从电脑发明以来就一直没有间断过,现在还在出现新的编辑器可以罗列一大堆。其实我认为这是个性的问题,呵呵,可能是Just for fun,也可能是显示自己更NB。记得以前一个老哥写过一个NoteXPad,或许大家还可以搜索到这个用win32汇编写的东西。还有MasmPlus这样的东东,呵呵。

其实呢。“不要重复发明轮子”,只是告诫那些自己没有实力的人或者过度自信的人,不要轻易将主观隐患引入到项目里。如果有成熟稳定的库就使用就可以了,说白了就是一个——适用——原则。而不是一个绝对的事情去匹配所有的程序员。

最后说一句:CEGUI真的难用,没法适用中文游戏环境,虽然现在没办法其他解决办法而不得不使用它,但是我还是想自己去“造轮子”,写个自己的GUI库。

qiaojie

unread,
Apr 2, 2010, 4:39:57 AM4/2/10
to pon...@googlegroups.com
游戏GUI库可以试试Scaleform GFx,星际2也用这了套GUI库。


 
2010/4/2 LeeoNix <leeo...@gmail.com>

LeeoNix

unread,
Apr 2, 2010, 4:45:20 AM4/2/10
to pon...@googlegroups.com
这个我同事昨天刚给我提到过。不过这个需要钱啊,我们是小公司……

qiaojie

unread,
Apr 2, 2010, 4:47:36 AM4/2/10
to pon...@googlegroups.com
难道重头开发一个UI库不需要钱吗?


 
2010/4/2 LeeoNix <leeo...@gmail.com>

LeeoNix

unread,
Apr 2, 2010, 4:49:58 AM4/2/10
to pon...@googlegroups.com
需要的只是时间。毕竟我也算公司的合伙人,比购买来说,自己做成本低……

up duan

unread,
Apr 2, 2010, 4:52:02 AM4/2/10
to pon...@googlegroups.com


2010/4/2 LeeoNix <leeo...@gmail.com>

需要的只是时间。毕竟我也算公司的合伙人,比购买来说,自己做成本低……

在 2010年4月2日 下午4:47,qiaojie <qia...@gmail.com>写道:

难道重头开发一个UI库不需要钱吗?

而且中国的人力资源还是比较低的。 

Kenny Yuan

unread,
Apr 2, 2010, 5:01:16 AM4/2/10
to pon...@googlegroups.com
我曾经做过一个GUI库,报价才几万块,而且单说GUI方面还是跨平台的呢 :)
--
Kenny Yuan
-->CS, MMA, Psychology, Automobile...
http://twitter.com/kenny_yuan
http://csbabel.wordpress.com/
http://blog.csdn.net/yuankaining/

up duan

unread,
Apr 2, 2010, 5:14:17 AM4/2/10
to pon...@googlegroups.com


2010/4/2 Kenny Yuan <yuank...@gmail.com>
我曾经做过一个GUI库,报价才几万块,而且单说GUI方面还是跨平台的呢 :)

哈哈,我在VxWorks上基于显存做了一个GUI库,估计几千报价都卖不出去。

Kula

unread,
Apr 2, 2010, 5:15:22 AM4/2/10
to pon...@googlegroups.com
纯技术不值钱.必须要和业务绑定

2010/4/2 up duan <fix...@gmail.com>

LeeoNix

unread,
Apr 2, 2010, 5:17:29 AM4/2/10
to pon...@googlegroups.com
已经跑题到了业务和技术的矛盾问题了。唉……

qiaojie

unread,
Apr 2, 2010, 5:20:58 AM4/2/10
to pon...@googlegroups.com
准确的说是需求决定价值,技术再高,没有需求还是一文不值。

2010/4/2 Kula <kula...@gmail.com>

LeeoNix

unread,
Apr 2, 2010, 5:22:35 AM4/2/10
to pon...@googlegroups.com
其实你的话有点偏颇,因为需求就在推动技术,没有需求如何去发展技术?

BT不还是为了更好的散播黄片而发明的?哈哈,玩笑。

qiaojie

unread,
Apr 2, 2010, 5:29:03 AM4/2/10
to pon...@googlegroups.com
好吧,有一种需求叫潜在的需求,开始他并不为人知,当你把东西拿出来了,相应的需求就浮出了水面。


 
2010/4/2 LeeoNix <leeo...@gmail.com>

Xpol Wan

unread,
Apr 3, 2010, 10:16:32 PM4/3/10
to pon...@googlegroups.com
轮子,我这在重新发明中……

我正在做嵌入式上的基于低端soc的游戏GUI。
想法是:

用C实现一个类似SDL_Surface的2D图形接口,然后在上面用lua写GUI库。

不知这样有没有什么大问题?
有相关经验分享一下。

Best Regards!

Xpol Wan


2010/4/2 up duan <fix...@gmail.com>

Linker

unread,
Apr 4, 2010, 1:38:09 AM4/4/10
to pon...@googlegroups.com
lua写的GUI库有现成的可以参考。
例如 iuplua


2010/4/4 Xpol Wan <xpo...@gmail.com>



--
Regards,
Linker Lin
linker...@gmail.com
Reply all
Reply to author
Forward
0 new messages