我們要做的第一件事,就是殺掉所有的語言專家。這句話什麼意思?為什麼這麼說?

我們要做的第一件事,就是把律師殺光--莎士比亞 我們要做的第一件事,就是殺掉所有的語言專家。--《亨利六世》 這些話是什麼意思?在《C++程序設計語言》一書的第二章中作者為什麼引用這句話?作者想告訴讀者什麼?


這個翻譯有問題吧。原文我拍拍腦袋都知道是 language lawyer 。language lawyer不理解的話,你就想一下譚浩強,沒錯就是那種整天出 print(i++, ++i) 之類的問題來考你的人。

為什麼說C++會殺掉所有language lawyer呢?因為C++有意識的繼承了C語言最大的優點,即有很多未定義行為。C語言有未定義行為主要是因為一開始沒考慮到。而C++明顯是故意的。正是這些未定義行為,讓language lawyer成為了眾人的笑柄。不然我想我們肯定會認為譚浩強是熟讀C++語言標準的專家。



首先,這本書每章的引言以幽默為主,無甚深意。

其次,大部分答案對language lawyer的理解不對。
標準存在的意義,主要是在大家(首先是編譯器開發者)對語言理解有分歧時,提供權威的答案。「未定義行為」,並不是標準沒有定義或者定義不清的行為,而是標準明確定義為「未定義」的行為。
而常常被半瓶水指責為language lawyer的討論,比如comp.lang.c++.moderated上的,其參與者主要是編譯器開發者和著名庫作者。不要以為別人標準比你熟,實踐就應該比你差。


我們在學習英語的過程中,可能背了很多英語單詞,學了很多英文語法,但如果只是將這些知識用於考試、完成題目,沒有英語語境進行思考和對話,那麼我們就只是language lawyers。
編程是一種寫作,在寫作過程中,你不僅需要知道每個字怎麼寫、每個語法怎麼用,更需要有整體的思維和邏輯,要知道怎麼才能把一個作品完整地做出來,而不僅僅是代碼的拼湊。
這句話與莎翁的那句話,我認為聯繫不大。莎翁對律師的這種態度源於傳統道德與法律制度之間的矛盾。經常有人問:為什麼律師要為那些罪犯辯護,他們這樣難道不是在作惡嗎?我們都知道一句話:法律面前人人平等。意思就是說,無論你犯了多大的罪過,在法律剝奪一個人的權利之前,任何人都不能隨意對其定罪與採取刑罰。從某種意義上來說,律師是在為了法律而辯護,為了在一個錯綜複雜的情況下,依據法律尋找一個正確的邏輯與結果而辯護,律師既不是天使也不是惡魔。這樣的價值觀,當然是傳統道德所嗤之以鼻的。
我看到標籤里還有「合金裝備」,這個情況又和上面兩者不一樣,這句話在MGS中是「控制語言」。MGS4里,小兵體內的納米機器人對他們進行控制,他們想說出「愛國者」的單詞時就會自動變成"la li lu le lo",MGSV的Quiet體內有寄生蟲,她一說英語就會死亡,這些都是通過控制語言能力來封閉信息的例子。同一個語言體系中的人,同時失去了語言能力,就相當於失去了溝通和學習的能力,那麼他們也就任人宰割了。


Language lawyer的意思應該是有預設立場為舊語言做辯護的人
BS指出舊語言的缺陷後,為新語言的創造與推廣開闢了道路


推薦閱讀:

英國歷史上有沒有哪位女王,既有蘇格蘭瑪麗一世那樣的智慧,又像伊麗莎白一世那樣成就繁榮盛世?
英國歷史上的各種「王朝」是什麼?
英國人對英國王室怎麼看?支持多還是反對多

TAG:法律 | CC | 威廉·莎士比亞 | 英國歷史 |