站在巨人的肩膀上

  我不知道在别人看来,我是什么样的人;但在我自己看来,我不过就象是一个在海滨玩耍的小孩,为不时发现比寻常更为光滑的一块卵石或比寻常更为美丽的一片贝壳而沾沾自喜,而对于展现在我面前的浩瀚的真理的海洋,却全然没有发现。 ——牛顿

 

  如果说我比别人看得更远些,那是因为我站在了巨人的肩上. ——牛顿

 

  今天是2010年10月20日,一个难得的日子,你看,它只有0、1、2这三个数字,这是世界上最小的三个数字。0是无,是虚无,老子说,天下万物生于有,有生于无。1是至小,也是至大,无论多少,都可以分解为一,三字经有云,一而十,十而百,百而千,千而万。2是最小的素数,又称质数,是最小的偶数,俗话说,好事成双,看问题要一分为二,世间一切都包括互相对立的两面,正、负,阴、阳,雌、雄,男、女,物质、反物质,是、非,黑、白,有、无,大、小,强、弱等,这些使得我们的世界丰富多彩。

  二十一世纪过了十个年头,软件开发已经不像以前那么神秘,那么高不可攀,众多优秀的开源软件、开源库使得开发工作变得比从前容易得多,如今的软件开发更像搭积木,把已有的功能模块或组件串接起来,或者在已有软件的基础上修改、扩展。这些已经做过的工作,就是前人辛勤劳动的成果,是前人留给我们的宝贵财富,我们今天所从事的工作,都是站在巨人的肩膀上,已经不需要从0、1、2这些最基础的事情开始了。软件业有句话叫做“不要重复发明轮子”,其实也是这个道理。“巨人”做过的事情,我们最好是了解它、理解它,而不必亲自再从一个个的螺丝钉开始了,节省了时间,等于延长了生命。

  最近,想做一个网络爬虫的东西,抓取网页部分本来打算自己从底层开始,后来考虑了一下,何不站在巨人的肩膀上呢,因此我考虑使用libcurl,Linux系统下著名的curl命令就是在它的基础上构建的,在此基础上,有人写了curlpp这个C++库,使得libcurl的使用更加轻松方便。虽然纯C编写的代码可能效率更高些,但现在的C++编译器和更好的硬件设备,使得效率已经不是问题。现在最重要的问题是,能不能更快的实现你的想法。抓取的网页的字符编码也是个问题,有些是gb2312、有些是utf8、有些是big5,如果要统一处理,最好是变成统一的编码。我原来编写过UCS2、GBK、UTF8的互转程序,而且在多个项目中成功运用,今天我想到,我编写的这个互转程序无法解决所有的问题,何不再来一次站在巨人的肩膀上呢,我决定还是采用iconv的好。

  不过话说回来,巨人的肩膀虽然好站,但得准备好梯子,否则会摔得很惨,而且巨人也有犯晕的时候,也有犯错的时候,得当心。这些开源的库,有些也是有些问题的,某哲人说过,出错是人类的习惯,比如curlpp这个库,目前已经到了0.7.3这个版本了,但是我这几天已经发现有好几个有问题的地方,不得不修改它的源代码,这也是使用开源库的优势,不行就修理它。带着怀疑的精神去使用前人的工作成果,融入自己的创造性思维,才能不断取得进步。

  以上随便胡扯了一些,就作为今天重新注册了CSDN账号并准备开始写博客的感言。如果本文侥幸被各位看到,还清到我的JavaEye博客--Bash @ Linux 走走。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值