2009-04-20 139 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的东西。它实际上已经到了某个地方并且被大量使用。

您的新范例必须具有清晰简明的摘要,以便人们可以将其纳入语言可用的位置,如何使用语言,使用语言的成本和收益。

“新的编程范式”引起一些人说“为什么学习一个全新的范例,当我工作得很好的时候?”你必须非常清楚它是如何帮助建立一个新范例的。

语言和库必须工作,并且工作得非常好。一种不稳固的语言是毫无价值的。为了坚如磐石它必须非常简单

它必须有一个教程,将帮助任何人开始使用您的语言