Już sam nie wiem ile to miesięcy minęło kiedy usłyszałem pierwszy raz o Elixir. Pamiętam tylko jedno, napływ postów, zapchany stream twittera z informacjami: co za piękny język. Jak piękny, to trzeba się go nauczyć pomyślałem. I tak oto paręnaście miesięcy później siedzę i piszę posta dalej wiedząc o Elixr tyle, że “jest piękny”.
Pora to zmienić, więc przez najbliższe tygodnie spodziewajcie się trochę postów na temat Elixir. Będę powoli i krótko opisywał to czego się uczę. Także pokaże trochę inny sposób podejścia do nauki języka. Na razie nie zapowiada się bym cokolwiek w Elixir pisał, jak i też nie mam kontraktu w tym języku ani nie znam nikogo ze światka Elixir. Nauka ta jest stricte hobbistyczna. Więc to co tutaj znajdziecie jest częściowo moim notatnikiem z pola boju z dodatkowym komentarzem reżyserskim.
Instalacja
To co dla mnie jest zawsze bardzo ważne to instalacja języka – szczerze, podziwiam ludzi który potrafią spędzić 2-3 h grzebiąc w systemie, ustawiając specjalne ścieżki, dociągając biblioteki itp., tylko po to by zacząć pisać w danym języku programowania. Jeżeli środowisko dev jest tak skomplikowane, to jaki jest sens uczenia się tego języka? Żaden.
Na szczęście Elixir jest super prosty w instalacji zarówno na Windows jak i na Mac – dwóch systemach z których korzystam. Czy jest prosto go zainstalować na linuxie? Nie wiem, ale zakładając, że na windows i na mac jest banalnie prosto, to i na linuxie też powinno być.
To co potrzebujemy to:
- Erlang – gdyż Elixir bazuje on na języku Erlang jak i wykorzystuje jego maszynę wirtualną do odpalania kodu. Instalacja prosta jak konstrukcja cepa, pobrać binarkę odpowiednią do systemu i zainstalować. Kropka.
- Elixir – czyli nasz język i narzędzie linii poleceń do odpalania, kompilacji itp. Instalacja typu Next, Next, Finish.
Jak na razie super prosto i bez komplikacji. Jesteśmy w stanie w ciągu 5-15 minut mieć już all zainstalowane i gotowe do użycia. Nie wierzycie? Sprawdźcie sobie sami, po zakończeniu odpalcie komendę iex
:
$ iex Eshell V7.2.1 (abort with ^G) Interactive Elixir (1.2.4) - press Ctrl+C to exit (type h() ENTER for help) iex(1)> 30+3 33 iex(2)> "Jakub" <> " Gutkowski" "Jakub Gutkowski" iex(3)>
Działa? Działa.
Środowisko developerskie
Kolejną ważną rzeczą jest to w czym będę mógł pisać kod. Vima uwielbiam, ale moja miłość nie jest odwzajemniona przez niego. Chociaż na tyle dobrze, że pozwala mi on wyjść zanim zrobi sieczkę z mego mózgu. Ale tak, Vim jest na pewno jedną z wielu opcji dostępnych by zacząć pisać w Elixir. Emacs też na pewno można spokojnie wykorzystać.
Ja jednak jestem bardziej przywiązany do okienkowych produktów takich jak:
- Visual Studio Code – ma dostępny plugin napisany przez Mata McLoughlina prelegenta zeszłorocznego DevDay 2015 :)
- Sublime – też ma paczkę kolorków jak intellisense z opcją podkreślania błędów.
- Atom – zaś ma masę paczek, od intellisense przez budowanie po kolorowanie, do wyboru do koloru. Kto co lubi :)
Ja pewnie aktualnie pozostanę przy Visual Studio Code a potem się przeniosę do Atom.
To wszystko na dzisiaj, udało mi się postawić środowisko i skonfigurować narzędzie z którego będę korzystał. Pora się dowiedzieć co to ten Elixir jest i jak się go je :)
Kilka dni temu też zacząłem się interesować tym językiem, więc chętnie poczytam.
Elixir wydaje się całkiem przyszłościowym językiem, a w każdym razie myślę że języki funkcyjne staną się bardziej popularne.
Dlaczego? Cloud computing i concurrency, aplikacje niejako bezstanową dużo łatwiej wprowadzić w systemy rozproszone
Czekam na kolejne posty z tej serii,
Pozdrawiam ;)
Ja też jestem żywo zainteresowany i czekam na kolejne wpisy!!!
[…] Elixir #01 – Przygotowanie stołu chemika […]
A czemu nie poprostu Erlang?
@TeoVincent
szczerze, Erlang jest super, ale… jest potwornie czasochłonny. Nie ma możliwości ulepszenia/upiększenia kodu. Często, ba prawie zawsze musisz powtarzać te same linijki, non stop. A to nie są linijki 2-3 wyrazowe ;) No i jest brzydki :) Pewnie jakby Elixir nie było, to na Erlang bym nie zwrócił uwagi i wybrał inny język z listy (GO).
Comments are closed.