> Elixir is a functional, concurrent, general-purpose programming language that runs on the BEAM virtual machine used to implement the Erlang programming language. Elixir builds on top of Erlang and shares the same abstractions for building distributed, fault-tolerant applications. Elixir also provides productive tooling and an extensible design. The latter is supported by compile-time metaprogramming with macros and polymorphism via protocols. ## Notable Companies - PagerDuty - Discord - Pinterest - Moz - BleacherReport - FarmBot ## Tools and Frameworks - [[Phoenix Framework]] - [[Nerves | Nerves Framework]] - [[Membrane Framework]] - [[OTP]] ## Concepts - [[Protocols]] - [[Behaivours]] - [[Maps]] ## Notes - [[Handling and Executing External Processes]] - [[How to separate application based on subdomain]] - [[Deployment Strategies and Techniques]] ## Research - [[Video Streaming with Elixir | Video Streaming]] ## Links - [Parse Don't Validate] - [Parse Don't Validate - Part two] - [Parsing Untrusted Input with Elixir] - [From PHP to Elixir |> beginning] - [Controlling SSL Redirection] - [Concurrency and Parallelism with Elixir and BEAM] - [Things Phoenix does right] - [The beauty of Phoenix Liveview] - [Jose Valim interview] - [Migrating to Elixir with the Strangler Pattern] - [How Switching From Ruby to Elixir Made Our Team Happier and More Productive] - [How Learning Elixir Made Me a Better Programmer] - [Why use Elixir for Web Development?] - [What makes Elixir so attractive for some developers? - 2015] - [Recursion, Iteration and Tail-call optimization] [Parse Don't Validate]: https://well-ironed.com/articles/parse-dont-validate-elixir-edition/ [Parse Don't Validate - Part two]: https://well-ironed.com/articles/parse-dont-validate-elixir-edition-part-two/ [Parsing Untrusted Input with Elixir]: https://blog.drewolson.org/parsing-input-elixir [From PHP to Elixir |> beginning]: https://patryk.it/from-php-to-elixir-beginning/ [Controlling SSL Redirection]: https://dev.betterdoc.org/elixir/phoenix/plug/ssl/2020/09/25/how-we-split-plug-ssl-to-control-ssl-redirection.html [Concurrency and Parallelism with Elixir and BEAM]: https://medium.com/@patrykbak/concurrency-and-parallelism-with-elixir-and-beam-c683b2215c38 [Things Phoenix does right]: https://scorpil.com/post/things-elixirs-phoenix-framework-does-right/ [The beauty of Phoenix Liveview]: https://dashbit.co/blog/the-beauty-of-liveview [Jose Valim interview]: https://evrone.com/jose-valim-interview [Migrating to Elixir with the Strangler Pattern]: http://devonestes.com/migrating-to-elixir-with-the-strangler-pattern [How Switching From Ruby to Elixir Made Our Team Happier and More Productive]: https://foxbox.com/blog/elixir-vs-ruby/ [How Learning Elixir Made Me a Better Programmer]: https://dev.to/aleccool213/how-learning-elixir-made-me-a-better-programmer--57jg [Why use Elixir for Web Development?]: https://www.monterail.com/blog/why-elixir [What makes Elixir so attractive for some developers? - 2015]: https://ruby2elixir.github.io/posts/2015/12-29-what-makes-elixir-so-attractive-for-some-developers.html [Recursion, Iteration and Tail-call optimization]: https://blog.appsignal.com/2019/03/19/elixir-alchemy-recursion.html