好长时间没更新了,主要这段时间忙学ruby。没多少时间温故一下c++及其细节。对于编程为生涯的人生中,其c/c++是一把好的工具,但是在长年累月编写代码中,更加明白的编程的思想才是灵魂,没有思想的编程,也不过如同拿把宝剑而无所作为。就是再精通c++也不过是称之为某语言专家。而对于使用工具的人来说,不仅是要善于运用工具,而且更应该是发挥工具去实现你的要求。
但很多人在对待c/c++时,太多的时候,如同时常抚摸自己手中宝剑而忘却了要去面对的项目。
我时常以CS游戏中的武器向同事和朋友来比喻,c如同CS中的阻击步枪,而C++如同Ak47,而java,c#如同制式武器中的m41突击步枪,这些都是在编程世界中的主力厮杀武器,我们可以选择C可以瞄准任何项目,也能性能极高的射中项目的要害,但是持C之人,所积累的经验,所对项目的开发时间缓急,都在一定程度上影响了采用c的要求,C++和AK47有点类似,狂暴有效,但不是一般人能够在项目开发中始终保持开发的速度和效率,在CS中AK47,头三枪效率极高,但如在编程世界中项目的大量和迫近时,往往和CS中AK47中子弹都飞散到敌手周围一样变得杂乱低效。所以一般而言,采用制式武器中的java,C#是作为现代工业编程的主要制式武器,精确有效,弹量充足。
也许,选择以上制式武器也都是一种个人爱好和企业的侧重,但是再怎么着,也必须在装备了一主力武器外还得配备近战的武器,和朋友说起,你得像cs中配了主力武器外,还得配把近战手枪,以备各种要求。如同CS中持枪盘斗到最后,也得抽出短枪盘环近斗,这也类似在项目吃紧时,临时有额外的要求时,用制式工具也许来不及或者不值得花大工夫去处理时,用用那些胶水语言(动态语言)则是非常省力和高效率的。也就是说胶水语言就如同近战手枪,简单有效实用。
谈到动态语言,有太多,其实熟悉和能运营一,二门即可,如老牌的perl,称之为千年老妖的python,新兴的杀手工具ruby,简单平淡的vb or javascript,还有那些我从来没用过的的lua,lisp,schema等,会这些,不能自以为是的又以为精通了一门语言来比较c/c++的优劣,但也不能以c/c++ 性能优异理由而拒绝学习其他的理由。只是方便我们达到我们的目的。