Why Elixir? Common misconceptions

Adoption, mindshare, and industry use

  • Many feel Elixir/BEAM is extremely well-suited to backend and “microservice-like” workloads, yet remains niche compared to Node/Java/Go.
  • Explanations offered: lack of marketing, resume-driven adoption, JS/TS hype cycle, organizational inertia, and language popularity being only weakly correlated with technical quality.
  • Some argue plenty of real systems run on Elixir (national data portals, banks, telecom, large chat platforms), but these deployments don’t get much visibility.
  • Others point out some early showcase companies have moved parts of their stack away, reinforcing perception risk.

Interop, ecosystem, and infra fit

  • Early DB tooling was perceived as Postgres-first and weaker for Oracle/SQLite, though others report Oracle and SQLite support are now workable.
  • Push to use BEAM primitives like ETS instead of Redis is seen by some as technically valid but “adoption-unfriendly” because it doesn’t align with common stacks.
  • Strong disagreement on Kubernetes fit: some say Elixir’s “do it all in one node/cluster” model clashes with ephemeral containers; others say Elixir works fine on k8s and is complementary if you understand both.
  • Concern that BEAM’s strengths (stateful processes, clustering, hot upgrades) are underused when Elixir is treated as “just another microservice.”

LiveView and frontend approaches

  • LiveView is praised for productivity and “no-JS” workflows, especially for internal/CRUD-style apps.
  • Critics argue it quietly turns a stateless web into a stateful, websocket-heavy system that’s fragile under crashes, deploys, or flaky connections, and that these tradeoffs are under-acknowledged.
  • Some prefer React/GraphQL or other frontends with Phoenix (Inertia, Vite, Channels); a few wish Phoenix embraced React more directly for consumer-grade UIs.

Erlang vs Elixir and learning path

  • Broad consensus: you can become highly productive in Elixir without learning Erlang first; Erlang knowledge is “nice to have” for deeper BEAM/OTP understanding, not a prerequisite.
  • Some prefer Erlang’s more “bare-metal” feel; others stress that processes, message passing, and behaviors are first-class in both and that they’re more like dialects than different languages.

Types, reliability, and “let it crash”

  • Lack of static typing is the single biggest hesitancy for many; others report years of productive use without it.
  • Supporters say pattern matching, guards, immutability, small set of core types, specs + Dialyzer, and strong test culture mitigate much of what people want from static types.
  • Opponents, especially in large codebases, say dynamic typing makes refactoring and onboarding harder; they miss compiler guarantees and precise tooling.
  • Ongoing work on gradual/set-theoretic types is noted, but several say it’s still far from TS/Go/Rust-level guarantees.
  • Long thread on “let it crash”:
    • Pro side: supervision trees and process isolation make crashes localized and auto-recoverable; better to optimize for recovery than attempt to preclude all failures.
    • Skeptical side: this doesn’t prevent logic/type bugs from reaching users; static typing and fault tolerance solve different problems and both can be valuable.

Developer experience, tooling, and docs

  • Many praise Elixir’s standard library consistency (especially around the pipe operator), OTP’s breadth, and exceptionally good, “how and why” style documentation.
  • The REPL, introspection into running systems, and BEAM observability are repeatedly called out as major quality-of-life wins.
  • VS Code LSP support (ElixirLS) exists and is actively used, though some still perceive the overall IDE story as weaker than mainstream typed languages.
  • Syntax divides people: control flow feels approachable to some, but pattern-matching/binary syntax and macros can look alien or intimidating.

Performance and where BEAM fits

  • BEAM is viewed as outstanding for IO-bound, highly concurrent, fault-tolerant systems, but not ideal for raw CPU-heavy workloads due to scheduling overhead and immutability costs.
  • Typical recommendation: keep performance hotspots in NIFs/ports or other languages, and orchestrate them from Elixir.
  • Some argue that AI/ML libraries like Nx/EXLA are impressive but lag far behind Python’s ecosystem and model coverage for practical ML/LLM work.

Alternatives: Gleam and others

  • Gleam frequently comes up as “Elixir + static typing”: BEAM-based, interops with Elixir/Erlang, and attractive to teams who like BEAM semantics but require static types.
  • Several commenters say they’d bet heavily on Gleam long term, or that their positive Elixir experience has made them look at Gleam.

Jobs and career calculus

  • Multiple people mention lack of Elixir job openings as a primary deterrent, even if they like the language technically.
  • This creates a chicken-and-egg problem: companies avoid Elixir due to perceived hiring pool risk; developers avoid it due to perceived job scarcity.