Microsoft strebt nach Einfachheit mit der Programmiersprache Bosque

Microsoft hat ein neues Open-Source-Projekt zur Entwicklung der Programmiersprache Bosque gestartet. Der Zweck des Bosque-Sprachprojekts besteht darin, eine funktionale Programmiersprache zu erstellen, die „zufällige Komplexität“ im Entwicklungsprozess vermeidet.

Zu den Entwurfszielen für die Bosque-Sprache gehören eine verbesserte Entwicklerproduktivität, eine bessere Softwarequalität und die Aktivierung einer Reihe neuer Compiler und Tool-Erfahrungen. Die neue Sprache ist als Experiment für reguliertes Design für einen maschinengestützten, schnellen und zuverlässigen Softwareentwicklungszyklus positioniert.

Ein wichtiges Ziel ist die Beseitigung versehentlicher Komplexität. Bosque-Code soll sowohl für Maschinen als auch für Menschen einfach und leicht verständlich sein. Aber Bosque befindet sich zu diesem Zeitpunkt noch in der Entwicklung. Befürworter empfehlen, Bosque nicht für Produktionsarbeiten zu verwenden. Entwickler werden ermutigt, damit zu experimentieren.

Einige für Bosque getroffene Funktionen und Designoptionen umfassen Folgendes:

  • Alle Werte sind unveränderlich, wobei Bosque ein Funktionsmodell mit unveränderlichen Daten übernimmt. Das Verständnis der Wirkung einer Anweisung eines Codeblocks wird vereinfacht, wenn sie nebenwirkungsfrei ist, heißt es in der bosken Dokumentation. Funktionale Sprachen haben von Vereinfachungen bei der Programmentwicklung, ausgefeilten Tools und Compiler-Optimierungen profitiert, die durch dieses Modell ermöglicht werden.
  • Die funktionale Programmierung wird mit Blockbereichen und {…}geschweiften Klammern verschmolzen, indem mehrere Zuordnungen zu aktualisierbaren Variablen ermöglicht werden var!.
  • Funktionen sind erstklassige Werte und Typen.
  • Lambda-Konstruktoren kombinieren die Codedefinition für den Lambda-Körper mit einer Semantik für Variablenkopien, um erfasste Variablen bei der Lambda-Erstellung zu schließen.
  • Ein einfaches, nicht meinungsgebundenes Typsystem ermöglicht die Verwendung einer Reihe von Struktur-, Kombinations- und Nominaltypen, um Absichten zu vermitteln und relevante Merkmale der Problemdomäne zu codieren.
  • Typisierte Zeichenfolgen bieten einen Mechanismus zum Anheben bekannter Strukturen über den Inhalt einer Zeichenfolge in den Typ auf eine Weise, die für Personen von Bedeutung ist und von der Typprüfung verwendet wird.
  • Parameter können durch refÜbergabe von Argumenten eingefädelt werden . Als Alternative zu Multi-Return-Werten vereinfacht dies Szenarien, in denen eine Variable an eine Methode übergeben wird, die sie möglicherweise verwendet und aktualisiert. Durch das Zulassen der Aktualisierung des Parameters entfällt die zusätzliche Verwaltung der Rückgabewerte, die erforderlich wäre. Diese Funktion ist noch nicht implementiert.
  • Benannte Argumente werden ebenso bereitgestellt wie Rest- und Spread-Operatoren. Diese können Datenmanipulationen als Teil von Aufrufen und Konstruktoroperationen durchführen.
  • Es wird erstklassige Unterstützung angeboten, um eine Reihe von Invarianten, Sanitätsprüfungen und diagnostischen Aussagen auszudrücken.
  • Algebraische Massendatenoperationen in Bosque beginnen mit Massenlesevorgängen und Aktualisierungen von Datenwerten. Die erstellten Operatoren helfen dabei, den Code auf die allgemeine Absicht zu konzentrieren, und lassen Entwickler algebraische Überlegungen zu Datenstrukturoperationen anstellen. Algebraische Operationen werden für Datentypen, Tupel, Datensätze und nominelle Typen sowie für Operationen wie Projektion, Mehrfachaktualisierung und Zusammenführung bereitgestellt.
  • Mit einer iterativen Verarbeitungsfunktion werden strukturierte Schleifen gegen iterative Verarbeitungskonstrukte auf hoher Ebene gehandelt. Durch Entfernen der Boilerplate zum Schreiben derselben Schleifen werden Fehlerklassen einschließlich gebundener Berechnungen eliminiert. Absicht wird Absicht klar gemacht.

Bosque wird das neueste Sprachprojekt bei Microsoft, das Sprachen wie C #, eine objektorientierte Sprache, produziert hat. F #, eine funktionale Sprache; und TypeScript, eine typisierte Obermenge von JavaScript. Der Software-Riese hat gute Erfolge bei der Entwicklung von Sprachen erzielt, die immer beliebter werden. C # beispielsweise belegte in den neuesten RedMonk-Sprachrankings den fünften und TypeScript den zwölften Platz, die auf Diskussionen zum Stapelüberlauf und zur Verwendung von Code in GitHub basieren. 

Auf GitHub finden Sie Bosque-Dokumentation, Beispiele und eine Referenzimplementierung. Tutorials sind in Arbeit.