In this blog post, I’m creating a list of all the open-source programming languages that are actively developed on GitHub.
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
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.
Empowering everyone to build reliable and efficient software.
It is an open-source, statically typed programming language supported and developed by JetBrains and open-source contributors.
Python is a programming language that lets you work quickly and integrate systems more effectively.
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.
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 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.
- 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.)
Elixir is a dynamic, functional language designed for building scalable and maintainable applications.
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.
- 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 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.
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.
A lean and efficient Python implementation for microcontrollers and constrained systems.
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 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).
A TypeScript-like language for WebAssembly.
npm install away.
Compiler for Elm, a functional language for reliable webapps.
Roslyn is the open-source implementation of both the C# and Visual Basic compilers with an API surface for building code analysis tools.
C# is designed by the C# Language Design Team (LDT) in close coordination with the Roslyn project, which implements the language.
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 is an open-source, object-oriented, actor-model, capabilities-secure, high-performance programming language.
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 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 is a general-purpose programming language and an ecosystem for language-oriented programming.
Idris is a general-purpose functional programming language with dependent types.
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.
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 is an interpreted Lisp that builds on the Objective-C runtime and Foundation framework.
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 is the reference compiler for the D programming language.
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).
An open-source language that makes it easy to write succinct, robust, and performant code.
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.
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 (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 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
Eclipse Golo is a mature Eclipse Technology Project.
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.
A general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
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
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 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.
Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation.
- 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.
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 is a dynamic reflective pure object-oriented language supporting live programming inspired by Smalltalk.
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 is a powerful, small-but-fast, concurrent, class-based, and dynamically-typed programming language with a modern syntax.
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.
Jelly is a golfing and recreational programming language inspired by J.
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.
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.
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 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.
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 is a friendly language for building type-safe, scalable systems!
Strongly-timed musical programming language. Gwion is a programming language, aimed at making music.