web-dev-qa-db-ja.com

クローズドソースのプログラミング言語は存続できますか?

友人がプログラミング言語を書いた。 SGMLを連想させる構文があります。彼はそのためのインタプリタとIDEを書きました。彼と彼の同僚は、サーバーサイド言語として社内で使用しています。コマンドラインツールの記述にも使用できます。

彼は、人々がそれを使用するためのライセンスを購入することを期待して、それを一般に公開したいと考えています。言語の実装にはかなりの知的財産が結び付けられているため、彼は言語の実装を自分で表現するコードを保持したいと考えています。

私は、クローズドソースのプログラミング言語の時代が終わったと彼に言い続けています。 「すべての主要言語を見てください。大多数はオープンソースです。自分が作成したものに社外の誰かが注意を向けるようにするには、オープンソースに移行する必要があります。」

私は彼に良いアドバイスをしていますか、それともあなたが支払う独自の言語のための余地はまだありますか?

[〜#〜]後で[〜#〜]

デンは、「...言語をクローズドソースにする方法についても説明してもらえますか?」

私は言った、「@ Denあなたは良い点を作ります。私の友人が避けたいのは、おそらく、MicrosoftがJavaに似た言語を作り、それをJ ++と呼んで、SunとそのJavaの性質について訴訟を起こす状況でしょう。 。どのようにして、構文とプログラミング方法論を、実装によってビジネスを倒せる可能性のある会社に乗っ取られるのを防ぐのですか?」

12
bugmagnet

答えはイエス、ノーです。それは潜在的な顧客の商業的動機と言語の属性およびそれが解決する問題に依存します。

いいえ、世界は個人または小さなチームによって作成された別の汎用コンピューティング言語を必要としません。 Perl、Python、Ruby、JavaおよびJavascriptが作成されたとき、埋める真空があり、独自の言語は高価であり、参入の障壁は低かった。Rebolは最初から有料であり、 C#とGoを見て、現在の難易度と、多かれ少なかれ無料の言語であっても、チームがどれほど大きいかを確認してください。

しかし、はい、世界は特定の役割の全範囲を満たすためにニッチ言語をひどく必要とし、それらのために十分に支払うでしょう。あなたも私もそれらのほとんどを聞いたことがないので、私はあなたに例を引用することはできませんが、それらは非常に特殊な状況で日常的に使用されており、彼らはクリエイターのためにお金を稼いでいます。問題を解決すれば、報酬が支払われます。

したがって、あなたの友人がお金を稼ぐためには、3つのうちの1つ以上が必要です。

  1. 彼の言語が利用可能な最良のソリューションである、識別可能な技術的ニッチ。できれば、競合他社を減速させるための参入に対する適度に高い障壁がある。
  2. 彼の言語が解決できる問題を特定できる顧客セグメントと、それを解決するために支払う能力。
  3. 事前に記述されたコード、ドキュメント、チュートリアル、およびスキルの集まりで、顧客はそれをすぐに使用して問題の解決をすぐに開始できます。

中小企業への依存で言及された問題は、プログラミング言語に固有のものではなく、商業的手段によって簡単に解決されます。

開示:私は、多くの人々がソフトウェアビジネスを構築するのを支援した商用プログラミング言語システム(Powerflex)の作者です。そのウィンドウは、インターネットウィンドウが開いたときに閉じました。

10
david.pfx

言語は、オープンソースでもクローズドソースでもありません。たとえば、MSVC++はクローズドソースですが、G ++はオープンソースです。 ISO C++もどちらでもありません。フリーではない独自の標準です。

あなたの友人は、オープンソースの非最適化実装をリリースし、豪華な最適化コンパイラを販売することができます。興味深い知的財産は、簡単な実装には必要ありません。

このモデルで動作する既存の言語はPHP/Zend Serverです

20
MSalters

彼の言語は十分な人々が支払うであろう何かをしますか?

これが、ビジネスモデルが機能するかどうかを決定する唯一の要素です。ライセンスコストを心配する必要がないほど大きなユーザーの市場はありますか?この言語は、顧客なしでは生きていけないデバイスや標準をサポートしていますか?この言語を使用するだけで、顧客は最高の優秀なプログラマーを雇い、生産性を大幅に向上させることができます経営陣はそのトレードオフを理解していますか

これらまたは同等のものが当てはまる場合、ビジネスモデルはおそらく機能します。そうでなければ、おそらくそれはできません:遅かれ早かれsomeoneは、より安価な代替品への切り替えを含むコスト削減策を考え出します。

17
Kilian Foth

いいえ、小さな会社が販売する独自の実装を使用して新しい言語を追加する余地はないと私は信じています。

まず、開発者は他にも多くの無料の(少なくとも「ビール」として、多くの場合「スピーチとして」)言語実装を持っているため、(高価な)言語を試してみる必要はありません。

次に、マネージャーはすぐに反対します。言語の実装を提供している小さな会社が破産した場合、新しい言語でコード化されたコードベースに何が起こるでしょうか。この議論はおそらく誰もが言語の実装を購入することを禁止するでしょう!

対照的に、フリーソフトウェア言語の実装は、顧客が大まかに評価できます。顧客は、それを書いた元の会社が破産した場合、常に別のプロバイダーへのサービスを処理できます。

クライアントの観点からすると、新しい言語を採用するコストは、実装のライセンスではなく、それを使用するために必要なスキルにあります。

そして、ほとんど使用されていない多くのフリーソフトウェア言語実装があります。

14

言語をクローズドソースにすることはできません。そのコンパイラとランタイムライブラリは、クローズドソースにすることができます。言語の正式な文法は秘密として保持され、法的に保護され(NDAなど)、使用料が徴収されます。

あなたの友人は、その言語がとても新しくて斬新であるなら、知的財産または特許を主張することができます。私自身、これが努力に値するものであるかどうかは非常に疑わしいです。

最近では、ほとんどの企業が、公開ソーステクノロジーを最初に選択しています。これは、クローズドソースアプローチと同じ効果を達成するのにどれほどの労力が必要であっても関係ありません。次に、オーバーヘッドが非常に大きい場合、それらは業界標準ソリューション-優れた浸透性とサポートを備えた標準化された独自言語(Matlabなど)に進みます。

社内言語は通常DSL(ドメイン固有言語)として構築されており、最近では、誰かのDSLを購入してそれを適合させるよりも労力は少なくなります。また、DSLは問題のドメインに固有のものです。

さて、あなたの友人が彼の言語を収益化することを思いとどまらせないでください。これを行う方法はあります-確立された大企業に販売するか、一部の投資家にアイデアを購入して投資させる方法ですが、アプローチの主な問題は、開発の問題を調査せずにソリューションを開発することです。そして、それはが問題を考慮している問題ではありません、それは彼の潜在的な顧客が問題を考慮しているものです。だから彼は外に出て、彼の解決策についての詳細を明かすことなくこれらの仲間と話し、それらの人にお金を払わせることができました-これは不可能ではありませんが、可能性は低いです。

5
TFuto

私のクライアントの1人が、ColdFusionを使用して主要なアプリケーションの開発を検討したとき、私はこの議論をしました。個人的には、PHP(そしてそれを支払うのではなく)を使用できるとき、CFを使用する(そしてそれを支払う)理由を考えることができません。しかし、CFはその背後にある大企業を持っています。 OSS恐怖症を鎮圧し(十分なITマネージャーに対処し、最終的にそれらのいくつかに遭遇することになります)、十分な開発者が実際に好むほど十分です。

ただし、問題はもちろん、友人が十分に優れたものを用意し、その背後に十分なバッキングを備えている必要があることです。前者は、最近完全に成熟したオープンソースプラットフォームがすべて存在するため、最近のトリックではありません。後者は、少なくともAdobeなどの規模のパーティの支援が必要です。

最近では、OSSと比較してCFでもわずかな市場シェアしかないということは言うまでもありません。

要約すると、あなたの友人がPHPを凌駕する何かを思いつくのに十分なほど優秀である場合、Python and friends andビジネスに精通しているので、それをより大きなそして市場でより評判の高いプレイヤーにとっての答えは「たぶん」ですが、そうでなければ、それは反響する「いいえ」です。

3

この場合、答えは明確なノーだと思います。 新しい小さなエンティティによって駆動される言語を使用すると、重大なバグや主要な機能が失われるリスクが高くなります。

その言語が独自仕様である場合、ユーザーが必要とする方向に言語が進化しなければ、ユーザーは絶対にうんざりしています。言語が自由であれば、問題にお金や人力を投じることができます(少なくとも大企業にとってはオプションです)。

あなたの友人は、補完的なサービスや製品を販売する方がはるかに良いでしょう。サポート、トレーニング、コンサルティングを提供します。特別にリクエストされた機能を追加することで報酬を得ます。ツールを提供します(たとえば、一般的なIDEの商用プラグインの形式で)。商用ライセンスモデルに基づいて一部のライブラリを提供します(ただし、適切な制限の下に含まれているソースを使用します)。

2
back2dos

私はあなたの友人を落胆させたくないのですが、このツールが生産性に信じられないほど大きな利益をもたらさない限り、最近彼が人々に開発ツールにお金を払うよう説得する可能性は低いと思います良い考えを考えながら画面で!!!」)。良くも悪くも、無料のツールの量と質が優れているため、最近は「有料の」開発ツールの市場はほとんどありません。 (Java、Ruby、Python、Clojureなどのミラーリング言語-EclipseやLightTableなどのIDE-MySQLやPostgreSQLなどのデータベース-リストは次々と続きます...)。私は彼がこの努力で最高の幸運を祈っています。

