
Obiecujące języki w świecie webdev
Jakie języki mają szansę w niedalekiej przyszłości stać się wiodącymi we frontendzie czy backendzie? W dalszej części artykułu przedstawione są cztery z nich, które w najbliższych latach mogą trochę namieszać i skierować część uwagi na siebie.
1) Elm – język funkcyjny, skierowany stricte pod pisanie kodu dla warstwy frontendu kompilowany do kodu javascript.
Na swój sposób jest on pewną alternatywą dla frameworków typu React czy Angular. Ktoś może się zastanawiać dlaczego warto używać całego języka zamiast skorzystać z niewielkiej bilblioteki.
Sam Elm z racji bycia językiem funkcyjnym narzuca nam pewien sposób pisania aplikacji, często zupełnie odmienny od tego w jaki jesteśmy przyzwyczajeni. Możemy z łatwością kawałek kodu w Elmie załadować do już istniejącej aplikacji w javascripcie.
To co wyróżnia Elm na tle innych języków czy narzędzi do tworzenia frontendu to „no runtime exceptions”, to znaczy, że po skompilowaniu kodu mamy pewność, że nie powinien nigdy pojawić się nam błąd podczas użytkowania naszej aplikacji, dla przykładu firma RedInk, ma napisane 80 tysięcy linijek i ciągle aplikacja nie wyrzuciła nawet jednego błędu.
Sam Elm według testu wydajności potrafi być od prawie 1.5 do 2 razy szybszy w działaniu w porównaniu do framerków Ember, React, czy poszczególnych wersji Angulara.
Kto między innym używa:
- NoRedInk
- Futurice
- Hearken
Zalety:
- funkcyjne podejście do pisania kodu
- szybkość działania
- możliwość wstawiania małych fragmentów kodu napisanych w Elmie do istniejącej aplikacji
- brak błędów po skompilowaniu
Wady:
- nie jest to jedynie biblioteka czy framework a cały język
- wymaga trochę nauki
2) Elixir, obecnie prawdopodobnie jeden z najbardziej popularnych języków funkcyjnych, stworzony przez Jose Valim w 2012, w szczególności wykorzystywany w aplikacjach, które mają działać niezawodnie, a także obsługiwać wiele połączeń jednocześnie.
Działa on na maszynie wirtualnej Erlanga (w skrócie BEAM), dzięki temu, że jest on oparty o jego architekturę to mamy dostęp do wszystkich jego bibliotek.
Pod względem składni Elixir jest o wiele przyjemniejszy dla oka niż Erlang, składnia Erlanga jest zupełnie inna od większości znanych języków programowania. Sam Elixir jest często porównywany do obiektowego języka Ruby, pomimo tego, że sam jest językiem o zupełnie innym paradygmacie.
Może to wynikać z faktu, że autor Elixira jest znany jako deweloper pracujący przy użyciu Ruby i autor wielu popularnych gemów dla tego języka.
Biblioteki, które potrzebujemy przy pisaniu aplikacji możemy pobrać za pomocą menadżera pakietów HEX. W chwili pisania artykułu łączna ilość pobrań bibliotek wynosi trochę ponad 239 milionów co przy dość dość nowym języku jest raczej dobrym wynikiem.
Największy framework do pracy z tym językiem to Phoenix, nie jest to minimalistyczny framework, jego złożoność przypomina framework Django czy Ruby Of Rails.
Kto między innymi używa języka Elixir/Erlang:
- Bleacher Report
Zalety:
- język funkcyjny, zupełnie inne podejście do pisania kodu w porównaniu z programowaniem obiektowym
- dokładna dokumentacja
- świetna społeczność
- framework Phoenix
- niemutowalne struktury, po przypisaniu wartości do zmiennej nie mamy możliwości jej zmiany
- operator pipe
Wady:
- młody język, nie wiadomo czy utrzyma się na tyle długo by zaistnieć
- praktycznie tylko jeden większy webowy framework Phoenix
3) Golang, wieloparadygmatowy, statycznie typowany język stworzony przez Google, język roku w latach 2009, 2016 według rankingu Tiobe. Jest to jezyk kompilowany bezpośrednio do kodu maszynowego, wydajnościowo porównywalny z C, C++, do tego może być z powodzeniem wykorzystywany nie tylko webdevelopmencie.
Kod napisany w nim jest bardzo czytelny, nawet osoba, która nie miała styczności z tym językiem powinna bez większych problemów zrozumieć za co odpowiada dany kawałek kodu.
Pod względem trudności jest on dość prosty w nauce, chociaż jedną z większych trudności może sprawić zrozumienie na jakiej zasadzie działa przestrzeń robocza, w której znajdują się pliki naszej aplikacji.
W Golangu w zasadzie nie ma potrzeby korzystania z frameworków, wszystkie najpotrzebniejsze funkcje są wbudowane w jezyk, ale jeśli ktoś czuję taką potrzebę to dobrym wyborem będzie framework Revel lub Beego, który jest bardzo popularny w Chinach.
Kto między innymi używa języka Golang:
- Dropbox
- Docker
- UBER
Zalety:
- szybki
- na wiele platform
- łatwy do nauki
- stworzony przez Google
Wady:
- zarządzanie zależnościami, w przypadku kiedy pracujemy nad wieloma projektami
4) Rust, kompilowany, paradygmatowy język programowania przez Fundację Mozilla. W 2018 roku w ankiecie na największym programistycznym forum StackOverflow uznany za najbardziej lubiany język programowania.
Cechuje się wielką szybkością, zapobieganiem naruszeniom pamięci, a także gwarantuje bezpieczeństwo wątków. Jednym z popularniejszych webowych frameworków jest Rocket, a narzędzie umożliwiające zarządzanie pakietami nosi nazwę Cargo.
Za niedługo większą popularność zyska WebAssembly czyli sposób na pisanie zdecydowanie wydajniejszych aplikacji w przeglądarce, a Rust będzie jednym z jezyków, który będzie mógł być skompilowany do WebAssembly.
Kto między innymi używa języka Rust:
- Mozilla
- Atlassian
- Npm
Zalety:
- bardzo szybki
- w przyszłości może zaistnieć w gamedev
- stworzony przez Mozille
Wady:
- nie jest zbyt łatwy do nauki