Cookies on OyList

We use essential cookies to keep OyList working. With your permission, Google Analytics cookies help us count visits and understand which pages are useful.

How we use cookies

Share

Embed
Share this list with friends or copy the link:

Items10

1

Elixir (programming language)

by gadget_bench  • 
Elixir (programming language)
The friendliest door into functional programming for anyone who builds web backends. Elixir's Ruby-flavored syntax keeps the first week painless, while immutable data, pattern matching and the pipe operator quietly rewire how you structure code. Phoenix gives you a productive web framework from day one, so practice projects can be real ones. Elixir v1.20 made it a gradually typed language: the compiler now infers types and flags mistakes in ordinary code without asking you to write a single annotation. The trade-off is that the deepest power, supervision trees and the BEAM's process model, takes longer to master than the syntax suggests.
More about Elixir (programming language)
2

Gleam (programming language)

by gadget_bench  • 
Gleam (programming language)
The smallest, kindest typed functional language here. Gleam has no null values and no exceptions, a short list of features you can hold in your head in a weekend, and compiler errors that read like a patient colleague explaining what went wrong. It runs on the same Erlang virtual machine as Elixir and can also compile to JavaScript, so one language covers a server and a browser project. It is young, so the package ecosystem is thinner than Elixir's and you will sometimes call Erlang or Elixir libraries instead. The pace of improvement makes up for a lot: Gleam 1.19 compiles to Erlang's abstract format instead of Erlang source text, which cut compile times and lets every generated line map back to your Gleam source.
More about Gleam (programming language)
3

F Sharp (programming language)

by gadget_bench  • 
F Sharp (programming language)
The pragmatic pick for anyone already living in .NET. F# ships with the .NET SDK and Visual Studio, calls every C# library you already use, and lets you slip functional ideas into a real codebase one module at a time instead of rewriting anything. Its type inference keeps code short, discriminated unions make illegal states hard to write, and the free site F# for Fun and Profit teaches it through domain modeling and business software rather than math puzzles. The catch is community size: it is warm but small, and some libraries are thinly maintained, so expect to lean on C# packages more than F#-first ones.
More about F Sharp (programming language)
4

Elm (programming language)

by gadget_bench  • 
Elm (programming language)
The best teacher on this list for front-end developers. Elm does one job, browser apps, and does it with a strict but helpful compiler that promises no runtime errors in practice and explains its complaints in plain sentences. The Elm Architecture, a model, an update function and a view, is the clearest demonstration you will find of why pure functions and immutable state make UI bugs easier to reason about. Plenty of people learn Elm, then carry the habits back to TypeScript and React. That is a fine outcome, because the language itself is deliberately small and changes rarely, and talking to JavaScript goes through ports rather than direct calls, which can feel restrictive on a large app.
More about Elm (programming language)
5

OCaml

by gadget_bench  • 
OCaml
Typed functional programming without the ceremony. OCaml gives you Haskell-grade type inference and pattern matching but evaluates eagerly and lets you mutate when you truly need to, so performance is predictable and programs read like ordinary code. Since OCaml 5 its runtime supports shared-memory parallelism and effect handlers, closing its oldest gap. It is not an academic curiosity: Jane Street runs its trading systems on it, and Bloomberg and Docker appear among its industrial users. Real World OCaml, written by Jane Street's Yaron Minsky and Anil Madhavapeddy, is free to read online and is the book to pair with it. Expect some friction choosing between standard libraries and build setups at first.
More about OCaml
6

Clojure

by gadget_bench  • 
Clojure
The language that teaches functional programming through data rather than types. Clojure is a Lisp on the Java platform where nearly everything is an immutable map, vector or set, and the REPL-driven workflow, evaluating code straight from your editor into a running program, is the most fun way on this list to explore an idea. It is proven at serious scale: Nubank, the Brazilian digital bank, runs mission-critical software on Clojure and Datomic and bought Cognitect, the company behind Clojure, in 2020. Full access to Java libraries means you rarely hit a dead end. The trade-offs are the parentheses for the first couple of weeks, dynamic typing that leaves more checking to tests, and JVM startup time for small scripts.
More about Clojure
7

Racket (programming language)

by gadget_bench  • 
Racket (programming language)
The best choice if you want to understand functional programming from first principles. Racket comes with DrRacket, a beginner-friendly editor, and pairs with How to Design Programs, a free online textbook by Racket's own designers that teaches recursion, higher-order functions and program design with unusual care. It is also the place to try building your own small languages with macros, which changes how you see every other language. Racket 9.0, released in November 2025, added parallel threads to a runtime that already had green threads. Do not expect a big jobs market or a deep pool of production libraries: this is the language that makes you a better programmer in others.
More about Racket (programming language)
8

Scala (programming language)

by gadget_bench  • 
Scala (programming language)
The most employable route into functional programming for JVM and data teams. Scala supports both object-oriented and functional styles, so Java developers can start with familiar classes and move toward case classes, pattern matching and immutable collections at their own pace. Apache Spark offers a first-class Scala API, which is why the language turns up so often in data engineering. That flexibility cuts both ways. Two Scala codebases can look like different languages, the move from Scala 2 to Scala 3 left tutorials in two syntaxes and macro libraries built twice, and big projects can be slow to compile. Learn it for a job or a Spark pipeline; pick something smaller if the goal is simply to make functional ideas click.
More about Scala (programming language)
9

Haskell

by gadget_bench  • 
Haskell
The deep end, and the language that changes how you think even if you never ship it. Haskell is purely functional and lazy, so side effects live in the type system and the compiler catches whole families of bugs before anything runs. Type classes, algebraic data types and pure functions everywhere are the full functional experience, nothing watered down. You do not need category theory to start, whatever the forums imply. GHCup installs the compiler and tools, and the University of Helsinki's Haskell MOOC offers its material and exercises openly. Budget more time than for anything else here: laziness makes performance harder to predict, and the library ecosystem assumes comfort with advanced types sooner than beginners would like.
More about Haskell
10

Erlang (programming language)

by gadget_bench  • 
Erlang (programming language)
The original that Elixir and Gleam stand on, worth learning for what it teaches about failure. Erlang was built for massively scalable soft real-time systems that must stay available, and its OTP libraries turn "let it crash" from a slogan into a design method: small isolated processes, supervisors that restart them, and message passing instead of shared state. The syntax, a legacy of Erlang's start as a modified Prolog, is terse and a little odd at first, and the tooling feels older than its descendants'. Pick Erlang when you want to understand the BEAM from the ground up or work on an existing Erlang system; pick Elixir or Gleam when you just want to build something on it.
More about Erlang (programming language)

Comments