できる。もしそれが:

  • 良い、および/または十分に役立つ
  • それが十分に適用可能であり、
  • 高すぎないなら

実際、まず第一に、それは最初の2つのアイテムが本当に強く、実際の価値に比べて非常に割引になるはずです。

大金を払いたくない悪質なマネージャーについて不満を言う人のほとんどがいます-あなたの友人がライセンスのために財産を求めていると言ったことは一度もありません。彼が年間500ドルを要求し、それによって会社が毎年数百時間の労働時間を節約できるとしたらどうでしょう。どんな賢いマネージャーもそれを手に入れます。

1
userfuser

それは、その言語が私(お客様を代表する)がそのためにお金を払う気があるほど独創的なものを提供しているかどうかに依存します。

プロジェクトマネージャーとして、私は考慮する必要があります:

  • その新しい言語を習得/習得す​​るのにかかる時間。
  • 他の言語と比較した効率向上(納品までの時間)。そして、それはそれを学ぶ時間よりも重要ですか?
  • この言語は、他の言語ではほとんど解決できない問題を解決しますか?
  • この言語は5年間サポートされますか?お客様が別のリクエストを行う必要がありますか?

最初の3つのポイントはすべての言語に当てはまり、特に最初の1つはすべての新しい言語で克服するのが難しいです。なぜなら、私は何かで非常に低い生産性の時を推論する必要があり、それがより良いものである方が良いです。

4番目の点は、私がサードパーティに依存しているものと同様に、クローズドソース言語にのみ適用されるもので、現在から5年後に存在する場合と存在しない場合があります。今から5年前、モバイルアプリは今日ほど大きなものではありませんでしたが、それ以降の言語は現在の状況に適応し、モバイルアプリも作成できるようになりますか?新しい要件にも対応できますか?顧客にそのような要件がある場合、その言語の開発者に連絡して、アップグレードのリクエストを提出できますか?

これらの質問のいずれかが「いいえ」で回答された場合、それは世界で最高の言語になる可能性があるため、使用できません。そして、彼の「余暇」でこの言語を発明し、現在は独身の会社として働いている一人の人間がいると聞いた場合、私は非常に確固たる約束がない限り、その言語を非常に疑い、むしろその言語を使用しません。そしてその言語は私に他にできないようなものを提供します。

0
TwoThe