summaryrefslogtreecommitdiff
path: root/content/digarden/pages/История типизации.org
blob: a32ec393bdbc661660ca21c794913b4a9318d6f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
* - 1913ish :: Bertrand Russel introduces a hierarchy of types to avoid barber trouble;
e.g., ~Typeᵢ : Typeᵢ₊₁~.
* - 1920s :: A Polish guy & British guy think that's dumb and collapse the hierarchy.
* - 1940s :: Alonzo Church says arrows are cool.
* - 1958  ::
* With his awesome hairdo, John McCarthy gifts the world an elegant
piece of art: Lisp (•̀ᴗ•́)و
* - Lisp is currently the 2ⁿᵈ oldest high-level language still
in use after Fortran.
* - Maxwell's equations [[https://queue.acm.org/detail.cfm?id=1039523][get]] [[http://www.michaelnielsen.org/ddi/lisp-as-the-maxwells-equations-of-software/][jealous]].
* Lisp introduces a bunch of zany ideas to CS:
** - Introduced if-then-else “McCarthy's Conditional”; 1ˢᵗ class functions & recursion
** - macros ≈ compiler plugins
** - symbols ≈ raw names which needn't have values
** - variables ≈ pointers
** - code ≈ data; statements ≈ expressions
** - ~read, eval, load, compile, print~ are all functions!
* - 1959 :: My man JM thinks manual memory is lame —invents garbage collection!
* - Later, 2001, he writes [[https://web.archive.org/web/20130814213421/http://www-formal.stanford.edu/jmc/robotandbaby/robotandbaby.html][The Robot & The Baby]].
* - 1960s :: Simula says OOPs!
* - 1970s :: Smalltalk popularises the phrase “oop”. ( B has a child named C. )
* - 1970s :: Simple λ-calculus is a fashion model for sets and functions.
* - 1970s :: Milner and friends demand
/variables are for types too, not just terms!/
* - 1970s :: Per Martin-Löf tells us it's okay to depend on one another; ~Π, Σ~ types.
* - 1982  :: A Lisp [[https://en.wikipedia.org/wiki/Ummah][ummah]] is formed: [[http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node1.html][“Common Lisp the Language”]] ♥‿♥
* - In order to be hip & modern, it's got [[https://extravagaria.com/Files/LASC-Overview.pdf][class]] with [[https://en.wikipedia.org/wiki/Common_Lisp_Object_System][CLOS]].
* - Other shenanigans: Scheme 1975, Elisp 1985, Racket 1995, Clojure 2007
* - 1984 :: A script of sorcerous schemes lords lisp over mere mortals
* - 1990s :: A committee makes a sexy [[https://en.wiktionary.org/wiki/a_camel_is_a_horse_designed_by_a_committee][camel]] named Haskell; Professor X's school make their own camel.
* - Their kids get on steroids and fight to this day; Agda ↯↯↯ Coq.
* - 2000s ::
** X's camel .<becomes .~(self .<aware>.)>.
—the other camel [does| the same].
** - In 2015, the cam ls married Lisp and [[https://luxlang.gitbooks.io/the-lux-programming-language/content/][Lux]] was born.
** - In 2016, Haskell & Lisp get involved with Prolog; [[https://shen-language.github.io/][Shen]] is born.
** 2019: Coq is [[https://github.com/MetaCoq/metacoq][self-aware]]; Agda is [[https://github.com/alhassy/gentle-intro-to-reflection][playing]] [[https://alhassy.github.io/next-700-module-systems-proposal/prototype/PackageFormer.html][catch-up]].