Jakieś półtorej roku temu pisałem na blogu o projekcie Oslo. Rewelacyjnie zapowiadających się narzędziach do tworzenia języków specyficznych dla problemu. Projekt składał się z kilku elementów. Narzędzi do definicji modelu języka i jego testów w czasie rzeczywistym, bazy danych przechowującej instancje modeli zgodne z gramatyką oraz edytor Quadrant.
Pierwszy element w bezpośredni sposób odpowiadał funkcjonalności projektu xText który mnie osobiście od dawna pasjonuje. Byłem pod wielkim wrażeniem faktu iż całość pracowała w czasie rzeczywistym. W jednym edytorze można było definiować/modyfikować model gramatyki i w tym samym czasie go testować na przykładowych danych. W przypadku projektu xText na dzień dzisiejszy wciąż konieczna jest generacja kodu i uruchomienie kolejnej instancji Eclipse. Oczywiście możliwe byłoby rozszerzenie środowiska xText w taki sposób by całość nie wymagała restartu poprzez wykorzystanie dynamiki mechanizmów OSGi/Equinox, jednak aktualnie nie jest to zaimplementowane (budowałem tego typu mechanizmy i nie jest to takie trudne jak się wydaje :)
Drugim elementem była baza instancji. Mniej więcej odpowiadała ona środowisku Eclipse CDO.
Trzeci element 'Quadrant' był dla mnie jednak niezrozumiały. Był to edytor który w sposób graficzny pozwalał budować i łączyć zapytania do bazy instancji. Przyznam że nie do końca potrafiłem sobie wyobrazić jego produkcyjne zastosowanie. Z doświadczenia wiem że jeżeli ktoś chce dostarczyć narzędzia dla osób o profilu 'nieinformatycznym' (jak np. analityk o profilu 'telekomunikacja' a nie 'informatyka') to narzędzia te MUSZĄ BYĆ PROSTE. Domena rozwiązywanego problemu musi zostać tak okrojona/dopasowana by możliwe było stworzenie naprawdę prostych narzędzi operujących w zadanej (zrozumiałej) przestrzeni. Po ci więc Microsoft tworzył uniwersalny edytor zapytań?
Quadrant nie był prosty. Wyglądał na narzędzie do obsługi którego konieczne będzie specjalistyczne przeszkolenie, a nawet znajomość modelu gramatyki. Trudno mi sobie wyobrazić by klient operujący w narzędziach schodził na poziom modelu który często jest nie do końca zrozumiały nawet dla osób z IT o odmiennej specjalizacji. Sam model także nie ma wartości sam w sobie. To tylko zapis wiedzy którą dopiero później należy zinterpretować w coś wartościowego dla klienta (generacja lub silnik interpretujący)
Dodatkowo całość kojarzyła mi się trochę z filmem 'Raport mniejszości'. Specyfika graficzna edytora powodowała że ewentualny zapytanie zbudowane w ten sposób musiałoby być wyświetlane na ekranie wielkości ściany lub przynajmniej 50 cali. Całkowicie niezrozumiały element.
Parę miesięcy później pojawiła się informacja o zdefiniowaniu przeznaczenia projektu Oslo. Został on przypisany jako element oferty bazodanowej. To było spore zaskoczenie. Trochę szkoda ponieważ edytor oraz baza mogły mieć zdecydowanie szersze pole działania podobnie jak xText. Wyjaśniało jednak istnienie złożonego modułu do budowy zapytań. Przyznam że po tym ustaleniu kierunku dalszego rozwoju straciłem zainteresowanie tematyką OSLO.
Dziś natrafiłem na informację o zakończeniu prac nad modułem 'Quadrant'. Pozostałe elementy pozostają bez zmian. Niestety dalej całość targetowana jest tylko na bazy danych. Szkoda. Gdyby Microsoft pracował bardziej na kształt Eclipse Community bez wątpienia projekt Oslo mógłby więcej zmienić w tematyce DSL. Ich zespół mógłby dalej pracować nad rozszerzeniem projektu dla baz danych jednak zakładam że sporo osób z zewnątrz wykorzystywałoby go inaczej. Jako podstawę rozwiązań DSL jak dziś się to robi z EMF/xText.
Otwartość na deweloperów z zewnątrz to podstawa w tego typu projektach rozwojowych. Wystarczy sobie przypomnieć początki środowiska Eclipse. Przed wersją 3.0 sporo osób 'hakowało' SDK wycinając samego Equinoxa jako podstawę rozszerzalnych aplikacji serwerowych lub wczesne RCP. Dzięki temu ktoś zauważył że warto stworzyć koncepcję RCP, później RT itp. Otwartość na nowe 'niestandardowe' pomysły to moim zdaniem coś o czym zawsze powinno się pamiętać
niedziela, 8 sierpnia 2010
[OSLO] Quadrant idzie w odstawkę
Autor:
Grzegorz Bialek
Etykiety:
eclipse modeling,
mdd
Subskrybuj:
Komentarze do posta (Atom)





0 komentarze:
Prześlij komentarz