なぜそんなに多くのプログラミング言語があるのですか?
そして、他の言語が既に存在するにもかかわらず、誰かがプログラミング言語を作成するように促すのはなぜですか?
なぜそんなに多くのプログラミング言語があるのですか?
そして、他の言語が既に存在するにもかかわらず、誰かがプログラミング言語を作成するように促すのはなぜですか?
回答:
多くの場合、新しいプログラミング言語は既存の言語から学習し、新しい方法で機能を追加、削除、結合します。オブジェクト指向や機能のようないくつかの異なるパラダイムがあり、多くの現代言語はそれら両方の機能を組み合わせようとします。
マルチコアCPUの増加など、解決する必要がある新しい問題もあります。最も一般的な解決策はスレッドでしたが、一部のプログラミング言語では、アクターモデルなどの異なる方法で同時実行の問題を解決しようとします。Erlang-Concurrent Worldのソフトウェアをご覧ください
それはサイクルです。あなたは新しい言語を始め、あなたはあなたの前任者からの悪い構文と悪い選択のすべてから逃げることができます。バージョン1では、その荷物がないため、言語の見栄えがよく、仕事が完了します。それから、新しいバージョンでは、うまくいかないかもしれない機能の実験を開始するか、構文が少し厄介になる他の新しい言語の機能を取り入れます。見よ、さらにいくつかのバージョンの後、あなたはあなたの言語があなたが置き換えたものと同じくらい複雑であり、愚かな構文の問題とレガシーの手荷物であることに気付く。そして突然、新しい言語を作成すれば、それをすべて修正できることに気づきます...
同じ理由で、ハンマー、ドライバー、ハンドソー、バンドソー、削岩機、クローバー、その他のツールがあります。すべての言語がすべてのタスクに適しているわけではありません。一部の言語は特定の問題領域を対象としています:Rは統計分析に特に優れており、Cはオペレーティングシステムカーネルの作成に特に優れており、Haskellは数学重視または財務計算に特に優れています。Erlangは並行プログラミングに特に優れています。
また、シャツの色が異なるのと同じ理由で、ある言語の「スタイル」が別の言語よりも好きな人もいます。
そして、もちろん、多くのプログラマーは、新しい言語を発明すること、何が起こるかを見るため、あるいはおそらく言語についてある程度の知識があり、かゆみを掻きたい、またはいくつかのアイデアを試したいために楽しいと感じています。
彼らはすべて吸うからです(いずれにせよ)。
現在、私たちは自然の問題を記述するために約5000の言語を作成しましたが、それらのどれもプログラムを書くことはできません(例は「英語」です)。
誰かがあなたが自然言語で文章で表現できることを表現できるプログラミング言語を作成する方法を見つけるまで、彼らは来続けます。
レガシーコード。新しい言語を開始する場合、古い言語を変更するときにすべての苦情を聞いたり検討したりする必要はありません。新しい実装の方が優れていると全員が同意したとしても、古いコードを壊すことはできません。そして、古いコードがたくさんあります。
たとえ実際に使用しなくても新しい言語を作成するのは楽しいからです
難解なプログラミング言語(エソランと略されることもあります)は、概念実証または冗談として、コンピュータープログラミング言語の設計の境界をテストするために設計されたプログラミング言語です。
プログラミング言語の作成はかなり楽しいです。以前の要件に限定されないため、純粋な創造的な仕事に近い。そもそもコンパイラーを作成している場合は、常にCにコンパイルし、適切なパフォーマンスのためにCコードをコンパイルできるため、これ以上実装することはそれほど難しくありません。
もちろん、私たちのほとんどは、私たちが考えているよりも良いアイデアが少ないので、彼らはしばしば失望したり、元のデザイナー以外の人に愛されたりしません。
知っているプログラミング言語について考えてください。嫌いなものを簡単に思いつくことができますよね?おそらく、それらをどのように修正できるかというアイデアがあります。コンパイラーの構築について多くのことを知っている(そして多くの人が知っている)ことを前提に、もう少し弾みをつけて、独自の設計や実装を開始することもできます。
クイックショートアンサー
車輪の再発明...現在の傾向とは...
退屈な長い答え
多くの人々は、「古いプログラマーのための別の同様の新しい言語」が「新しいプログラマーのための明白な新しい言語」であることを忘れています。
それはどういう意味ですか?
「数年」のプログラマーにとって、JavaまたはC#は既存のCobol(OO /手続き型)Basic、C / C ++に追加のプログラミング言語であり、「新しい」プログラマーにとってはJavaまたはC#は新しい言語ですが、Cobol、 (OO /手続き型)基本的なC / C ++は存在しないため、車輪の再発明は一般的なものになります...
そして、技術に新しいトレンドがある場合、人々はそのトレンドに基づいて、ウェブ用のecmascript / javascriptや関数型プログラミングなどの新しいプログラミング言語を作成するかもしれません...
乾杯。
新しいプログラミング言語は、主に新しいプログラミングパラダイムがあるため、またはハードウェアの進歩により、マルチタスクなどの新しいハードウェア機能を活用するために新しい言語を作成するため、さまざまな理由で構築されています。
私の場合、特別な理由から、通常は小さなコンパイラー(新しいプログラミング言語を使用)を作成します。ゲームをたくさん作って、ゲーム開発専用のプログラミング言語を使用すると、コードのサイズが小さくなり、開発期間が短縮されると考えている場合は、ビルドします。そして最後に、他の汎用プログラミングにも使用できることがわかりました。
プログラミング言語を作成するほとんどの人は、特定の目的を念頭に置いていると思います。最初から一般的な目的のために作成する人もいます。しかし、ほとんどはそうではありません。
ちなみに、プログラミング言語は多すぎると思いますが、何百もの新しい言語が常に出てくるでしょう。面白くない、ニッチな目的、学校のプロジェクト、その他何百もの理由があります。遅かれ早かれ、新しいものが普及するでしょう。決して終わらない。
大学は多くのプログラミング言語に貢献しており、エリクソン(アーラン=エリクソン言語)、ベルラボ(BおよびC言語)、Google(数か月前のGo言語)などの大企業も貢献しています。大学の研究の一部として書かれたものの多くはあまり使用されていません。ただし、いくつかの注目すべき例外があります。独自の言語/コンパイラを書くことは、CS理論または関連する分野を研究している人々の博士論文にとって良いトピックになると思います。Pythonは、単一のアイデアを中心にさまざまなプログラマーが協力してオンラインで作業することから生まれた最初の言語の1つであると思います。