开源编程语言能否生存?[关闭]


12

一位朋友写了一种编程语言。它的语法让人联想到SGML。他为此编写了一个解释器和一个IDE。他和他的同事在内部将其用作服务器端语言。它也可以用来编写命令行工具。

他希望将其提供给公众,以期人们会购买使用许可证。他想保留自己表达语言实现的代码,因为其中包含相当多的知识产权。

我一直告诉他,封闭式编程语言的日子已经一去不复返了。我说:“请查看所有主要语言:绝大多数语言都是开源的。如果您希望公司以外的任何人都对自己构建的内容给予关注,那么您也将必须开源。”

我是在给他提供很好的建议吗,还是您需要付费使用专有语言的空间?

后来

丹问:“ ...您能否也请您解释一下如何封闭源语言?”

我说:“ @ Den,您说得很对。我想我的朋友想避免的情况是,Microsoft编写了类似Java的语言,将其称为J ++,然后就其Java风格与Sun展开了诉讼。 。如何保护语法和编程方法,以免被实施可能使您倒闭的公司所劫持?”


你给他一个很好的建议。
Basile Starynkevitch 2014年

14
这不是封闭源代码的问题,而是金钱的问题-没有人为编程语言付费。
法拉普2014年

8
如果语言足够好,值得花钱,那么人们将愿意付钱。我敢打赌,这种语言还不够好,不能花多少钱,特别是与免费替代语言相比。
user253751

1
我怀疑您的朋友是否可以使用实际语言的版权-请看欧盟关于SAS的裁决
科林·皮卡德

7
“没有人为编程语言付费”-专门行业或用例除外。我想到的是Wolfram(wolfram.com/language)。付费语言列表将突出显示值得付出的其他用例。
Freiheit,2014年

Answers:


10

答案是肯定的,不是。它取决于潜在客户的商业动机,语言的属性及其所解决的问题。

不,世界不需要由个人或小团队创建的另一种通用计算语言。当创建Perl,Python,Ruby,Java和Javascript时,就会出现空白,专有语言价格昂贵,入门门槛很低。Rebol是一种从付费开始,现在免费的游戏。查看C#和Go,看看它现在有多难了,团队有多大,即使对于或多或少免费的语言也是如此。

但是,是的,世界急需利基语言来填补一系列特定角色,并且会为此付出高昂的代价。我无法引用您的示例,因为您和我都从未听说过这些示例,但是它们经常在高度专业化的情况下使用,它们为创作者赚钱。解决问题,您将获得报酬。

因此,为使您的朋友赚钱,他需要三件事中的一项或多项。

  1. 一个可识别的技术利基市场,他的语言是最适合的解决方案,最好具有相当高的进入门槛,以减慢竞争对手的竞争。
  2. 可识别的客户群,其语言可以解决的问题以及为解决该问题而付出的能力。
  3. 一套预先编写的代码,文档,教程和技能,使客户可以立即使用它并立即开始解决问题。

依靠小公司提到的问题并非编程语言所独有,并且可以通过商业手段轻松解决。

披露:我是商业编程语言系统(Powerflex)的作者,该系统帮助很多人建立了软件业务。随着Internet窗口的打开,该窗口关闭。


20

语言不是开放源代码或封闭源代码。例如,G ++是开放源代码,而MSVC ++是封闭源代码。ISO C ++都不是,它是一个非免费的非专有标准。

您的朋友可以发布一个非优化的开源实现,并出售精美的优化编译器。简单实施不需要有趣的知识产权。

适用于此模型的现有语言是PHP / Zend Server


17

他的语言是否足以满足人们的需求?

实际上,这是唯一决定业务模型是否行得通的事情。您是否拥有庞大的用户市场,而这些用户又足够大而不必担心许可成本?语言是否支持客户不能没有的设备或标准,并且没有其他支持?仅仅通过使用这种语言,客户就能聘请最优秀,最聪明的程序员,并实现巨大的生产率增长,这真是太疯狂吗?管理层是否知道这种权衡

