2009-04-20 58 views
2

我對一種新的編程語言有一個有趣的想法。它基於一個新的編程範例,我一直在研究一段時間。幾個星期前,我終於開始爲一個基本的解析器和解釋器開始工作。使語言成功需要什麼?

我希望我的新語言成功,並且我希望在它準備發佈時最終創建一個社區。它背後的想法相當具有創新性,所以我並不期望它在商業世界中佔有很大的優勢,但它讓我感到非常興奮,因爲看到少數幾家初創公司或開源項目使用它。

因此,考慮到這些目標,我能做些什麼來幫助我的語言成功?語言項目做什麼才能成功?我應該避免不惜一切代價?我很樂意聽到關於其他語言的意見或故事 - 成功與否 - 所以我可以在我繼續發展的過程中思考它們。

到目前爲止,我腦海中最關心的兩個問題是找到一個市場,訪問現有的庫,擁有驚人的工具支持。我還可以在此列表中添加什麼?

回答

4

雖然不是特定於新的編程語言,但Karl Fogel的書Producing Open Source Software(可在線閱讀)可能包含有關圍繞新編程語言編寫社區問題的一些提示。

就通常採用的編程語言而言,最近趨勢似乎是擁有豐富的庫來縮短開發時間。

由於沒有太多關於您的語言是什麼樣的細節,因此很難確定語言的採用是否取決於豐富圖書館的可用性。也許你的語言能夠填補被其他語言忽略並能夠獲得用戶的利基。或者也許它有一個可以吸引人的光滑名稱 - 影響語言採用的因素很多。

這裏有一些因素考慮最近成功的語言時,浮現在腦海中:

  • 能夠利用現有的圖書館在新的語言。

    • 具有用其他語言編寫的外部庫的適配器。
    • 針對已有大量庫可用的平臺。
      • GroovyScala針對Java平臺,因此允許使用現有Java代碼並互操作。
  • 設計語言和語法,以便提高工作效率。

    • 許多動態類型語言已經流行起來,比如Ruby和Python來命名一對夫婦。
    • 可以使用諸如Groovy之類的語言編寫更簡潔明瞭的代碼,而不是諸如Java之類的冗長語言。
    • 提供諸如functions as first-class objectsclosures之類的功能,這些功能不是以更傳統的語言(如C和Java)提供的。
  • 竭誠爲用戶誰也願意爲語言

    • 人的因素將是在一個語言廣泛傳播支持大的好處教新人的社區 - 如果人們從不開始使用你的語言,它不會獲得更多的用戶。

而且,我可以添加另一個建議是讓你的語言開放的發展 - 讓你的用戶張貼在您的語言發展,讓人們給你的反饋。更好的是,讓用戶參與決策過程,如果你覺得合適的話。

我相信通過提供參與提升語言的方式,越多的人會覺得他們對新語言的成功有着重要的影響,所以他們越有可能獲得更多的支持。

祝你好運!

1

不要擔心試圖讓語言成功;擔心使用它來解決實際問題並賺取真錢。

你要麼使用這種語言,要麼賺很多錢。一旦你有很多錢,其他人可能會關心你是如何做到的。或者不,無論哪種方式你有很多錢。

如果你沒有賺很多錢,沒有人會想知道你是如何做到的。

編輯根據評論:我定義成功使用它的人,人們使用語言來解決問題,大多數是爲了獲利,因此成功==盈利。

+2

他實際上並沒有說他想賺錢。 – Blorgbeard 2009-04-20 04:35:51

+0

他問如何使語言「成功」,就像問,如何使一把錘子「成功」,好好利用它的工作。打釘子或賺錢。 – 2009-04-20 04:42:20

+0

無論他是否用金錢來表示,你的答案根本就不是答案。如果他確實用金錢來表示,那麼你的答案就像「如果你想成功,你必須取得成功」。 – hasen 2009-04-20 06:29:49

1

除了使語言易於使用(其中有好幾個意思),你應該制定一個全面的庫覆蓋,還提供了抽象了的良好的水平(以下最重要的領域):
*數據結構和操作
*文件I/O支持
* XML處理
*網絡(加上基於Web的技術,如HTTP/HTTPS)
*數據庫支持
*同步和異步I/O
個*進程和線程
*數學

一個深思熟慮的框架,使快速發展更快(更容易維護)將是一個很好的補充。爲此,您應該瞭解當前流行的框架。

2

大多數快速起飛的語言都是通過殺手級應用程序來實現的。對於C而言,它是Unix。 Ruby有Rails。 JavaScript是大多數瀏覽器沒有第三方附件的唯一可用的編程系統。

另一種成功的方式是通過法定的。這隻適用於你有重要影響力的情況。例如,如果C#和語言一樣好,就不會像現在那樣受歡迎,因爲如果微軟沒有像現在這樣努力推動它的話。 Objective-C是MacOS X的語言,僅僅是因爲蘋果這麼說。

儘管絕大多數語言缺乏單一的殺手級應用程序或主要的企業支持者,但通過各自創作者的長期投資獲得了成功。 Perl和Python是最好的例子。 C++沒有單一的實體,但它隨着開發人員需求的變化而發展。

0

常見任務

好的框架

易於安裝/部署

好的文檔

調試器/ IDE和其他工具

使用您的語言的流行主打產品!

0
  • 良好的文檔,包括詳細的參考手冊以及簡單的例子,讓人們快速入門。

  • 良好的圖書館支持,使人們可以真正寫出有用的程序。

大多數流行的語言似乎在其中一個或兩個或兩個都非常強大。

1

請記住,它需要很長的時間。我認爲它花了大約10年的時間(有人請糾正我,如果我錯了)。

所以,即使你的社區在說了5年之後仍然顯得很小,那還不是故事的結尾。

1

「它基於一種新的編程模式,我一直在努力研究一段時間。」

雖然值得讚美的是,有些人已經對你的「新」範式做了一些事情的可能性非常好。

爲了使語言可用,它必須建立在現有技術上。完全新的並不是成功的好途徑。我最喜歡的例子是Algol 68.

Algol 60受到了廣泛的歡迎(當然,這是前一陣子,不久前,不可否認)。

專家們希望藉此成功。他們提出了一些新的範式,這些努力分成各派。純粹主義者把這種新範式帶入了Algol 68;它消失在朦朧中。一些人創建了一個不同版本的Algol,稱爲PL/I。它沒有任何新的範例。它實際上去了某個地方,並被大量使用。另一個團隊創建了Pascal - 它沒有太多新的東西 - 它丟棄了Algol 60的東西。它實際上已經到了某個地方並且被大量使用。

您的新範例必須具有清晰簡明的摘要,以便人們可以將其納入語言可用的位置,如何使用語言,使用語言的成本和收益。

「新的編程範式」引起一些人說「爲什麼學習一個全新的範例,當我工作得很好的時候?」你必須非常清楚它是如何幫助建立一個新範例的。

語言和庫必須工作,並且工作得非常好。一種不穩固的語言是毫無價值的。爲了堅如磐石它必須非常簡單

它必須有一個教程,將幫助任何人開始使用您的語言