Making up your mind
Let’s do a mental experiment, try to imagine doing an application in your favorite programming language under this restrictions:
- No variables, only constants.
- No member / private attributes, only static values.
- No “for” or “while” loops.
- No “if” or “case” statement.
- It should run concurrently across several cores/machines
Impossible you say? It’s not only possible, but you will also love it!
What is Elixir
Elixir is a dynamic, functional language designed for building scalable and maintainable applications. Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain – http://elixir-lang.org/
Elixir has a modern syntax that borrows from languages such as Ruby and supports advanced meta programming features.
Being a functional language allows you to approach the problems from another point of view, a point of view that allows you to have an app that will be:
- Rock solid and easily testable.
- “Always on”, Hot code changes, no downtime to deploy / update.
- Taking the most out of your machine/environment, using every core of every machine.
- 100% stateless modules.
What is Phoenix
A productive web framework that does not compromise speed and maintainability. – http://www.phoenixframework.org/
To put it in simple terms, Phoenix is to Elixir what Rails is to Ruby, is the all-in-one framework that will enable you to do web applications in the fastest and easiest way possible.
Phoenix builds on top of Elixir to create very low latency web applications, in an environment that is still enjoyable. Blazing fast applications and an enjoyable development environments are no longer mutually exclusive. Elixir and Phoenix give you both. Response times in Phoenix are often measured in microseconds instead of milliseconds.
Where to learn more about them
The intention of this post is mainly to let you know that this amazing technologies exist, without going too much into the technical stuff.
If you want to learn more about them you can wait until my next post, but in the meanwhile you can take a look here:
Written by Alberto Rota