如果是上述情况中的任何一种或任何可比的情况,则该业务模型可能会起作用。否则,它可能不会:迟早会有人提出削减成本的措施,其中涉及转向更便宜的替代方案。


3
不错的问题,但由于这是一种新语言,因此其中绝大多数问题都必须以否定的方式回答。有点像一个年轻人想找一份工作:当您太年轻时,您如何满足拥有经验的要求。
bugmagnet 2014年

1
由于你的答案收到这么多的upvotes,请你也解释如何语言封闭源代码
书斋

@Den,你说的很对。我的朋友想避免的情况是,Microsoft编写了类似Java的语言,将其称为J ++,然后就其Java风格与Sun展开了诉讼。您如何保护语法和编程方法,以免被实施可能使您倒闭的公司所劫持?
bugmagnet 2014年

14

我相信没有,小公司出售专有实现的新语言已经没有空间了。

首先,开发人员还有许多其他免费的语言实现(至少是“啤酒中的”,通常是“语音中的”)语言实现,他们不会费心尝试使用(昂贵的)语言。

其次,任何经理都会立即提出反对:如果提供语言实现的小公司破产了,将会发生什么?用新语言编码的代码库会怎样?这种说法可能会禁止任何人购买该语言的实现!

相比之下,如果编写原始软件的公司破产,则客户可以粗略评估免费软件语言的实现,该软件始终可以为其他提供商处理其服务。

从客户的角度来看,采用新语言的成本不在实施许可中,而是在使用该语言所需的技能中。

并且有许多几乎未使用的自由软件语言实现。


5
尽管它们是较大软件包的一部分,但人们确实需要使用Matlab,Maple,Mathematica和UnrealScript。
Trillian 2014年

7
但是这些不是来自一个不知名的小型公司,而出售它们的公司始于上个世纪。
Basile Starynkevitch 2014年

3
@Trillian:尽管Turing已经完成,但是您提到的那些语言不是通用语言,它们是专门为在特定平台上使用而设计的,首先是数学和图形平台,最后是游戏引擎。这些平台使这些语言物有所值,并为需要该平台功能的人们学习新的语言带来了麻烦。可以说,他们不仅在销售语言,而且在销售整个平台。
Lie Ryan

5

语言不能是封闭源代码。它的编译器和运行时库可以是封闭源代码。语言的正式语法可以作为秘密保存,并受到法律保护(NDA等),并收取使用费。

如果您的朋友新颖新颖,您的朋友可以要求知识产权或专利。我本人高度怀疑这样做是否值得。

如今,大多数公司都首先选择公开可用的技术,无论要达到封闭源方法所能达到的相同效果要花费多少精力。接下来,如果开销非常大,那么他们会采用行业标准的解决方案-具有良好渗透和支持的标准化专有语言(例如Matlab)。

内部语言通常以DSL(特定于域的语言)的形式构建,如今,这些工作比购买其他人的DSL并进行改编要少。同样,DSL是非常特定于问题域的。

现在,让我们不要阻止您的朋友通过他的语言获利。有很多方法可以做到这一点-将其出售给一家大型的成熟公司,或让一些投资者购买该想法并对其进行投资-但他在方法上的主要问题是他在没有研究开发问题的情况下开发了解决方案。那不是认为问题的问题,而是他潜在客户认为问题的问题。因此,他可以出去与这些家伙交谈,而无需给出有关他的解决方案的详细信息并让这些家伙付钱-这不是不可能,但不太可能。


4
“可以将一种语言的正式语法作为秘密保存起来” –任何人如何在不知道其语法的情况下使用该语言?
el.pescado 2014年

2
@ el.pascado:确保要使用该语言的任何人都签署了NDA,这很烂,但是一些笨拙的经理可能会认为这是个好主意。
Lie Ryan

3

当我的一位客户考虑使用ColdFusion开发主要应用程序时,我自己进行了讨论。就我个人而言,当我可以使用PHP(而不付费)时,我想不出任何理由使用CF(并为此付费)。但是,CF背后有一家大公司,它可以缓解OSS恐惧症(与足够的IT经理打交道,最终您肯定会遇到其中的一些人),而且它足够好,足以让足够多的开发人员真正喜欢它。

