[ ["A", "couple", "of", "decades", "ago,", "memory", "was", "a", "very", "limited", "resource.", "It", "made", "sense", nil, nil, nil, nil], ["back", "then", "for", "our", "software", "to", "take", "hold", "of", "some", "piece", "of", "memory", "and", "mutate", nil, nil, nil], ["it", "as", "necessary.", "However,", "allocating", "this", "memory", "and", "cleaning", "up", "after", "we", nil, nil, nil, nil, nil, nil], ["no", "longer", "needed", "it", "was", "a", "very", "error-prone", "task.", "Some", "memory", "was", "never", nil, nil, nil, nil, nil], ["freed;", "sometimes", "memory", "was", "allocated", "over", "another", "structure,", "leading", "to", nil, nil, nil, nil, nil, nil, nil, nil], ["faults.", "At", "the", "time,", "garbage", "collection", "was", "a", "known", "technique,", "but", "we", "needed", nil, nil, nil, nil, nil], ["faster", "CPUs", "in", "order", "to", "use", "it", "in", "our", "daily", "software", "and", "free", "ourselves", "from", nil, nil, nil], ["manual", "memory", "management.", "That", "has", "happened--most", "of", "our", "languages", nil, nil, nil, nil, nil, nil, nil, nil, nil], ["are", "now", "garbage-collected.", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil], ["Today,", "a", "similar", "phenomenon", "is", "happening.", "Our", "CPUs", "are", "not", "getting", "any", nil, nil, nil, nil, nil, nil], ["faster.", "Instead,", "our", "computers", "get", "more", "and", "more", "cores.", "This", "means", "new", nil, nil, nil, nil, nil, nil], ["software", "needs", "to", "use", "as", "many", "cores", "as", "it", "can", "if", "it", "is", "to", "maximize", "its", "use", "of"], ["the", "machine.", "This", "conflicts", "directly", "with", "how", "we", "currently", "write", "software.", nil, nil, nil, nil, nil, nil, nil], ["In", "fact,", "mutating", "our", "memory", "state", "actually", "slows", "down", "our", "software", "when", nil, nil, nil, nil, nil, nil], ["many", "cores", "are", "involved.", "If", "you", "have", "four", "cores", "trying", "to", "access", "and", "manipu-", nil, nil, nil, nil], ["late", "the", "same", "piece", "of", "memory,", "they", "can", "trip", "over", "each", "other.", "This", "potentially", nil, nil, nil, nil], ["corrupts", "memory", "unless", "some", "kind", "of", "synchronization", "is", "applied.", nil, nil, nil, nil, nil, nil, nil, nil, nil], ["In", "the", "Erlang", "VM,", "all", "code", "runs", "in", "tiny", "concurrent", "processes,", "each", "with", "its", nil, nil, nil, nil], ["own", "state.", "Processes", "talk", "to", "each", "other", "via", "messages.", "And", "since", "all", "communi-", nil, nil, nil, nil, nil], ["cation", "happens", "by", "message-passing,", "exchanging", "messages", "between", "different", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil], ["machines", "on", "the", "same", "network", "is", "handled", "transparently", "by", "the", "VM,", "making", nil, nil, nil, nil, nil, nil], ["it", "a", "perfect", "environment", "for", "building", "distributed", "software!", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil], ["However,", "I", "felt", "there", "was", "still", "a", "gap", "in", "the", "Erlang", "ecosystem.", "I", "missed", "first-class", nil, nil, nil], ["support", "for", "some", "of", "the", "features", "I", "find", "necessary", "in", "my", "daily", "work--things", "such", nil, nil, nil, nil], ["as", "metaprogramming,", "polymorphism,", "and", "first-class", "tooling.", "From", "this", "need,", nil, nil, nil, nil, nil, nil, nil, nil, nil], ["Elixir", "was", "born.", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil], ["Elixir", "is", "a", "pragmatic", "approach", "to", "functional", "programming.", "It", "values", "its", "func-", nil, nil, nil, nil, nil, nil], ["tional", "foundations", "and", "it", "focuses", "on", "developer", "productivity.", "Concurrency", "is", nil, nil, nil, nil, nil, nil, nil, nil], ["the", "backbone", "of", "Elixir", "software.", "As", "garbage", "collection", "once", "freed", "developers", nil, nil, nil, nil, nil, nil, nil], ["from", "the", "shackles", "of", "memory", "management,", "Elixir", "is", "here", "to", "free", "you", "from", nil, nil, nil, nil, nil], ["antiquated", "concurrency", "mechanisms", "and", "bring", "you", "joy", "when", "writing", "concur-", nil, nil, nil, nil, nil, nil, nil, nil], ["rent", "code.", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil], ["A", "functional", "programming", "language", "lets", "us", "think", "in", "terms", "of", "functions", "that", nil, nil, nil, nil, nil, nil], ["transform", "data.", "This", "transformation", "never", "mutates", "data.", "Instead,", "each", nil, nil, nil, nil, nil, nil, nil, nil, nil], ["application", "of", "a", "function", "potentially", "creates", "a", "new,", "fresh", "version", "of", "the", "data.", nil, nil, nil, nil, nil], ["This", "greatly", "reduces", "the", "need", "for", "data-synchronization", "mechanisms.", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil], ["All", "this", "is", "powered", "by", "the", "Erlang", "VM,", "a", "20-year-old", "virtual", "machine", "built", "from", nil, nil, nil, nil], ["scratch", "to", "support", "robust,", "concurrent,", "and", "distributed", "software.", "Elixir", "and", nil, nil, nil, nil, nil, nil, nil, nil], ["the", "Erlang", "VM", "are", "going", "to", "change", "how", "you", "write", "software", "and", "make", "you", nil, nil, nil, nil], ["ready", "to", "tackle", "the", "upcoming", "years", "in", "programming.", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil], ["José", "Valim:", "Előszó", "Dave", "Thomas", "\"Programming", "Elixir", ">=", "1.6\"", "című", "könyvéhez", nil, nil, nil, nil, nil, nil, nil] ]