Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
img
 
 
 
 

Programming Languages for Enthusiasts

./cover-art.png

A catalogue of languages, environments, and tooling around them. Feel free to send a PR if I am missing some cool indie projects here.

Languages

Bolt

Bolt is a language with in-built data-race freedom!

Souffle

Soufflé is a variant of Datalog for tool designers crafting analyses in Horn clauses. Soufflé synthesizes a native parallel C++ program from a logic specification.

Mascarpone

Mascarpone is a self-modifying programming language in the style of Emmental.

Dafny

Dafny is a programming language with a program verifier. As you type in your program, the verifier constantly looks over your shoulders and flags any errors.

Irken

Irken is a strongly typed, compiled language with a lisp-like syntax extensible with macros. It uses type inference along with a powerful type system to give you the speed of a compiled language with high-level data types and a higher degree of safety than languages like C/C++.

Orion

Orion is a high level, purely functional programming language with a LISP based syntax

Ur/Web

Ur is a programming language in the tradition of ML and Haskell, but featuring a significantly richer type system. Ur is functional, pure, statically typed, and strict. Ur supports a powerful kind of metaprogramming based on row types.

Dark

./img/darklang.gif

Dark, a combined language, editor, and infrastructure to make it easy to build backends.

Website: https://darklang.com/ Dev Blog: https://blog.darklang.com/

Elvish

Friendly Interactive Shell and Expressive Programming Language

Teyjus

An efficient implementation of the higher-order logic programming language Lambda Prolog

Pikelet

https://raw.githubusercontent.com/pikelet-lang/pikelet/main/book/assets/pikelet.png

A friendly little systems language with first-class types.

Some of Brendan’s thoughts on evolving Pikelet can be read here: https://gist.github.com/brendanzab/eba7015e6345abe79a57a704091820bb/

Ink

Ink is a minimal programming language inspired by modern JavaScript and Go, with functional style.

Repo: https://github.com/thesephist/ink

Beef

https://raw.githubusercontent.com/beefytech/Beef/master/IDE/screenshot0.gif

A performance-oriented language designed to provide high level ergonomics suitable for game development.

Open Cypher

A declarative property graph query language

Arend

https://github.com/JetBrains/Arend A tutorial on it is available here: https://ice1000.org/2020/05-14-ArendLittleIntro.html

Morpheus

A stack-based programming language with derivational morphemes

Hamler

https://camo.githubusercontent.com/174524f57c5ba4439286566213264242a6e4c9869cc8f8ddfd6027f585be3e3f/68747470733a2f2f7777772e68616d6c65722d6c616e672e6f72672f696d616765732f68616d6c65724032782e706e67

Haskell-style functional programming language running on Erlang VM

Lys

A language that compiles to WebAssembly

Repo: https://github.com/lys-lang/lys

IRCIS

https://raw.githubusercontent.com/batman-nair/IRCIS/master/screencaps/banner.png

https://raw.githubusercontent.com/batman-nair/IRCIS/master/screencaps/factors.gif

IRCIS is an esoteric programming language where the program exists in a two-dimensional grid of cells, where each cell contains a single instruction, and execution can proceed in any cardinal direction across this grid – not just left-to-right, but also right-to-left, top-to-bottom, and bottom-to-top.

Wasp

./img/wasp.png

Wasp (Web Application Specification Language) is a declarative DSL (domain-specific language) for developing, building and deploying modern full-stack web apps with less code.

Website: https://wasp-lang.dev/

Clay

Clay is a programming language designed for Generic Programming.

Lawvere

A categorical programming language with effects

Alan

Alan is a programming language that does concurrency for you and can thus separate how the software is written from how it runs

Pony

https://www.ponylang.io/images/logo.png

Pony is an open-source, actor-model, capabilities-secure, high performance programming language.

A post on the history of the language: https://www.ponylang.io/blog/2017/05/an-early-history-of-pony/

A collection of talks on the language is available here: https://codesync.global/media/top-10-pony-lang-talks/

Lain

./img/lain.png

Lain is a Lisp based templating and scripting language used at Devin Lin Luvega’s website XXIIVV

An image editor called Ronin is also based on the same language: https://100r.co/site/ronin.html

Lips

Scheme based powerful lisp language in JavaScript

Futhark

A data parallel functional programming language

Paste Lang

[WIP] An esoteric programming language build around macros.

Frank

Frank is a strict, effectful functional programming language with a bidirectional type-and-effect system and effect handlers

Catala

Catala is a programming language adapted for socio-fiscal legislative literate programming. By annotating each line of the legislative text with its meaning in terms of code, one can derive an implementation of complex socio-fiscal mechanisms that enjoys a high level of assurance regarding the code-law faithfulness.

https://raw.githubusercontent.com/CatalaLang/catala/master/doc/images/logo.png

https://raw.githubusercontent.com/CatalaLang/catala/master/doc/images/ScreenShotVSCode.png

Website: https://catala-lang.org/

Gottlob

http://www.attoparsec.com/artifacts/gottlob/images/functions.png

Gottlob is an esoteric language which tries to match Frege’s notation in Begriffsschrift as closely as possible.

Koka


Koka: a function-oriented language with effect inference

I encountered Koka when researching about algebraic effects. Papers from Daan Leijen on its semantics and technical details are available here: https://www.microsoft.com/en-us/research/project/koka/

Red

