C++, Lisp... Erlang?

ErlangJest pewien język, którego uczyłem się ostatnimi czasy praktycznie równolegle z Lispem, a o którym nic nie pisałem na łamach tego blogu. Traktowałem go jako coś pobocznego, jako dodatkową możliwość użycia pewnych świeżo poznanych, lispowych koncepcji. Teraz jednak odbywam praktyki w firmie używającej i propagującej tenże język. Mowa oczywiście o Erlangu. Jako, że teraz pracuje z nim na codzień, język ten będzie często gościł na tym blogu. Gdybym miał podsumować Erlanga w kilku hasłach, byłyby to: niezawodność, współbieżność (concurrency), lekkie procesy (lightweight processes), język funkcyjny, interaktywność. Język ten powstał w laboratoriach firmy Ericsson (tak, tej od Sony Ericsson) i pozwolił jej osiągnąć w jednym ze swoich projektów niezawodność tzw. nine nines, czyli 99.9999999% - innymi słowy, w ciągu roku system był niesprawny nie dłużej niż ok. cztery setne sekundy! Taki poziom bezawaryjności jest osiąganlny dzięki pewnym bardzo ciekawym koncepcjom, o których chciałbym napisać w przyszłości. Nie będę się w tym poście rozpisywał o innych mniej lub bardziej znanych projektach zrealizowanych w Erlangu (w o tym klasycznych, używanych wręcz marketingowo przykładach Facebook'a czy Amazonu). Warto moim zdaniem wspomnieć tu jeszcze o jednym - edytorze modeli 3D o nazwie Wings 3D, napisanym w całości w Erlangu. Jest to o tyle specyficzny przykład, że Erlang jako język nie jest stworzony do pisania aplikacji przeprowadzających ogromne ilości obliczeń matematycznych w czasie rzeczywistym, a jego funkcyjność średnio pomaga przy programach trzymających duże ilości wewnętrznego stanu. A do czego ten język się nadaje najlepiej i jakie ciekawe rozwiązania zostały dla niego pomyślane - to już temat na kolejne posty.