Super tutoriál. Opravdu diky za něj. Chci se zeptat. Může být vhodné použít erlang na serverovou implementaci obousměrné synchronizace mezi mobilními zařízeními? Mam aplikaci na androidu a jeji data chci syncovat mezi vice telefony přes backend server. Na tomto serveru je napojeni na db kde jsou uložena data všech uživatelů.
Erlang lze použít na socketovou část různých serverových backendů aplikací. Tj. uržovat hodně spojení, přijmat z nich zprávy, dekódovat je, kódovat je a odesílat odpovědi. Na to je stavěný. Hodně nezávislých vstupů co je třeba obsluhovat tak aby co spolu nesouvisí se pokud možno neovlivňovalo. Aplikační logika serverové části pochopitelně může být v Erlangu také, ale lze ji napsat v jiném jazyce a využít nějakou z forem propojení Erlangu s jinými programy.
Na ukádáni většího množství dat má Erlang svoje prostředky, ale lze použit klasické databáze. Ve standartních knihovnách je na připojování se k databázím ODBC driver a pro většinu bežných databází existují knihovny na přímý přístup (praktické zkušenosti nemám).
> a pro většinu bežných databází existují knihovny na přímý přístup (praktické zkušenosti nemám).
Ruzne SQL knihovny funguji dobre. Akorat je obcas potreba trochu pohlidat, jak knihovna koduje datove typy. Napr. pracuju s jednou knihovnou, ktera typ timestamp koduje jako klasicky {{Y,M,D},{h,m,s}}, coz je draha operace, takze cteni vetsiho mnozstvi dat timhle zpusobem je pomale. Ale to neni zadne specifikum Erlangu, v jinych jazycich by to bylo stejny.
Pro Elixir pak jeste existuji vselijake knihovny, ktere poskytuji funkce vyssi urovne nez jenom klasicke SQL dotazovani (nejake ty modely, DSL pro dotazovani apod.) - napr. https://github.com/elixir-lang/ecto nebo https://github.com/meh/amnesia
Vubec mnesia je hodne zajimava databaze, ta by stala za samostatny dil :)