Dec 21, 2021

This project began with an attempt to write the fastest lisp interpreter I could in under 1000 lines of C. It snowballed from there as I kept trying to see if I could add powerful features with minimal code. At the same time I assembled a library of some of my favorite C code (by myself and others) to use as a base for a standard library. This includes ios, a replacement for parts of C’s stdio that adds more flexible features.

nullc is a C-like embeddable programming language with advanced features such as function overloading, operator overloading, class member functions and properties, automatic garbage collection, closures, coroutines, local functions, type inference, runtime type information, modules, list comprehension, enums, namespaces, generic functions and classes.

Language is type-safe and memory-safe.

nullc library can execute code on a VM or translate it to x86 code for fast execution. It can also translate nullc files into C source files.

Read More

This simple programming language with built-in graphical functions and an easy to use and offline usable browser IDE is well suited as a teaching and learning language. You can also use it to write graphical applications that you can embed in a web page.

Nov 5, 2021

Orca is an esoteric programming language, designed to create procedural sequencers in which each letter of the alphabet is an operation, where lowercase letters operate on bang, uppercase letters operate each frame.

The application is not a synthesiser, but a flexible livecoding environment capable of sending MIDI, OSC & UDP to your audio interface, like Ableton, Renoise, VCV Rack or SuperCollider.

