ライブラリ、ロジックなどで役立つ他のXY言語がある場合、なぜ誰かが自社内でのみ使用する独自の言語を開発するのでしょうか。自分の言語を開発するよりも、他のものを使ってフローを進める方がずっと簡単ではないでしょうか?
ライブラリ、ロジックなどで役立つ他のXY言語がある場合、なぜ誰かが自社内でのみ使用する独自の言語を開発するのでしょうか。自分の言語を開発するよりも、他のものを使ってフローを進める方がずっと簡単ではないでしょうか?
回答:
それは長いプロセスの産物であり、誰かが単に「新しい言語を作りたい」と言っているのではないことを理解すると、理解がはるかに容易になります。
それは通常、いくつかの問題は単純なドメイン固有の言語を使用して解決できるという考えから始まります。専門家ではない人がこの言語を使用することを意図していることが多いため、シンプルであり、強力なタイピングやモジュールなどの機能を欠いていることがよくあります。
ここまでは順調ですね。しかしその後、人々はその言語では解決できない問題に直面し始めます。そのため、これらの問題を解決するために新しい「機能」が徐々に追加されます。また、プロセスが遅く、機能の頻度が低いため、問題が解決される限り、これらの新しい機能を適切に設計する動機はありません。
時間の経過とともに、新しい言語は、単純なドメイン固有言語から複雑な「汎用」目的言語に変換する機能を獲得し、多くの場合、セマンティクスが競合し、混乱しやすく、構文規則を理解するのが難しくなります。
そして、人々が彼らがそのような巨大な獣を作り出したことに気づくまでに、それを殺して適切に設計された言語で置き換えるのはすでに遅すぎます。
特定の企業にバインドされていない。このように進化していることをいくつかの言語がある咳のJavaScript 咳 PHPの咳。
自分の言語を開発するよりも、他のものを使ってフローを進める方がずっと簡単ではないでしょうか?
確かに、しかしそれを不条理に終わらせるために、誰もが新しい言語を開発していなければ、アセンブリですべてを書くでしょう。
時々流れがない。何か新しいものを発明したいだけの言語愛好家でも、既存のものでは満たされていないニーズを持つ会社でも、誰かが掻きむくむために新しい言語が存在するようになります。
これはまさに、John Backus が1953年にIBM数式の翻訳システムを提案したときに起こったことです。彼は、科学的なユーザーが数式をアセンブリで記述するよりも簡単に指定できる方法を望んでいました。そのプロプライエタリ製品は、アセンブリではない最初のプログラミング言語になりました。あなたはそれをFortranとして知っています。
Fortranが最初にその道を進んだところ、Erlangはそのためのポスターの子です。エリクソンは、電話交換機用のソフトウェアの開発方法を改善したいと考え、プロトタイピング用の言語を開発して、必要な機能に固有の機能を備えました。私が最初にそれを探ったとき、私の持ち帰りは、それが1986年に利用できる他のどの言語によっても十分にサービスされなかったであろう解決するために本当の問題を持つ人々によって開発されたということでした。同僚は、10年以上後にオープンソースになるまで出会い、現在では主流の言語になっています。
GoとScalaはどちらも壮大な体系の中で比較的若い言語であり、同僚の会社で使用されている言語が両方に先行している可能性は十分にあります。彼がする必要があるのは、その歴史、なぜそれが存在するようになったのか、なぜそれが使われ続けているのかについて尋ねることです。
2003年から2013年までの10年間を、1970年代後半にルーツを持つ独自の言語を含む業界固有の環境を幅広く利用する会社で働いていました。いくつかの新しい言語はより適切な代替品である可能性があります(そして、それらのフックは時間の経過とともに移植されました)が、その業界には十分な多額の投資があり、優れたビジネスケースではなかった実績のあるコードの巨大な本体がありました別のものに切り替えるため。
私はこれを見たことがあります。それはうまくいきません。「ここで発明されていない」複合施設を持っている人もいます。それは通常、企業が車輪を再発明して走り回る原因になります。
それについて考えてください。この新しい言語はおそらくいつも壊れます。パーサー、コンパイラー、VM、リンカーなどの間で...ランダムな問題のデバッグに何時間も費やすバグが数千に上ります。すべては、他の言語にはない、彼らが必要と考えるもののためにです。
C / C ++は、ご存じのように、すべてのオペレーティングシステムを作成するために使用されます。それでも、誰かが何か別のものが必要だと思っていました。