Erlang to funkcyjny, współbieżny język programowania zaprojektowany do budowania odpornych na awarie, rozproszonych systemów. Opracowany w Ericsson w 1986 roku przez Joe Armstronga, Mike'a Williamsa i Roberta Virdinga, Erlang został stworzony do zasilania central telefonicznych wymagających dostępności 99,9999999% („dziewięć dziewiątek"). Działa na maszynie wirtualnej BEAM i wprowadził model aktorów współbieżności do mainstreamowej inżynierii oprogramowania.
Definiujące cechy Erlanga to lekkie procesy (miliony mogą działać jednocześnie), przekazywanie wiadomości (brak współdzielonej pamięci między procesami) i wymiana kodu na gorąco (aktualizacja działających systemów bez ich zatrzymywania). Biblioteka OTP (Open Telecom Platform) dostarcza sprawdzone w boju wzorce do budowania odpornych na awarie supervisorów, maszyn stanów i aplikacji rozproszonych.
Do czego służy Erlang?
Erlang napędza infrastrukturę telekomunikacyjną (systemy Ericssona obsługują 40% globalnego ruchu mobilnego), systemy wiadomości (WhatsApp był zbudowany na Erlangu i obsługiwał 2 miliardy użytkowników z małym zespołem inżynierskim), narzędzia do współpracy w czasie rzeczywistym, systemy przetwarzania płatności i rozproszone bazy danych jak CouchDB i Riak. Elixir, zbudowany na BEAM, rozszerzył zasięg Erlanga na tworzenie stron internetowych.
Erlang dla początkujących
Erlang wymaga zmiany sposobu myślenia — brak pętli (używaj rekurencji), brak zmiennych mutowalnych, a współbieżność odbywa się przez przekazywanie wiadomości zamiast wątków. Ale te ograniczenia produkują niezwykle niezawodne oprogramowanie. Nauka Erlanga pogłębia zrozumienie współbieżności, odporności na awarie i systemów rozproszonych w sposób, jakiego niewiele innych języków potrafi. Użyj internetowego kompilatora Erlang w myCompiler, aby eksperymentować z dopasowywaniem wzorców, procesami i zachowaniami OTP.
Erlang vs inne języki
W porównaniu z Go pod względem współbieżności, model aktorów Erlanga zapewnia silniejszą izolację awarii (awaria procesu nie wpływa na inne), podczas gdy goroutyny Go mają mniejszy narzut, ale współdzielą pamięć. W porównaniu z Elixirem, Erlang ma bardziej szczegółową składnię, ale Elixir działa na tej samej maszynie wirtualnej BEAM z bardziej nowoczesną składnią inspirowaną Ruby. Dla odporności na awarie w systemach rozproszonych, Erlang/BEAM pozostaje niezrównany.
Dlaczego warto używać internetowego kompilatora Erlang?
Internetowy kompilator Erlang, nazywany również sandboxem Erlang lub playgroundem BEAM, pozwala kompilować i uruchamiać kod Erlang bezpośrednio w przeglądarce bez instalowania środowiska uruchomieniowego Erlang. Idealny do nauki dopasowywania wzorców Erlanga, zrozumienia modelu aktorów współbieżności, eksperymentowania z zachowaniami OTP i eksplorowania koncepcji programowania funkcyjnego bez złożonej lokalnej konfiguracji.
Internetowe IDE Erlang w myCompiler zapewnia pełne środowisko uruchomieniowe Erlang/OTP. Możesz tworzyć procesy, używać przekazywania wiadomości, dopasowywać wzorce na krotkach i listach oraz używać standardowych modułów OTP. Zapisuj i udostępniaj programy Erlang przez URL — całkowicie za darmo.
Dlaczego Erlang jest tak popularny?
Wpływ Erlanga znacznie przewyższa jego bezpośrednią bazę użytkowników. Model współbieżności maszyny wirtualnej BEAM zainspirował języki takie jak Elixir, Gleam i model aktorów Akka w Scali. Wykorzystanie Erlanga przez WhatsApp do obsługi 2 miliardów użytkowników z 50 inżynierami stało się legendą w branży. Drzewa nadzoru frameworka OTP są sprawdzonym wzorcem do budowania niezawodnych systemów rozproszonych. Dla każdego budującego systemy, które nigdy nie mogą się zatrzymać, model Erlanga pozostaje złotym standardem.
Możliwości kariery z Erlang
Wiedza specjalistyczna w Erlangu jest wyspecjalizowana, ale wysoko ceniona na stanowiskach inżyniera systemów rozproszonych, inżyniera telekomunikacji, inżyniera backendu w firmach używających BEAM (Ericsson, WhatsApp, Discord) i developera Elixir (ponieważ Elixir i Erlang współdzielą środowisko uruchomieniowe BEAM). Rosnąca popularność Elixira w tworzeniu stron znacząco zwiększyła zapotrzebowanie na inżynierów biegłych w BEAM.