This is a comparison of open-source programming language licensing and related legal issues, covering all language implementations. Open-source programming languages are those that are released under open-source licenses.
Title | Language | Implementation license | Additional information |
---|---|---|---|
GNAT | Ada | GPLv3 | FSF GNAT is GPLv3 with runtime exception, other versions have a GPL runtime. |
ALGOL 68G | ALGOL 68 | GPL | |
ELLA ALGOL 68 | ALGOL 68 | Public domain or Crown copyright | |
BWK awk | AWK | Custom | |
gawk | AWK | GPLv3 | |
mawk | AWK | GPLv2 | |
GCC | C, C++, Objective-C, ASM, Go | GPL | |
Clang, LLVM | C, C++, Objective-C | NCSA | |
OpenCOBOL | COBOL | GPL | |
Mono | C#, Visual Basic .NET | GPLv2, MIT (X11), LGPLv2 | |
ISE Eiffel | Eiffel | GPL, EFL | For GPL projects (there is a commercial license to use for non GPL projects) |
Gobo Eiffel | Eiffel | MIT | |
Erlang | Erlang | Erlang, Apache 2.0 | |
Gforth | Forth | GPLv3 | |
Open Firmware | Forth | BSD | |
Pforth | Forth | Public domain | |
FreeBASIC | BASIC | GPL | Inspired by and compatible with QBasic. |
Gambas | BASIC | GPL | Partially compatible with Visual Basic code. |
Harbour | Harbour | GPL | |
Helium | Haskell | GPL | |
Icon | Icon | Public domain | |
IcedTea | Java | GPL | |
WebKit JavaScriptCore | JavaScript | LGPL v2.1 | |
SpiderMonkey | JavaScript | MPL | |
V8 | JavaScript | BSD | |
Julia | Julia | MIT, GPL and BSD | A few (optional) GPL math libraries make the full environment GPL as a whole. |
Emacs Lisp | Lisp | GPLv3 | |
EGL | EGL | EPL | |
Lua | Lua | MIT | |
Logtalk | Logtalk | Apache 2.0 | linking exception |
Free Pascal | Pascal, Object Pascal | GPL, LGPL | GPL applies to the compiler, while LGPL with static linking exception applies to the runtime libraries |
Perl | Perl | Artistic or GPL | |
PHP | PHP | PHP (BSD-style) | |
Pike | Pike | GPL, LGPL, MPL 1.1 | |
Free Poplog | POP-11, Common Lisp, Prolog, Standard ML | Custom, based on MIT/XFree86 | |
GNU Prolog | Prolog | GPLv2 | |
SWI-Prolog | Prolog | LGPL | |
Ciao | Prolog | GPL, LGPL | |
Opa | Opa | Affero GPL | |
Python | Python | PSF (GPL compatible) | With Run-Time Exception (no Copyleft) |
Jython | Python | PSF (GPL compatible) | With Run-Time Exception (no Copyleft) |
IronPython | Python | Ms-PL | |
PyPy | Python | MIT | |
Regina | REXX | LGPL | |
Ruby MRI | Ruby | Ruby or GPL | Reference implementation through v1.8 |
YARV | Ruby | Ruby or BSD | Reference implementation for v1.9; GPL for v1.9.1–1.9.2; BSDL for 1.9.3+ |
JRuby | Ruby | CPL, GPL, LGPL | |
IronRuby | Ruby | Ms-PL | |
Rubinius | Ruby | BSD | |
XRuby | Ruby | GPL v2 | |
Bigloo | Scheme | GPL, LGPL | |
Chicken | Scheme | BSD | |
Gambit | Scheme | LGPL, Apache | |
Guile | Scheme | LGPL | |
JScheme | Scheme | zlib | |
BiwaScheme | Scheme | MIT | |
Kawa | Scheme | MIT | |
Racket | Scheme | LGPL | |
Scsh | Scheme | BSD | |
GNU Smalltalk | Smalltalk | GPL v2 | |
Pharo | Smalltalk | MIT | |
Squeak | Smalltalk | Apple Public Source, Apache (OLTPC) | |
CSNOBOL4 | SNOBOL4 | Custom | |
Tcl/Tk | Tcl/Tk | Tcl/Tk (BSD-style) | |
MINT | TRAC | GPL | |
ash | Unix Shell | BSD | |
bash | Unix Shell | GPLv3 | |
ksh93 | Unix Shell | CPL | |
Clojure | Clojure | EPL | |
ClojureCLR | Clojure | EPL | |
Clojure-Py | Clojure | EPL | |
ClojureScript | Clojure | EPL | |
Scala | Scala | BSD | |
F# | F# | MIT | |
TypeScript | TypeScript | Apache | |
Go | Go | BSD-style | |
Rust | Rust | MIT | |
Vala | Vala | LGPL | |
Dart | Dart | BSD | |
Multics PL/I | PL/I | MIT | |
R | R | GPL | |
Swift | Swift | Apache | |
.NET Core | C#, Visual Basic .NET, F# | MIT | |
Nim | Nim | MIT | |
Crystal | Crystal | Apache |