編程語言有沒有開源這一說法?

開源的最簡單的定義是開放源代碼吧?如果是那樣的話,那麼編程語言怎麼開源?難道是指編譯器?比如說C#不是開源,指的是編譯器吧?


編程語言嚴格說只是一個對語法得specification,顯然要公開,要不然怎麼給用戶用。而開源是指的是編譯器,可以開源也可以不開源,取決於實現編譯器人的意願。


C#編譯器也是開源的,用的Apache協議。所以,當你說一個語言不是開源的時候,說的不是他寫出來的程序通常開源不開源,也不是編譯器開源不開源。而是:

他爹是不是夠有錢


開源最初的概念,如果以 Linus 提出的為準的話,指的是一種軟體開發模式,也就是將源代碼完全開放在互聯網,每個人都可以查看並且修改代碼,每個人都可以參與軟體測試修改反饋,修改的代碼統一由 Linus 進行審核然後提交。整個誕生與開發過程對世界完全透明。

當然,這個詞如今也是被玩壞了,有很多軟體的開發過程仍然是黑箱開發,只是開發完之後公布源代碼,這也經常被叫做開源,從字面上來說這個定義或許也沒錯,雖然它已經不是最初這個概念提出時的意思了。

如果用最傳統的定義來看,編程語言如果開源,應該是指的這個編程語言的研發過程對世界公開,或者說至少,該語言的標準的制定權對世界公開。從這個角度來說,C# 當然不是開源的,畢竟它是被微軟掌控的。——當然,你可以對開源有不同的定義,在基礎定義不同的情況下討論這個問題並無意義。


Specification是公開的就行了。如果能做到這一點,可以說編程語言本身不存在「開源」一說,他只是一個標準而已。

能開源的是編程語言的實現


贊同編程語言是一種標準這個說法 語言本身沒有開源一說 比如java本身有標準 但是有很多實現的版本 這個時候一般說的事哪種實現是開源的 而不是java語言本身開源


Ruby Programming Language

A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.


Python PEP

Java JCP


LUA 啊!


推薦閱讀:

前任公司破產被註銷,在公司寫的代碼現在開源會不會負法律責任?
開源精神是否與知識產權保護相衝突?
安全公司或團隊都有自己的保密漏洞庫嗎?
網路遊戲的數據包通信協議定義有哪些資料可以參考?
如何禁止自己的開源項目的衍生品使用GPL-like(LGPL除外)協議?

TAG:程序員 | 編程 | 計算機 | 開源 |