Eric S. Raymond
Eric Steven Raymond referred to as ESR, is an American software developer, author of the cited 1997 essay and 1999 book The Cathedral and the Bazaar and other works, open-source software advocate. He wrote a guidebook for the Roguelike game NetHack. In the 1990s, he edited and updated the Jargon File in print as The New Hacker's Dictionary. Raymond was lived in Venezuela as a child, his family moved to Pennsylvania in 1971. He has suffered from cerebral palsy since birth. Raymond began his programming career writing proprietary software, between 1980 and 1985. In 1990, noting that the Jargon File had not been maintained since about 1983, he adopted it. Paul Dourish maintains an archived original version of the Jargon File, because, he says, Raymond's updates "essentially destroyed what held it together."In 1996 Raymond took over development of the open-source email software "popclient", renaming it to Fetchmail. Soon after this experience, in 1997, he wrote the essay "The Cathedral and the Bazaar", detailing his thoughts on open-source software development and why it should be done as as possible.
The essay was based in part on his experience in developing Fetchmail. He first presented his thesis at the annual Linux Kongress on May 27, 1997, he expanded the essay into a book, The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary, in 1999. The internal white paper by Frank Hecker that led to the release of the Mozilla source code in 1998 cited The Cathedral and the Bazaar as "independent validation" of ideas proposed by Eric Hahn and Jamie Zawinski. Hahn would describe the 1999 book as "clearly influential". From the late 1990s onward, due in part to the popularity of his essay, Raymond became a prominent voice in the open source movement, he co-founded the Open Source Initiative in 1998, taking on the self-appointed role of ambassador of open source to the press and public. He remains active in OSI, stepped down as president of the initiative in February 2005. In 1998 Raymond received and published a Microsoft document expressing worry about the quality of rival open-source software.
Eric named this document, together with others subsequently leaked, "the Halloween Documents". In 2000–2002 he created CML2, a source code configuration system. Raymond attributed this rejection to "kernel list politics". Linus Torvalds on the other hand said in a 2007 mailing list post that as a matter of policy, the development team preferred more incremental changes, his 2003 book The Art of Unix Programming discusses user tools for programming and other tasks. Raymond is the administrator of the project page for the GPS data tool gpsd; some versions of NetHack include his guide. He has contributed code and content to the free software video game The Battle for Wesnoth. Raymond coined an aphorism he dubbed "Linus's Law", inspired by Linus Torvalds: "Given enough eyeballs, all bugs are shallow", it first appeared in his book the Bazaar. Raymond has refused to speculate on whether the "bazaar" development model could be applied to works such as books and music, not wanting to "weaken the winning argument for open-sourcing software by tying it to a potential loser".
Raymond has had a number of public disputes with other figures in the free software movement. As head of the Open Source Initiative, he argued that advocates should focus on the potential for better products; the "very seductive" moral and ethical rhetoric of Richard Stallman and the Free Software Foundation fails, he said, "not because his principles are wrong, but because that kind of language... does not persuade anybody". In a 2008 essay he "defended the right of programmers to issue work under proprietary licenses because I think that if a programmer wants to write a program and sell it, it's neither my business nor anyone else's but his customer's what the terms of sale are". In the same essay he said that the "logic of the system" puts developers into "dysfunctional roles", with bad code the result. Raymond is a member of the Libertarian Party, he is a gun rights advocate. He has endorsed the open source firearms organization Defense Distributed, calling them "friends of freedom" and writing "I approve of any development that makes it more difficult for governments and criminals to monopolize the use of force.
As 3D printers become less expensive and more ubiquitous, this could be a major step in the right direction."In 2015 Raymond accused the Ada Initiative and other women in tech groups of attempting to entrap male open source leaders and accuse them of rape, saying "Try to avoid being alone because there is a chance that a'women in tech' advocacy group is going to try to collect your scalp."Raymond is known for claiming that “Gays experimented with unfettered promiscuity in the 1970s and got AIDS as a consequence” and that “Police who react to a random black male behaving suspiciously who might be in the critical age range as though he is an near-imminent lethal threat, are being rational, not racist.” Progressive campaign The Great Slate was successful in raising funds for candidates in part by asking for contributions from tech workers in return for not posting similar quotes by Raymond. Matasano Security employee and Great Slate fundraiser Thomas Ptacek said, “I’ve been torturing Twitter with lurid Eric S. Raymond quotes for years.
Every time I do, 20 people beg me to stop.” It is estimated that as of March 2018 over $30,000 has been raised in this way
Brian Wilson Kernighan is a Canadian computer scientist. He worked at Bell Labs and contributed to the development of Unix alongside Unix creators Ken Thompson and Dennis Ritchie. Kernighan's name became known through co-authorship of the first book on the C programming language with Dennis Ritchie. Kernighan affirmed, he authored many Unix programs, including ditroff. Kernighan is coauthor of the AMPL programming languages; the "K" of K&R C and the "K" in AWK both stand for "Kernighan". In collaboration with Shen Lin he devised well-known heuristics for two NP-complete optimization problems: graph partitioning and the travelling salesman problem. In a display of authorial equity, the former is called the Kernighan–Lin algorithm, while the latter is known as the Lin–Kernighan heuristic. Kernighan has been a Professor in the Computer Science Department of Princeton University since 2000, he is the Undergraduate Department Representative. Kernighan was born in Toronto, he attended the University of Toronto between 1960 and 1964, earning his Bachelor's degree in engineering physics.
He received his PhD in electrical engineering from Princeton University in 1969 for research supervised by Peter Weiner. Kernighan has held a professorship in the Department of Computer Science at Princeton since 2000; each fall he teaches a course called "Computers in Our World", which introduces the fundamentals of computing to non-majors. Kernighan was the software editor for Prentice Hall International, his "Software Tools" series spread the essence of "C/Unix thinking" with makeovers for BASIC, FORTRAN, Pascal, most notably his "Ratfor" was put in the public domain. He has said that if stranded on an island with only one programming language it would have to be C. Kernighan coined the term helped popularize Thompson's Unix philosophy. Kernighan is known as a coiner of the expression "What You See Is All You Get", a sarcastic variant of the original "What You See Is What You Get". Kernighan's term is used to indicate that WYSIWYG systems might throw away information in a document that could be useful in other contexts.
Kernighan's original 1978 implementation of Hello, World! was sold at The Algorithm Auction, the world's first auction of computer algorithms. In 1996, Kernighan taught CS50, the Harvard University introductory course in Computer Science. Other achievements during his career include: Brian Kernighan's home page at Bell Labs "Why Pascal is Not My Favorite Programming Language" — By Brian Kernighan, AT&T Bell Labs, 2 April 1981 "Leap In and Try Things" — Interview with Brian Kernighan — on "Harmony at Work Blog", October 2009. An Interview with Brian Kernighan — By Mihai Budiu, for PC Report Romania, August 2000 "Transcript of an interview with Brian Kernighan". Archived from the original on 2009-04-28. Retrieved 2016-03-31. – Interview by"Michael S. Mahoney". Archived from the original on 2009-05-28. Retrieved 2016-03-31. Video — TechNetCast At Bell Labs: Dennis Ritchie and Brian Kernighan Video — "Assembly for the Class of 2007:'D is for Digital and Why It Matters'" A Descent into Limbo by Brian Kernighan Photos of Brian Kernighan Works by Brian Kernighan at Open Library Video interview with Brian Kernighan for Princeton Startup TV The Setup, Brian Kernighan
A regular expression, regex or regexp is a sequence of characters that define a search pattern. This pattern is used by string searching algorithms for "find" or "find and replace" operations on strings, or for input validation, it is a technique developed in formal language theory. The concept arose in the 1950s when the American mathematician Stephen Cole Kleene formalized the description of a regular language; the concept came into common use with Unix text-processing utilities. Since the 1980s, different syntaxes for writing regular expressions exist, one being the POSIX standard and another used, being the Perl syntax. Regular expressions are used in search engines and replace dialogs of word processors and text editors, in text processing utilities such as sed and AWK and in lexical analysis. Many programming languages provide regex capabilities, built-in or via libraries; the phrase regular expressions, regexes, is used to mean the specific, standard textual syntax for representing patterns for matching text.
Each character in a regular expression is either a metacharacter, having a special meaning, or a regular character that has a literal meaning. For example, in the regex a. A is a literal character which matches just'a', while'.' is a meta character that matches every character except a newline. Therefore, this regex matches, for example,'a', or'ax', or'a0'. Together and literal characters can be used to identify text of a given pattern, or process a number of instances of it. Pattern matches may vary from a precise equality to a general similarity, as controlled by the metacharacters. For example. Is a general pattern, is less general and a is a precise pattern; the metacharacter syntax is designed to represent prescribed targets in a concise and flexible way to direct the automation of text processing of a variety of input data, in a form easy to type using a standard ASCII keyboard. A simple case of a regular expression in this syntax is to locate a word spelled two different ways in a text editor, the regular expression serialie matches both "serialise" and "serialize".
Wildcards achieve this, but are more limited in what they can pattern, as they have fewer metacharacters and a simple language-base. The usual context of wildcard characters is in globbing similar names in a list of files, whereas regexes are employed in applications that pattern-match text strings in general. For example, the regex ^+|+$ matches excess whitespace at the beginning or end of a line. An advanced regular expression that matches any numeral is??. A regex processor translates a regular expression in the above syntax into an internal representation which can be executed and matched against a string representing the text being searched in. One possible approach is the Thompson's construction algorithm to construct a nondeterministic finite automaton, made deterministic and the resulting deterministic finite automaton is run on the target text string to recognize substrings that match the regular expression; the picture shows the NFA scheme N obtained from the regular expression s*, where s denotes a simpler regular expression in turn, recursively translated to the NFA N.
Regular expressions originated in 1951, when mathematician Stephen Cole Kleene described regular languages using his mathematical notation called regular sets. These arose in theoretical computer science, in the subfields of automata theory and the description and classification of formal languages. Other early implementations of pattern matching include the SNOBOL language, which did not use regular expressions, but instead its own pattern matching constructs. Regular expressions entered popular use from 1968 in two uses: pattern matching in a text editor and lexical analysis in a compiler. Among the first appearances of regular expressions in program form was when Ken Thompson built Kleene's notation into the editor QED as a means to match patterns in text files. For speed, Thompson implemented regular expression matching by just-in-time compilation to IBM 7094 code on the Compatible Time-Sharing System, an important early example of JIT compilation, he added this capability to the Unix editor ed, which led to the popular search tool grep's use of regular expressions.
Around the same time when Thompson developed QED, a group of researchers including Douglas T. Ross implemented a tool based on regular expressions, used for lexical analysis in compiler design. Many variations of these original forms of regular expressions were used in Unix programs at Bell Labs in the 1970s, including vi, sed, AWK, expr, in other programs such as Emacs. Regexes were subsequently adopted by a wide range of programs, with these early forms standardized in the POSIX.2 standard in 1992. In the 1980s the more complicated regexes arose in Perl, which derived from a regex library written by Henry Spencer, who wrote an implementation of Advanced Regular Expressions for Tcl; the Tcl library is a hybrid NFA/DFA implementation with improved performance characteristics. Software projects that have adopted Spencer's Tcl regular expression implementation include PostgreSQL. Perl expanded on Spencer's original library
Nokia Bell Labs is an industrial research and scientific development company owned by Finnish company Nokia. Its headquarters are located in New Jersey. Other laboratories are located around the world. Bell Labs has its origins in the complex past of the Bell System. In the late 19th century, the laboratory began as the Western Electric Engineering Department and was located at 463 West Street in New York City. In 1925, after years of conducting research and development under Western Electric, the Engineering Department was reformed into Bell Telephone Laboratories and under the shared ownership of American Telephone & Telegraph Company and Western Electric. Researchers working at Bell Labs are credited with the development of radio astronomy, the transistor, the laser, the photovoltaic cell, the charge-coupled device, information theory, the Unix operating system, the programming languages C, C++, S. Nine Nobel Prizes have been awarded for work completed at Bell Laboratories. In 1880, when the French government awarded Alexander Graham Bell the Volta Prize of 50,000 francs (approximately US$10,000 at that time for the invention of the telephone, he used the award to fund the Volta Laboratory in Washington, D.
C. in collaboration with Sumner Tainter and Bell's cousin Chichester Bell. The laboratory was variously known as the Volta Bureau, the Bell Carriage House, the Bell Laboratory and the Volta Laboratory, it focused on the analysis and transmission of sound. Bell used his considerable profits from the laboratory for further research and education to permit the " diffusion of knowledge relating to the deaf": resulting in the founding of the Volta Bureau, located at Bell's father's house at 1527 35th Street N. W. in Washington, D. C, its carriage house became their headquarters in 1889. In 1893, Bell constructed a new building close by at 1537 35th Street N. W. to house the lab. This building was declared a National Historic Landmark in 1972. After the invention of the telephone, Bell maintained a distant role with the Bell System as a whole, but continued to pursue his own personal research interests; the Bell Patent Association was formed by Alexander Graham Bell, Thomas Sanders, Gardiner Hubbard when filing the first patents for the telephone in 1876.
Bell Telephone Company, the first telephone company, was formed a year later. It became a part of the American Bell Telephone Company. American Telephone & Telegraph Company and its own subsidiary company, took control of American Bell and the Bell System by 1889. American Bell held a controlling interest in Western Electric whereas AT&T was doing research into the service providers. In 1884, the American Bell Telephone Company created the Mechanical Department from the Electrical and Patent Department formed a year earlier. In 1896, Western Electric bought property at 463 West Street to station their manufacturers and engineers, supplying AT&T with their product; this included everything from telephones, telephone exchange switches, transmission equipment. In 1925, Bell Laboratories was developed to better consolidate the research activities of the Bell System. Ownership was evenly split between Western Electric and AT&T. Throughout the next decade the AT&T Research and Development branch moved into West Street.
Bell Labs carried out consulting work for the Bell Telephone Company, U. S. government work, a few workers were assigned to basic research. The first president of research at Bell Labs was Frank B. Jewett who stayed there until 1940. By the early 1940s, Bell Labs engineers and scientists had begun to move to other locations away from the congestion and environmental distractions of New York City, in 1967 Bell Laboratories headquarters was relocated to Murray Hill, New Jersey. Among the Bell Laboratories locations in New Jersey were Holmdel, Crawford Hill, the Deal Test Site, Lincroft, Long Branch, Neptune, Piscataway, Red Bank and Whippany. Of these, Murray Hill and Crawford Hill remain in existence; the largest grouping of people in the company was in Illinois, at Naperville-Lisle, in the Chicago area, which had the largest concentration of employees prior to 2001. There were groups of employees in Indianapolis, Indiana. Since 2001, many of the former locations closed; the Holmdel site, a 1.9 million square foot structure set on 473 acres, was closed in 2007.
The mirrored-glass building was designed by Eero Saarinen. In August 2013, Somerset Development bought the building, intending to redevelop it into a mixed commercial and residential project. A 2012 article expressed doubt on the success of the newly named Bell Works site however several large tenants had announced plans to move in through 2016 and 2017 Bell Laboratories was, is, regarded by many as the premier research facility of its type, developing a wide range of revolutionary technologies, including radio astronomy, the transistor, the laser, information theory, the operating system Unix, the programming languages C and C++, solar cells, the CCD, floating-gate MOSFET, a whole host of optical and wired communications
Research Unix refers to early versions of the Unix operating system for DEC PDP-7, PDP-11, VAX and Interdata 7/32 and 8/32 computers, developed in the Bell Labs Computing Sciences Research Center. The term Research Unix first appeared in the Bell System Technical Journal to distinguish it from other versions internal to Bell Labs whose code-base had diverged from the primary CSRC version. However, that term was little-used until Version 8 Unix, but has been retroactively applied to earlier versions as well. Prior to V8, the operating system was most called UNIX or the UNIX Time-Sharing System. AT&T licensed Version 5 to educational institutions, Version 6 to commercial sites. Schools paid $200 and others $20,000, discouraging most commercial use, but Version 6 was the most used version into the 1980s. Research Unix versions are referred to by the edition of the manual that describes them, because early versions and the last few were never released outside of Bell Labs, grew organically. So, the first Research Unix would be the First Edition, the last the Tenth Edition.
Another common way of referring to them is Version x Unix. All modern editions of Unix—excepting Unix-like implementations such as Coherent and Linux—derive from the 7th Edition. Starting with the 8th Edition, versions of Research Unix had a close relationship to BSD; this began by using 4.1cBSD as the basis for the 8th Edition. In a Usenet post from 2000, Dennis Ritchie described these versions of Research Unix as being closer to BSD than they were to UNIX System V, which included some BSD code: Research Unix 8th Edition started from BSD 4.1c, but with enormous amounts scooped out and replaced by our own stuff. This continued with 10th; the ordinary user command-set was, I guess, a bit more BSD-flavored than SysVish, but it was pretty eclectic. In 2002, Caldera International released Unix V1-7 and 32V as FOSS under a permissive BSD-like software license. In 2017, Unix Heritage Society and Alcatel-Lucent USA Inc. on behalf of itself and Nokia Bell Laboratories, released v8, v9, v10 under the condition: "will not assert its copyright rights with respect to any non-commercial copying, performance, display or creation of derivative works of Research Unix®1 Editions 8, 9, 10".
Ancient UNIX Systems History of Unix Lions' Commentary on UNIX 6th Edition, with Source Code Inferno - Another operating system from the same team UNIX Evolution by Ian F. Darwin and Geoffrey Collyer Unix heritage - More links and source code for some Research Unix versions The Evolution of the Unix Time-sharing System by Dennis M. Ritchie The Restoration of Early UNIX Artifacts by Warren Toomey, School of IT, Bond University Full Manual Pages documentation for Research Unix 8th Edition. List of new features in Research Unix 9th Edition
GNU General Public License
The GNU General Public License is a widely-used free software license, which guarantees end users the freedom to run, study and modify the software. The license was written by Richard Stallman of the Free Software Foundation for the GNU Project, grants the recipients of a computer program the rights of the Free Software Definition; the GPL is a copyleft license, which means that derivative work can only be distributed under the same license terms. This is in distinction to permissive free software licenses, of which the BSD licenses and the MIT License are widely-used examples. GPL was the first copyleft license for general use; the GPL license family has been one of the most popular software licenses in the free and open-source software domain. Prominent free-software programs licensed under the GPL include the Linux kernel and the GNU Compiler Collection. David A. Wheeler argues that the copyleft provided by the GPL was crucial to the success of Linux-based systems, giving the programmers who contributed to the kernel the assurance that their work would benefit the whole world and remain free, rather than being exploited by software companies that would not have to give anything back to the community.
In 2007, the third version of the license was released to address some perceived problems with the second version that were discovered during its long-time usage. To keep the license up to date, the GPL license includes an optional "any version" clause, allowing users to choose between the original terms or the terms in new versions as updated by the FSF. Developers can omit it; the GPL was written by Richard Stallman in 1989, for use with programs released as part of the GNU project. The original GPL was based on a unification of similar licenses used for early versions of GNU Emacs, the GNU Debugger and the GNU C Compiler; these licenses contained similar provisions to the modern GPL, but were specific to each program, rendering them incompatible, despite being the same license. Stallman's goal was to produce one license that could be used for any project, thus making it possible for many projects to share code; the second version of the license, version 2, was released in 1991. Over the following 15 years, members of the free software community became concerned over problems in the GPLv2 license that could let someone exploit GPL-licensed software in ways contrary to the license's intent.
These problems included tivoization, compatibility issues similar to those of the Affero General Public License—and patent deals between Microsoft and distributors of free and open-source software, which some viewed as an attempt to use patents as a weapon against the free software community. Version 3 was developed to attempt to address these concerns and was released on 29 June 2007. Version 1 of the GNU GPL, released on 25 February 1989, prevented what were the two main ways that software distributors restricted the freedoms that define free software; the first problem was that distributors may publish binary files only—executable, but not readable or modifiable by humans. To prevent this, GPLv1 stated that copying and distributing copies or any portion of the program must make the human-readable source code available under the same licensing terms; the second problem was that distributors might add restrictions, either to the license, or by combining the software with other software that had other restrictions on distribution.
The union of two sets of restrictions would apply to the combined work, thus adding unacceptable restrictions. To prevent this, GPLv1 stated that modified versions, as a whole, had to be distributed under the terms in GPLv1. Therefore, software distributed under the terms of GPLv1 could be combined with software under more permissive terms, as this would not change the terms under which the whole could be distributed. However, software distributed under GPLv1 could not be combined with software distributed under a more restrictive license, as this would conflict with the requirement that the whole be distributable under the terms of GPLv1. According to Richard Stallman, the major change in GPLv2 was the "Liberty or Death" clause, as he calls it – Section 7; the section says that licensees may distribute a GPL-covered work only if they can satisfy all of the license's obligations, despite any other legal obligations they might have. In other words, the obligations of the license may not be severed due to conflicting obligations.
This provision is intended to discourage any party from using a patent infringement claim or other litigation to impair users' freedom under the license. By 1990, it was becoming apparent that a less restrictive license would be strategically useful for the C library and for software libraries that did the job of existing proprietary ones; the version numbers diverged in 1999 when version 2.1 of the LGPL was released, which renamed it the GNU Lesser General Public License to reflect its place in the philosophy. Most "GPLv2 or any version" is stated by users of the license, to allow upgrading to GPLv3. In late 2005, the Free Software Foundation announced work on version 3 of the GPL. On 16 January 2006, the first "discussion draft" of GPLv3 was published, the public consultation began; the public consultation was planned for ni
A command-line interface or command language interpreter known as command-line user interface, console user interface and character user interface, is a means of interacting with a computer program where the user issues commands to the program in the form of successive lines of text. A program which handles the interface is called shell; the CLI was the primary means of interaction with most computer systems on computer terminals in the mid-1960s, continued to be used throughout the 1970s and 1980s on OpenVMS, Unix systems and personal computer systems including MS-DOS, CP/M and Apple DOS. The interface is implemented with a command line shell, a program that accepts commands as text input and converts commands into appropriate operating system functions. Today, many end users if use command-line interfaces and instead rely upon graphical user interfaces and menu-driven interactions. However, many software developers, system administrators and advanced users still rely on command-line interfaces to perform tasks more efficiently, configure their machine, or access programs and program features that are not available through a graphical interface.
Alternatives to the command line include, but are not limited to text user interface menus, keyboard shortcuts, various other desktop metaphors centered on the pointer. Examples of this include the Windows versions 1, 2, 3, 3.1, 3.11, DosShell, Mouse Systems PowerPanel. Programs with command-line interfaces are easier to automate via scripting. Command-line interfaces for software other than operating systems include a number of programming languages such as Tcl/Tk, PHP, others, as well as utilities such as the compression utility WinZip, some FTP and SSH/Telnet clients. Compared with a graphical user interface, a command line requires fewer system resources to implement. Since options to commands are given in a few characters in each command line, an experienced user finds the options easier to access. Automation of repetitive tasks is simplified - most operating systems using a command line interface support some mechanism for storing used sequences in a disk file, for re-use. A command-line history can be kept, allowing repetition of commands.
A command-line system may require paper or online manuals for the user's reference, although a "help" option provides a concise review of the options of a command. The command-line environment may not provide the graphical enhancements such as different fonts or extended edit windows found in a GUI, it may be difficult for a new user to become familiar with all the commands and options available, compared with the drop-down menus of a graphical user interface, without repeated reference to manuals. Operating system command line interfaces are distinct programs supplied with the operating system. A program that implements such a text interface is called a command-line interpreter, command processor or shell. Examples of command-line interpreters include DEC's DIGITAL Command Language in OpenVMS and RSX-11, the various Unix shells, CP/M's CCP, DOS's COMMAND. COM, as well as the OS/2 and the Windows CMD. EXE programs, the latter groups being based on DEC's RSX-11 and RSTS CLIs. Under most operating systems, it is possible to replace the default shell program with alternatives.
Although the term'shell' is used to describe a command-line interpreter speaking a'shell' can be any program that constitutes the user-interface, including graphically oriented ones. For example, the default Windows GUI is a shell program named EXPLORER. EXE, as defined in the SHELL=EXPLORER. EXE line in the WIN. INI configuration file; these programs are shells, but not CLIs. Application programs may have command line interfaces. An application program may support none, any, or all of these three major types of command line interface mechanisms: Parameters: Most operating systems support a means to pass additional information to a program when it is launched; when a program is launched from an OS command line shell, additional text provided along with the program name is passed to the launched program. Interactive command line sessions: After launch, a program may provide an operator with an independent means to enter commands in the form of text. OS inter-process communication: Most operating systems support means of inter-process communication.
Command lines from client processes may be redirected to a CLI program by one of these methods. Some applications support only a CLI, presenting a CLI prompt to the user and acting upon command lines as they are entered. Other programs support both a CLI and a GUI. In some cases, a GUI is a wrapper around a separate CLI executable file. In other cases, a program may provide a CLI as an optional alternative to its GUI. CLIs and GUIs support different functionality. For example, all features of MATLAB, a numerical analysis computer program, are available via the CLI, whereas the MATLAB GUI exposes only a subset of features; the early Sierra games, such as the first three King's Quest games, used commands from an internal command line to move the character around in the graphic window. The command-line interface evolved from a form of dialog once conducted by humans over teleprinter machines, in which human operators remotely exchanged inf