・Bosqueは、ソフトウェアのクオリティの改善と、プログラマーの生産性の向上を目指しています。
・可変状態、参照の等価性、ループなどの複雑な原因を取り除きます。
・それは、タイプスクリプトやジャバスクリプトプログラミング言語に触発されています。
プログラミング構成や抽象的なデータタイプは、1970年に人気となり、それ以来、私たちはほとんどすべてのプログラミング言語でそれらを使用してきました。それらの方法論は、ハードウェアアーキテクチャを気にせずに、コードの意図と中心的な動作に集中することをプログラマーに許しました。そしてすぐ、コンパイラと統合開発環境の黄金時代となったのです。
生産性の向上を更に進めるために、ソフトウェアの改善やいくつかのコンパイラを使用可能とし、また、開発者ツーリングや、マイクロソフトのエンジニアが新しいプログラミング言語のBosqueを思いつきました。
Bosqueは、機械と人にとって、シンプルで分かりやすいようにデザインされました。コーディングやプロセス開発の際に、コンパイラがアクシデントを起こさないような、いくつかの方法を提供しました。
正規化プログラミング
プログラミングモデル構築の際のフローコントロールは、コンディションやサブルーチン、ループによって管理されています。一方で新しいプログラミング言語は、可変状態、参照の等価性、ループなどの複雑な原因を取り除きます。開発者は、パラダイムを正規化プログラミングとして説明しています。
Bosqueは、構文に刺激されたタイプスクリプトや、プラスMLタイプや、JavaScript、意味論に刺激されたNodeなどの組み合わせに派生しています。それは、異なる公称や、問題領域の関連機能を柔軟にエンコードするための構造型、組み合わせ型を使用できるようにするため、意見を持たないタイプのシステムをサポートします。
参考:Microsoft/Moving Beyond Structured Programming
言葉は「while」、「do while」、「for」ループを使用せず、適用条件が分かった時には完全に異なるアプローチをします。マイクロソフトのコンピューター科学者であるMark Marronは「ファンクター」のコンセプトを、ソフトウェアのクオリティが向上している時に、ループが構築されるのを入れ替えること、と紹介しました。
Bosqueは、一括代数データ操作(またはオプションのデータ)と、処理に対する統合サポートを提供します。それは、プロセスを集めることや、式として一致することをサポートします。
Bosqueに豊富なプリミティブ式がセットされていることから、ステートメントコンビネータの必要性を減らしました。言語は、主張(デバックの構築のみを可能にする)と、チェック(全ての構築を可能にする)をファーストクラスの機能として提供し、それに加えて、事後/事前条件とクラス不変量も提供しました。また、Bosqueでは、ループは構築されません。
文献:NASA’s 10 Coding Rules for Writing Safety Critical Program
次は何か?
この新しい言語は、未だにフレーズが開発されています。もしテストしたいのであれば、ここでコードが使用可能です。
Bosqueはリビジョンのためのサブジェクトです。いくつかのバグと失われた方向があり、また、まだまだパフォーマンスの改善箇所があります。Marronと彼のチームメンバーは、更に高度な開発者ツーリングと、時間と共に自動的にメモリー使用量の限界が設定されること、追加の努力なしに実行時のエラーを検証することに取り組み続けます。