Open source 怎样才能使一门语言成功?

Open source 怎样才能使一门语言成功?,open-source,programming-languages,project-management,Open Source,Programming Languages,Project Management,我对一种新的编程语言有一个有趣的想法。它基于一种新的编程范式,我在头脑中已经研究了一段时间。几周前,我终于开始着手为它开发一个基本的解析器和解释器 我希望我的新语言获得成功,并希望在它准备发布时最终围绕它创建一个社区。它背后的想法是相当创新的,因此我不希望它在商业世界中获得很多进展,但看到少数初创企业或开源项目使用它,我会感到最激动 考虑到这些目标,我能做些什么来帮助我的语言成功?语言项目如何取得成功?我应该不惜一切代价避免什么?我喜欢听关于其他语言的观点或故事——成功与否——这样我可以在继续发

我对一种新的编程语言有一个有趣的想法。它基于一种新的编程范式,我在头脑中已经研究了一段时间。几周前,我终于开始着手为它开发一个基本的解析器和解释器

我希望我的新语言获得成功,并希望在它准备发布时最终围绕它创建一个社区。它背后的想法是相当创新的,因此我不希望它在商业世界中获得很多进展,但看到少数初创企业或开源项目使用它,我会感到最激动

考虑到这些目标,我能做些什么来帮助我的语言成功?语言项目如何取得成功?我应该不惜一切代价避免什么?我喜欢听关于其他语言的观点或故事——成功与否——这样我可以在继续发展的过程中思考它们


到目前为止,我最关心的两个问题是找到一个市场,访问现有的库,拥有惊人的工具支持。我还可以在此列表中添加哪些内容?

尽管卡尔·福格尔(Karl Fogel)(可在线阅读)的书并不是专门针对新编程语言的,但它可能包含一些关于围绕新编程语言创建社区的提示

就一般编程语言的采用而言,最近的趋势似乎是拥有丰富的库以缩短开发时间

由于没有太多关于您的语言是什么样的细节,因此很难确定该语言的采用是否取决于丰富库的可用性。也许你的语言将能够填补一个被其他语言忽视的领域,并获得用户。或者它有一个吸引人的花哨名字——有很多因素会影响语言的采用

以下是在思考最近成功的语言时想到的一些因素:

  • 能够利用新语言中的现有库

    • 具有用其他语言编写的外部库的适配器。
      • 允许通过访问以C编写的代码
    • 目标是一个已经有大量可用库的平台。
      • 并以Java平台为目标,因此允许在现有Java代码之间使用和互操作
  • 语言设计和语法,以提高生产率

    • 许多动态类型语言已经变得流行起来,例如和Python
    • 可以使用Groovy等语言编写更简洁、更清晰的代码,而不是Java等冗长的语言
    • 提供诸如和之类的功能,而这些功能在更“传统”的语言(如C和Java)中没有提供
  • 一个专注的用户社区,他们也愿意向新手传授一种语言的好处

    • 对于一种语言的广泛支持来说,人为因素将是巨大的——如果人们从未开始使用您的语言,它将不会获得更多的用户
另外,我可以补充的另一个建议是开放您的语言开发——让您的用户了解您的语言开发情况,并允许人们向您提供反馈。更好的是,如果您觉得合适,让您的用户参与决策过程

我相信,通过提供参与培养一门语言的方式,更多的人会觉得新语言的成功与他们有利害关系,因此它获得更多支持的可能性就越大


祝你好运

不要担心如何使语言获得成功;担心用它来解决真正的问题和赚钱

你要么用这种语言赚大钱,要么就不用。一旦你有了很多钱,其他人可能会关心你是如何做到的。不管怎样,你都有很多钱

如果你赚不到很多钱,没有人会想知道你是怎么做到的


根据评论编辑:我将成功定义为人们使用它来解决问题,人们使用语言来解决问题,大多数是为了盈利,因此成功==盈利。

除了使语言易于使用之外(有几个含义),您应该开发一个全面的库,涵盖并提供(以下最重要的领域)的良好抽象级别:
*数据结构和操作
*文件I/O支持
*XML处理
*网络(加上基于web的技术,如HTTP/HTTPS)
*数据库支持
*同步和异步I/O
*进程和线程
*数学


一个经过深思熟虑的框架,可以使快速开发更快(更容易维护),这将是一个很好的补充。为此,您应该非常了解当前流行的框架。

大多数最终迅速崛起的语言都是通过杀手级应用程序实现的。对于C,它是Unix。Ruby有Rails。JavaScript是大多数浏览器所共有的唯一可用编程系统,没有第三方附加组件

另一种成功方式是通过菲亚特。这只有在你有重大影响力的情况下才有效。例如,C#语言可能是一种很好的语言,如果微软没有像现在这样大力推广,它就不会像现在这样流行。Objective-C是MacOS X的语言,因为苹果这么说


然而,绝大多数语言都缺乏一个杀手级应用程序或主要的企业支持者,它们通过各自创作者的长期投资获得了成功。Perl和Python就是最好的例子。C++没有一个实体,但它已经随着开发者的需求而改变。p> 通用任务的良好框架

易于安装/部署

良好的文件

调试器/IDE和