The pairing of the Elixir language and the Phoenix framework represents an important evolution in web application development combining:
- Architectural best practices
- A robust fault tolerant runtime platform in the Erlang Beam Virtual Machine
- Modern functional programming techniques
With multiple clients, our engineering team has taken advantage of Elixir to deliver software products in the most efficient manner while providing a robust base to build a growing business.
Advantages of Elixir
As a compiled, dynamically typed language with a functional paradigm, Elixir allows engineers to rapidly build and prototype ideas, reduce unnecessarily shared state (a common source of bugs). The compiling of Elixir to Erlang byte code allows an Elixir application to be extremely performant while also being highly fault tolerant. The language’s focus on simplicity of syntax simplifies the task of client engineers ramping up and maintaining projects.
Advantages of Phoenix
The Phoenix framework, as its name suggests, rose from the experience of earlier rapid web development frameworks such as Ruby on Rails, took their lessons and applied them using the strengths of the Elixir language and ecosystem. Phoenix serves several versatile needs which frequently come up on server-side development:
Classical server-side applications
Phoenix is an excellent choice for classical web application development. It has all the bells and whistles one would expect for a project in this class and our engineers have used it to great effect with our clients.
Rapid development of GraphQL and Rest API servers
In today’s world, applications often package and present information to a variety of clients in a variety of formats from a variety of sources. Phoenix has robust libraries for building those API whether they be traditional REST or GraphQL (or both). Our team has extensive experience building and consuming APIs and Phoenix provides a great model to build robust API servers.
Phoenix Liveview
A pioneering approach to web development, LiveView allows information about your application clients to be kept server side, but thanks to Elixir’s facility with concurrency, allows for rich interactions on the client side for the cases where a product requires a robust interaction pattern, but does not meet the bar for a full fledged client side single page application.
Learn more about Torch, a open-source Phoenix admin builder we maintain.