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 | |
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 | GPLv3 | |
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 | |
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 | |
The Common Language Infrastructure (CLI) is an open specification and technical standard originally developed by Microsoft and standardized by ISO and Ecma International that describes executable code and a runtime environment that allows multiple high-level languages to be used on different computer platforms without being rewritten for specific architectures. This implies it is platform agnostic. The .NET Framework, .NET and Mono are implementations of the CLI. The metadata format is also used to specify the API definitions exposed by the Windows Runtime.
Free software or libre software, infrequently known as freedom-respecting software, 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 Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own software without being required by the terms of a strong copyleft license to release the source code of their own components. However, any developer who modifies an LGPL-covered component is required to make their modified version available under the same LGPL license. For proprietary software, code under the LGPL is usually used in the form of a shared library, so that there is a clear separation between the proprietary and LGPL components. The LGPL is primarily used for software libraries, although it is also used by some stand-alone applications.
In computing, source code is any collection of code, 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. The source code is often transformed by an assembler or compiler into binary machine code that can be executed by the computer. The machine code might then be stored for execution at a later time. Alternatively, source code may be interpreted and thus immediately executed.
Squeak is an object-oriented, class-based, and reflective programming language. It was derived from Smalltalk-80 by a group that included some of Smalltalk-80's original developers, initially at Apple Computer, then at Walt Disney Imagineering, where it was intended for use in internal Disney projects. The group would later go on to be supported by HP labs, SAP, and most recently, Y Combinator.
Jython is an implementation of the Python programming language designed to run on the Java platform. The implementation was formerly known as JPython until 1999.
A GPL linking exception modifies the GNU General Public License (GPL) in a way that enables software projects which provide library code to be "linked to" the programs that use them, without applying the full terms of the GPL to the using program. Linking is the technical process of connecting code in a library to the using code, to produce a single executable file. It is performed either at compile time or run-time in order to produce functional machine-readable code. The Free Software Foundation states that, without applying the linking exception, a program linked to GPL library code may only be distributed under a GPL-compatible license. This has not been explicitly tested in court, but linking violations have resulted in settlement. The license of the GNU Classpath project explicitly includes a statement to that effect.
A software license is a legal instrument governing the use or redistribution of software. Under United States copyright law, all software is copyright protected, in both source code and object code forms, unless that software was developed by the United States Government, in which case it cannot be copyrighted. Authors of copyrighted software can donate their software to the public domain, in which case it is also not covered by copyright and, as a result, cannot be licensed.
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.
Komodo Edit is a free and open source text editor for dynamic programming languages. It was introduced in January 2007 to complement ActiveState's commercial Komodo IDE. As of version 4.3, Komodo Edit is built atop the Open Komodo project. Komodo IDE is no longer supported and maintained by developers for python.
Proprietary software, also known as non-free software or closed-source software, is computer software for which the software's publisher or another person reserves some licensing rights to use, modify, share modifications, or share the software, restricting user freedom with the software they lease. It is the opposite of open-source or free software. Non-free software sometimes includes patent rights.
The GNU General Public License is a series of widely used free software licenses 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 were originally written by the founder of the Free Software Foundation (FSF), Richard Stallman, for the GNU Project. The license grant 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.
MIT App Inventor is a web application integrated development environment originally provided by Google, and now maintained by the Massachusetts Institute of Technology (MIT). It allows newcomers to computer programming to create application software(apps) for two operating systems (OS): Android, and iOS, which, as of 8 July 2019, is in final beta testing. It is free and open-source software released under dual licensing: a Creative Commons Attribution ShareAlike 3.0 Unported license, and an Apache License 2.0 for the source code.
Visual Studio Code, also commonly referred to as VS Code, is a source-code editor made by Microsoft for Windows, Linux and macOS. Features include support for debugging, syntax highlighting, intelligent code completion, snippets, code refactoring, and embedded Git. Users can change the theme, keyboard shortcuts, preferences, and install extensions that add additional functionality.
P is a programming language for asynchronous event-driven programming and the IoT that was developed by Microsoft and University of California, Berkeley.
Microsoft, a technology company historically known for its opposition to the open source software paradigm, turned to embrace the approach in the 2010s. From the 1970s through 2000s under CEOs Bill Gates and Steve Ballmer, Microsoft viewed the community creation and sharing of communal code, later to be known as free and open source software, as a threat to its business, and both executives spoke negatively against it. In the 2010s, as the industry turned towards cloud, embedded, and mobile computing—technologies powered by open source advances—CEO Satya Nadella led Microsoft towards open source adoption although Microsoft's traditional Windows business continued to grow throughout this period generating revenues of 26.8 billion in the third quarter of 2018, while Microsoft's Azure cloud revenues nearly doubled.
Project Verona is an experimental research programming language developed by Microsoft and aimed at dealing with memory situations to make other programming languages safer.
Microsoft Power Fx is a free and open source low-code, general-purpose programming language for expressing logic across the Microsoft Power Platform.