2007-04-17

程序语言

小硕快毕业了,但我敢说稍微熟悉的语言也只有C和Bash脚本,很惭愧。曾经啃完一本大部头的C++读物,自我感觉良好,直到看了几章《C++沉思录》后才发现自己全然尚未入门,以至于一蹶不振,后来几乎就很少用。学Java也只有一个月,也是一本大部头,但只啃了一半。因为只是为了回答某人的问题。

"初生牛犊不怕虎",一心想精通N种语言,因为据说懂了一种以后其他可以触类旁通。窃以为这句话有很强的欺骗性,因为不同的语言基本上代表着不同的思维方式,对于已经达到某种境界的达人才是适用的。

歧路亡羊,于是在成为系统程序员的幌子下,加上厚积薄发为借口,我只了解一点C,但仍然觉得它不是很好驾驭。许多事情看起来要比实际动手远为复杂,假如真正用C写个底层系统就会发现这个问题。

学内核编程时首先是用的真实的软盘,重新启动很麻烦,好在当时的机器基本上都有软驱;后来用vmware,软盘用winImage虚拟一个,两者都用的D版;大学毕业设计时终于摆脱D版,用上了Bochs,软盘dd出来。一切运行良好,读研后用C改写了大部分感觉非常好。后来实习时想开小差继续写,发现却怎么也运行不了,以为是GCC4的问题,因为GCC3下是好的,于是搁浅。直到昨天才发现,在Qemu下状况好一点。很后悔当初实习的时候居然没试试Qemu而一直抱着Bochs,而Qemu调试起来要比Bochs方便的多,运行速度也快的多。但仍旧有错误,调试了好几个小时至今未搞定。C开发者或许是比较依赖于编译器的一类人,我认为任何一个资深的C程序员都一定很了解他/她所用的编译器。

于是我想了解更多的编译器知识,然而终究浅尝辄止,就像对Linux内核一样。当初学Scheme是因为学了CMU的CSAPP,于是MIT的SICP也很有吸引力,并且书中最后的知识是用Scheme撰写一个Scheme编译器;后来由于对Emacs的空前热情爱屋及乌学了点Elisp,然而我知道这些也都是蜻蜓点水罢了。

上午Scheme下午C,晚上稍做回顾并坚持跑步,这就是我现在的生活,英文博客也可以开张了。毕业之前我想努力搞定SICP等五本书,把这剩下的时间变成最充实、最值得回忆的日子。希望不久以后写程序便不会战战兢兢,或许某一天我也会说,"哦,Erlang啊,我来讲给你听。"

0 Comments:

发表评论

<< Home