Red is a new programming language strongly inspired by Rebol, but with a broader field of usage thanks to its native-code compiler, from system programming to high-level scripting, while providing modern support for concurrency and multi-core CPUs.

FormCoreJS

A minimal pure functional language based on self dependent types.

Gerty

A minimal, dependently-typed programming language

Gravity

Gravity is a powerful, dynamically typed, lightweight, embeddable programming language written in C without any external dependencies (except for stdlib). It is a class-based concurrent scripting language with modern Swift-like syntax.

Ballerina

Ballerina is an open source programming language and platform for cloud-era application programmers to easily write software that just works.

Gluon

A static, type inferred and embeddable language written in Rust.

Flix

Flix is a statically typed functional, imperative, and logic programming language.

Gleam

A statically typed language for the Erlang VM

Astro

A fun safe language for rapid prototyping and high performance applications

Felix

An advanced, statically typed, high performance scripting language with native C++ embedding.

Facet

A call-by-value functional language with algebraic effects, runners, quantitative type theory, and staging

Wyvern

Wyvern is a new general-purpose programming language designed to support adaptation and assurance.

pLam

An interpreter for learning and exploring pure λ-calculus

TopShell

Purely functional, reactive scripting language

FStar

Verification system for effectful programs

Shiro

Author: Jeffrey Guenther

A declarative, dataflow programming language for exploring alternatives

Thesis: http://summit.sfu.ca/system/files/iritems1/17048/etd9968_JGuenther.pdf

Agda

Agda is a dependently typed programming language / interactive theorem prover.

PolyML

The Poly/ML implementation of Standard ML.

Factor

Factor is a concatenative, stack-based programming language with high-level features including dynamic types, extensible syntax, macros, and garbage collection. On a practical side, Factor has a full-featured library, supports many different platforms, and has been extensively documented.

Kitten

http://kittenlang.org/logo.png

./img/kitten.png

A statically typed concatenative systems programming language.

CakeML

A Verified Implementation of ML

PunyForth

A simple, stack-based, Forth inspired programming language that primarily targets Internet of Things (IOT) devices, like the ESP8266.

Play

A small, portable language, for making reliable applications

Cedille

Cedille, a dependently typed programming languages based on the Calculus of Dependent Lambda Eliminations

DataFun

Research on integrating datalog & lambda calculus via monotonicity types.

Paper on the underlying theory: http://www.rntz.net/files/tones.pdf

Cone

Cone is a fast, fit, friendly, and safe systems programming language.

Atto

An insanely simple self-hosted functional programming language

Less Wrong

Simple CoC-based programming language

Wu

An expression oriented, gradually typed and mission-critical programming language.

XL

A super-flexible language based entirely on tree rewrites

Dex Lang

Research language for array processing in the Haskell/ML family

Theseus

Functional programming language with fully reversible computation

Ditto

A Super Kawaii Dependently Typed Programming Language

Finkel

Finkel is a statically typed, purely functional, non-strict-by-default dialect of the Lisp programming language. Or in other words, Haskell in S-expression.

Hana

A small dynamically-typed scripting language written in Rust/C and is inspired by Pascal, Ruby and Javascript.

Plasma

A statically typed, side-effect free single assignment language and will have functional programming and concurrent programming features.

Egison

Egison is a functional programming language featuring its expressive pattern-matching facility.

Oakc

A portable programming language with an compact intermediate representation

Bobcat

A concatenative language for behavior trees

Arturo

Repo: https://github.com/arturo-lang/arturo Simple, modern and powerful interpreted programming language for efficient scripting.

Imp

Relational Programming Environment.

Imp by Jamie Brandon is envisioned to be a programming environment for working with structured data across multiple platforms blurring the lines between a programming language and a database.

It is still in an experimental phase, but already home to a few cool ideas. Read about it here: https://scattered-thoughts.net/writing/imp-intro/

Enso

./img/enso.gif

A hybrid visual and textual functional programming language.

They keep a dev diary on Medium: https://medium.com/@enso_org/enso-dev-blog-18th-december-2020-e51e11c02c66

Unison

Unison is a modern, statically-typed purely functional language, similar to Haskell, but with the ability to describe entire distributed systems with a single program.

SuperCollider

An audio server, programming language, and IDE for sound synthesis and algorithmic composition.

Myia

Myia is a new differentiable programming language. It aims to support large scale high performance computations (e.g. linear algebra) and their gradients.

Fizz

fizz is an experimental language and runtime environment for the exploration of cognitive architectures and combined Machine Learning (ML) and Machine Reasoning (MR) solutions.

Neon

The primary goal of Neon is to find out whether a useful programming language can avoid some of the common pitfalls that beginners frequently encounter in other languages.

Tooling

NanoCaml

TILT

TILT is a compiler for Standard ML that uses Typed Intermediate Languages.

Typer Piper

The Typer Piper: Automating Data Structure Transformations Through Type Chaining

Zod

Zod is a TypeScript-first schema declaration and validation library. I’m using the term “schema” to broadly refer to any data type/structure, from a simple string to a complex nested object.

Matechs Effect

A Fully-fledged functional effect system for typescript with a rich standard library.

Effects as Session

Formalised embedding of an imperative language with effect system into session-typed pi calculus.

Singletons

Fake dependent types in Haskell using singletons

Tamago

A safe, extensible, layered programming language that runs on top of JavaScript

Asterius

Asterius is a Haskell to WebAssembly compiler based on GHC.

About

A catalog of programming languages

Resources

Releases

No releases published

Packages

No packages published