新しいプログラミング言語が主流に採用され、他の言語が比較的ニッチのままである理由に焦点を当てたいと思います。特定のユースケース、後方互換性、またはいくつかの新機能、単純または複雑な実装の難しさなどについて知りたいです。特定の例をいただければ幸いですが、ここで「主流」または「ニッチ」の正確な定義に追いつくことは避けましょう。
新しいプログラミング言語が主流に採用され、他の言語が比較的ニッチのままである理由に焦点を当てたいと思います。特定のユースケース、後方互換性、またはいくつかの新機能、単純または複雑な実装の難しさなどについて知りたいです。特定の例をいただければ幸いですが、ここで「主流」または「ニッチ」の正確な定義に追いつくことは避けましょう。
回答:
誰もが本当に知っていれば、彼らは非常に金持ちになるでしょう。
とはいえ、ここに私の推測があります:
可用性
BASICは、最初に登場したときに(すべて?)PCに付属していたひどい小さな言語です。Apple II(多くの高校のデフォルトのコンピューター)、およびATARI 400/800(最初の超安価な家庭用コンピューター)の両方にBASICが搭載されました。
UNIXマシン(AT&T system VまたはBerkeleyのいずれか)があれば、Cがありました。マシンをプログラムしたいなら、それを使用しなければなりませんでした。
編集:ネットの出現と遍在により、この要件は次のように変わります。
移行のしやすさ
ここではJavaが良い例です。Cプログラミングを知っていれば、Javaはそれほど進歩していませんでしたが、Cには欠けていた機能の多くを提供し、C ++はきれいに提供できませんでした。
明らかな理由でC ++はCからの簡単な前進であり、「改善された」Cとして経営陣に販売するのは簡単でした。
Perlは、C、awk、sed、およびその他のUnixユーティリティをすべて1つのバンドルにまとめたものです。登場する前は、ほとんどのシステム管理はシェルスクリプトを介して行われ、すべてが不満足な方法で接着されていました。Cに似た言語のデータ構造と制御を使用して、すべてを1つのプロセスにまとめることは、天の恵みでした。
ニーズを満たす
Cは、マシン固有の保守が難しいアセンブリの世界に行き詰まることなく、アセンブリに近い効率を実現できるため、離陸しました。
FORTRANは、機械の詳細に迷うことなく、数学的なアイデアをコードに簡単に変換できるため、離陸しました。
LISPおよびシンボリック操作についても同様です。
Pythonは、「より良い」Perlの必要性から生まれました。(私はここで偏見があるので、これ以上は言いません。)
PHPは基本的にWebのBASICでした。多くのWebサーバーにデフォルトでインストールされており、便利なものをすぐにハッキングするのは簡単でした。
アドボカシー、ユーザーベース、寄稿されたコード
正直に言って、Haskellは、開発者とユーザーベースのたゆまぬ支持がなければ、非生産言語の場合ほど人気がありません。
多くの言語には、その言語の作成者の背後にある個性的なカルトがあり、誰もが彼らが誰であるかを知っています。
FORTRANには、確立され、吟味された膨大な数の数学コードがあります。Javaおよびweb / systems-integration / MVC-systemsでも同じです。PerlとCPANでも同じです。T E Xとドキュメント管理でも同じです。等
それファクター
何らかの理由で、一部の言語は、古いものに十分なうなずきがあり、簡単に、または必要と思われる方法で、適切な量のnewを持っているように見えます。つまり、独自のケースを作成します。そして、これがどのように起こるかを誰が知っていますか?
とにかく、それがなぜそれを作るのかについての私の最良の推測です。一部がうまくいかない理由については、上記の基準を満たしていない場合、おそらく失敗した理由です。
言語は、必要な分野の既存の言語よりも有利であるため、人気があります。
私は皮肉になります:お金とそれに伴うマーケティング。
C#がMicrosoftによって、JavaがOracleによって、Objective CがAppleによってサポートされているのは偶然ではありません。これまでのところ、GoogleのGoだけが実際に解除されていません。
もちろんお金だけが理由ではありませんが、お金を稼ぐことはあなたの言語を市場に出すのに役立ちます。
一方では、マーケティング、より正確にはプレゼンテーション、ブログなどです。主流のプログラマーが、自分が知っていること(Java対C ++-ガベージコレクター対メモリ管理)に関連し、利点を確認できる機能を持つことが重要です。最後になりましたが、重要なことは、エントリーバリアが低いことです-例、優れたドキュメント、シームレスなインストール、優れたコミュニティとサポート、活気のある開発。
ほとんどすべての言語には、人生のごく初期に、それらを使用して記述された、非自明な現実世界の問題解決プログラムがありました。
UnixはCで書かれていたので、Cが非常に若く進化していたUnix上のツールもそうでした。
Anaconda(RedHatのインストーラープログラム)は、Pythonが若かった頃にPythonで書かれており、今日の人気はありませんでした。
これらは、私が手で思い出すことができるものです。このリストは、その形成期を生き延びた各言語に触れることができます。
そして、大学での大規模な採用は、言語の寿命を延ばすことができます。Javaは教育言語として大学で非常に人気があります。ある程度、LispとLispの方言もこのステータスを享受しています。