我在初中的時候,曾經所在班級掀起一股學習日語的熱潮,起源是,一個人拿了份假名表,然后全班傳抄。是不是新語言的新鮮感讓學生無視教師的民族主義教育、或是學生在那個年紀反而有點反叛,要不就是學生通常情況下對新語言在內的新知識都是有興趣的,總之,它支持了不少學生起碼渡過了抄寫那套最基本的“字母表”。我們知道,那幾十個假名根本不足以支撐最基本的應用,就像學會了26個字母依然不能基本對話一樣,即使把要求降低到會幾句基本對話,比如小學里僅僅學了一個學期英語的水平,達成者也寥寥無幾,這股“熱潮”在沒有學業的強迫和實際應用環境的支撐,很短的時間就消退了。
初中末期,我和鄰桌的一個同學一天突發奇想,說創造一門語言如何,還決定競賽,兩人分別設計語言然后進行比較。說干就干,花了大約兩節課的時間進行。我們的設計過程是,先做一套基本的類似字母的符號,然后對拼音和英語之類的現有語言存在的字符進行一一替換,兩節課結束的時候還找了幾個例句進行“翻譯”。輸贏已經忘記了,但這大概就是我們那個時候能做的事情了,就是做一套符號,因為沒有長期的歷史所以只能引用現存單詞并且進行轉換。后來我們知道,其實假名和韓國語里那些諺文也是這么來的,日本也毫不避諱從西方引進大量詞匯寫成片假名。看來設計一門人造語言,完全有可能。就算是近代也有人這么干,比如創始于1887年的世界語。
前不久我寫一句英語,有一個單詞不知道,但是我知道它的反義詞,于是想,只需要知道一個,然后另一個加個表反義的前綴不就行了?為何一定要弄成有兩個形態差別很大的單詞?不知道這是不是我第一次考慮有目標地改進語言。推廣下去,可以把時態、比較級什么的也用簡單的規則進行規范,我想象學習起來難度會大大減少。
在搜索引擎輸入“設計語言”,得到的都是一大堆所謂“程序設計語言”的東西。程序設計語言又叫編程語言,如果說它真的耶算是語言的話,一開始就有明確的設計目標,就是精確地向計算機傳達指令,它本身的進化過程從機器指令的注記符號,到增加數學公式、模塊化等稍微高級的抽象,都沒有脫離精確,所以大致可以猜想,編程語言就算以后推出新的,不管變成什么樣有一些本質還是不變的;一些例如“漢語編程語言”、死灰復燃的“函數式”、一些古老教科書里熱捧的“面向對象”等噱頭也不會解決到超過現在大家通常能想象到的極限的問題。
相對于設計自然語言來說,設計編程語言也并不神秘、它的過程和前面提到的可能的嘗試一樣,就是個改進的過程,增加一些東西、減去一些東西、把幾個不同的分支進行綜合等等。打開維基百科,隨便查詢一個編程語言,通常都會標注“啟發語言”、“影響語言”,就是這個東西是從誰那里改動而來,又是被誰改動了換成別的名字。幾十年下來,可以發現能稱得上是在“設計”的,很有“創新”的非常少,大部分也不過是改進,而且是很微小的改進,很多甚至改了之后還不如原來的好,只能叫做“改動”。造成這些“改進”(或者說改動)出現的,除去類似當初我在初中設計著玩這樣以外,還有大學教學、自己做來用在很狹窄的特定領域等等,最可惡的是,有一些公司做出那么些可以僅僅稱作是改動的、但是不兼容的東西,就是為了圈開發者從而圈應用,應用能圈用戶,而用戶帶來大量收入,而最終的原因并不是因為它的產品優秀,僅僅是因為不兼容的改動而已。