poniedziałek, 4 Czerwiec 2018

go-elm-elixir-rust

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.

elm-javascript-language

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.

elixir-javascript-languageDział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:

  • WhatsApp
  • Pinterest
  • 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.

golang-javascript-languageKod 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.

rust-javascript-languageCechuje 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
Back to home
Flutter – Nawigacja pomiędzy widokami

Nawigacja pomiędzy widokami we frameworku Flutter.

Read more...
Alternatywne JavaScriptowe Frameworki

W JavaScriptowym świecie poza frameworkami React, Angular które podzieliły po między siebie popularność, a goniącym je Vue.js jest jeszcze miejsce na inne, mniej skompilowane frameworki, które nie zostały jeszcze dostrzeżone przez szersze grono ludzi.

Read more...
Flutter – pobieranie danych w formacie JSON

W tym wpisie zapoznamy się jak w prosty sposób pobrać dane w formacie JSON.

Read more...