The Erlang Elixir Phoenix Stack is the best stack for websites and web applications today.
Best Web Stack
Erlang
Erlang is a stable and mature programming language developed in the 80s by Ericson software engineers and scientists for the telephone exchanges that required to be always online.
Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability. Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang's runtime system has built-in support for concurrency, distribution and fault tolerance.
Erlang is a general-purpose, concurrent, functional high-level programming language, and a garbage-collected runtime system.
Key features of the Erlang runtime system is designed for systems with these traits;
- Distributed
- Fault-tolerant
- Soft real-time
- Highly available, non-stop applications
- Hot swapping
Erlang Programming Language
The Erlang programming language has the following;
- immutable data
- pattern matching
- functional programming
The sequential subset of Erlang language supports eager evaluation, single assignment and dynamic typing.
An Erlang application is built out of hundreds of small Erlang processes.
OTP
OTP is set of Erlang libraries and design principles providing middle-ware to develop these systems. It includes its own distributed database, applications to interface towards other languages, debugging and release handling tools.
The OTP Open Telecom Platform
Erlang/OTP is supported and maintained by the Open Telecom Platform (OTP) product unit at Ericsson, a Swedish multinational networking and telecommunications company.
Stable
Erlang is an incredibly stable option for software systems. The software ecosystem is stable with a wide range of contributors over a period of 30 plus years. When a software program is compiled, the BEAM virtual machine has a crash first approach, and can run for a very long time without intervention. 99.999% uptime is not uncommon. When a web-application is built using a cluster of Erlang servers, and a load balancer such as Nginx, Haproxy or a proprietary cloud hosted LB on AWS or Cloudflare, a system can be practically be always online.
Mature
Erlang
Resource Efficient
Cost Effective
Hot Reloading
Virtual Machine
Clustering
Reliability
Networking
Elixir
Syntax
Functional
Idiomatic Productivity Efficiency Happiness
Phoenix
Generators Ecto Postgres Database Hex Schemas Websockets LiveView Presence REST JSON API REST HTML