Comparison of open-source programming language licensing

Last updated

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
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
gawkAWK GPLv3
mawkAWK 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
CPython 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
Gauche SchemeBSD
Guile Scheme LGPL
JScheme Scheme zlib
BiwaSchemeScheme MIT
Kawa Scheme MIT
Racket Scheme LGPL
STklos Scheme GPL
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 GPL-3.0-or-later [1]
ksh93 Unix Shell EPL
Zig Zig MIT
Clojure Clojure EPL
ClojureCLRClojure EPL
Clojure-PyClojure EPL
ClojureScriptClojure EPL
Scala Scala BSD
F# F# MIT
TypeScript TypeScript Apache License 2.0 [2]
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 C#, Visual Basic .NET, F# MIT
Nim Nim MIT
Crystal Crystal Apache

Related Research Articles

Berkeley DB (BDB) is an embedded database software library for key/value data, historically significant in open source software. Berkeley DB is written in C with API bindings for many other programming languages. BDB stores arbitrary key/data pairs as byte arrays, and supports multiple data items for a single key. Berkeley DB is not a relational database, although it has database features including database transactions, multiversion concurrency control and write-ahead logging. BDB runs on a wide variety of operating systems including most Unix-like and Windows systems, and real-time operating systems.

<span class="mw-page-title-main">Free software</span> Software licensed to be freely used, modified and distributed

Free software, libre software, or libreware is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, not price; all users are legally free to do what they want with their copies of a free software regardless of how much is paid to obtain the program. Computer programs are deemed "free" if they give end-users ultimate control over the software and, subsequently, over their devices.

<span class="mw-page-title-main">GNU</span> Free software collection

GNU is an extensive collection of free software, which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operating systems popularly known as Linux. Most of GNU is licensed under the GNU Project's own General Public License (GPL).

<span class="mw-page-title-main">GNU Debugger</span> Source-level debugger

The GNU Debugger (GDB) is a portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada, Assembly, C, C++, D, Fortran, Haskell, Go, Objective-C, OpenCL C, Modula-2, Pascal, Rust, and partially others.

In computing, source code, or simply code, is any collection of text, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source code.

<span class="mw-page-title-main">GNU Octave</span> Numerical analysis programming language

GNU Octave is a high-level programming language primarily intended for scientific computing and numerical computation. Octave helps in solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with MATLAB. It may also be used as a batch-oriented language. As part of the GNU Project, it is free software under the terms of the GNU General Public License.

<span class="mw-page-title-main">Ghostscript</span> Interpreter for the PostScript language

Ghostscript is a suite of software based on an interpreter for Adobe Systems' PostScript and Portable Document Format (PDF) page description languages. Its main purposes are the rasterization or rendering of such page description language files, for the display or printing of document pages, and the conversion between PostScript and PDF files.

<span class="mw-page-title-main">GNU Project</span> Free software project

The GNU Project is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and computing devices by collaboratively developing and publishing software that gives everyone the rights to freely run the software, copy and distribute it, study it, and modify it. GNU software grants these rights in its license.

<span class="mw-page-title-main">Courier (typeface)</span> Monospaced slab serif font of IBM

Courier is a monospaced slab serif typeface. Courier was created by IBM in the mid-1950s, and was designed by Howard "Bud" Kettler (1919–1999). The Courier name and typeface concept are in the public domain. Courier has been adapted for use as a computer font, and versions of it are installed on most desktop computers.

<span class="mw-page-title-main">Open-source Unicode typefaces</span>

There are Unicode typefaces which are open-source and designed to contain glyphs of all Unicode characters, or at least a broad selection of Unicode scripts. There are also numerous projects aimed at providing only a certain script, such as the Arabeyes Arabic font. The advantage of targeting only some scripts with a font was that certain Unicode characters should be rendered differently depending on which language they are used in, and that a font that only includes the characters a certain user needs will be much smaller in file size compared to one with many glyphs. Unicode fonts in modern formats such as OpenType can in theory cover multiple languages by including multiple glyphs per character, though very few actually cover more than one language's forms of the unified Han characters.

<span class="mw-page-title-main">LAMP (software bundle)</span> Acronym for a common web hosting solution

LAMP is an acronym denoting one of the most common software stacks for many of the web's most popular applications. However, LAMP now refers to a generic software stack model and its components are largely interchangeable.

<span class="mw-page-title-main">Linux</span> Family of Unix-like operating systems

Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution (distro), which includes the kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses and recommends the name "GNU/Linux" to emphasize the use and importance of GNU software in many distributions, causing some controversy.

<span class="mw-page-title-main">Douglas Crockford</span> American computer programmer

Douglas Crockford is an American computer programmer who is involved in the development of the JavaScript language. He specified the data format JSON, and has developed various JavaScript related tools such as the static code analyzer JSLint and minifier JSMin. He wrote the book JavaScript: The Good Parts, published in 2008, followed by How JavaScript Works in 2018. He was a senior JavaScript architect at PayPal until 2019, and is also a writer and speaker on JavaScript, JSON, and related web technologies.

<span class="mw-page-title-main">GNU Emacs</span> GNU version of the Emacs text editor

GNU Emacs is a free software text editor. It was created by GNU Project founder Richard Stallman, based on the Emacs editor developed for Unix operating systems. GNU Emacs has been a central component of the GNU project and a flagship project of the free software movement. Its tag line is "the extensible self-documenting text editor."

<span class="mw-page-title-main">Copyleft</span> Practice of mandating free use in all derivatives of a work

Copyleft is the legal technique of granting certain freedoms over copies of copyrighted works with the requirement that the same rights be preserved in derivative works. In this sense, freedoms refers to the use of the work for any purpose, and the ability to modify, copy, share, and redistribute the work, with or without a fee. Licenses which implement copyleft can be used to maintain copyright conditions for works ranging from computer software, to documents, art, scientific discoveries and even certain patents.

<span class="mw-page-title-main">GNU General Public License</span> Series of free software licenses

The GNU General Public License is a series of widely used free software licenses or copyleft that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general use and was originally written by Richard Stallman, the founder of the Free Software Foundation (FSF), for the GNU Project. The license grants the recipients of a computer program the rights of the Free Software Definition. These GPL series are all copyleft licenses, which means that any derivative work must be distributed under the same or equivalent license terms. It is more restrictive than the Lesser General Public License and even further distinct from the more widely used permissive software licenses BSD, MIT, and Apache.

<span class="mw-page-title-main">GNU Free Documentation License</span> Copyleft license primarily for free software documentation

The GNU Free Documentation License is a copyleft license for free documentation, designed by the Free Software Foundation (FSF) for the GNU Project. It is similar to the GNU General Public License, giving readers the rights to copy, redistribute, and modify a work and requires all copies and derivatives to be available under the same license. Copies may also be sold commercially, but, if produced in larger quantities, the original document or source code must be made available to the work's recipient.

Software categories are groups of software. They allow software to be understood in terms of those categories, instead of the particularities of each package. Different classification schemes consider different aspects of software.

The following outline is provided as an overview of and topical guide to the Perl programming language:

References

  1. GNU Project. "README file". Archived from the original on 26 April 2019. Retrieved 12 December 2023. Bash is free software, distributed under the terms of the [GNU] General Public License as published by the Free Software Foundation, version 3 of the License (or any later version).
  2. "TypeScript/LICENSE.txt". GitHub. Archived from the original on 12 December 2023. Retrieved 12 December 2023. microsoft/TypeScript is licensed under the Apache License 2.0.