大学第一门课就是《面向对象程序设计》,不久老师和同学就开始对很多概念侃侃而谈,什么“对象”,“类型”,“子类”,“接口”。。。充满了自信。
当然大家是用中文交流,也没觉得有什么不妥,虽然学校发的是英文的教材。 后来我也可以侃侃而谈,也通过了N多考试,面试。 《effective java》是一本好书,现在出了第三版,我试图找中文版来看但是市面上还没有第三版的中文翻译版,没有办法我就开始对着英文原版看了。这时候我才明白我嘴上说的概念和书面上的存在很多微妙的差异。 比如object翻译成对象真的妥嘛? instance翻译成实例? type翻译成类型? interface翻译成接口? class翻译成类? parent翻译成啥好?双亲?那么a class cannot have more than one parent怎么翻译?一个类不能有超过一个双亲?这样就很滑稽。 很多基本的概念并没有“信达雅”的翻译成了中文,《重学前端》的winter也指出了object翻译成对象是不合适的。当然我也没有想到更好的翻译。 又想起一件有意思的事情:说起操作系统大家不难想到什么“临界区,信号量,p,v”,上学的时候这些都是要反复被考试的,很遗憾,“临界区,信号量,p,v”这些又是垃圾翻译。有个有名的人提出了semaphore解决了某个问题,而pv是semaphore的两个操作,这些都是实现的细节,连典故都算不上,不知怎么的,他们被草草翻译了出来,最终上了试卷,并用来评价我们是否了解操作系统,我们不得不把这些奇怪的知识装进脑子里。