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.
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.
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
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:
Novel type-level features. Check this article on super-inductive datatypes.
An accessible syntax that makes it less scary. Check SYNTAX.md.
A complete bootstrap: the language is implemented in itself. Check it here.
Efficient real-world compilers. Check http://uwu.tech/ for a list of apps. (WIP)
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.
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).
Kawa is also a useful framework for implementing other programming languages on the Java platform. It has many useful utility classes.
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.
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:
Oil has interleaved word, command, and expression languages.
The command language has Ruby-like blocks, and the expression language has Python-like data types.
Oil has two kinds of builtins that form the “standard library”.
Languages for data (like JSON) are complementary to Oil code.
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.
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.
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 https://janet-lang.org.
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.
Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.
The goal of the Swift project is to create the best available language for uses ranging from systems programming, to mobile and desktop apps, scaling up to cloud services. Most importantly, Swift is designed to make writing and maintaining correct programs easier for the developer.
I’m writing a new functional programming language called Sasquach that targets the Java Virtual Machine (JVM). This post aims to answer why I’m building it, why I’m not just using another language, the goals and non-goals of the language, and why it’s targeting the JVM.
Unison’s core idea is that code is immutable and identified by its content. This lets us reimagine many aspects of how a programming language works. We simplify codebase management — Unison has no builds, no dependency conflicts, and renaming things is trivial. The same core idea forms the basis for a runtime that robustly supports dynamic code deployment, allowing a single Unison program to describe entire elastic distributed systems.
Pocketlang is a small (~3000 semicolons) and fast functional language written in C. It’s syntactically similar to Ruby and it can be learned within 15 minutes. Including the compiler, bytecode VM and runtime, it’s a standalone executable with zero external dependencies just as it’s self descriptive name. The pocketlang VM can be embedded in another hosting program very easily.