wHej,
Trochę się ostatnio tym tematem interesowałem więc spróbuje przekazać
do wiem.
Jeśli chodzi o Boo to faktycznie język jak każdy inny. Przy czym nie
jest to język skryptowy w takim sensie jak JavaScript czy IronPython.
Ma co prawda pewne elementy (type inference, duck typing, wyrażenia
lambda), przez które można go uznać za język dynamiczny ale podobnie
jak
VB.NET i C# 3.0 ma silną typizację i jest statycznie kompilowany.
To co wyróżnia ten język na tle innych to makra kompilatora. Czyli sam
język umożliwia nam zmianę "pipelinu" swojego kompilatora. Pozwala to
nam chociażby dodać swoje własne słowa kluczowe do języka lub zmienić
znaczenie istniejących. W pewnym sensie można to uznać za rozszerzenie
koncepcji AOP przy czym kod jest zmieniany w trakcie kompilacji a nie
instrumentowany po jej zakończeniu. Daje to większe możliwości oraz
zapewne lepszą wydajność.
Co więcej dzięki makrom kompilacji język ten świetnie nadaje się do
tworzenia własnych języków domenowych. Przy czym nie mówimy tu o
językach graficznych jak DSL Toolkit czy Windows Workflow. Chodzi o
małe języki porgramowania takie z jakimi często mamy do czynienia pod
uniksem. Jest to też bliższe koncepcji DSL opisanej przez Martina
Fowlera.
Tak jak napisał Arek dużo więcej na ten temat wie Ayende Rahien. Nawet
pisze już książkę pt. "Building Domain Specific Languages in Boo". Jej
draft jest już dostępny w Manning EAP (pierwszy rozdział za darmo):
http://www.manning.com/rahien/
Na początek można też przeczytać jego artykuł na InfoQ:
http://www.infoq.com/articles/dsl-on-the-clr
Temat ten dosyć mnie interesuje ponieważ kiedyś razem z Marcinem
Celejem uczestniczyłem w budowaniu podobnego rozwiązania ale na bazie
IronPythona. Po przeczytaniu kilku pierwszych rozdziałów tej książki
mogę już powiedzieć że Boo daje o wiele większe możliwości.
Rozmawiałem nawet o tym niedawno z Bartkiem Pampuchem, który z kolei
jest specjalistą od workflow. Z mojego doświadczenia wynika że w
każdym większym systemie znajdzie się miejsce dla takich wbudowanych w
system mini języków, silników regułowych czy workflow. Dlatego uważam
warto jest mieć takie narzędzia zawsze pod ręką.
Pozdrawiam,
-Szymon
On 23 Maj, 20:26, "Wojciech Gebczyk" <
wojciech.gebc...@gmail.com>
wrote:
> Sent from Google Mail for mobile | mobile.google.com- Ukryj cytowany tekst -