基本的に正しいと思います。言語ランタイムは、すでに完全に柔軟なデータ駆動型システムです。1つのデータ(プログラム)を受け取り、それを使用して他のデータにどのように作用するかを決定します。他のプログラム(インクルードパスから適切なインストール管理まで)で再利用するためのコードを保存するマルチユーザースキームもあります。
「スクリプト言語」は、大まかに言って、このコード入力が人間が読める言語ランタイムです。コンパイラーは、ユーザーとランタイムの間に追加のステップを配置します。Malbolge やAPLのような「ジョーク」言語は、いかなる形式でも人間が読めるものである必要はありません。しかし、それは1つのレベルですべて同じことであり、とにかく人間が読めるということは、すべての潜在的なユーザーがそれを読み書きするスキルを持っている、またはそれらを開発することが期待できることを意味しません。
通常、言語ランタイムをエンドユーザーに直接公開しないのには、十分な理由があります。主なものは、柔軟性をなくすことで利便性が高まることです。
SO投稿を入力する場合は、入力するだけです。代わりにC ++プログラムを作成して出力することはできますが、通常のテキストボックスの代わりにC ++プログラムエディターを公開するWebブラウザーは使用しません。C ++を知らない人は、ブラウザーを使用しないだけでなく、使用できません。
特定のビジネスパラメーターを構成する場合、チューリング完全仕様言語を使用して必ずしもそれを行う必要はありません。これを行ったとしても、おそらく他のプログラミングで同じビジネスパラメーターを「ハードコーディング」することと区別できません言語。あなたが書いているものがあなたがそれが意味することを意味するかどうかをまだ検討する必要があります。それでも変更が正しいことをテストする必要があります。つまり、あなたが設定(使用)するための特殊なサブシステム(「アプリケーション」)を準備するプログラミングスキルを持っている人が予期しない、自明ではないタスクのプログラミングスキルが必要です。
そのため、適切なデータが与えられれば何でもできる100%データ駆動型のシステムに乗り出そうとしている場合、次の2つの質問があります。
- 私たちはプログラミング言語を発明するビジネスをしていますか、そうすべきですか?
- 私たちの新しいプログラミング言語は、(私たちの目的のために)すでに持っているものよりも優れているでしょうか?それを必要に応じてサポートおよび開発しますか?
時々、答えはイエスです。そして、あなたはある種のドメイン固有の言語を書きます。または、Sun / Microsoft / Stroustrup / van Rossum /その他の多くの人にとっては、実際の汎用プログラミング言語ですらあります。答えがノーである場合があり、「内部プラットフォーム」効果が得られます。多くの労力と試行錯誤の後、何かになります。運が良ければ、それを書いたプログラミング言語よりもわずかに劣り、使いやすいものではありません。
一部の言語は他の言語よりも使いにくいか、特にRのような目的に特化されている場合、一部のユーザーははるかに使いやすいと感じるでしょう。おそらくしないことは、一般的なアプリケーションのプログラミングを根本的に簡単にすることです。おそらく、それを行う可能性のある人/組織が世界中に複数いる可能性がありますが、上司/会社は、それが彼/あなたを含むかどうかを正直に考慮する必要があります。
ゲームでよく使用されるトリックがあります。これは、Luaバインディングをゲームエンジンに公開することです。これにより、設計者は比較的簡単な言語でプログラミングできますが、パフォーマンスやエンジンやプラットフォームの特定の機能へのアクセスが必要な場合は、「本物の」プログラマーを引き付けることができます。エンジンに関する限り、結果のLuaスクリプトは「データ」です。構成データとは対照的に、「ロジック」と呼ばれるものの多くを含める必要はなく、多くの場合、ゲームプレイ全体ではなく、すべてのプロットと環境を定義します。これは100%データ駆動型ではなく、間違いなく100%エラーがないわけではありませんが、興味深い実用的な妥協案です。