We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Data & Code with Elixir
"Elixir is a dynamic, functional language for building scalable & maintainable applications ..."
Elixir runs on the Erlang VM giving developers complete access to Erlang's ecosystem, used by companies like WhatsApp, Klarna, and many more to build distributed, fault-tolerant applications. An Elixir programmer can invoke any Erlang function with no runtime cost.
All Elixir code runs inside lightweight threads of execution (called processes) that are isolated and exchange information via messages.
Due to their lightweight nature, you can run hundreds of thousands of processes concurrently in the same machine, using all machine resources efficiently (vertical scaling).
Processes may also communicate with other processes running on different machines to coordinate work across multiple nodes (horizontal scaling).
The unavoidable truth about software in production is that things will go wrong. Even more when we take network, file systems, and other third-party resources into account.
To react to failures, Elixir supervisors describe how to restart parts of your system when things go awry, going back to a known initial state that is guaranteed to work.
Functional programming promotes a coding style that helps developers write code that is short, concise, and maintainable. For example, pattern matching allows us to elegantly match and assert specific conditions for some code to execute.
Elixir relies on those features to ensure your software is working under the expected constraints. And when it is not, don't worry, supervisors have your back!
Elixir has been designed to be extensible, allowing developers naturally extend the language to particular domains, in order to increase their productivity.
One example is Elixir's test framework called ExUnit to conveniently write test cases.
Other examples are Ecto compiling to SQL queries, Elixir Nx tensors compiling to the GPU, and more.
Elixir ships with a great set of tools to ease development. Mix is a build tool that allows you to easily create projects, manage tasks, run tests and more.
Mix also integrates with the Hex package manager for dependency management and hosting documentation for the whole ecosystem.
Tools like IEx (Elixir's interactive shell) leverage the language and platform to provide auto-complete, debugging tools, code reloading, as well as nicely formatted documentation.
Code notebooks like Livebook allow you to interact with Elixir directly from your browser, including support for plotting, flowcharts, data tables, machine learning, and much more!
The Elixir programming language fosters a vibrant and inclusive open-source community.
By leveraging the Ericson originated Erlang VM and OTP platform it enjoyed a quick kick-off and has
rapidly grown since. The quality of the compiler and its documentation, support and application frameworks
are simply outstanding and continue to surprise.