Dobra, kolejny post trochę tak od czapy ale spisuje sobie swoje własne uwagi do tego jak się uczę elixir oraz co mogę poprawić w prezentacjach i dochodzę do wniosku, że kompletnie pominąłem jedną dość istotną kwestię. Albo inaczej nie pominąłem, bo o niej pisałem ale jej nie nazwałem :) Chodzi mianowicie o skrót OTP. Jego rozwinięcie brzmi Open Telecom Platform. Coś co raz spowodowało, że nie kupiłem książki bo o żaden telecom mi nie chodziło. Więc może też dlatego nie wspominałem o tym by nie robić zamieszania jakie sam ja sobie sprawiłem?
OTP to nic innego jak zbiór bibliotek i aplikacji umożliwiających nam, łatwiejsze tworzenie naszych aplikacji. Nazwa zaś wywodzi się z zamierzchłych czasów kiedy to erlang był tworzony z myślą o centralkach telefonicznych. Więc tak naprawdę OTP to nic strasznego i w ogóle nie powinniśmy się tego obawiać.
Pamiętacie tydzień kiedy tworzyliśmy serwer ping pong? Najpierw omówiliśmy podstawy a potem stworzyliśmy ping pong za pomocą spawn i loop. Jak się okazało, jest to na tyle częsty kod, że twórcy erlanga stwierdzili, że stworzą abstrakcję – GenServer. Zaś przy analizie kodu dowiedzieliśmy się o ETS (erlang term storage). Wspominaliśmy też o Supervisor i drzewie które ono tworzy i zarządza nim. Tego jest masa. Application, Behaviours, Error handling etc. Masa rzeczy, masa o których mówiłem i pisałem. A więc OTP to nic naprawdę nic nowego.
Jedynie ta nazwa może u was powodować pewne Ale… tak, no nic, trudno, ktoś wpadł na taki pomysł i tak to nazwali.
Więc, OTP to nic innego jak zbiór bibliotek, abstrakcji, narzędzi, obsługi błędów, które tworzą framework na bazie którego budujemy nasze aplikacje. To tak jak .NET Framework, czy też JDK.
I teraz będziemy się obracać już głównie w ogół tego co OTP nam daje i czego nam dostarcza.
Koniec, wydaje mi się, że tym postem kończę serię nauki i przechodzę do części praktycznych – i tam będę już publikował kolejne informacje na temat elixir/erlang/OTP jak będę z nich stopniowo korzystał. A wiem, że z jednej opcji już będę na pewno :) fun times ahead!