當前位置: 華文問答 > 數位

為什麽很多人反對中文在編程中的使用?

2020-03-27數位

這有啥好奇怪的。

如果我跟你說中文的時候中間夾著程式碼你難受不。

if 我 . 說話 ( 你 ): 難受_status = 問 ( 你 , "難受不" ) if 難受_status == True : 問 ( 你 , "知道了麽" ) if 問 ( 你 , "知道了麽" ) == True : 三連 . 點贊 () else : 三連 . 評論 ( 你 . 疑問 )

機靈抖完了,說點有用的。

程式語言又叫電腦語言,比如python,java,go,c++,易語言。

很顯然這些語言不是中文也不是英文,他是一種獨特的語言。

電腦最主要的就是要讓電腦看懂,如果看不懂就會報錯。

電腦看懂語言最重要的其實是語法,只要語法對基本上就ok。

有些杠精可能會在此處杠一下子,程式碼報錯大部份都不是語法報錯。

對,沒錯,但是那些報錯都是電腦看懂程式碼的前提下報的錯。

  • 如果是 Syntaxerror ,那麽電腦就是跟你說:兄弟,我不知道你在說什麽。
  • 如果是 NameError ,那麽電腦就是跟你說:兄弟,你別說了,我都懂,但是這個真沒有。
  • 如果是 TypeError ,那麽電腦就是跟你說:兄弟,咱們之前可不是這麽說的啊。
  • 如果是AttributeError,那麽電腦就是跟你說:兄弟,別整這套,在我這不好使。
  • 如果是IndexError,那麽電腦就是跟你說:兄弟,你這樣讓我很難做啊。
  • 所以說,只有語法錯誤,是電腦不懂你在說什麽,其他型別的報錯,是電腦知道你在說什麽,但是他沒法照著幹。

  • 當然還有warning,電腦在說:行吧,我吃點虧就吃點虧,就當賺個回頭客,這價格你可千萬別跟別人說啊。
  • 那麽程式碼還要具備另外一個特性,就是可讀性,可維護性。

    換句話說就是,程式碼不光要讓電腦能懂,還要讓人能懂。

    所以標誌符,關鍵字,起名是為了給人看的,只要便於理解,程式語言允許這麽命名,用什麽語言命名其實不重要。

    這時候有杠精可能要站出來了,中文命名會影響程式碼的執行效率。

    那我們用事實說話。

    import time def clock(func): def clocked(*args, **kwargs): start = time.time() result = func(*args, **kwargs) end = time.time() print(func.__name__, end - start) return result return clocked @clock def test(): a = True b = 0 while a: b+=1 if b>=1000000: break @clock def 測試(): 誒 = True 幣 = 0 while 誒: 幣+=1 if 幣>=1000000: break if __name__ == '__main__': for i in range(10): 測試() test()

    兩個一模一樣的函式,一個所有的都用中文命名,一個所有的都用英文命名。看看執行時間。

    跑10組作為對比

    測試結果顯而易見,並不會對執行效率產生影響。

    以上說了這麽多,就是為了論證,標誌符,關鍵字的中文命名對實際執行和理解上並不會產生太多影響。

    那麽為什麽很多人反對中文在編程中使用。

    因為要照顧到讀程式碼的強迫癥患者。

    程式碼寫久了就會有這種強迫癥,習慣了用字母作為函式名,類名,變量名,突然看到中文命名就會很難受。寧願用pinyin也不用中文。這是幾乎所有程式設計師都有的強迫癥,甚至延伸出其他強迫癥。

    比如我就受不了點贊數是偶數。