但是,最重要的是,您的朋友需要提出足够好的东西,并且要有足够的支持。如今,前者在所有已经完全成熟的开源平台周围都是绝招,后者需要至少像Adobe这样规模的参与者的支持。

更不用说与OSS相比,如今CF甚至都具有微不足道的市场份额。

总而言之,如果您的朋友足够聪明,想出一些使PHP,Python和朋友以及商业头脑不凡的东西,足以将其卖给市场上更大,更知名的公司之一,那么答案是“也许”。否则,这是一个响亮的“否”。


2

我认为在这种情况下,答案是肯定的。有一个新的由驱动的语言小实体造成严重的安全漏洞或缺少关键功能的高风险。

如果该语言是专有语言,那么作为一种用户,如果该语言无法按照您所需要的方向发展,那么您绝对会陷入困境。如果语言是免费的,则您可以花钱或人工解决问题(至少对于大公司而言是一种选择)。

您的朋友最好卖互补的服务或产品。提供支持,培训,咨询。通过添加特别要求的功能获得报酬。提供工具(例如以流行的IDE的商业插件形式)。根据商业许可模式提供一些图书馆(但在适当的限制下仍包括其来源)。


1

尽管我不愿劝阻您的朋友,但我认为他这些天不太可能说服人们为开发工具付费,除非该工具可以极大地提高生产率(例如“通过让管理者看上去很交叉来生产工作软件,在思考好想法的同时在屏幕上!!”)。不管是好是坏,由于免费工具的数量和质量都非常好,如今“按需付费”开发工具的市场很少。(见证语言,例如Java,Ruby,Python,Clojure-IDE(例如Eclipse和LightTable)-数据库(例如MySQL和PostgreSQL-清单不胜枚举)。我祝他在这一工作中一切顺利。


至于语言,您可能有一点。不过,仍然有付费开发工具市场。我听说,MS,Adobe,JetBrains等并不完全损害现金。似乎在某个地方有免费的“精简版”或试用版的争论。
cHao 2014年

1

它可以。如果是:

  • 好和/或足够有用
  • 如果适用的话足够容易并且
  • 如果不是太贵

实际上-对于初学者来说,它在前两个项目上应该确实很强大,并且与其实际价值相比非常便宜。

我看到大多数人抱怨邪恶的管理者不愿意为此付出大笔金钱-您从来没有说过您的朋友在向许可证要钱。如果他要求每年$ 500,并且每年为公司节省几百个工作时间,该怎么办?任何聪明的经理都会抓住它。


0

这取决于该语言是否提供足够巧妙的功能,以至于我(代表客户)愿意为此付费。

作为项目经理,我需要考虑以下几点:

  • 学习/掌握新语言所花费的时间。
  • 与其他语言相比,效率提高(到交付的时间)。它是否使学习时间变得多余?
  • 这种语言是否解决了其他语言难以解决的问题?
  • 五年后仍会支持该语言吗,客户是否应提出其他要求?

前三点适用于每种语言,尤其是第一种对于每种新语言都很难克服,因为我需要用某种东西来推论生产力非常低下的时间,并且最好成为一门好语言。

第四点是仅适用于封闭源语言的语言,就像我依赖第三方的语言一样,从现在起的5年内可能存在或不存在。从现在开始的5年之前,移动应用程序已不像今天那么重要,从那时起的语言是否会适应当前的情况,并允许我编写移动应用程序?它甚至可以与新要求兼容吗?如果我的客户有这种要求,我可以联系该语言的开发人员并提出升级请求吗?

如果以“否”回答这些问题中的任何一个,那么它可能是世界上最好的语言,我不能使用它。而且,如果我听说有一个人在他的“业余时间”发明了这种语言,并且现在是一个单人公司,那么我会对此非常怀疑,而不是使用该语言,除非我得到非常可靠的承诺语言提供了我所没有的其他功能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.