I regularly hear people asking which programming language to learn, and then reeling off a list of very similar languages (“Should I learn Java, C#, C++, Python, or Ruby?”). In response I usually tell them that it doesn’t really matter, as long as they get started. There are fundamentals behind them.

Pen is a statically typed functional programming language for application programming with system injection. Its design is heavily inspired by the Go programming language and many functional programming languages like Haskell and Koka.

KDL is a document language with xml-like semantics that looks like you’re invoking a bunch of CLI commands! It’s meant to be used both as a serialization format and a configuration language, much like JSON, YAML, or XML.

There’s a living specification, as well as various implementations. You can also check out the FAQ to answer all your burning questions!

In addition to a spec for KDL itself, there are also standard specs for a KDL Query Language based on CSS selectors, and a KDL Schema Language loosely based on JSON Schema.

The language is based on SDLang, with a number of modifications and clarifications on its syntax and behavior.

The current version of the KDL spec is 1.0.0.

Read More
Sep 3, 2021

Joker is a small interpreted dialect of Clojure written in Go. It is also a Clojure(Script) linter.

Nelua is a systems programming language for performance sensitive applications, like real-time applications and game engines. Its syntax and semantics are similar to Lua, but its garbage collection is optional, it provides optional type notations, and it is free from an interpreter. Nelua uses ahead-of-time compilation to generate optimized native binaries. It is metaprogrammable at compile-time using Lua and it is simple and easy to use.

Pyret is a programming language designed to serve as an outstanding choice for programming education while exploring the confluence of scripting and functional programming. It’s under active design and development, and free to use or modify.

Imba is a Web programming language that’s fast in two ways: Imba’s time-saving syntax with built-in tags and styles results in less typing and switching files so you can build things fast. Imba’s groundbreaking memoized DOM is an order of magnitude faster than virtual DOM libraries, so you can build fast things.

I’ve been working on optimizations in Loko Scheme recently and have implemented large parts of A Sufficiently Smart Compiler for Procedural Records (Keep & Dybvig, 2012). At the same time I have improved the representation of record type descriptors and wanted to share a simple trick I used to improve record type checks for non-sealed records. But first I should explain what a record is in Scheme.

A minimal, efficient and practical proof and programming language. Under the hoods, it is basically Haskell, except purer and with dependent types. That means it can handle mathematical theorems just like Coq, Idris, Lean and Agda. On the surface, it aims to be more practical and looks more like TypeScript. Compared to other proof assistants, Kind has:

  1. The smallest core. Check FormCore.js or Core.kind. Both are < 1000-LOC complete implementations!

  2. Novel type-level features. Check this article on super-inductive datatypes.

  3. An accessible syntax that makes it less scary. Check

  4. A complete bootstrap: the language is implemented in itself. Check it here.

  5. Efficient real-world compilers. Check for a list of apps. (WIP)

Read More

Sketching is a language/library for creative coding. The focus is to make graphical programs accessible for beginners, artists, educators and designers. Sketching is free to use and the source is available to read and improve.

The main focus of Sketching is graphical programs. Running a program will display a canvas ready to show static images or animation.

The inspiration for Sketching came from the Processing project. Processing is a programming language built on top of Java. The Processing language was devised by Ben Fry and Casey Reas.

Think of Sketching as what Processing would have looked like, if it used Racket as its programming language instead of Java. Alternatively, think of Sketching as Racket with an easy to use graphics library.

Although inspired by the Processing project, this project has no affiliation with the Processing Foundation.

Read More

Kawa is a general-purpose programming language that runs on the Java platform. It aims to combine:

  • the benefits of dynamic scripting languages (non-verbose code with less boiler-plate, fast and easy start-up, a REPL, no required compilation step); with

  • the benefits of traditional compiled languages (fast execution, static error detection, modularity, zero-overhead Java platform integration).

It is an extension of the long-established Scheme language, which is in the Lisp family of programming languages. Kawa has many useful features.

Kawa is also a useful framework for implementing other programming languages on the Java platform. It has many useful utility classes.

Read More

This document describes the Oil language from clean slate perspective. Knowledge of Unix shell or the compatible OSH language isn’t assumed. But shell users will see similarities, simplifications, and upgrades.

Remember, Oil is for Python and JavaScript users who avoid shell! See the project FAQ for more color on that.

This document is long because it demonstrates nearly every feature of the language. You may want to read it in multiple sittings, or read The Simplest Explanation of Oil first.

A summary of what follows:

  1. Oil has interleaved word, command, and expression languages.

    • The command language has Ruby-like blocks, and the expression language has Python-like data types.

  2. Oil has two kinds of builtins that form the “standard library”.

  3. Languages for data (like JSON) are complementary to Oil code.

  4. OSH and Oil share both an interpreter data model and a process model (provided by the Unix kernel). Understanding these common models will make you both a better shell user and Oil user.

Keep those 4 points in mind as you read the details below.

Read More
Jul 18, 2021

If you have heard of Zig before, you may know it as a promising new programming language which is ambitiously trying to overthrow C as the de-facto systems language. But did you know that it also can straight up compile C code?

This has been possible for a while, and you can see some examples of this on the home page. What’s new is that the zig cc sub-command is available, and it supports the same options as Clang, which, in turn, supports the same options as GCC.

Now, I’m sure you’re feeling pretty skeptical right about now, so let me hook you real quick before I get into the juicy details.

Read More

A lean, statically typed, compiled, general-purpose, procedural, object-oriented, and garbage collected programming language in the Pascal tradition, with support for generic programming…

Janet is a functional and imperative programming language and bytecode interpreter. It is a lisp-like language, but lists are replaced by other data structures (arrays, tables (hash table), struct (immutable hash table), tuples). The language also supports bridging to native code written in C, meta-programming with macros, and bytecode assembly.

There is a REPL for trying out the language, as well as the ability to run script files. This client program is separate from the core runtime, so Janet can be embedded in other programs. Try Janet in your browser at

Read More

I’m Linus. In 2019, I made a programming language called Ink. Since then, I’ve used it to build a number of side projects, including a ray tracer, a compiler, an assembler, a Twitter client, a writing app, and some personal productivity tools. I write about Ink, programming languages, and software at large on this blog, which is served by a server written in Ink.

Ink takes after Go, JavaScript, and Lua. Here’s a simple Ink program.

Programming Languages

Discuss interesting/experimental programming languages.

Created on Nov 12, 2020
By @root