This article needs additional citations for verification .(December 2023) |
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 | |
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 | Scheme | BSD | |
Guile | Scheme | LGPL | |
JScheme | Scheme | zlib | |
BiwaScheme | Scheme | 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 | |
ClojureCLR | Clojure | EPL | |
Clojure-Py | Clojure | EPL | |
ClojureScript | Clojure | 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 | |
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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."
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.
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.
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:
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).
microsoft/TypeScript is licensed under the Apache License 2.0.