Spoločnosť Microsoft zahájila nový open-source projekt na vývoj programovacieho jazyka Bosque. Účelom projektu v jazyku Bosque je vybudovať funkčný programovací jazyk, ktorý zabráni „náhodnej zložitosti“ v procese vývoja.
Ciele návrhu pre jazyk Bosque zahŕňajú zvýšenie produktivity vývojárov, lepšiu kvalitu softvéru a umožnenie množstva nových prekladačov a skúseností s nástrojmi. Nový jazyk je umiestnený ako experiment v regularizovanom dizajne pre životný cyklus rýchleho a spoľahlivého vývoja softvéru pomocou strojov.
Kľúčovým cieľom je eliminácia náhodnej zložitosti. Bosque kód má byť jednoduchý a ľahko pochopiteľný pre stroje aj pre ľudí. Ale Bosque je v tomto okamihu stále veľmi vo vývoji; navrhovatelia neodporúčajú používať Bosque na žiadne výrobné práce. Vývojárom sa odporúča, aby s nimi experimentovali.
Niektoré funkcie a možnosti dizajnu Bosque zahŕňajú:
- Všetky hodnoty sú nemenné, pričom Bosque prijal funkčný model s nemennými údajmi. Pochopenie účinku vyhlásenia o bloku kódu je zjednodušené, ak je bez vedľajších účinkov, uvádza sa v dokumentácii Bosque. Funkčné jazyky profitovali zo zjednodušenia vývoja programu, sofistikovaných nástrojov a optimalizácie kompilátora, ktoré tento model umožňuje.
- Funkčné programovanie je zlúčené s rozsahmi blokov a
{…}
zložené zátvorky tým, že umožňuje viacnásobné priradenie aktualizovateľných premennýchvar!
. - Funkcie sú prvotriedne hodnoty a typy.
- Konštruktory lambda kombinujú definíciu kódu pre telo lambda so sémantikou variabilného kopírovania na uzavretie zachytených premenných pri vytváraní lambda.
- Jednoduchý systém bez mienkotvorného typu umožňuje použiť celý rad štrukturálnych, kombinovaných a nominálnych typov na vyjadrenie zámeru a kódovanie relevantných prvkov problémovej oblasti.
- Zadané reťazce poskytujú mechanizmus na zdvíhanie známej štruktúry obsahu reťazca do typu spôsobom, ktorý je pre ľudí zmysluplný a používaný kontrolou typu.
- Parametre je možné prevliecť
ref
odovzdávanie argumentov. Alternatíva k hodnotám s viacerými návratmi to zjednodušuje scenáre, keď sa premenná odovzdáva metóde, ktorá ju môže použiť a aktualizovať. Povolenie aktualizácie v parametri vylučuje ďalšie potrebné riadenie návratovej hodnoty. Táto funkcia ešte nie je implementovaná. - Poskytnuté sú pomenované argumenty, rovnako ako operátory odpočinku a šírenia. Môžu vykonávať manipuláciu s údajmi ako súčasť vyvolania a operácií konštruktora.
- Poskytuje sa prvotriedna podpora pri vyjadrovaní celého radu invariantov, kontrol zdravého rozumu a diagnostických tvrdení.
- Hromadné algebraické dátové operácie v Bosque začínajú hromadným načítaním a aktualizáciou údajov. Vyrobené operátory pomohli zamerať kód na celkový zámer a umožnili vývojárom vykonávať algebraické uvažovanie o operáciách dátovej štruktúry. Algebraické operácie sa poskytujú pre dátové typy, n-tice, záznamy a nominálne typy, ako aj pre operácie vrátane projekcie, viacnásobnej aktualizácie a zlúčenia.
- So schopnosťou iteračného spracovania sa štruktúrované slučky obchodujú za vysoko koncipované konštrukcie pre iteračné spracovanie. Odstránenie štandardného zápisu tých istých slučiek vylučuje triedy chýb vrátane viazaných výpočtov; zámer je objasnený.
Bosque sa stáva najnovším jazykovým projektom spoločnosti Microsoft, ktorá vyrába jazyky vrátane C #, objektovo orientovaného jazyka; F #, funkčný jazyk; a TypeScript, napísaná nadmnožina jazyka JavaScript. Softvérový gigant zaznamenal dobrú mieru úspechu pri vývoji jazykov, ktoré si získavajú popularitu. Napríklad C # sa v poslednom hodnotení jazykov RedMonk umiestnil na piatom a 12. mieste v TypeScript, ktoré sú založené na diskusiách o Stack Overflow a použití kódu v GitHub.
Dokumentáciu, príklady a referenčnú implementáciu Bosque nájdete na GitHub. Návody sú v práci.