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 LanguageImplementation licenseAdditional information
GNATAdaGPLv3FSF GNAT is GPLv3 with runtime exception, other versions have a GPL runtime.
ALGOL 68GALGOL 68GPL-
ELLA ALGOL 68ALGOL 68Public domain or Crown copyright-
BWK awkAWKCustom-
gawkAWKGPLv3-
mawkAWKGPLv2-
GCCC, C++, Objective-C, ASM, GoGPL-
Clang, LLVMC, C++, Objective-CNCSA-
OpenCOBOLCOBOLGPL-
MonoC#, Visual Basic.NETGPLv2, MIT, LGPLv2-
'EiffelGPL, EFLFor GPL projects
'EiffelMIT-
ErlangErlangErlang, Apache 2.0-
GforthForthGPLv3-
Open FirmwareForthBSD-
PforthForthPublic domain-
FreeBASICBASICGPLInspired by and compatible with QBasic.
GambasBASICGPLPartially compatible with Visual Basic code.
HarbourHarbourGPL-
HeliumHaskellGPL-
IconIconPublic domain-
IcedTeaJavaGPL-
WebKit JavaScriptCoreJavaScriptLGPL v2.1-
SpiderMonkeyJavaScriptMPL-
V8JavaScriptBSD-
JuliaJuliaMIT, GPL and BSDA few GPL math libraries make the full environment GPL as a whole.
Emacs LispLispGPLv3-
EGLEGLEPL-
LuaLuaMIT-
LogtalkLogtalkApache 2.0linking exception
Free PascalPascal, Object PascalGPL, LGPLGPL applies to the compiler, while LGPL with static linking exception applies to the runtime libraries
PerlPerlArtistic or GPL-
PHPPHPPHP -
PikePikeGPL, LGPL, MPL 1.1-
Free PoplogPOP-11, Common Lisp, Prolog, Standard MLCustom, based on MIT/XFree86-
GNU PrologPrologGPLv2-
SWI-PrologPrologLGPL-
CiaoPrologGPL, LGPL-
OpaOpaAffero GPL-
PythonPythonPSF With Run-Time Exception
JythonPythonPSF With Run-Time Exception
IronPythonPythonMs-PL-
PyPyPythonMIT-
ReginaREXXLGPL-
Ruby MRIRubyRuby or GPLReference implementation through v1.8
YARVRubyRuby or BSDReference implementation for v1.9; GPL for v1.9.1–1.9.2; BSDL for 1.9.3+
JRubyRubyCPL, GPL, LGPL-
IronRubyRubyMs-PL-
RubiniusRubyBSD-
XRubyRubyGPL v2-
BiglooSchemeGPL, LGPL-
ChickenSchemeBSD-
GambitSchemeLGPL, Apache-
GuileSchemeLGPL-
JSchemeSchemezlib-
BiwaSchemeSchemeMIT-
KawaSchemeMIT-
RacketSchemeLGPL-
ScshSchemeBSD-
GNU SmalltalkSmalltalkGPL v2-
PharoSmalltalkMIT-
SqueakSmalltalkApple Public Source, Apache -
CSNOBOL4SNOBOL4Custom-
Tcl/TkTcl/TkTcl/Tk -
MINTTRACGPL-
ashUnix ShellBSD-
bashUnix ShellGPLv3-
ksh93Unix ShellCPL-
ClojureClojureEPL-
ClojureCLRClojureEPL-
Clojure-PyClojureEPL-
ClojureScriptClojureEPL-
ScalaScalaBSD-
F#F#MIT-
TypeScriptTypeScriptApache-
GoGoBSD-style-
RustRustMIT-
ValaValaLGPL-
DartDartBSD-
Multics PL/IPL/IMIT-
RRGPL-
SwiftSwiftApache-
.NET CoreC#, Visual Basic.NET, F#MIT-
NimNimMIT-
CrystalCrystalApache-