Erlang je super, ale rozhodne by bylo lepsi psat o Elixiru a Erlang vysvetlovat jen okrajove pro pochopeni urcitych veci z Elixiru. Cetl jsem, ze uz se doporucuje vyvijet v Elixiru misto Erlangu. Pro ujasneni Elixir je jazyk, ktery se preklada do bytecodu, kteremu rozumi Erlang VM. OTP je jina vec, protoze principy vyvijeni v Erlangu plati i pro Elixir (gen_server, supervisor, application, ...). Elixir vetsinou poskytuje vlastni rozhrani, ktere treba jen deleguje volani na erlangovsky modul.
Napr. volani erlangovskeho "now" je v elixiru proste :erlang.now a neni tam absolutne zadny overhead, ze by se to volalo pres nejake proxy moduly atd..Tzn. moduly pro erlang jde uplne normalne pouzit i v Elixiru, akorat je proste potreba vedet nejake ty rozdily, ze treba atom v Erlangu zacina malym pismenem a v Elixiru je prefixovany dvojteckou (atom vs. :atom).
Metaprogramming a vytvareni vlastnich DSL napr. pro definovani routeru, kdyz budu v elixiru delat webovku je naprosto super vec. Uplne me ten jazyk pohltil.
Pokud si myslis, ze Elixir je jenom o syntaxi, tak to sis ho poradne neprostudoval/nevyzkousel. Elixir krome syntaxe 1. opravuje nektere navrhove chyby Erlangu, 2. prinasi par zasadnich vylepseni, 3. ma spoustu ciste prijemnych vlastnosti.
Do 1 patri treba to, ze skutecne vsechno je vyraz (u Erlangu to neplati, proto nektere veci funguji v modulu, ale nefunguji v interpretu).
Do 2 hlavne namespaces a makrosystem (s hodne pokrocilymi vlastnostmi, treba volitelnou hygienicnosti).
Do 3 spousta ruznych prkotin, ktere vyrazne zprijemnuji zivot, jako treba to, ze v listu muze byt klidne carka pred zaviraci zavorkou a funkce neni nijak zvlast zakoncena - vyrazne snizuje pocet vlasu vyrvanych pri refaktoringu kodu :)
O Elixiru se pochvalne vyjadril i sam Joe Armstrong ;) http://joearms.github.io/2013/05/31/a-week-with-elixir.html