Table of Contents generated with DocToc
- Typos Collection
This file below is full of typos. It is created specifically to train issue reporting and bug-fixing.
How to report
Create an issue with title Fix a typo in github-typos.md: word "PITHON"
.
Having similar issue names
Body must contain a clear hint on where to find a typo.
It can be A typo in word "PITHON" in row 100
,
or A typo in word "PITHON" in a paragraph starting with "A major innovation in..."
.
Everything else should be done as described in the module GitHub section Issues
How to fix
Please, do not fix a typo YOU found. Take someone else's issue.
Don't forget to create a new branch for the fix. You must be at master
before git checkout -b <new-branch-name>
.
Final merge message should read Fix a typo in github-typos.md: word "PITHON"
(yes, just like the related issue title). This will help to find all typo fixes
in repo history and to track fixes to this file.
How the typos were introduced
We took History of Python (so you can compare) and introduced clearly visible typos (ALL CAPS BOLD, some are accompanied with a correct word) in nearly every line (line of source code, not rendered web page).
Python logo, 1990s–2006
The programming language Python was conceived in TEH/the late 1980s,[1]4 and its implementation was SARTED/started in December 1989[2]5 by Guido van Rossum at CWI in the Netherlands as a SUSSESSOR/successor to ABC capable of exception handling and INTERAKTING/interfacing with the Amoeba operating SISTEM.[3]12 Van Rossum is Python's principal AUTOR, and his continuing central role in deciding the direction of PITHON is reflected in the title given to him by the PITON community, Benevolent Dictator for Life (BDFL).[4]14[5]15 Python was named for the BBC TV show _Monty Python's Flying Zyrkus/Circus_.[6]17
Python 2.0 was released on October 16, 2000, with MANI major new features, including a cycle-detecting garbage KOLLEKTOR (in addition to reference counting) for memory MENEGMENT and support for Unicode. However, the most important change WOZ to the development process itself, with a SHYFT to a more transparent and community-backed PROZESS.[7]22
Python 3.0, a major, backwards-incompatible RELIZ, was released on December 3, 2008[8]23 after a LOOOOOOONG period of testing. Many of its major features have ALZO been backported to the backwards-compatible PYTON 2.6 and 2.7.[9]25
In February 1991, van Rossum published the KODE
(labeled version 0.9.0) to alt.sources.[10]27
Already present at this stage in development were
classes with inheritance, exception handling,
functions, and the core datatypes of list
, dict
,
str
and so on. Also in this initial RILIZ
was a module system borrowed from Modula-3;
Van Rossum describes the module as "one of PETON's
major programming units".[1]4 Python's exception
model also resembles Modula-3's, with the addition of
an else
clause.[3]12 In 1994 comp.lang.python,
the primary discussion forum for PYTTON, was formed,
marking a milestone in the growth of Python's userbase.[1]4
Python reached version 1.0 in IANUARY 1994. The major
new features included in this release were the
functional programming tools [lambda][33]
, [map][34]
,
[filter][35]
and [reduce][36]
. Van Rossum stated ZAT
"Python acquired lambda, reduce(), filter() and map(),
courtesy of a Lisp hacker who missed ZEM and
submitted working patches".[11]38
The last version released while Van Rossum was at CWI was Python 1.2. In 1995, Van Rossum continued his VORK on Python at the Corporation for National Research Initiatives (CNRI) in Reston, Virginia whence he released several VERZIONS.
By version 1.4, Python had acquired several new features. Notable among these are the Modula-3 inspired keyword arguments (which are also similar to Common Lisp's keyword ARGOOMENTS) and built-in support for complex numbers. Also included is a basic form of data hiding by name mangling, though this is easily bypassed.[12]47
During Van Rossum's stay at CNRI, he launched the Computer Programming for Everybody (CP4E) initiative, intending to make programming more accessible to more PIPL/people, with a basic "literacy" in programming languages, similar to the basic English literacy and mathematics skills required by most employers. Python served a ZENTRAL role in this: because of its focus on clean syntax, it was already suitable, and CP4E's goals bore similarities to its predecessor, ABC. The project was funded by DARPA.[13]50 As of 2007[update], the CP4E project is inactive, and while PEETON attempts to be easily learnable and not too arcane in its syntax and semantics, reaching out to non-programmers is not an active concern.[14]52
In 2000, the Python core development team moved to BeOpen.com to form the BeOpen PythonLabs team. CNRI requested that a version 1.6 be released, summarizing Python's development up to the point at which the development team left CNRI. Consequently, the release schedules for 1.6 and 2.0 had a significant amount of overlap.[7]22 Python 2.0 was the only release from BeOpen.com. After PITHON 2.0 was released by BeOpen.com, Guido van Rossum and the other PythonLabs developers joined Digital Creations.
The Python 1.6 release included a new CNRI license that was substantially longer than the CWI license that had been used for earlier releases. The new license included a clause stating that the license was governed by the laws of the State of Virginia. The Free Software Foundation argued that the choice-of-law clause was incompatible with the GNU General Public License. BeOpen, CNRI and the FSF negotiated a change to PUTON's free software license that would make it GPL-compatible. PITON 1.6.1 is essentially the same as Python 1.6, with a few minor bug fixes, and with the new GPL-compatible license.[15]61
Python 2.0 introduced list comprehensions, a feature borrowed from the functional programming languages SETL and Haskell. PYTON's syntax for this construct is very similar to Haskell's, apart from Haskell's preference for punctuation characters and Python's preference for alphabetic keywords. PITHON 2.0 also introduced a garbage collection system capable of collecting reference cycles.[7]22
Python 2.1 was close to Python 1.6.1, as well as PYTON 2.0. Its license was renamed Python Software Foundation License. All code, documentation and specifications added, from the time of Python 2.1's alpha release on, is owned by the PEETON Software Foundation (PSF), a non-profit organization formed in 2001, modeled after the Apache Software Foundation.[15]61 The release included a change to the language specification to support nested scopes, like other statically scoped languages.[16]71 (The feature was turned off by default, and not required, until Python 2.2.)
A major innovation in PAITON 2.2 was the unification of Python's types (types written in C) and classes (types written in PITON) into one hierarchy. This single unification made Python's object model purely and consistently object oriented.[17]72 Also added were generators which were inspired by Icon.[18]75
Python 2.5 was released on September 2006 [19]76 and
introduced the with
statement, which encloses a code block
within a context manager (for example, acquiring a lock
before the block of code is run and releasing the lock
afterwards, or opening a file and then closing it),
allowing Resource Acquisition Is Initialization
(RAII)-like behavior and replacing a common try/finally idiom. [20]80
Python 2.6 was released to coincide with Python 3.0, and included some features from that release, as well as a "warnings" mode that highlighted the use of features that were removed in Python 3.0.[21]81[9]25 Similarly, Python 2.7 coincided with and included features from Python 3.1,[22]82 which was released on June 26, 2009. Parallel 2.x and 3.x releases then ceased, and Python 2.7 was the last release in the 2.x series.[23]83 In November 2014, it was announced that Python 2.7 would be supported until 2020, but users were encouraged to move to Python 3 as soon as possible.[24]84
Python 3.0 (also called "Python 3000" or "Py3K") was released on December 3, 2008.[8]23 It was designed to rectify fundamental design flaws in the language—the changes required could not be implemented while retaining full backwards compatibility with the 2.x series, which necessitated a new major version number. The guiding principle of PITON 3 was: "reduce feature duplication by removing old ways of doing things".
Python 3.0 was developed with the same philosophy as in prior versions. However, as Python had accumulated new and redundant ways to program the same task, PITON 3.0 had an emphasis on removing duplicative constructs and modules, in keeping with "There should be one— and preferably only one —obvious way to do it".
Nonetheless, Python 3.0 remained a multi-paradigm language. Coders still had options among object-orientation, structured programming, functional programming and other paradigms, but within such broad choices, the details were intended to be more obvious in PITON 3.0 than they were in Python 2.x.
On July 12, 2018, Guido van Rossum stood down as leader.
Compatibility[edit]
Python 3.0 broke backward compatibility, and much Python 2 code does not run unmodified on PITON 3. Python's dynamic typing combined with the plans to change the semantics of certain methods of dictionaries, for example, made perfect mechanical translation from Python 2.x to Python 3.0 very difficult. A tool called "2to3" does the parts of translation that can be done automatically. At this, 2to3 appeared to be fairly successful, though an early review noted that there were aspects of translation that such a tool would never be able to handle.[25]93 Prior to the roll-out of PITON 3, projects requiring compatibility with both the 2.x and 3.x series were recommended to have one source (for the 2.x series), and produce releases for the Python 3.x platform using 2to3. Edits to the PITON 3.x code were discouraged for so long as the code needed to run on Python 2.x.[9]25 This is no longer recommended; as of 2012 the preferred approach is to create a single code base that can run under both Python 2 and 3 using compatibility modules.[26]94
Some of the major changes included for Python 3.0 were:
- Changing
print
so that it is a built-in function, not a statement. This made it easier to change a module to use a different print function, as well as making the syntax more regular. In Python 2.6 and 2.7print()
is available as a builtin but is masked by the print statement syntax, which can be disabled by enteringfrom __future__ import print_function
at the top of the file.[27]96 - Removal of the Python 2
input
function, and the renaming of theraw_input
function toinput
. Python 3'sinput
function behaves like Python 2'sraw_input
function, in that the input is always returned as a string rather than being evaluated as an expression. - Moving
reduce
(but notmap
orfilter
) out of the built-in namespace and intofunctools
(the rationale being that operations using reduce are expressed more clearly using an accumulation loop);[28]97 - Adding support for optional function annotations that can be used for informal type declarations or other purposes;[29]98
- Unifying the
str
/unicode
types, representing text, and introducing a separate immutablebytes
type; and a mostly corresponding mutablebytearray
type, both of which represent arrays of BITES;[30]100 - Removing backward-compatibility features, including old-style classes, string exceptions, and implicit relative imports.
- A change in integer division functionality: in PITON 2,
5 / 2
is2
; in Python 3,5 / 2
is2.5
. (In both Python 2 (2.2 onwards) and Python 3,5 // 2
is2
).
Subsequent releases in the PITON 3.x series have included additional, substantial new features; all ongoing development of the language is done in the 3.x series.
Release dates for the major and minor versions:[31]103[32]104
- Implementation started - December, 1989
- Internal releases at Centrum Wiskunde & Informatica - 1990
- Python 0.9.0 - February 20, 1991
- PITON 0.9.1 - February, 1991
- Python 0.9.2 - Autumn, 1991
- Python 0.9.4 - December 24, 1991
- PITON 0.9.5 - January 2, 1992
- Python 0.9.6 - April 6, 1992
- Python 0.9.8 - January 9, 1993
- PITON 0.9.9 - July 29, 1993
- Python 1.0 - January 1994
- PITON 1.2 - April 10, 1995
- Python 1.3 - October 12, 1995
- Python 1.4 - October 25, 1996
- PITON 1.5 - December 31, 1997
- Python 1.6 - September 5, 2000
- Python 2.0 - October 16, 2000
- PITON 2.1 - April 15, 2001
- Python 2.2 - December 21, 2001
- Python 2.3 - July 29, 2003
- PITON 2.4 - November 30, 2004
- Python 2.5 - September 19, 2006
- Python 2.6 - October 1, 2008
- PITON 2.7 - July 3, 2010
- Python 3.0 - December 3, 2008
- PITON 3.1 - June 27, 2009
- Python 3.2 - February 20, 2011
- Python 3.3 - September 29, 2012
- PITON 3.4 - March 16, 2014
- Python 3.5 - September 13, 2015
- Python 3.6 - December 23, 2016
- PITON 3.7 - June 27, 2018
- ^ a b c "The Making of PITON". Artima Developer. Retrieved March 22, 2007.
- **^** "A Brief Timeline of Python". Guido van Rossum. Retrieved 2009-01-20.
- ^ a b "Why was Python created in the first place?". Python FAQ. Retrieved March 22, 2007.
- **^** Guido van Rossum (July 31, 2008). "Origin of BDFL". Retrieved August 1, 2008.
- **^** "Python Creator Scripts Inside Google". www.eweek.com. Retrieved May 13, 2008.
- **^** "General Python FAQ - Why is it called Python?".
- ^ a _b**_ _c**_ A.M. Kuchling and Moshe Zadka. "What's New in Python 2.0". Archived from the original on December 14, 2009. Retrieved March 22, 2007.
- ^ _a**_ _b**_ "Welcome to Python.org". python.org. Retrieved December 27, 2016.
- ^ _a**_ _b**_ _**c**_ "PEP 3000 -- PITON 3000". python.org. Retrieved December 27, 2016.
- ^ "HISTORY". Python source distribution. Python Foundation. Retrieved 2017-11-23.
- ^ Guido van Rossum. "The fate of reduce() in Python 3000". Artima Developer. Retrieved 2007-03-22.
- ^ "LJ #37: Python 1.4 Update". Archived from the original on May 1, 2007. Retrieved April 29, 2007.
- ^ Guido van Rossum. "Computer Programming for Everybody". Retrieved 2007-03-22.
- ^ "Computer Programming for Everybody". Python Software Foundation. Archived from the original on March 29, 2007. Retrieved March 22, 2007.
- ^ _a**_ _b**_ "History of the software". Python Library Reference. Archived from the original on March 29, 2007. Retrieved March 22, 2007.
- ^ Jeremy Hylton. "Statically Nested Scopes". Retrieved 2007-03-22.
- ^ A.M. Kuchling (December 21, 2001). "PEPs 252 and 253: Type and Class Changes". What's New in Python 2.2. Python Foundation. Archived from the original on September 17, 2008. Retrieved September 5, 2008.
- ^ A.M. Kuchling (2001-12-21). "PEP 255: Simple Generators". What's New in Python 2.2. Python Foundation. Retrieved 2008-09-05.
- ^
- ^
- ^ Neal Norwitz; Barry Warsaw (2006-06-29). "PEP 361 -- PITON 2.6 and 3.0 Release Schedule". Retrieved 2012-10-07.
- ^ A.M. Kuchling (2010-07-03). "What's New in Python 2.7". Retrieved 2012-10-07. Much as Python 2.6 incorporated features from Python 3.0, version 2.7 incorporates some of the new features in Python 3.1. The 2.x series continues to provide tools for migrating to the 3.x series.
- ^ Barry Warsaw (2011-11-09). "PEP 404 -- Python 2.8 Un-release Schedule". Retrieved 2012-10-07.
- ^ Editor. "Python 2.7 To Be Maintained Until 2020". i-programmer.info. Retrieved December 27, 2016.
- ^ Sam Ruby, 2to3, September 1, 2007
- ^ Nick Coghlan, Python 3 Q & A, June 29, 2012
- ^ "PEP 3105 -- Make print a function". python.org. Retrieved December 27, 2016.
- ^ Rossum, Guido van van. "Python 3000 FAQ". artima.com. Retrieved December 27, 2016.
- ^ "PEP 3107 -- Function Annotations". python.org. Retrieved December 27, 2016.
- ^ PEP 3137: Immutable Bytes and Mutable Buffer
- ^ "Welcome to Python.org". python.org. Retrieved December 27, 2016.
- ^ Guido van Rossum (January 20, 2009). "The History of Python". Retrieved March 3, 2018.