A collection of the same projects implemented across multiple languages. Goal: To compare syntax, performance, idioms, tooling, and language ergonomicsโwhile having fun and learning.
I love programming languages and all their nuances. I have long wondered about what each language has to offer in various ways, especially beyond its standard library, package managers, and other bundled features; I was curious about the languages themselves syntactically and linguistically, and how these deliberate choices affected the overall feeling and flow of writing in each one.
I have found that languages are always evolving by building ontop of those that came before; fixing up little things the authors thought were lacking from previous iterations, bundling in the strengths of various languages, and throwing in their own little touch of novelty.
Eventually I want to write more languages than I already have, and this repo will serve as a reference of sorts.
Ada
- Fib โ basic recursive fibonacci
- Compiler:
gnatmake- LSP:
ada-language-server
BASIC
- Fib โ basic recursive fibonacci
- Compiler:
fbc (freebasic)
C
- Compiler:
gcc- LSP:
clangd
C++
- Lexer โ basic lexer with static input
- Fib โ basic recursive fibonacci
- Brainfuck โ simple brainfuck interpreter for hello world
- Compiler:
g++- LSP:
clangd
C#
- Compiler:
dotnet- LSP:
csharp-ls
Clojure
- Manager:
leiningen- Compiler:
lein- LSP:
clojure-lsp
COBOL
- Fib โ basic recursive fibonacci
- Compiler:
cobc (gnucobol)
Common Lisp
- Fib โ basic recursive fibonacci
- Compiler:
sbcl
D
- Lexer โ basic lexer with static input
- Fib โ basic recursive fibonacci
- Brainfuck โ simple brainfuck interpreter for hello world
- Compiler:
dmd- LSP:
serve_d
Dart
- Fib โ basic recursive fibonacci
- Compiler:
dart- Runner:
dart
Elixir
- Manager:
mix- Compiler:
elixirc- Runner:
elixir- Shell:
iex- LSP:
elixir_ls
Erlang
- Compiler:
erlc- Shell:
erl- LSP:
erlang_ls
F#
- Compiler:
dotnet- LSP:
fsautocomplete
Fennel
- Fib โ basic recursive fibonacci
- Runner:
fennel || lua- Compiler:
fennel || luac
Fortran
- Fib โ basic recursive fibonacci
- Compiler:
gfortran- LSP:
fortls
Go
- Lexer โ basic lexer with static input
- Fib โ basic recursive fibonacci
- Brainfuck โ simple brainfuck interpreter for hello world
- Runner:
go- LSP:
gopls
Haskell
- Compiler:
ghc- Shell:
ghci- LSP:
hls
Java
- Lexer โ basic lexer with static input
- Fib โ basic recursive fibonacci
- Brainfuck โ simple brainfuck interpreter for hello world
- Manager:
maven- Compiler:
mvn- LSP:
jdtls
Julia
- Fib โ basic recursive fibonacci
- Runner:
julia
Koka
- Fib โ basic recursive fibonacci
- Compiler:
koka
Kotlin
- Fib โ basic recursive fibonacci
- Compiler:
kotlinc- Runner:
java- LSP:
kotlin-language-server
Lua
- Lexer โ basic lexer with static input
- Fib โ basic recursive fibonacci
- Brainfuck โ simple brainfuck interpreter for hello world
- Compiler:
luac- Runner:
lua- LSP:
lua_ls
Nim
- Lexer โ basic lexer with static input
- Fib โ basic recursive fibonacci
- Brainfuck โ simple brainfuck interpreter for hello world
- Compiler:
nim- Runner:
nim- LSP:
nim_langserver
OCaml
- Lexer โ basic lexer with static input
- Fib โ basic recursive fibonacci
- Brainfuck โ simple brainfuck interpreter for hello world
- Manager:
dune- Compiler:
ocamlc- Runner:
ocaml- LSP:
ocamllsp
Odin
- Compiler:
odin- Runner:
odin- LSP:
ols
Pascal
- Fib โ basic recursive fibonacci
- Compiler:
fpc
Perl
- Fib โ basic recursive fibonacci
- Compiler:
pp- LSP:
perlnavigator
PHP
- Fib โ basic recursive fibonacci
- Runner:
php- LSP:
phpactor
Python
- Lexer โ basic lexer with static input
- Fib โ basic recursive fibonacci
- Brainfuck โ simple brainfuck interpreter for hello world
- Runner:
python- LSP:
based_pyright
R
- Fib โ basic recursive fibonacci
- Runner:
R- Compiler:
R
Raku
- Fib โ basic recursive fibonacci
- Runner:
raku- Compiler:
rakudo
Red/Rebol
- Fib โ basic recursive fibonacci
- Runner:
red
Ruby
- Fib โ basic recursive fibonacci
- Runner:
ruby- LSP:
ruby-lsp
Rust
- Lexer โ basic lexer with static input
- Brainfuck โ simple brainfuck interpreter for hello world
- ShuntingYard โ shunting yard implementation
- Conway's Game Of Life โ conway's game of life with ncurses
- Compiler:
cargo- Runner:
cargo- LSP:
rust-analyzer- Extra
rust-script- allows shebang for running single files
Scala
- Fib โ basic recursive fibonacci
- Runner:
scala- Compiler:
scalac
StandardML
- Fib โ basic recursive fibonacci
- Compiler:
mlton- LSP:
millet
Swift
- Fib โ basic recursive fibonacci
- Compiler:
swift- Runner:
swift
Tcl
- Fib โ basic recursive fibonacci
- Runner:
tclsh
Typescript
- Compiler:
npx tsc- Runner:
npx tsx- LSP:
typescript-language-server
V
- Fib โ basic recursive fibonacci
- Compiler:
v
Vale
- Fib โ basic recursive fibonacci
- Compiler:
valec
Wren
- Fib โ basic recursive fibonacci
- Runner:
wren