Nie sposób pisać o języku programowania Gleam, bez wspomnienia o Erlangu, w którym jest osadzony. Erlang powstał w 1990 roku. Zaprojektował go Joe Armstrong, który tworząc Erlang, wzorował się na języku Prolong. Testowała go firma Ericsson, znana z dystrybucji popularnych w latach 90. telefonów komórkowych Sony Ericsson. Początkowa wersja Erlanga nie spełniała swojego zadania, dopiero w 1998 r. jego ostateczna wersja została udostępniona jako wolne oprogramowanie (open source). W jaki sposób Erlang wiąże się z językiem programowania Gleam? Tego dowiesz się w dalszej części artykułu.
Krótka historia Gleam.
Język Gleam jest dość prosty, ączy w sobie cechy języka obiektowego i funkcyjnego, jednocześnie programiści mówią o tym, że sporną kwestią w przypadku jego powszechnego użycia jest bezpieczeństwo. Gleam jest językiem, który obsługuje algebraiczne typy danych, moduły jako pierwszorzędne typy danych oraz mapy typu wierszowego, aby umożliwić elastyczne i liberalne interfejsy funkcyjne. Powstał jako statycznie typowany funkcjonalny języka programowania dla BEAM (BEAM jest częścią Erlang Run-Time System (ERTS), który kompiluje kod źródłowy Erlanga w kod bajtowy, który jest następnie wykonywany na BEAM).
Właściwości języka programowania Gleam
Gleam kompiluje się do Erlanga, co sprawia, że nadaje się do pisania masowo współbieżnych systemów, które wykazują odporność na błędy oraz mają dość prostą składnię. Gleam ułatwia importowanie funkcji napisanych w innych językach BEAM. KAżda biblioteka lub aplikacja napisana w Gleam może być używana przez dowolny język BEAM (Erlang, Elixir) bez spadku wydajności. Kompilator Gleam jest napisany w języku Rust, który przypomina swoją składnią C i Meta Language.
Dzięki swoim korzeniom w języku Erlang Gleam wyróżnia się: niskimi opóźnieniami, wysoką współbieżnością, aplikacjami sieciowymi, takimi jak bazy danych lub broker wiadomości. Dzięki rozbudowanemu systemowi typów statystycznych Gleam zapobiega błędom w trakcie kompilacji, na długo przed tym, zanim wykryje je użytkownik. Może także służyć jako skuteczne narzędzie do refaktoryzacji.
Jakie korporacje korzystają obecnie z Gleam?
Dzięki temu, że Gleam jest oparty na maszynie wirtualnej Erlang, korzystają z niego: Discord, Ericsson, Heroku oraz WhatsApp, które mogą świadczyć usługi o niskim globalnym opóźnieniu. Gleam został zaprojektowany w taki sposób, by w pełni wykorzystywać środowisko Erlanga bez dodatkowych kosztó własnych, dzięki czemu wszystkie programy tworzone w Gleam są tak samo wydajne i szybkie, jak ich odpowiedniki w Erlangu.
Kompatybilność z Erlangiem
Dzięki swojej kompatybilności z Erlangiem Gleam ułatwia korzystanie z kodu napisanego w innych językach BEAM, takich jak: Elixir czy LFE, dzięki czemu użytkownicy Gleam mają dostęp do szerokiej gamy darmowych bibliotek wszystkich języków BEAM. W drugą stronę – kod napisany w Gleam można łatwo odczytać w ww. językach, bez konieczności instalowania kompilatora Gleam. Przez węzły Erlanga przechodzi ogromna część światowego ruchu telefonii komórkowej, a Elixir jest wykorzystywany do wysyłania powiadomień i wiadomości przez czaty.
Ograniczenia języka programowania Gleam
Jak każdy język programowana, Gleam ma też swoje słabości. Nie działa w przeglądarce ani na urządzeniach mobilnych. Nie ma biblioteki graficznej, więc nie nadaje się do projektowania aplikacji z graficznym interfejsem użytkownika. Nie posiada prawie natychmiastowego czasu rozruchu i łatwej dystrybucji natywnego pliku binarnego, tym samym nie jest najlepszy dla projektowania w nim aplikacji wiersza poleceń. Nie jest też szybki w obliczeniach, więc sprawdzi się w analizie statystycznej. Mimo to wciąż skupia wokół siebie zaangażowaną społeczność, która rozwija Gleam, próbując dostosować go do najnowocześniejszych wymagań technicznych.