その会社のために特別に設計された学習プログラミング言語[終了]


10

ライブラリ、ロジックなどで役立つ他のXY言語がある場合、なぜ誰かが自社内でのみ使用する独自の言語を開発するのでしょうか。自分の言語を開発するよりも、他のものを使ってフローを進める方がずっと簡単ではないでしょうか?


6
私たちが実際に使用しているかなり多くの「新しい」言語は、「古い」言語用に設計されたライブラリを使用できます。したがって、新しい言語を使用しても、libサポートが失われることを意味するわけではありません...
Timothy Truckle、

3
なぜあなたはドラッグスターを作って、ドラッグレースに行くのではなく、ストックカーで作るのですか?
candied_orange

3
あるいは、プログラミング言語の作成の背後にある理由と合理性を調査してください。あなた自身の言語を作成するまで、一部の人々はあなたが本当のコンピューター科学者ではないと信じています。これは、銃の粉を作成し、家のごく一部を吹き飛ばすまで、本物の化学エンジニアではないことに似ています。
candied_orange

4
Erlangもこの方法で生まれました。私が間違っていない場合は、Ericsが内部で使用するために最初に開発されました。
ジョルジオ

3
会社のために特別に設計された言語は愚かである一方、会社がたまたまある問題ドメインのために特別に設計された言語は、時には非常に役立つことがあります。言語の設計とアーキテクチャが問題ドメインをより簡単に解決/表現できるように制限されている場合は、前者ではなく後者が使用されていることがわかります。
ライライアン

回答:


25

それは長いプロセスの産物であり、誰かが単に「新しい言語を作りたい」と言っているのではないことを理解すると、理解がはるかに容易になります。

それは通常、いくつかの問題は単純なドメイン固有の言語を使用して解決できるという考えから始まります。専門家ではない人がこの言語を使用することを意図していることが多いため、シンプルであり、強力なタイピングやモジュールなどの機能を欠いていることがよくあります。

ここまでは順調ですね。しかしその後、人々はその言語では解決できない問題に直面し始めます。そのため、これらの問題を解決するために新しい「機能」が徐々に追加されます。また、プロセスが遅く、機能の頻度が低いため、問題が解決される限り、これらの新しい機能を適切に設計する動機はありません。

時間の経過とともに、新しい言語は、単純なドメイン固有言語から複雑な「汎用」目的言語に変換する機能を獲得し、多くの場合、セマンティクスが競合し、混乱しやすく、構文規則を理解するのが難しくなります。

そして、人々が彼らがそのような巨大な獣を作り出したことに気づくまでに、それを殺して適切に設計された言語で置き換えるのはすでに遅すぎます。

特定の企業にバインドされていない。このように進化していることをいくつかの言語があるのJavaScript PHPの


10
すばらしい答えです。JavaScriptには問題がありますが、PHPと同じ文に記述するのは公平ではないと思います。それは「ビルとテッドを近所から追い出す必要がある、彼らは犯罪者だ!」ただし、Bill(JavaScript)はジェイウォーカーであり、Ted(PHP)はシリアルキラーです。
TheCatWhisperer 2017

12
@TheCatWhisperer同意しない。JavaScriptは、PHPと同じくらい悪い、またはさらに悪いです。JavaScriptを使用(またはトランスパイル)する必要があるため、PHPは安全に無視できます。
陶酔的な

2
それはほとんど有効なポイントです。
TheCatWhisperer 2017

1
私たちは、のために待っていましょう@Euphoric WASM、多分シーンが、その後変更されます...
Kroltan

WASMの@Kroltan +1!
CraigR8806

15

自分の言語を開発するよりも、他のものを使ってフローを進める方がずっと簡単ではないでしょうか?

確かに、しかしそれを不条理に終わらせるために、誰もが新しい言語を開発していなければ、アセンブリですべてを書くでしょう。

時々流れがない。何か新しいものを発明したいだけの言語愛好家でも、既存のものでは満たされていないニーズを持つ会社でも、誰かが掻きむくむために新しい言語が存在するようになります。

これはまさに、John Backus が1953年にIBM数式の翻訳システムを提案したときに起こったことです。彼は、科学的なユーザーが数式をアセンブリで記述するよりも簡単に指定できる方法を望んでいました。そのプロプライエタリ製品は、アセンブリではない最初のプログラミング言語になりました。あなたはそれをFortranとして知っています。

Fortranが最初にその道を進んだところ、Erlangはそのためのポスターの子です。エリクソンは、電話交換機用のソフトウェアの開発方法を改善したいと考え、プロトタイピング用の言語を開発して、必要な機能に固有の機能を備えました。私が最初にそれを探ったとき、私の持ち帰りは、それが1986年に利用できる他のどの言語によっても十分にサービスされなかったであろう解決するために本当の問題を持つ人々によって開発されたということでした。同僚は、10年以上後にオープンソースになるまで出会い、現在では主流の言語になっています。

GoとScalaはどちらも壮大な体系の中で比較的若い言語であり、同僚の会社で使用されている言語が両方に先行している可能性は十分にあります。彼がする必要があるのは、その歴史、なぜそれが存在するようになったのか、なぜそれが使われ続けているのかについて尋ねることです。

2003年から2013年までの10年間を、1970年代後半にルーツを持つ独自の言語を含む業界固有の環境を幅広く利用する会社で働いていました。いくつかの新しい言語はより適切な代替品である可能性があります(そして、それらのフックは時間の経過とともに移植されました)が、その業界には十分な多額の投資があり、優れたビジネスケースではなかった実績のあるコードの巨大な本体がありました別のものに切り替えるため。


-1

私はこれを見たことがあります。それはうまくいきません。「ここで発明されていない」複合施設を持っている人もいます。それは通常、企業が車輪を再発明して走り回る原因になります。

それについて考えてください。この新しい言語はおそらくいつも壊れます。パーサー、コンパイラー、VM、リンカーなどの間で...ランダムな問題のデバッグに何時間も費やすバグが数千に上ります。すべては、他の言語にはない、彼らが必要と考えるもののためにです。

C / C ++は、ご存じのように、すべてのオペレーティングシステムを作成するために使用されます。それでも、誰かが何か別のものが必要だと思っていました。


7
どうやらあなたはコトリンを見たことがない。またはそのことについては、JavaScriptまたはC#。Fog Creek Softwareは、何年もの間(VBに基づく)Wasabiと呼ばれる独自のプログラミング言語を使用していまし(確かに、技術的な負債がついに追いついてきました)。したがって、それが機能するケースは確かにあります。
ロバートハーベイ

1
私が覚えている限り、C#は、Microsoftが非準拠のJava実装を作成しようとした後に生まれ、Sunに訴えられて敗北しました。cnet.com/news/sun-microsoft-settle-java-suit彼らはそれをJavaと呼ぶことができなくなったので、当初Javaに非常に似ていた独自の言語を開発しました。
ジョルジオ

1
「おそらくこの新しい言語は常に壊れる」-言語設計でクラス全体のアプリケーションバグを回避できる場合、これは許容できるトレードオフになる可能性があります
Eric

16
Cを聞いたことがありますか?報告によると、これは、1台のコンピューター上の1つのオペレーティングシステム用に社内で開発されたものです。K&RがPL / 1、BCPL、Algol 68などのオペレーティングシステムの作成に使用されたことが証明されたものを使用しなかったのはなぜですか?
idrougge
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.