这个帖子不是技术贴,在这里提前写出,希望不会浪费您的时间.
我不能很直接的就说C++不好使,因为这里面有我自己的很多原因;
但是,我也不能吹C++上天,因为我知道好多人用着C++不顺手.
C++的好与不好,有很多是由于 知识背景上的差异:
我学习的编程,很浅.只涉及两个方面:OpenGL,竞赛(算法).
就说竞赛,当初我看到STL源码剖析上面解释Memory Pool,我就彻底不敢在竞赛里用C++了,心想这个C++背着我做了那么些malloc的事情,如果我内存使用超限,那我还不是不明不白.那时我还小(初中),不懂,其实现在想来,STL也并不是那么黑暗的世界,预留的内存并不是那么巨大,只不过第一次分配的时候那个系数吓住了我(当时我记得是,在第一次分配小规模内存的时候,还在freelist中预留了64倍于需求量的内存),随着内存的进一步的供求运转,真实的情况没有那么糟糕.
从这一件事情上,就可以看到,有一些对于C++的误解,只是因为没有理解.
后来到了高中,高中时间是我真正理智的时期.同时我也感受到语言的flaming war真的是一个永恒的话题.
当时因为进入学校的机器人组,所以接触过很多的语言.也因为Robocode的原因突击过Java.
接触的多了,自然原来心里那种对于单一一种语言的"信仰"也就没有了.
给我印象最深刻的,就是有一个移植了POSIX接口的机器人Lib,它让我见名(如fork)而知意(开进程).从那个时候,我觉得,一种设计思想,要比一种语言更长寿.
再后来,lambda-calculus告诉我说,任何语言所能解决的问题集合,都是相同的.既然如此,那为什么还需要那么多语言?
因为,描述方式影响思维方式.(我强烈的暗示Scheme等东西)
那时候,C++对于我,也变成了一个不用装JRE的Java(大概有70MB+,这也是我一直没怎么大用Java的原因),我还是会按照Java中的那些严格的(相对于C++)规定去编写程序,即使在C++里一个作为interface的class中(语法上)可以包含implementation.
今天刚刚看到CU首版上有一篇关于C++0X的报道,看完之后我心里想,我用菜刀切菜,不会用瑞士军刀;我用锯操作木头,不会用瑞士军刀...
另外,再过几天我就要开学了,而且还是CS系.但是就业形势给我的印象不是很乐观的,我挺紧张的,也想好好利用这四年.如果能有过来人不吝赐教,指出一条明道,我万分感激!
谢谢大家! |