🎉 Exercism Research is now launched. Help Exercism, help science and have some fun at
research.exercism.io
🎉
Sign up
Log in
Home
Language tracks
Language tracks
All the tracks exercism has to offer
Bash
88 exercises
Bash is a Unix command interpreter, for which plaintext files of commands can be made to create scripts. It's a powerful and concise way of getting stuff done!
C
71 exercises
C is a small, general-purpose, imperative programming language with a static type system, scopes, and structures. It's typically used as an alternative to assembly programming, such as in operating systems.
C#
122 exercises
C# is a modern, object-oriented language with lots of great features, such as type-inference and async/await. The tooling is excellent, and there is extensive, well-written documentation.
C++
55 exercises
C++ is a general-purpose programming language that supports procedural, object-oriented, generic and functional programming styles. C++ is deployed on billions of devices from the smallest embedded microprocessor to the largest supercomputer.
CFML
28 exercises
CFML (ColdFusion Markup Language) is an open source and commercial (JIT) compiled dynamic and loosely typed JVM scripting language that embodies classic OO, and functional programming, making it easy to learn, fun to use. CFML brings the power and scalability of the J2EE ecosystem but without the boilerplate of Java.
Clojure
76 exercises
Clojure is a dynamic, general-purpose programming language. It combines the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming and the performance gains of compiling and running on the JVM. It is a lisp dialect that runs on the JVM, enabling the use of Java code side by side with Clojure.
ClojureScript
21 exercises
ClojureScript is a dialect of Clojure, and a compiler for Clojure that targets JavaScript.
CoffeeScript
21 exercises
CoffeeScript is a language that compiles into JavaScript. It uses an alternative syntax to the Java-like syntax of JavaScript, and is one of many new transpiled languages used in web development.
Common Lisp
43 exercises
A programmable programming language.
Crystal
50 exercises
TODO: The maintainers have not provided an introduction for this track.
D
34 exercises
TODO: The maintainers have not provided an introduction for this track.
Dart
37 exercises
Dart is a general purpose programming language which has seen a rise in popularity for its usages in mobile and web application development.
Delphi Pascal
76 exercises
Object Pascal based, Delphi is great for developing cross-platform desktop, mobile, web, and console applications.
Elixir
94 exercises
Elixir is a dynamic, functional language designed for building scalable and maintainable applications. Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.
Elm
46 exercises
Elm is a pure, functional language that compiles to javascript
Emacs Lisp
28 exercises
Emacs Lisp is the extension language of the Emacs text editor. You can easily create you own extensions, which include preference files, but also full-fledged applications that use Emacs as a running environment in a fully integrated way.
Erlang
77 exercises
Erlang is a functional language, designed for use in real-time distributed systems. It's used within telecom networks, and is notable for simple message passing with lightweight independent processes.
F#
119 exercises
F# is a strongly-typed, functional language that is part of Microsoft's .NET language stack. Although F# is great for data science problems, it can elegantly handle almost every problem you throw at it.
Go
109 exercises
Go is a compiled, open source programming language with a small, consistent syntax, a powerful standard library, and fantastic tooling. It's a great fit for web backends and command-line tools.
Groovy
55 exercises
Groovy is an unopinionated, multi-paradigm language that enhances Java with the intent to make your code less verbose, yet still allows you utilize the power of the JVM.
Haskell
96 exercises
Haskell is a functional programming language which is pure and statically-typed. It's known for lazy evaluation, where evaluation is deferred until necessary, and its purity, where monads are used for working with side-effects.
Java
114 exercises
Java is a very widely used Object Oriented programming language. It's safe, simple to use and portable so that you can "write once, run anywhere".
JavaScript
107 exercises
JavaScript is a scripting language, primarily used for creating dynamic websites and programming web servers. It's a very popular language, and supports a variety of programming paradigms.
Julia
51 exercises
Julia is an open-source high-level, dynamic programming language whose sweet spot is technical and scientific computing. It is convenient for day-to-day work and fast enough for high performance computing.
Kotlin
84 exercises
Kotlin is a pragmatic programming language for JVM and Android that combines OO and functional features and is focused on interoperability, safety, clarity and tooling support.
LFE
31 exercises
Lisp Flavoured Erlang is one of those eat your cake and have it too programming languages. As they say: It's the best of Erlang and of Lisp; at the same time!
Lua
82 exercises
Lua is a lightweight scripting language, designed for use within programs. It's popular in gaming, and is a general-purpose language, which can provide a familiar syntax across different applications.
MIPS Assembly
14 exercises
TODO: The maintainers have not provided an introduction for this track.
Nim
67 exercises
Nim is a system and applications programming language that is statically typed and compiled, designed to be efficient, expressive, and elegant. Being general-purpose it can fill a wide range of uses but has found a niche in game development and systems programming including embedded systems.
Objective-C
51 exercises
TODO: The maintainers have not provided an introduction for this track.
OCaml
44 exercises
OCaml is a functional and object-oriented language, used both in industry and as a teaching language to elegantly solve problems. The strong type system, with type inference, is useful for catching mistakes.
Perl 5
62 exercises
Perl 5 is a highly capable, feature-rich programming language with over 30 years of development. Perl 5 runs on over 100 platforms from portables to mainframes and is suitable for both rapid prototyping and large scale development projects.
Pharo
42 exercises
Pharo is a fun and immersive Smalltalk programming experience. Featuring a clean object-oriented language and a powerful user extendable environment, it focuses on simplicity and immediate feedback (think IDE and OS rolled into one). Its elegance and productivity give it wide reach into banking, education, web development and even robotics.
PHP
66 exercises
PHP is a scripting language designed for web development, but also used as a general-purpose programming language. It's one of the most popular programming languages for web development and provides object-oriented capabilities.
PL/SQL
11 exercises
TODO: The maintainers have not provided an introduction for this track.
Prolog
19 exercises
Prolog is a general-purpose logic programming language associated with artificial intelligence and computational linguistics.
PureScript
28 exercises
A strongly-typed functional programming language that compiles to JavaScript
Python
117 exercises
Python is a clear and powerful object-oriented programming language with an elegant and easy-to-read syntax. It is ideal for prototyping and ad-hoc tasks, but also sees wide use in scientific computing, web development, and automation.
R
35 exercises
R is an interpreted, open source programming language with powerful data manipulation and graphical capabilities. It has a thriving package ecosystem and is one of the most popular languages for data science.
Racket
33 exercises
Racket is a programming language that can be used to build programming languages. Racket is based on Scheme and LISP but it's got some really neat innovations. If you're learning there's some great education support in How to Design Programs and Realm of Racket.
Raku
30 exercises
Raku is a production ready new emerging language that is highly expressive, feature-packed and optimized for fun.
ReasonML
24 exercises
ReasonML is a strongly typed functional language which compiles to both Javascript and native.
Ruby
98 exercises
Ruby is a dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.
Rust
93 exercises
Rust is a compiled programming language designed for speed, concurrency, and memory safety. Rust programs can run almost anywhere, from low-power embedded devices to web servers.
Scala
91 exercises
Scala combines object-oriented and functional programming in one concise, high-level language. Scala's static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries.
Scheme
39 exercises
Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary.
Standard ML
27 exercises
Standard ML is a functional programming language with type inference and some side-effects.
Swift
83 exercises
Swift is a modern open-source language with the aim of making programming simple things easy, and difficult things possible while still being fast and safe by design. Swift can run in scripting mode in the included REPL or it can be compiled with full support for C and Objective-C interoperability.
Tcl
119 exercises
Tcl is a dynamic, open source programming language. It was designed with the goal of being very simple but powerful.
TypeScript
91 exercises
TypeScript is a language for writing more maintainable JavaScript. TypeScript adds optional types, classes, and modules to JavaScript.
Vim script
20 exercises
Vimscript (or VimL) is the programming language used for scripting the Vim text editor.
x86-64 Assembly
16 exercises
x86-64 assembly is a low-level programming language, typically used in boot loaders, device drivers, and operating system kernels.