In this blog post, I’m creating a list of all the open-source programming languages that are actively developed on GitHub.
Go
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Swift
Swift is a high-performance system programming language. It has a clean and modern syntax, offers seamless access to existing C and Objective-C code and frameworks, and is memory safe by default.
Although inspired by Objective-C and many other languages, Swift is not itself a C-derived language. As a complete and independent language, Swift packages core features like flow control, data structures, and functions, with high-level constructs like objects, protocols, closures, and generics. Swift embraces modules, eliminating the need for headers and the code duplication they entail.
TypeScript
TypeScript is a language for application-scale JavaScript. TypeScript adds optional types to JavaScript that support tools for large-scale JavaScript applications for any browser, for any host, on any OS. TypeScript compiles to readable, standards-based JavaScript.
Rust
Empowering everyone to build reliable and efficient software.
Kotlin
It is an open-source, statically typed programming language supported and developed by JetBrains and open-source contributors.
Python
Python is a programming language that lets you work quickly and integrate systems more effectively.
PHP
PHP is a popular general-purpose scripting language that is especially suited to web development. Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world. PHP is distributed under PHP License v3.01.
Carbon
Carbon is fundamentally a successor language approach, rather than an attempt to incrementally evolve C++. It is designed around interoperability with C++ as well as large-scale adoption and migration for existing C++ codebases and developers.
Features
- Performance matching C++ using LLVM, with low-level access to bits and addresses
- Interoperate with your existing C++ code, from inheritance to templates
- Fast and scalable builds that work with your existing C++ build systems
- Solid language foundations that are easy to learn, especially if you have used C++
- Easy, tool-based upgrades between Carbon versions
- Safer fundamentals, and an incremental path toward a memory-safe subset
- Batteries-included approach: compiler, libraries, docs, tools, package manager, and more
Julia
Julia is a high-level, high-performance dynamic language for technical computing. The main homepage for Julia can be found at julialang.org. This is the GitHub repository of Julia source code, including instructions for compiling and installing Julia, below.
Ruby
Ruby is an interpreted object-oriented programming language often used for web development. It also offers many scripting features to process plain text and serialized files, or manage system tasks. It is simple, straightforward, and extensible.
Features
- Simple Syntax
- Normal Object-oriented Features (e.g. class, method calls)
- Advanced Object-oriented Features (e.g. mix-in, singleton-method)
- Operator Overloading
- Exception Handling
- Iterators and Closures
- Garbage Collection
- Dynamic Loading of Object Files (on some architectures)
- Highly Portable (works on many Unix-like/POSIX compatible platforms as well as Windows, macOS, etc.)
CoffeeScript
CoffeeScript is a little language that compiles into JavaScript. It is like an “Unfancy JavaScript” code.
Elixir
Elixir is a dynamic, functional language designed for building scalable and maintainable applications.
Crystal
Crystal is a programming language with the following goals:
- Have a syntax similar to Ruby (but compatibility with it is not a goal)
- Statically type-checked but without having to specify the type of variables or method arguments.
- Be able to call C code by writing bindings to it in Crystal.
- Have compile-time evaluation and generation of code, to avoid boilerplate code.
- Compile to efficient native code.
Why?
- We love Ruby’s efficiency for writing code.
- We love C’s efficiency for running code.
- We want the best of both worlds.
- We want the compiler to understand what we mean without having to specify types everywhere.
- We want full OOP.
- Oh, and we don’t want to write C code to make the code run faster.
PowerShell
PowerShell Core is a cross-platform (Windows, Linux, and macOS) automation and configuration tool/framework that works well with your existing tools and is optimized for dealing with structured data (e.g. JSON, CSV, XML, etc.), REST APIs, and object models. It includes a command-line shell, an associated scripting language and a framework for processing cmdlets.
Scala
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.
Clojure
Clojure is a dynamic, general-purpose programming language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language, yet remains completely dynamic – every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection.
MicroPython
A lean and efficient Python implementation for microcontrollers and constrained systems.
Erlang
Erlang is a programming language and runtime system for building massively scalable soft real-time systems with requirements on high availability.
OTP is a set of Erlang libraries, which consists of the Erlang runtime system, a number of ready-to-use components mainly written in Erlang, and a set of design principles for Erlang programs.
Nim
Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
AssemblyScript
A TypeScript-like language for WebAssembly.
AssemblyScript compiles a variant of TypeScript (basically JavaScript with types) to WebAssembly using Binaryen. It generates lean and mean WebAssembly modules while being just an npm install
away.
PureScript
A small strongly typed programming language with expressive types that compiles to JavaScript, written in and inspired by Haskell.
Elm
Compiler for Elm, a functional language for reliable webapps.
Roslyn
Roslyn is the open-source implementation of both the C# and Visual Basic compilers with an API surface for building code analysis tools.
C#
C# is designed by the C# Language Design Team (LDT) in close coordination with the Roslyn project, which implements the language.
Red
Red is a next-generation 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 and cross-platform reactive GUI, while providing modern support for concurrency, all in a zero-install, zero-config, single 1MB file!
Pony
Pony is an open-source, object-oriented, actor-model, capabilities-secure, high-performance programming language.
Frege
Frege is a Haskell for the JVM.
Like any Haskell, it is purely functional, enjoys a strong static type system with global type inference and non-strict – also known as lazy – evaluation.
Frege compiles to Java, runs on the JVM, and uses any Java library you want. It can be used inside any Java project.
Goby
Goby is an object-oriented interpreter language deeply inspired by Ruby as well as its core implementation by 100% pure Go. Moreover, it has standard libraries to provide several features such as the Plugin system. Note that we do not intend to reproduce the whole of the honorable works of Ruby syntax/implementation/libraries.
Racket
Racket is a general-purpose programming language and an ecosystem for language-oriented programming.
Idris
Idris is a general-purpose functional programming language with dependent types.
OCaml
OCaml is a functional, statically-typed programming language from the ML family, offering a powerful module system extending that of Standard ML and a feature-rich, class-based object system.
Eta
The Eta programming language is a dialect of Haskell which runs on the JVM and has the following goals:
- accessibility for beginners from imperative languages, especially Java
- compatibility with GHC 7.10.3’s Haskell.
Nu
Nu is an interpreted Lisp that builds on the Objective-C runtime and Foundation framework.
LiveScript
LiveScript is a language that compiles to JavaScript. It has a straightforward mapping to JavaScript and allows you to write expressive code devoid of repetitive boilerplate. While LiveScript adds many features to assist in functional-style programming, it also has many improvements for object-oriented and imperative programming.
Io
Io is a dynamic prototype-based programming language in the same realm as Smalltalk and Self. It revolves around the idea of message passing from object to object.
DMD
DMD is the reference compiler for the D programming language.
Terra
Terra is a new low-level system programming language that is designed to interoperate seamlessly with the Lua programming language. It is also backwards compatible with (and embeddable in) existing C code. Like C, Terra is a monomorphic, statically-typed, compiled language with manual memory management. But unlike C, it is designed to make interaction with Lua easy. Terra code shares Lua’s syntax and control-flow constructs. It is easy to call Lua functions from Terra (or Terra functions from Lua).
F#
An open-source language that makes it easy to write succinct, robust, and performant code.
Skip
Skip is a general-purpose programming language that tracks side effects to provide caching with reactive invalidation, ergonomic and safe parallelism, and efficient garbage collection. Skip is statically typed and ahead-of-time compiled using LLVM to produce highly optimized executables.
It is a programming language to skip the things you have already computed.
Rakudo
This is Rakudo, a Raku Programming Language compiler for the MoarVM, JVM, and Javascript virtual machines.
Chapel
Chapel is a modern programming language designed for productive parallel computing at scale. Chapel’s design and implementation have been undertaken with portability in mind, permitting Chapel to run on multicore desktops and laptops, commodity clusters, and the cloud, in addition to the high-end supercomputers for which it was originally undertaken.
Lucee Server
Lucee Server (or simply Lucee) is a dynamic, Java-based, tag and scripting language used for rapid web application development.
Lucee simplifies technologies like web services (REST, SOAP, HTTP), ORM (Hibernate), searching (Lucene), data sources (MSSQL, Oracle, MySQL, and others), caching (infinispan, ehcache, and Memcached), and many more.
Lucee provides a compatibility layer for Adobe ColdFusion © CFML using fewer resources and delivering better performance.
Golo
Golo is a lightweight, dynamic, and weakly-typed language for the JVM.
Built from day 1 with invokedynamic
, Golo takes advantage of the latest advances of the JVM. It is also a showcase on how to build a language runtime with invokedynamic
.
Eclipse Golo was originally created by Julien Ponge and developed as part of the research activities of the DynaMid group of the CITI Laboratory at INSA Lyon.
Eclipse Golo is a mature Eclipse Technology Project.
Gosu
Gosu is a pragmatic programming language for the JVM. It has been designed with Java developers in mind by providing a set of features that allow them to be more productive without sacrificing the benefits of Java’s simple syntax and type safety. Gosu is an object-oriented language with a sprinkle of functional programming features.
Zig
A general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
Haxe
Haxe is an open-source toolkit that allows you to easily build cross-platform tools and applications that target many mainstream platforms. The Haxe toolkit includes:
- The Haxe programming language, a modern, high-level, strictly-typed programming language
- The Haxe cross-compiler, a state-of-the-art, lightning-speed compiler for many targets
- The Haxe standard library, a complete, cross-platform library of common functionality
LiveCode
The LiveCode Community open source platform provides a way to build applications for mobile, desktop and server platforms.
The visual workflow allows the user to develop apps “live”, using a powerful and uniquely-accessible language syntax.
Coq
Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs.
V
Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation.
Dart
Dart is:
- Optimized for UI: Develop with a programming language specialized around the needs of user interface creation.
- Productive: Make changes iteratively: use hot reload to see the result instantly in your running app.
- Fast on all platforms: Compile to ARM & x64 machine code for mobile, desktop, and backend. Or compile to JavaScript for the web.
Dart’s flexible compiler technology lets you run Dart code in different ways, depending on your target platform and goals:
- Dart Native: For programs targeting devices (mobile, desktop, server, and more), Dart Native includes both a Dart VM with JIT (just-in-time) compilation and an AOT (ahead-of-time) compiler for producing machine code.
- Dart Web: For programs targeting the web, Dart Web includes both a development time compiler (dartdevc) and a production time compiler (dart2js).
Pharo
Pharo is a dynamic reflective pure object-oriented language supporting live programming inspired by Smalltalk.
Ring
Ring is a practical general-purpose multi-paradigm language. The supported programming paradigms are Imperative, Procedural, Object-Oriented, Functional, Metaprogramming, Declarative programming using nested structures, and Natural programming.
The language is portable (MS-DOS, Windows, Linux, macOS, Android, WebAssembly, etc.) and can be used to create Console, GUI, Web, Games, and Mobile applications.
The language is designed to be Simple, Small, and Flexible.
Senegal
Senegal is a powerful, small-but-fast, concurrent, class-based, and dynamically-typed programming language with a modern syntax.
EO
EO (stands for Elegant Objects or ISO 639-1 code of Esperanto) is an object-oriented programming language based on 𝜑-calculus. We’re aware of popular semi-OOP languages and we don’t think they are good enough, including Java, Ruby, C++, Smalltalk, Python, PHP, C#: all of them have something we don’t tolerate.
ChavaScript
The ChavaScript language transpiler. ChavaScript, a scripting language in Hebrew only, which is converted in real-time to JavaScript by translating the keywords and variable names from Hebrew to foreign.
Jelly
Jelly is a golfing and recreational programming language inspired by J.
Beef
Beef is an open source performance-oriented compiled programming language which has been built hand-in-hand with its IDE environment. The syntax and many semantics are most directly derived from C#, while attempting to retain the C ideals of bare-metal explicitness and lack of runtime surprises, with some “modern” niceties inspired by languages such as Rust, Swift, and Go. See the Language Guide for more details.
CUE
Configure, Unify, Execute
CUE is an open-source data constraint language that aims to simplify tasks involving defining and using data.
It is a superset of JSON, allowing users familiar with JSON to get started quickly.
JDK
The Java Development Kit is a distribution of Java Technology by Oracle Corporation.
Tiny C Compiler
You can compile and execute C code everywhere, for example on
rescue disks. TCC generates optimized x86 code. No byte code overhead. Compile, assemble and link about 7 times faster than ‘gcc -O0’.
PC-BASIC
PC-BASIC is a free, cross-platform interpreter for GW-BASIC, Advanced BASIC (BASICA), PCjr Cartridge Basic and Tandy 1000 GWBASIC. It interprets these BASIC dialects with a high degree of accuracy, aiming for bug-for-bug compatibility. PC-BASIC emulates the most common video and audio hardware on which these BASICs used to run. PC-BASIC runs plain-text, tokenised and protected .BAS files. It implements floating-point arithmetic in the Microsoft Binary Format (MBF) and can therefore read and write binary data files created by GW-BASIC.
PC-BASIC is free and open source software released under the GPL version 3.
QB64
BASIC for the modern era.
QB64 is a modern extended BASIC+OpenGL language that retains QB4.5/QBasic compatibility and compiles native binaries for Windows (XP and up), Linux and macOS.
Gleam
Gleam is a friendly language for building type-safe, scalable systems!
It compiles to Erlang (or JavaScript) and has straightforward interop with other BEAM languages such as Erlang, Elixir, and LFE.
Gwion
Strongly-timed musical programming language. Gwion is a programming language, aimed at making music.