歴史的に、HLLはC、FortranまたはPascalのようなものであり、VHLLはRubyまたはPythonのようなものです。私は4GL、5GL、DSL、LOPという用語に精通しており、定義についてはウィキペディアを読むべきではありません。UHLLを探しています。
私の質問は、生産性が一桁以上高いコンピューター言語がありますか?
生産性が高いということは、オーサリングされたコードが少なくなり、結果を達成するプログラマの時間が減り、バグやデバッグが減り、コードと要件の概念的リンクが密接になり、変更と保守の労力が減るということです。
私が興味を持っている主なドメインは、GUIまたはブラウザのフロントエンド、データの永続性、および印刷や電子メールなどの他のシステムへの接続を備えた汎用のビジネスおよびコンシューマアプリケーションです。他の人は他の場所に集中するかもしれません。
これらの言語の一部はドメイン固有である可能性があり、それらは大規模で機能的なアプリケーションの構成機能にすぎない可能性があることを認識しています。Excelスプレッドシートはこのカテゴリに分類されます。
これらの言語の一部は一般的に見えるかもしれませんが、それでも範囲が狭く、多くの問題に適さない可能性があることを認識しています。たとえば、Matlabは、主にユーザーインタラクションとテキストデータを扱うプログラムには適していません。
VHLLとの類推によって、UHLLにあるかもしれない機能のいくつかを知っています。次の1つ以上を見つけることを期待しています(そして、リストに自由に追加してください)。
- GUIフォームの描画は、GUIフォームのプログラムです
- 行、列、ヘッダーを含むテーブルは、データベース内のテーブルのプログラムです
- 宣言ロジックは、IFステートメントなしで、何をいつ実行するかを指示します
- FORループなしのデータセットの操作
- データ駆動、パターンマッチング、ツリーウォーキングなどの非順次実行
この質問の動機は、比較的単純なビジネス要件を大量のコードに変換して、コンピューターが望むものや必要なものを提供するという大変な努力にますます飽き飽きしていることです。問題は、私の痛みを分かち合い、言語のレベルを上げ、コンピューターにもっと多くのハードワークをさせることに取り組んでいる他の人を見つけることです。これは1970年代から80年代の主要な焦点でしたが、まだ起こっていますか?
これらは私の質問に対するいくつかの提案された回答であり、私が知っている言語を要約または列挙するためにここに提供されており、私の見解ではどれが足りないかです。
HLLまたはVHLLであり、より高いレベルに属する個々の機能を含む多くの言語があります。私はそれらのほとんどを使用しました(しばしばひどく)。彼らが含まれます
- マクロと自己変更機能を備えたLisp
- Haskell、データ依存性とパターンマッチング
- 行とテーブルを扱うSQL
- Rebol、それは賢いようですが、私は本当にそれを取得しません
- APL(およびJ)、その多次元配列と超小型演算子
- LINQを使用したC#
- 素晴らしいコレクションと正規表現が組み込まれたAWK / Perl / Python / Ruby
これらの言語には低レベルの機能が多すぎてUHLLにはなりません。プログラマーは、有用なプログラムのために、多くの低レベルの構成体を作成する必要があります。
RAD / 4GLパッケージがあります。私はいくつかを使用しました:
- dBase / Foxpro
- Dataflex / Powerflex(私の製品)
- アクセス
- PowerBuilder
そして、私が使ったことのないものがたくさんあります。ほとんどの場合、言語はせいぜいHLLですが、パッケージにはフレームワークが含まれており、言語とパッケージ間の特権接続が含まれているため、アプリケーションを迅速に構築できます。なぜこのアプローチが蒸気を使い果たしたのかはわかりませんが、いずれにしてもUHLLはそうではありません。
生のフレームワーク/ライブラリがあります。私はいくつか使用しました:
- レール
- Java awtとswing
- .NET Windowsフォーム、WPF、およびASP.NET。
これらは現在、最新技術です。プログラマーは実装言語の泥沼にしっかりと閉じ込められたままであり、毎回複雑さを処理します。これはUHLLではありませんが、UHLLはこれらのいずれかの上に構築される可能性があります。
UMLやRationalのツールセットなどの設計ツールがありますが、それらはよくわかりません。私の知る限り、ビジネス要件の明確化に役立ちますが、プログラミングのステップを置き換えることはできません。プログラマを排除するのではなく、時間と労力の単位ごとにより多くのことができるようにします。
だから、私が考えることができるすべての候補を排除したので、私は他の誰かがより良い候補を提供できることを望みます。
後期編集:答えがあると思う:Wolfram言語。http://www.wolfram.com/wolfram-language/