Skriptování v .NETu 5 (Boo)
Tento díl seriálu Skriptování bude o nepříliš známém jazyce Boo, který je v aktivním vývoji (licencován MIT/BSD licencí). Jedná se o jazyk, kterým lze kompilovat zdrojové kódy přímo do mezikódu CLI, a tím pádem lze očekávat velkou rychlost. Samotný jazyk je velmi přehledný – vychází z jazyka Python a je silně typový, ačkoliv použití typů není povinné. Osobně se mi Boo libí a přijde mi rozhodně přehlednější než Visual Basic (možná kvůli tomu, že používám primárně C#).
Boo
Jazyk Boo rozhodně doporučuji k bližšímu prozkoumání. Má mnoho zajímavých vlastností a za zmínku rozhodně stojí snadná kompilace několika způsoby. Nás ovšem zajímá použití jako skriptovacího jazyka, které je velmi hezky řešeno. Zdrojový kód se zkompiluje a je vrácena vytvořená assembly, ve které je možné pomocí reflexe provádět všechny standardní operace.
Pokud se v kódu vyskytne syntaktická chyba, tak není assembly vytvořena a je vrácena kolekce chyb s popisem a přesným údajem o místě (řádek, sloupec). Považuji to za lepší (rychlejší) řešení než odchytávání výjimky jako v předchozích případech.
Syntaxe jazyka Boo
found as bool = false
abc = (7, 2, 4, 5, 6)
for i in range(4):
if abc[ i ]>5:
found = true
Pokud se chcete s jazykem Boo rychle seznámit, doporučuji Boo reference quick card.
Testování
Jak jsem se již v úvodu zmiňoval, dá se předpokládat poměrně vysoká rychlost zpracování skriptů. O přesném výsledku si ale budeme moci udělat obrázek až v posledním dílu seriálu.
| Parsování / kompilace | první 500 – 1000 ms další okolo 100 ms |
| Float test | 2070 ms |
| Faktorial test | 2534 ms |
| Zápis hodnoty do skriptu | 598 ms |
| Čtení hodnoty ze skriptu | 524 ms |
| Vytvoření instance | 3448 ms |
Parsování / kompilace – doba, kterou potřebuje skriptovací engine k inicializaci (parsování nebo kompilaci zdrojových kódů).
Float test – doba potřebná k vypočítání jednoho milionu rovnic sin(30)*sin(30)+cos(30)*cos(30).
Faktorial test – doba potřebná k výpočtu faktoriálu čísla 12 (12!) rekurzivně. Prověřuje rychlost interního volání funkce, vyhodnocování podmínek a počítání s celými čísly. Test je volán milionkrát.
Zápis hodnoty do skriptu – milionkrát zapíše hodnotu z hlavního programu do skriptu.
Čtení hodnoty ze skriptu – milionkrát přečte hodnotu ze skriptu.
Vytvoření instance – vytvoří milion instancí objektu ze skriptu.
Závěr
V dalším dílu se podíváme na JScript.NET a prakticky si ukážeme, jak se pracuje s třídou CodeDomProvider ke kompilaci javascriptových kódů.