Comparison of open-source programming language licensing
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 |
|
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 |
GPLv3 |
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) |
|
Jython |
Python |
PSF (GPL compatible) |
|
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# |
Apache |
|
TypeScript |
TypeScript |
Apache |
|
Gc |
Go |
BSD-style |
|
Rust |
Rust |
MIT |
|
Vala |
Vala |
LGPL |
|
Dart |
Dart |
BSD |
|
Multics PL/I |
PL/I |
MIT |
|
R |
R |
GPL |
|
Swift |
Swift |
Apache |
|