編程語言是好的,創造了這個世界上形形色色的程序。但總有些設定會讓人感覺奇奇怪怪的。
(1)分號結束一個語句。C語言開此先河,后續很多語言模仿。結束一個語句不應該是句號嗎?那應該用一個點。可是一個點的應用已經很廣泛了,包括小數點,面向對象編程時訪問屬性和方法。一個點再多一種用途,似乎也能接受。
(2)有Begin,沒有End。Scheme語言是這樣的。因為Scheme可以有很多的括號來表示End,所以也能勉強接受。大概強迫癥無法接受。
(3)有End,沒有Begin。Lua語言是這樣的。用End來結束語句,卻不用Begin來開始。
(4)沒有Begin,也沒有End。光禿禿的。Python語言是這樣的。而且縮進管理非常嚴格,多一個空格就無法通過編譯。這一點應該是強迫癥的福音。什么都不用了,看起來舒服多了。用的是空白,看不見。
(5)既有Begin,也有End。Pascal和Ada語言是這樣的。這樣的設定看起來舒服很多。強迫癥應該學類似這兩種的語言。
(6)列表的末尾可以加逗號嗎?如果可以,極大方便了編程,用機器生成代碼,沒有特殊情況需要單獨處理,每個列表項的末尾直接添加一個逗號,但人類看這代碼會感覺有點怪異,怎么列表結束了還有一個逗號,后面有啥?如果不允許,也很怪異,每項都用逗號結束,最后一項難道有什么特殊的嗎?現在很多語言都允許列表項最后可以有逗號(也可以沒有逗號),任由程序員自己選擇,這樣就不會逼死強迫癥了。
(7)Perl語言用引用訪問和直接訪問數組,采用不同的記號,一個是箭頭,一個是方括號,如果嵌套的層次多了,那么代碼是相當可觀。近年的版本似乎改進了,可以用很多種不同的方式來訪問。然而滿屏的$@_%#&->讓人眼花繚亂。Python代碼看起來則清爽許多。
(8)Java語言凡事都要個類,寫Hello World都要個類,真的很累。不知道強迫癥是否喜歡被強迫用類。
(9)不能在函數內部定義函數。函數內部可以定義變量,為啥不能定義函數。函數不是第一等公民,這樣的語言可以逼死強迫癥。
有些語言則可以,可以在函數內部定義函數的語言,都是及其優美的,擁有精美的遞歸結構,嚴格的作用域。