Bosque: Microsofts neue schleifenfreie Programmiersprache für bessere Codequalität
- Bosque zielt darauf ab, Softwarequalität zu steigern und Entwicklerproduktivität zu erhöhen.
- Es eliminiert Komplexitätsquellen wie veränderlichen Zustand, Referenzgleichheit und Schleifen.
- Inspiriert von TypeScript und JavaScript.
Strukturiertes Programmieren und Abstrakte Datentypen wurden in den 1970ern populär und seither in fast allen Programmiersprachen eingesetzt. Diese Methodologien ermöglichten es Programmierern, sich auf die Absicht und das Kernverhalten ihres Codes zu konzentrieren, ohne sich um Hardwarearchitektur kümmern zu müssen. Bald folgte ein goldenes Zeitalter von Compilern und integrierten Entwicklungsumgebungen (IDEs).
Um Produktivität weiter zu steigern, Softwarequalität zu verbessern und neue Compiler- sowie Developer-Tooling-Erfahrungen zu ermöglichen, haben Microsoft-Ingenieure kürzlich eine neue Programmiersprache namens Bosque entwickelt.
Bosque ist darauf ausgelegt, einfachen, für Mensch und Maschine leicht nachvollziehbaren Code zu schreiben. Es bietet diverse Wege, um „zufällige Komplexität“ im Entwicklungsprozess zu vermeiden.
Regularisiertes Programmieren
In der strukturierten Programmierung wird die Flusssteuerung durch Bedingungen, Unterprogramme und Schleifen gesteuert. Die neue Programmiersprache hingegen eliminiert Komplexitätsquellen wie veränderlichen Zustand, Referenzgleichheit und Schleifen. Deshalb wird dieses Paradigma als „regularisiertes Programmieren“ bezeichnet.
Bosque kombiniert TypeScript-inspirierte Syntax und Typisierung mit ML- sowie JavaScript/Node-inspirierter Semantik. Es unterstützt ein nicht-meinungsbasiertes Typsystem, das Programmierern erlaubt, verschiedene nominelle, strukturelle und Kombinations-Typen flexibel einzusetzen, um die relevanten Merkmale der Problemdomäne abzubilden.
Quelle: Microsoft | Moving Beyond Structured Programming
Die Sprache nutzt keine „while“-, „do-while“- und „for“-Schleifen und verfolgt einen völlig anderen Ansatz bei Bedingungen. Mark Marron, Informatiker bei Microsoft, führte das Konzept der „Funktoren“ ein, um strukturierte Schleifen zu ersetzen und gleichzeitig die Softwarequalität zu erhöhen.
Funktoren mit symbolischen Transformern
Bosque bietet spezialisierte bulk-algebraische Datenoperationen und integrierte Unterstützung für none (oder optionale Daten) Verarbeitung. Es unterstützt auch Pipelines für Sammlungsverarbeitung sowie if und match als Ausdrücke.
Dank des reichen Satzes an Ausdrucksprimitiven in Bosque besteht weniger Bedarf an einer großen Menge an Statement-Kombinatoren. Die Sprache stellt assert (nur für Debug-Builds aktiviert) und check (für alle Builds aktiviert) als erstklassige Features bereit, zusätzlich zu Vor-/Nachbedingungen und Klasseninvarianten. Auch gibt es in Bosque keine Schleifenkonstrukte.
Bosque könnte extrem nützlich für Cloud-basierte Entwicklungsprojekte sein, deren Architekturen auf Microservices, serverlosen Funktionen und RESTful APIs basieren. Es könnte kostenfreies Laden für schnellen Start, ultraniedriges Overhead-Tracing und Laufzeitumgebungen mit minimaler Performance-Variabilität ermöglichen.
Was kommt als Nächstes?
Diese neue Sprache befindet sich noch in der Entwicklungsphase. Wer sie testen möchte, findet den Code auf GitHub.
Erste Experimente deuten darauf hin, dass sie mehrere Next-Generation-Erfahrungen ermöglichen kann: API-Auto-Marshalling, verbessertes Fuzzing, symbolisches Testen und Echtzeit-Kompilierung mit stabilem GC-Support.
Weiterlesen: NASAs 10 Coding-Regeln für sicherheitskritische Programme
Bosque unterliegt noch Revisionen, es gibt diverse Bugs und fehlende Funktionalität, und die Performance lässt sich noch stark verbessern. Marron und sein Team werden sich auf fortschrittlichere Developer-Tooling-Erfahrungen konzentrieren – etwa automatisches Setzen von Speichergrenzen über die Zeit und Verifikation von Apps auf Freiheit von Laufzeitfehlern ohne zusätzlichen Aufwand.
Industrietechnik
- Top 10 Cloud Programmiersprachen, die jeder Developer beherrschen sollte
- Mikroprozessor-Programmiergrundlagen
- Phasenregelkreise (PLL): Grundlagen, Anwendungen und Design‑Best‑Practices
- C Programmierungsoperatoren meistern: Ein umfassender Leitfaden
- C-Programmierung meistern: Umfassendes PDF-Tutorial für Einsteiger
- Python Print ohne Newline: Den end-Parameter & andere Techniken meistern
- Microsofts Multi-Task DNN setzt neue Maßstäbe in conversationaler KI
- GLTR: Statistisches Werkzeug erkennt KI-generierte Texte durch Vorhersagbarkeit
- Die 9 wichtigsten Programmiersprachen 2021, die Sie lernen sollten
- C-Programmierung meistern: Umfassendes Tutorial für Einsteiger