先说后续:“误导者”是某博客翻译的译文
事情经过:
傍晚时分,一群人在等电梯准备离开公司,由于是高峰期,电梯过三趟都进不去。这期间听到有个同事(简称“同事 1”)跟另一人(同事 2 )闲聊:问你个问题,是 epoll 先出现的还是 kqueue 先出现的?
同事 2:没关注过哦,为什么会有这种问题?
同事 1:刚刚我看了一篇文章开头就讲,Linux epoll 出得比 kqueue 早,但评论却说 kqueue 比 epoll 早
同事 2:你打算在 macbook pro 直接用 kqueue 写程序?不会吧
同事 1:当然不是啦,我只不过是在下班前学习 Go 语言的专栏文章,见到这种状况就想知道谁在说谎
我:这个很简单,kqueue 先出现的,2000 年正式推出,年份很好记,而 epoll 是后来才有的
同事 1:原来是这样,没想到专栏文章出了错都不改正,连标记都不做
我:是哪篇文章?
于是同事拿出手机打开来给我看,是知乎上的一篇文章:Go:用 kqueue 实现一个简单的 TCP Server
回家后我再次打开链接仔细检查,看到评论区都在纠正道,kqueue 早于 epoll 。
然后我发现这篇文章其实是二手转载的翻译文章,经过一番查找,找到了最初的译文: https://h1z3y3.me/posts/writing-a-tcp-server-using-kqueue/
文章开头赫然写着:
受 Linux epoll 启发,FreeBSD 发明了 kqueue
而英文原版:
Writing a Simple TCP Server Using Kqueue 开头是这么写的:
FreeBSD invented kqueue, which inspired Linux epoll.
好家伙,翻译者确实在乱译
由于英语原文在 2024 年经过了修改,于是我又到 web archive 找了下最初的快照:
https://web.archive.org/web/20210219081543/https://dev.to/frosnerd/writing-a-simple-tcp-server-using-kqueue-cah
开头那段依然是
FreeBSD invented kqueue, which inspired Linux epoll.
证实了原作者从一开始就是写正确了的
等到上班时又有话题可以闲聊了,我可能会这么讲:如果见到文章是翻译过来的,能找到原文就看原文,至少对照着看,免得乱翻译误导人
Leave a Reply Cancel reply