摘抄 ?via 黑客與畫家
讓我們試著描述黑客心目中夢寐以求的語言:這種語言干練簡練,具有最高層次的抽象和互動性,而且很容易裝備,可以只用很少的代碼就解決常見的問題。不管是什么程序,你真正要寫的代碼幾乎都與你自己的特定設置有關,其他具有普遍性的問題都有現成的函數庫可以調用。
這種語言的句法短到令人生疑。你輸入的命令中,沒有任何一個字母是多余的,甚至用到shift鍵的機會也很少。
這種語言的抽象程度很高,使得你可以快速寫出一個程序的原型。然后,等你開始優化的時候,它還可以提供一個真正出色的性能分析器,告訴你應該重點關注什么地方。你能讓多重循環快得難以置信,并且在需要的地方還能直接嵌入字節碼。
這種語言有大量優秀的范例可供學習,而且非常符合直覺,你只需花幾分鐘閱讀范例就能領會應該如何使用此種語言。你偶爾才需要查閱操作手冊,它本身很薄,里面關于限定條件和例外情況的警告寥寥無幾。
這種語言的內核很小,但很強大。各個函數庫高度獨立,而且和內核一樣經過精心設計,它們都能很好地協同工作。語言的各個部分就像精密照相機的各個零件一樣完美契合,不需要為了兼容性問題放棄或者保留某些功能。所有函數庫的源碼都很容易得到。這種語言能夠很輕松地與操作系統和用其他語言開發的應用程序對話。
這種語言以層的方式構建。較高的抽象層透明地構建在較低的抽象層之上。如果需要的話,你可以直接使用較低的抽象層。
除了一些絕對必要隱藏的東西,這種語言的所有細節對使用者都是透明的。它提供的抽象能力只是為了方便你的開發,而不是為了強迫你按它的方式行事。事實上,它鼓勵你參與它的設計,給你提供與語言創造者平等的權利。你能夠對它的任何部分加以改變,甚至包括它的語法。它盡可能讓你自己定義的部分與它本身定義的部分處于同等地位。這種夢幻般的編程語言不僅開放源碼,更開放自身的設計。