マイクロソフトは、Bosqueプログラミング言語でシンプルさを目指しています

マイクロソフトは、Bosqueプログラミング言語を開発するための新しいオープンソースプロジェクトを立ち上げました。Bosque言語プロジェクトの目的は、開発プロセスでの「偶発的な複雑さ」を回避する関数型プログラミング言語を構築することです。

Bosque言語の設計目標には、開発者の生産性の向上、ソフトウェア品質の向上、さまざまな新しいコンパイラとツールエクスペリエンスの実現が含まれます。新しい言語は、機械支援の迅速で信頼性の高いソフトウェア開発ライフサイクルのための正規化された設計の実験として位置付けられています。

重要な目標は、偶発的な複雑さを排除することです。Bosqueコードは、マシンと人間の両方にとってシンプルで理解しやすいはずです。しかし、ボスケはこの時点で非常に開発中です。提案者は、制作作業にBosqueを使用することを推奨していません。開発者はそれを試してみることをお勧めします。

Bosque用に行われたいくつかの機能とデザインの選択には次のものがあります。

  • すべての値は不変であり、Bosqueは不変のデータを持つ機能モデルを採用しています。Bosqueのドキュメントによると、コードブロックのステートメントの効果を理解することは、副作用がない場合に簡単になります。関数型言語は、このモデルによって可能になるプログラム開発の簡素化、洗練されたツール、およびコンパイラーの最適化の恩恵を受けています。
  • 関数型プログラミングは{…}、更新可能な変数への複数の割り当てを許可することにより、ブロックスコープおよび中括弧と融合されますvar!
  • 関数はファーストクラスの値と型です。
  • Lambdaコンストラクターは、ラムダ本体のコード定義と、ラムダ作成時にクロージャーでキャプチャされた変数の変数コピーセマンティクスを組み合わせます。
  • 単純な、意見のない型システムでは、構造型、組み合わせ型、および名目型の範囲を使用して、意図を伝え、問題領域の関連機能をエンコードできます。
  • 型付き文字列は、文字列の内容に関する既知の構造を、人々にとって意味があり、型チェッカーによって使用される方法で型に持ち上げるためのメカニズムを提供します。
  • パラメータは、ref引数の受け渡しを介してスレッド化できます。複数の戻り値の代わりに、これは変数がそれを使用および更新する可能性のあるメソッドに渡されるシナリオを単純化します。パラメータの更新を許可すると、必要となる余分な戻り値の管理が不要になります。この機能はまだ実装されていません。
  • 名前付き引数が提供され、restおよびspread演算子も提供されます。これらは、呼び出しおよびコンストラクター操作の一部としてデータ操作を実行できます。
  • さまざまな不変条件、サニティチェック、および診断アサーションを表現するためのファーストクラスのサポートが提供されます。
  • Bosqueでのバルク代数的データ操作は、データ値のバルク読み取りと更新から始まります。作成された演算子は、コードを全体的な意図に集中させ、開発者がデータ構造操作に対して代数的推論を実行できるようにします。代数演算は、データ型、タプル、レコード、および名義型、および射影、複数更新、マージなどの演算に対して提供されます。
  • 反復処理機能により、構造化ループは高レベルの反復処理構造と交換されます。同じループを作成する定型文を削除すると、バインドされた計算を含むエラーのクラスが排除されます。意図は明確にされます。

Bosqueは、オブジェクト指向言語であるC#を含む言語を作成したMicrosoftの最新の言語プロジェクトになります。F#、関数型言語。そして、JavaScriptの型付きスーパーセットであるTypeScript。ソフトウェアの巨人は、人気を博している言語の開発にかなりの成功を収めています。たとえば、C#は最新のRedMonk言語ランキングで5位、TypeScriptは12位でした。これは、StackOverflowでの議論とGitHubでのコードの使用法に基づいています。 

Bosqueのドキュメント、例、およびリファレンス実装はGitHubにあります。チュートリアルは現在進行中です。