W zeszłym tygodniu (12-13 czerwca) byłem w Warszawie w Instytucie Lotnictwa na Ada-Europe. Konferencji poświęconej językowi Ada i systemom safety-critical. Wszystkich tematów, które chciałbym zawrzeć w relacji wyszło bardzo dużo. Dlatego podzielę ją na części. W tym wpisie skupię się na ogólnych wrażeniach z konferencji i różnych ciekawostkach technologicznych w systemach safety-critical. Najciekawsze prezentacje omówię w osobnym wpisie.

O konferencji

Konferencja Ada-Europe jest organizowana przez społeczność o tej samej nazwie. Co roku odbywa się w innym mieście i tak się szczęśliwie złożyło, że tym razem wypadło na Warszawę. Rok temu konferencja odbywała się w Lizbonie, za rok będzie w Santander. Główna część konferencji, czyli prelekcje odbywała się 12-13 czerwca. Dzień wcześniej miały miejsce warsztaty, natomiast dzień po odbywał się panel dyskusyjny i posiedzenie WG9 pracującej nad standardem języka Ada 2020. Prezentacje ani w tym roku, ani w poprzednich niestety nie były nagrywane. Można za to obejrzeć slajdy – link.

Konferencja odbywała się w Instytucie Lotnictwa i biorąc pod uwagę tematykę był to świetny wybór.

W przerwach można było podziwiać różne cuda techniki takie jak choćby tunel aerodynamiczny:

Czy wystawę starych silników odrzutowych znajdującą się w stołówce:

Jak widać robiłem jakąś relację na żywo w socialach ale nie do końca to wyszło. Mam trochę zdjęć, ale nie było kiedy ich opisywać i wrzucać jednocześnie dalej śledząc prezentację. W przerwach też sporo się działo i w końcu nie miałem kiedy tego zrobić. W przyszłości chyba będę musiał poprawić relacje.

Społeczność

Jeżeli chodzi o społeczność to Ada-Europe mocno różniło się od typowych konferencji programistycznych w Polsce. Uczestników było dosyć mało – może maksymalnie 100 osób. Średnia wieku z kolei była zdecydowanie wyższa. Wiele osób zbliża się już do emerytury i ma nawet po 30 i więcej lat doświadczenia w branży. Przez to również w rozmowach dało się odczuć, że uczestnicy większą wagę przykładają do zasad dobrego Software Engineeringu niż do ulotnych trendów.

Ludzie którzy przyjechali to przede wszystkim pasjonaci Ady, którzy całe życie poświęcili na jej promocję. Niestety język nie zdobył przez te wszystkie lata zbyt dużej popularności, a starzenie się jego społeczności też dobrze nie wróży na przyszłość. Ada jako język raczej nie wyginie, bo zdecydowana większość komercyjnych projektów jest robiona dla wojska albo dla lotnictwa. Jednak może mieć problem z rozszerzeniem swojej niszy.

Swoją reprezentację miały też środowiska akademickie. Różne badania są prowadzone przy użyciu Ady, a obszary szczególnego zainteresowania to schedulery, współbieżność i problemy hard real time takie jak np. minimalizacja WCET (Worst Case Execution Time).

Do społeczności Ada-Europe można się zapisać przez ich stronę. Roczna subskrypcja wynosi około 50 Euro i uprawnia do otrzymywania biuletynu wychodzącego raz na kwartał oraz do zniżek na konferencjach i warsztatach. Sam mam zamiar się zapisać w najbliższym czasie

AdaCore

Na stoisku AdaCore standardowo można było zdobyć ich książki i eval boardy. Ja tym razem wyszedłem z książkami o normie kolejowej EN50128 i normie lotniczej DO-178. Były też inne książki np. o języku SPARK 2014. Jest to podzbiór Ady umożliwiający formalny dowód zgodności programu z wymaganiami zapisanymi za pomocą kontraktów oraz dowód braku runtime errorów.

AdaCore chwaliło się też wynikami badań dotyczących kosztów developmentu w różnych językach i oszczędności związanych z Adą. Reklamowali je jako książka o zasadach wyboru języka do projektu zawierająca dodatkowo badania. Jestem trochę zawiedziony, bo gdy znalazłem ją w internecie, okazało się, że to tylko kilkunastostronicowy raport (LINK).

Innym, ciekawszym narzędziem jest CCG (Common Code Generator) wchodzący w skład kompilatora GNAT. Jest to kompilator kodu Ady do C. dzięki temu można pisać w Adzie na procesory na które nie ma dedykowanego kompilatora, a jest np. gcc.

Ada w zastosowaniach komercyjnych

Udało mi się też porozmawiać z przedstawicielami firm rozwijających oprogramowanie w Adzie. Twierdzili oni, że nie da się rekrutować inżynierów ze znajomością tego języka. Jedyną opcją jest ich wyszkolenie. Zwykle nowe osoby na początku są niesamowicie zirytowane błędami kompilacji. Całkowite przekonanie ich do kompilatora sprawdzającego dużo więcej potencjalnych błędów zajmuje około 5-6 tygodni. Potem dostrzegają ile czasu dzięki temu oszczędzają na późniejszym debugowaniu i doceniają czepialski kompilator.

Ada jest dobrym wyborem dla firm, które rozwijają swój projekt od początku do końca przez kilka lat, albo mają dużą kontrolę nad procesem jego powstawania. Wtedy inwestycja w wytrenowanie developerów się zwróci. Dotyczy to z resztą nie tylko systemów safety-critical. Jednym ze sponsorów eventu była firma Deep Blue automatyzująca transakcje giełdowe. Niestety nie miała nic wspólnego z komputerem, który w słynnym meczu pokonał Kasparowa w szachy. Tworzą oni swój soft w Adzie i są z tego wyboru na tyle zadowoleni, że sponsorują takie konferencje.

Java do celów militarnych

Jak widać z relacji – Ada była głównym tematem, jednak można było czasem znaleźć coś ciekawego również w innych językach. I wcale nie mam tu na myśli C czy C++. Jedna z firm (PTC) chwaliła się swoją maszyną wirtualną Javy (JVM) do zastosowań w systemach czasu rzeczywistego. Posiada ona przede wszystkim deterministyczny garbage collector. Podobno ten JVM jest wykorzystywany przez US Navy w oprogramowaniu na okrętach.

Podsumowanie

Konferencja niesamowicie mi się podobała. Trudno o event w temacie systemów safety-critical, szczególnie w Polsce, dlatego cieszę się, że miałem okazję w nim uczestniczyć. Ciężko powiedzieć, czy wezmę udział w przyszłym roku, bo jednak do Hiszpanii mam trochę dalej, ale na pewno mogę polecić Ada Europe. Oczywiście ważnym aspektem konferencji jest wartość merytoryczna, ale o tym w odrębnym wpisie.