回答:
一般的に言って、プログラミング言語の開発にお金はありません。
C#は確かにMicrosoftに利益をもたらしますが、本質的には.NETフレームワークやその他のMicrosoftテクノロジーを促進することで間接的に利益を生み出しています。
ほとんどのプログラミング言語プロジェクトが惨めに失敗するという非常に単純な理由のために、プログラミング言語からお金を稼ぐことはほとんどありません-その言語はデザイナーによって(そして時には彼らでさえ)使用され、他の誰によっても使用されなくなります。すべてのC#またはJavaには、何千もの言語が行き渡っています。
ただし、言語設計は楽しいので、人々はプラグインをし続けます。運が良ければ、かなりのお金を稼ぐことができます。たとえば、Stroustrupの本The C ++ Programming languageは、第3版が登場するまでに500,000コピーを販売していました。私の第3版 27.95ポンドの費用がかかり、出版社や小売業者の削減を考慮しても、彼はそこからちょっとした変更を加えたに違いありません。
MATLAB(MathWorks)やMathematica(Wolfram Research)など、特定のドメインを目的とした特定の独自言語は、最終的に素晴らしい「ライフスタイル」ビジネスになります。Kx Systemsがq / kdb +で行ったように、言語をミドルウェアとして販売することもあります(言語ではなくデータベースとして販売しています)。
代替のビジネスモデルは、HerokuがRuby on Railsで行うように、ホスティングを提供することです。(37Signalsは、そのビジネスを追求しないことにより、そのビジネスを事実上譲渡しました。)
また、他の人が言ったように、言語は、C#が.NETで行ったように、アプリ開発者を特定のプラットフォームに固定するための損失リーダーとして使用される可能性があります。
コンサルティングや書籍に関しては、これらはかなり限られた収益モデルです。コンサルティングには規模を拡大するために多くの人材が必要であり、本には飽和点があります。より良いモデルは、ホスティングまたはエンタープライズライセンスです。
だから、あなたは生活を作りたいとしましょう次の人気の言語を書いオフ。「生計を立てる」とは、フルタイムの仕事(任意の仕事-必ずしも技術的な仕事ではない)での合理的な賃金に相当することを意味します。あなたが自分の仕事を本当に愛しているなら、あなたはたぶんそれをするために少し少なめに受け入れるでしょう、それで1時間あたり12.50 ドル、または2000ドル/月としましょう。
安定した仕事をしながら、最初のバージョンをリリースし、寄付のための施設をセットアップします。その後、言語のユーザー数に応じて、継続的な開発とマーケティングを行います。控えめに見積もって、ユーザーの1%が寄付し、それぞれが平均$ 1 / yearを寄付します。
つまり、2000ドル/月の給与を得るには、1年の12か月ごとに2000人の寄付ユーザーが必要です。それはだ240万人のユーザーの合計。言語がこのように人気を得るには10年かかると仮定しましょう。したがって、年間平均240 000ユーザー、または月20 000ユーザーを獲得する必要があります。
フルタイム(160時間/月)に相当する時間を使用している場合、プロモーション戦略と実装品質は、1時間あたり平均125ユーザーを獲得するのに十分でなければなりません。もちろん、それはリピートユーザーです。あなたの言語を試す人の20%がリピートユーザーになる場合、実際には625人/時間のコンバージョン率が必要です。
場合であっても一人一人あなたが直接説得人々のは説得4より多くの人々を、彼らはあなたが戻ってダウン静止している他の人、そして説得しようとするには行っていないと仮定して、あなたの言語と単純化のためにしようとする125ユーザー/時間の数値。
さて、これはまったく不合理に思えるかもしれませんが、それでもまだうまくいくと信じています。あなたのマーケティング戦略は、あなたの言語が着実になっている10年の期間でほぼ線形の成長を生み出し、それからプラトーになります。つまり、最初は1時間あたり平均0ユーザーを変換し、10年後には250ユーザーを獲得することになります。(また、毎時。視点、こちら。)
これは、1年あたり1時間あたり平均25ユーザーの増加です。毎年の終わりには、1年の初めよりも1時間あたり25人、または1か月あたり4000人多くの人がコンバージョンを達成しています。
それでは、その240万人のユーザーの球場をもう一度見てみましょう。10年でその多くのユーザーを獲得することは可能でしょうか?Langpopが提供する(本質的に欠陥がありますが、それでも使用可能な)統計情報を正確なものとして受け入れると、Yahooの検索で現在流行している上位7言語に関する次の情報を取得します。1つの結果が1人のユーザーの代表として受け入れられた場合(私が知っている、我慢してください)、これらの数値は、言語が最初に表示されてから1年間に得られた概算の平均ユーザー数を示します。
これにより、物事が可能性の領域に戻ります。たとえばPythonと同じくらい人気のある言語を作成すれば、20年後にはその言語の開発とサポート(およびマーケティング!)時間の仕事。
1を作るC#などの人気として、そしてあなたは10でそれを行うことができます。クール!
…もちろん、そのようにそれを置くことは、言語を非常に人気にしている非常にありそうでなく困難な仕事を雑学にします。しかし、もしあなたが良いアイデアを持っていて、あなたが寄付金を削減する他の開発者の貢献なしで完全に自分でトップに到達することができれば、あなたは天才です、そしてあなたはそれに値する。
@Peterが言ったことを詳しく説明すると、ソフトウェアが他の何かをサポートするために作成されることは非常に一般的です。無料で提供されるものは、広告、プラットフォーム、デバイス、サービスなど、他の何かを宣伝するために使用されます。
プログラミング言語の場合、開発者を引き付けることでプラットフォームを促進することがすべてです。開発者を引き付けると、プラットフォーム用に作成されたソフトウェアが増え、プラットフォームが強化されます。開発者を引き付ける方法は、すばらしいツールを提供することです。言語はそのツールの1つです。実際、スマートフォン市場での地位を取り戻すために苦労しているMicrosoftの最も強力なカードの1つは、開発ツールです。「Windows Phone 7向けにiPhoneとAndroid用に作成したapsを簡単に再作成できます」、「Windows Phone 7用に作成されたアプリを他の画面用に簡単に作成できます」など。
また、ツールを自分で必要とするため、自分用のプログラミング言語を作成している場合もあります。
ドメイン固有の「小さな」言語の開発からもう少し利益を得ることができます。しかし、それらを売ることからではありません。利益のために販売するDSLがいくつかありますが、オープンソースの成功はさらに多く、失敗はさらに多くあります(オープンとクローズの両方)。
利益を得ることができるのは、それらから得られる生産性の向上です。この考えに基づいた一種の開発パラダイムがあります。
長所と短所は、C ++のテンプレートベースのプログラミングに似ていますが、それ以上です。たとえば、DSLは通常のライブラリよりも多くの先行作業を必要としますが、一度作成すると柔軟性、堅牢性、および「俊敏性」が大幅に向上します。パフォーマンスが大きな懸念でない限り、それを行うことはまずありません。そうしないと、実行時まで関連する作業を遅らせることがおそらく容易になります。たとえば、スキャナーコードジェネレーターの代わりに実行時正規表現ベースのスキャンエンジンを使用します。
「俊敏性」は、DSLの記述に熱心であることは明らかに俊敏性の原則に違反しているため、引用を怖がらせます。DSLが重い環境であっても、日常生活の一部としてDSLの開発に取り組むことはほとんどありません。
DSLを使用する1つの理由は、いくつかのビジネスルール(一種のエキスパートシステム仕様)をエンコードし、それらのルールで機能するコードを生成するためかもしれません。宣言的なビジネスルールから結果のコードへの変換は非常に洗練されている可能性があるため、ビジネスルールの仕様をかなり簡単に変更することで、生成されたコードへの大きな変更を処理できます。たとえば、DSLはディシジョンツリーを生成するか、有向グラフを介して依存関係をトレースし、再評価が必要なすべてのものが自動的に再評価され、サイクルがないことを確認します(コンパイル済みの「スプレッドシート」)。
これの極端なバージョンは、システムの一部にPrologのようなロジック言語を使用することかもしれませんが、これはある意味では極端です-それはまた、自分でDSLを構築するのではなく、単なる馬の言語選択ですパラダイム。
プログラミング言語を開発し、それらを標準化することは、実際には一人では行われません。StroustrupでさえC ++の発明者であり、世界中に多くの産業専門家が参加しています。それはボランティアサービスのようなものです。スコット・メイヤーズのような本を書く才能のある人々は、それからお金を稼いでいます。他の人々は、独立したコンサルタントまたは大規模組織のコンサルタントとして働いています。
最良の例は、C ++ 0x標準化です。今は何年も遅れています。委員会のメンバーが主な仕事で忙しく、仕様を確定するための定足数を作ることが難しいためです。
Microsoft Sun(Oracle)などの企業は、独自のプログラミング言語を開発し、IDEから利益を得ています。また、プラットフォームを通じてシームレスなサポートを提供しています。これは、問題に対するクローズドソリューションのようなものです。しかし、これらのプログラミング言語がISOまたは同様の委員会によって標準化/承認されているのは良いことです。Javaは、プログラミング言語を使用する企業のためにIPを販売しているようです。最近、オラクルはJavaのIP侵害でGoogleを提訴しました。
一言で言えば、それはオープンスタンダードのために働く人々のためのビジネスというよりは、ボランティアサービスのようなものです。
成功したプログラミング言語を作成するために管理する場合(私はあなたが個人であり、会社ではないことを想定します)、本を売ったり、会議で話したり、コンサルティングや買収や雇用を行うことでまともな生計を立てることは確かに可能性の範囲内です。プログラミング言語をさまざまな企業にライセンス供与することでお金を稼ぐこともありますが、成功する可能性は低くなります。
繰り返しになりますが、お金を稼ぐためのはるかに簡単な方法があり、ほとんどの個人(SunやMicrosoftなどの企業は除きます)は、チャレンジと、おそらくオタクの信念のためにより多くのことをします。
小さな会社/個人が主流のプログラミング言語を作成する可能性は非常に小さく、おそらく何らかのニッチを埋めようとする方が簡単でしょう。その後、再び、確かではないことは不可能そうすることが、私は行うことができないと言う人たちは、多くの場合、それを行うものによって中断されている:)