2010-09-18 52 views
4

在我看來,一些語言通常被認爲比其他語言更漂亮。這似乎適用於所有的編程範例。是否有任何抽象/範式跨越的特點,使程序員認爲語言是美麗的?什麼特徵使程序員將語言設想爲美麗?

編輯:如果你認爲沒有達成共識,那麼請不要猶豫,說出你自己的看法

回答

6

我認爲美麗是概念極簡或更確切地說是組正交一些一般性的語言基本的...

,而不是描述幾乎同樣的事情,需要許多功能不太強大的功能,而永久不得不考慮特殊情況。

哈斯克爾例如基本上只是一些語法與在如此強大的方式,也許沒有其他共同語言可以實現涵蓋了一個令人難以置信的小型系統(只值,泛型,構造函數的類型類)周圍three primitives。 一遍值的概念涵蓋一切 - 數據,功能,對象(如值的集合),...

經典VB對對方有甚至超過5種循環的方式內置。數值和函數,普通數據和對象之間有所不同......而且整體幾乎沒有任何編寫通用代碼的可能性。

+1

好吧,如果N個特徵可以統一成一個(例如函數是一等值,方法只是函數,一切都是一個對象等),那很好。但是「lispy」方式又稱「給我一些原始的和宏觀的系統,我自己構建其餘的」有風險。要麼你最終得到的是螺栓,要麼你花時間圍繞那些如果你開始使用自己的語言就不會在那裏的東西。 – delnan 2010-09-18 10:13:55

4

有沒有對美的任何普遍規律。美麗在旁觀者眼中 - 每個人都有自己的美麗理念。

就我個人而言,我喜歡允許您編寫簡潔但不含義的代碼。它表達了我的想法,沒有額外的粗俗或魔法奧術語法。

+0

+1我的想法準確 – delnan 2010-09-18 10:04:08

2

我認爲它需要有點類似於自然語言。原因:人腦似乎是有線的,所以學習自然語言很容易。另請參閱Nativism,特別是Chomsky。這些觀點有點極端,但最有可能的是一些真相。

+1

關於沒有人認爲COBOL或VB或Applescript或通知美麗。恰恰相反,他們通常是討厭的 - 出於可以理解的原因。 – delnan 2010-09-18 10:03:38

+3

這不是關於使用實際的單詞,而是概念。你會考慮SQL,Ruby,Python不好的例子嗎? – 2010-09-18 10:43:48

3

在軟件方面有一種趨向於更多的語言和語言功能聲明式。目前大多數語言都是關於怎麼樣,而不是什麼。 for循環指出了代碼的行爲方式,但並不表示你想要發生什麼。

對我來說,一種美麗的語言讓我可以聲明,而不會帶走優化的能力。更多表達你可以在代碼中,更好。

4

這裏是我的名單:

  1. 作爲儘可能簡潔,同時仍然可讀。
  2. 儘可能少的特殊情況下,您可以「儘可能地知道」一個奇怪的規則。
  3. 正確,安全的方式是最明顯,最不詳細,最可讀的方式。
  4. 讓您輕鬆解決非常通用的問題。這部分與(2)結合在一起。如果你不得不考慮特殊情況,那麼你的「通用」解決方案不是非常通用的。
  5. 使創建足夠高效的抽象可以在任何地方使用,而不僅僅是在不需要快速的代碼中。
  6. 儘可能避免將內含類型視爲「特殊」。如果內建類型可以實現,那麼用戶定義的類型應該能夠做到。
相關問題