@NMe: Een van de argumenten die de laatste tijd steeds sterker wordt, is het feit dat Moore's Law niet meer van toepassing is; Vanwege de fysieke limieten aan hoe klein transistoren in CPU's gemaakt kunnen worden, worden CPU's niet langer sneller (in de mate waarin dat eerder het geval was, namelijk een snelheidsverdubbeling elke 18 maanden). De oplossing hiervoor is om computers te maken die meer cores hebben. Maar de enige manier om deze cores te kunnen gebruiken is om software te maken die daadwerkelijk tegelijkertijd op meerdere cores kan draaien ('parallel computing').
Concurrency is iets waar OOP niet goed in is, omdat het geen enkele beveiliging biedt tegen het 'per ongeluk aanpassen van iets terwijl een andere thread ook bezig was'. Locks en mutexes zorgen voor hele complexe systemen, waarbij het nagenoeg onmogelijk is om fouten op te sporen.
Op het moment dat je data-structuren vanaf het begin af aan immutable zijn, kun je niet per ongeluk data overschrijven terwijl een ander thread er nog mee bezig was, omdat je niet tegelijk in dezelfde data kunt zitten werken. Er bestaan twee systemen, het Actor Model en Software-Transactional Memory die een andere benadering hebben tot concurrency, die deze problemen niet hebben.
Dit is natuurlijk niet de enige reden die er bestaat, maar wel één van de belangrijkste redenen, die een oplossing beschrijft voor een probleem waar veel mensen bekend mee zijn.
Het is natuurlijk niet mijn bedoeling om iedereen hier te converteren naar functioneel programmeren (Dat zou nooit lukken, hihi), maar ik ben wel van mening dat het goed is om zo veel mogelijk verschillende talen en stijlen uit te proberen, zodat je problemen van zo veel mogelijk verschillende referentiepunten kunt benaderen, en je niet verandert in een blub-programmeur.
Ik ben zelf ook groot fan van Elixir en naast dat ik een aantal packages geschreven heb die op Hex.pm te vinden zijn, zijn we het nu voor een paar interne projectjes aan het gebruiken bij mijn werk. Heel gaaf!
Concurrency is iets waar OOP niet goed in is, omdat het geen enkele beveiliging biedt tegen het 'per ongeluk aanpassen van iets terwijl een andere thread ook bezig was'. Locks en mutexes zorgen voor hele complexe systemen, waarbij het nagenoeg onmogelijk is om fouten op te sporen.
Op het moment dat je data-structuren vanaf het begin af aan immutable zijn, kun je niet per ongeluk data overschrijven terwijl een ander thread er nog mee bezig was, omdat je niet tegelijk in dezelfde data kunt zitten werken. Er bestaan twee systemen, het Actor Model en Software-Transactional Memory die een andere benadering hebben tot concurrency, die deze problemen niet hebben.
Dit is natuurlijk niet de enige reden die er bestaat, maar wel één van de belangrijkste redenen, die een oplossing beschrijft voor een probleem waar veel mensen bekend mee zijn.
Het is natuurlijk niet mijn bedoeling om iedereen hier te converteren naar functioneel programmeren (Dat zou nooit lukken, hihi), maar ik ben wel van mening dat het goed is om zo veel mogelijk verschillende talen en stijlen uit te proberen, zodat je problemen van zo veel mogelijk verschillende referentiepunten kunt benaderen, en je niet verandert in een blub-programmeur.
Ik ben zelf ook groot fan van Elixir en naast dat ik een aantal packages geschreven heb die op Hex.pm te vinden zijn, zijn we het nu voor een paar interne projectjes aan het gebruiken bij mijn werk. Heel gaaf!
Vergeet ook vooral Saša Jurić's boek 'Elixir in Action' niet!.kraades schreef op zondag 30 oktober 2016 @ 18:46:
Ik ben bekend met Elixir en Phoenix.
Verplichte literatuur:
...
[ Voor 6% gewijzigd door Qqwy op 30-10-2016 18:55 . Reden: toevoegen boek ]