Introducing
The Slant team built an AI & it’s awesome
Find the best product instantly
Add to Chrome
Add to Edge
Add to Firefox
Add to Opera
Add to Brave
Add to Safari
Try it now
4.7 star rating
0
Development
Programming Language
What are the best fun programming languages?
6
Options
Considered
7
User
Recs.
Dec 4, 2023
Last
Updated
Related Questions
Activity
Have feedback or ideas?
Join our community
on Discord
Ad
6
Options
Considered
Best fun programming languages
Price
Site
Paradigm
--
Common Lisp
-
-
-
--
Haskell
-
https://www.haskell.org/
functional
--
OCaml
-
http://ocaml.org
-
--
F#
-
-
-
--
Go
0
-
-
See Full List
--
Common Lisp
My Rec
ommendation
for
Common Lisp
My Recommendation for
Common Lisp
All
5
Pros
5
Top
Pro
•••
Condition/restart system
It is easy to recover from errors. Error resolution can be determined by the user at the REPL.
See More
Top
Pro
•••
Very Powerful REPL with SLIME
SLIME (Superior Lisp Interaction Mode for Emacs).
See More
Top
Pro
•••
Almost as fast as, or faster than, C
Some compilers such as SBCL can be faster than C or other low-level languages, and most compilers can generate fast native code.
See More
Top
Pro
•••
Image based runtime
The state of the program may be saved and reloaded as an image, supporting safer modification of the running program. New code may be compiled into the image as the program runs, while late binding ensures that symbol redefinitions take effect throughout the program.
See More
Top
Pro
•••
Carefully designed for interactive use
Almost all aspects of the language are designed with interactive/repl use in mind.
See More
Hide
See All
Recommend
--
Haskell
My Rec
ommendation
for
Haskell
My Recommendation for
Haskell
All
15
Pros
13
Cons
1
Specs
Top
Pro
•••
Popular in teaching
Haskell is really popular in universities and academia as a tool to teach programming. A lot of books for people who don't know programming are written around Haskell. This means that there are a lot of resources for beginners in programming with which to learn Haskell and functional programming concepts.
See More
Top
Con
•••
Difficult learning curve
Haskell lends itself well to powerful abstractions - the result is that even basic, commonly used libraries, while easy to use, are implemened using a vocabularly that requires a lot of backround in abstract mathematics to understand. Even a concept as simple as "combine A and B" is often, both in code and in tutorials, described in terms of confusing and discouraging terms like "monad", "magma", "monoid", "groupoid", and "ring". This also occasionally bears its ugly head in the form of complicated error messages from type inference.
See More
Specs
Site:
https://www.haskell.org/
Paradigm:
functional
Type System:
static
Top
Pro
•••
Referentially transparent
Haskell's Purely Functional approach means that code is referentially transparent. This means that to read a function, one only needs to know its arguments. Code works the same way that expressions work in Algebra class. There's no need to read the whole source code to determine if there's some subtle reference to some mutable state, and no worries about someone writing a "getter" that also mutates the object it's called on. Functions are all directly testable in the REPL, and there's no need to remember to call methods in a certain order to properly initialize an object. No breakage of encapsulation, and no leaky abstractions.
See More
Top
Pro
•••
Powerful categorical abstractions
Makes categorical higher order abstractions easy to use and natural to the language.
See More
Top
Pro
•••
Very few language constructs 
The base language relies primarily on function application, with a very small amount of special-case syntax. Once you know the rules for function application, you know most of the language.
See More
Top
Pro
•••
Functions curry automatically
Every function that expects more than one arguments is basically a function that returns a partially applied function. This is well-suited to function composition, elegance, and concision.
See More
Top
Pro
•••
Quick feedback 
It's often said that, in Haskell, if it compiles, it works. This short feedback loop can speed up learning process, by making it clear exactly when and where mistakes are made.
See More
Top
Pro
•••
Hand-writeable concise syntax
Conciseness of Haskell lets us to write the expression on the whiteboard or paper and discuss with others easily. This is a strong benefit to learn FP over other languages.
See More
Top
Pro
•••
Easy syntax for people with a STEM degree
Since the basic syntax is very similar to mathematics, Haskell syntax should be easy for people who have taken higher math courses since they would be used to the symbols used in maths.
See More
Top
Pro
•••
Mathematical consistency 
As Haskell lends itself exceedingly well to abstraction, and borrows heavily from the culture of pure mathematics, it means that a lot more code conforms to very high-level abstractions. You can expect code from vastly different libraries to follow the same rules, and to be incredibly self-consistent. It's not uncommon to find that a parser library works the same way as a string library, which works the same way as a window manager library. This often means that getting familiar and productive with new libraries is often much easier than in other languages.
See More
Top
Pro
•••
Open source
All Haskell implementations are completely free and open source.
See More
Top
Pro
•••
Highly transferable concepts
Haskell's referential transparency, consistency, mathematics-oriented culture, and heavy amount of abstraction encourage problem solving at a very high level. The fact that this is all built upon little other than function application means that not only is the thought process, but even concrete solutions are very transferable to any other language. In fact, in Haskell, it's quite common for a solution to simply be written as an interpreter that can then generate code in some other language. Many other languages employ language-specific features, or work around a lack of features with heavy-handed design patterns that discourage abstraction, meaning that a lot of what is learned, and a lot of code that is needed to solve a particular problem just isn't very applicable to any other language's ecosystem.
See More
Top
Pro
•••
Forces you to learn pure functional programming
It is pure and does not mix other programming paradigms into the language. This forces you to learn functional programming in its most pure form. You avoid falling back on old habits and learn an entirely new way to program.
See More
Top
Pro
•••
Easy to read
Haskell is a very terse language, particularly due to its type inference. This means there's nothing to distract from the intent of the code, making it very readable. This is in sharp contrast to languages like Java, where skimming code requires learning which details can be ignored. Haskell's terseness also lends itself to very clear inline examples in textbooks, and makes it a pleasure to read through code even on a cellphone screen.
See More
Hide
See All
Get it
here
Recommend
--
OCaml
My Rec
ommendation
for
OCaml
My Recommendation for
OCaml
All
6
Pros
5
Specs
Top
Pro
•••
Actively-developed functional programming language at the forefront of research
Functional programming is based on the lambda calculus. OCaml is in its functional parts almost pure lambda calculus, in a very practical manner: useful for many daily programming tasks. The acitve development makes improvements to the type system like generalized algebraic data types (GADT) or polymorphic variants, so when learning this language you get at once a down to earth usable compiler and advanced abstraction features.
See More
Specs
Current stable version:
4.0.7
Site:
http://ocaml.org
License:
LGPL version 2.1
Price:
Open source (Free)
See All Specs
Top
Pro
•••
Sophisticated and easy-to-use package manager
OPAM is a package manager for OCaml, which is really easy to use, just like npm. It creates a .opam folder in home directory. The documentation is great as well, and you can switch between multiple versions of OCaml for each project. You can also package your project and publish it on OPAM repositories, even if the dependencies do not exists on OPAM.
See More
Top
Pro
•••
One of the best for writing compilers
OCaml is compiled to native binary, so it's amazingly fast. Being a member of ML-family languages, it has expressive syntax for trees, and has great LLVM support.
See More
Top
Pro
•••
Stable syntax
The syntax is consistent, some syntaxic sugar but at a reasonable level, so reading code of others isn't too much confusing.
See More
Top
Pro
•••
Encourages functional style
It steers you towards a functional style, but doesn't bother you with purity and "monads everywhere" like other languages, such as Haskell.
See More
Hide
See All
Get it
here
Recommend
4
--
F#
My Rec
ommendation
for
F#
My Recommendation for
F#
All
5
Pros
4
Specs
Top
Pro
•••
Allows writing predictable code
Like many other functional languages, F# takes a stance of immutability for most of its constructs (state, values etc...). There are several reasons why having immutable values is good. One of those is that the code you are writing becomes much more predictable and you don't have to worry about any side effects.
See More
Specs
Current stable version:
6.0
License:
Apache 2.0
IDE Support:
Visual Studio, Code, Rider
Top
Pro
•••
Easier transition from other paradigms
Since F# is not a purely functional language, it lends itself to being more easily picked up by programmers that have experience with other paradigms.
See More
Top
Pro
•••
Concise syntax
F#'s syntax tends to be terse while remaining very readable and easy to understand without being a chore to write.
See More
Top
Pro
•••
.NET Interoperability
Since F# runs on the Common Language Runtime or CLR, it has access to the entire .NET Framework, as well as libraries written in other .NET languages such as C#, VB.NET, and C++/CLI.
See More
Hide
See All
Get it
here
Recommend
3
--
Go
My Rec
ommendation
for
Go
My Recommendation for
Go
Hide
0
Recommend
--
Racket
My Rec
ommendation
for
Racket
My Recommendation for
Racket
All
9
Pros
8
Specs
Top
Pro
•••
Racket was designed to teach functional programming from the start
Racket is based on Scheme (LISP Family) and is very similar to Clojure. So there are a ton of (). The reason it is easier to learn is that it is not trying to be "Pure" if there is even such a thing in terms of Functional Programming. The great thing about Racket is it has everything included. You get DrRacket for developing programs. You want to add a picture to your software you can insert pictures. If you want to add libraries just open the package manager. The Syntax is an opinion but it really does feel easier to see what is happening since everything is in brackets) Racket is a really a Programming Language for making Programming Languages. So there are smaller syntax Racket called Student Racket which makes things easier to pick up.
See More
Specs
Current stable version:
8.5
Site:
https://racket-lang.org
Price:
Free
IDE Support:
Extensible IDE bundled, Emacs, Vim and VSCode
See All Specs
Top
Pro
•••
Active community
Racket has an active community of users/developers that makes it easy to get help when needed.
See More
Top
Pro
•••
Subtly encourages functional programming
Racket makes it inconvenient to pursue imperative habits while encouraging functional programming by Lisps's syntax. For example, the syntax for defining a function is almost the exact same as defining a variable. In addition, Racket has a strong set of higher-order functions built in to the language.
See More
Top
Pro
•••
Easily embeddable
Racket is famously embedded in the game engine underlying Naughty Dog's Uncharted and The Last of Us games, because it proved to be so easy to embed.
See More
Top
Pro
•••
Syntax fits to functional programming
Although syntax is different from that of mainstream languages, S-expressions are a perfect match to functional programming.
See More
Top
Pro
•••
Great RPEL IDEA included Dr. Racket
See More
Top
Pro
•••
Free resources to Learn
Includes several free online books and great documentation.
See More
Top
Pro
•••
Realm of Racket is an excellent entry-level guidebook
Realm of Racket teaches the big-bang approach for managing world state. It does so by walking the reader through the development of small games. There are few guidebooks that are as useful and entertaining.
See More
Hide
See All
Get it
here
Recommend
Don't see your favorite option? Add it.
Built By the Slant team
Find the best product instantly.
4.7 star rating
Add to Chrome
Add to Edge
Add to Firefox
Add to Opera
Add to Brave
Add to Safari
Try it now - it's free
One sec!
Are you sure that you want to abandon your hard work?
Delete Work
Continue working
{}
undefined
url next
price drop