49 Fun Facts About Programming
Learn something new, then test yourself with the quiz.
Know these facts? Prove it.
Take the 50-question quizWhich programmer created the C language at Bell Labs in 1972?
Dennis Ritchie wrote C at Bell Labs in 1972; by 1973 the Unix kernel had been rewritten in it, and he co-authored the 1978 book The C Programming Language with Brian Kernighan.
Brendan Eich created JavaScript in 1995 while working at which company?
Netscape hired Eich in April 1995; he wrote the first JavaScript prototype in about ten days, and it shipped in Netscape Navigator 2.0.
When JavaScript first shipped in a browser beta in September 1995, what was it called?
LiveScript was the name in the Navigator 2.0 betas of September 1995; the company renamed it JavaScript that December to ride the hype around Sun's Java, which Eich has called a marketing ploy.
Who designed the Java language at Sun Microsystems?
James Gosling led the Java project at Sun from 1991, first aimed at set-top boxes; the language launched in May 1995 with the write once, run anywhere promise.
Java was initially named after which tree standing outside its creator's office?
Oak was the working name from 1991, but it was already trademarked, so the team settled on Java before the May 1995 release; Oracle acquired Sun in 2010.
What did Bjarne Stroustrup call the C++ predecessor he began in 1979?
C with Classes added Simula-style classes to C at Bell Labs from 1979; Stroustrup renamed the evolving language C++ in 1983, and his book The C++ Programming Language appeared in 1985.
The name C++, suggested by Rick Mascitti, refers to which feature of C?
C++ puns on the increment operator, which adds one to a variable, so the name reads as 'C plus one'; Rick Mascitti suggested it in the summer of 1983.
In 2018 Guido van Rossum took a 'permanent vacation' from which Python community title?
Benevolent Dictator For Life was van Rossum's title until July 2018, when a dispute over PEP 572's assignment expressions led him to step down; a five-person steering council later took over.
Yukihiro Matsumoto said one factor in naming Ruby was that it was a colleague's what?
A birthstone: Matz has said one reason the name won out over the other candidate, coral, was that ruby is a colleague's birthstone; Ruby 0.95 was announced in December 1995.
Go was designed in 2007 by Robert Griesemer, Rob Pike and Ken Thompson at which company?
Google engineers started Go in September 2007 and announced it in November 2009; it is often called Golang after its old golang.org domain, though the name is Go.
Graydon Hoare created Rust in 2006 while at which organisation, its sponsor from 2009?
Mozilla began sponsoring Hoare's side project in 2009 and announced it publicly in 2010; Rust 1.0, the first stable release, arrived in May 2015.
Rust enforces memory safety without a garbage collector using which compile-time mechanism?
Rust's compiler runs the borrow checker, which tracks the lifetime of every reference, so dangling pointers and data races are rejected before the program ever runs.
Swift, introduced at Apple's 2014 WWDC, was created to replace which older Apple language?
Objective-C had been Apple's main app language since the NeXT era; Chris Lattner started Swift in July 2010, and Apple open-sourced it under the Apache 2.0 licence in December 2015.
The Kotlin language is named after what kind of place?
Kotlin Island, an island in the Gulf of Finland near St Petersburg, gave the language its name; JetBrains open-sourced Kotlin in 2012, and it became the preferred Android language in 2019.
Before it became a recursive backronym, what did the letters PHP originally stand for?
Personal Home Page tools were the CGI programs Rasmus Lerdorf wrote in C for his own site around 1994; from PHP 3 in 1998 the letters became the recursive PHP: Hypertext Preprocessor.
The elePHPant, PHP's official mascot, is what colour?
The elePHPant is blue; Vincent Pontier drew it in 1998 after noticing the letters PHP look like an elephant turned sideways, and soft-toy elePHPants later became conference fixtures.
Who developed Perl in 1987 as a Unix scripting language to make report processing easier?
Larry Wall released Perl 1.0 in December 1987 for Unix text and report processing; its motto, 'There's more than one way to do it', is pronounced Tim Toady.
In October 2019, Perl 6 was officially renamed to what?
Raku became the official name in October 2019, letting Perl 5 carry on simply as Perl; the name comes from a Japanese word meaning comfort or ease.
Which IBM engineer proposed and led the team that delivered the first Fortran compiler in 1957?
John Backus proposed the project to IBM in 1953 and led the team whose compiler shipped for the IBM 704 in April 1957, producing code good enough to win over assembly programmers.
What does the name COBOL stand for?
Common Business-Oriented Language was designed in 1959 by the CODASYL committee for a Department of Defense effort, drawing partly on Grace Hopper's FLOW-MATIC; its programs read like English sentences.
John McCarthy's Lisp, begun in 1958, takes its name from which phrase?
List Processor, shortened to Lisp, describes its list-based data; McCarthy specified it at MIT in 1958 and published it in 1960, and all its code is written as parenthesised s-expressions.
John Kemeny and Thomas Kurtz created BASIC in 1964 at which school?
Dartmouth College in Hanover, New Hampshire, ran the first BASIC program on 1 May 1964; Kemeny and Kurtz wanted students outside the sciences to use its time-sharing system.
Micro-Soft's first product, a BASIC interpreter, was written for which computer?
Altair 8800 owners got Altair BASIC from MITS on paper tape in 1975; Gates, Allen and Monte Davidoff wrote it on a Harvard PDP-10 emulating the Intel 8080 chip.
Which Swiss computer scientist designed Pascal, released in 1970?
Niklaus Wirth of ETH Zurich published Pascal in 1970 as a teaching language; it became the main development language for the Apple Lisa and early Macintosh, and Turbo Pascal made it a hit on PCs.
Which lead architect of C# and creator of Turbo Pascal also worked on TypeScript at Microsoft?
Anders Hejlsberg, who wrote Turbo Pascal at Borland and led C# at Microsoft, was TypeScript's lead architect when it went public in October 2012 as version 0.8.
The earliest known 'hello, world' program appears in Brian Kernighan's 1972 tutorial for which language?
B, Ken Thompson's 1969 predecessor of C, is the language of Kernighan's tutorial; the example illustrated external variables, and the 1978 book The C Programming Language later made the phrase a universal first test.
Rubber duck debugging takes its name from an anecdote in which book?
The Pragmatic Programmer, by Andy Hunt and Dave Thomas in 1999, tells of a programmer explaining code line by line to a rubber duck until the mistake leapt out.
What did Harvard Mark II operators find and log as the 'first actual bug' in 1947?
Operators found a moth in a relay and taped it into the Mark II logbook on 9 September 1947, noting 'first actual case of bug being found'; Thomas Edison had used 'bug' for small faults in 1878.
Edsger Dijkstra's famous 1968 letter argued which statement should be considered harmful?
The goto statement was the target of Dijkstra's March 1968 letter to Communications of the ACM, headed 'Go To Statement Considered Harmful'; unrestricted jumps, he said, made it terribly hard to describe a program's progress.
Mars Climate Orbiter's 1999 loss came from pound-force seconds being read as which SI unit?
Lockheed Martin's ground software output impulse in pound-force seconds, but JPL's navigation code took the figures as newton-seconds, roughly four and a half times too small, and the $327.6 million orbiter was lost on arrival in September 1999.
Ariane 5's maiden flight in 1996 failed when a 64-bit floating-point value was converted to what?
Converting the horizontal velocity to a 16-bit signed integer overflowed in inertial-reference code carried over from the previous Ariane rocket; the launcher veered off course about 37 seconds after lift-off in June 1996 and self-destructed.
left-pad, the npm package whose 2016 removal broke thousands of builds, was how many lines of code?
All 11 lines of left-pad vanished when Azer Koçulu unpublished his packages after npm handed the name 'kik' to Kik Messenger in March 2016; npm restored it about two hours later.
Linus Torvalds originally wanted to name his kernel what, before a friend named the directory 'linux'?
Freax mashed together 'free', 'freak' and an X for Unix-like; Ari Lemmke, who ran the FTP server at Helsinki University of Technology, preferred 'linux' for the directory in 1991.
Torvalds began writing Git in April 2005 after Linux lost its free licence for which version control system?
BitKeeper's owner withdrew the free licence in April 2005 after Andrew Tridgell reverse-engineered its protocol; Torvalds joked that 'git', British slang for an unpleasant person, fits his habit of naming projects after himself.
The name Stack Overflow was chosen in April 2008 by a vote of readers of which blog?
Coding Horror, Jeff Atwood's blog, polled readers on the name in April 2008; he and Joel Spolsky wanted a more open alternative to Experts-Exchange, and Prosus bought the company for $1.8 billion in 2021.
How much did Microsoft pay to acquire GitHub in 2018?
$7.5 billion in Microsoft stock bought GitHub in a deal announced in June 2018 and closed that October; the site had launched in April 2008 and kept operating independently under CEO Nat Friedman.
In which year does Unix time's signed 32-bit seconds counter, begun in 1970, overflow?
2038 is when a signed 32-bit count of seconds since 1 January 1970 overflows, at 03:14:07 UTC on 19 January; the same limit means such systems cannot represent dates before December 1901.
The 1960s chatbot ELIZA was named after Eliza Doolittle from which George Bernard Shaw play?
Pygmalion, Shaw's 1913 play, has Eliza Doolittle taught to pass as a duchess; Weizenbaum's 1966 program likewise learned to 'speak' better, and its DOCTOR script reflected users' words like a Rogerian therapist.
On 28 December 1999, 10,000 card machines from which bank failed in an early Y2K glitch?
HSBC's card terminals rejected transactions on 28 December 1999 because the machines looked four days ahead and could not handle 2000 dates; companies estimated the global Y2K fix at $400 to $600 billion.
In semantic versioning, which of the three numbers is increased to signal a breaking change?
Bumping the major number, the first of MAJOR.MINOR.PATCH, signals an incompatible API change in Tom Preston-Werner's semantic versioning spec; minor adds backward-compatible features and patch fixes bugs.
Which pasta gives its name to source code whose control flow is so convoluted it is hard to understand?
The joke spread from spaghetti code to lasagna code, whose layers are too intertwined to change separately, and ravioli code, tidy little classes that add up to a murky system.
Bram Moolenaar's editor Vim, first released in 1991, is short for what?
Vi IMproved became the expansion with Vim 2.0 in 1993, replacing the original 'Vi IMitation'; the licence's charityware clause asks happy users to consider donating to children in Uganda.
The name Emacs, coined in 1976 for a set of extensions to TECO, is an acronym for what?
Editor MACroS: Emacs began in 1976 as a macro collection for MIT's TECO editor; GNU Emacs, its most famous descendant, is written in C and extended in its own dialect of Lisp.
Ada Lovelace's Note G on Babbage's Analytical Engine described a method for calculating which sequence?
Bernoulli numbers were the subject of Note G in her 1843 notes on the Analytical Engine, why she is often called the first computer programmer; the Ada language built for the US Department of Defense carries her name.
Which naming style joins words with underscores, as in user_name?
Underscores make snake case, standard for Python and Ruby identifiers; camelCase gets its name from the humps its capital letters make, and PascalCase capitalises the first word too.
Who wrote the first version of the GNU GPL in 1989?
Richard Stallman wrote GPL version 1 in February 1989 for the GNU Project; its copyleft terms guarantee users can run, study, share and modify the code, and the Linux kernel uses version 2 only.
Which permissive licence is also known as the Expat License?
MIT License, also called the Expat License after the XML parser that used its wording, is the short permissive licence used by React, Ruby on Rails, Node.js, jQuery and .NET.
Urban Müller's esoteric language Brainfuck, created in 1993, consists of how many commands?
The eight commands are > < + - . , [ and ]; Müller's goal was the smallest possible compiler, and the original Amiga version was just 296 bytes.
SQL dropped the vowels from SEQUEL because that name was a trademark of which UK company?
Hawker Siddeley, the British aircraft maker, held the SEQUEL trademark, so IBM's Donald Chamberlin and Raymond Boyce shortened the name of the query language they built in the early 1970s on Edgar Codd's relational model.
Think you know Programming?
Put these facts to the test with the interactive quiz.
Take the 50-question quizTeaching Programming?
Make a custom quiz — handy for classrooms and study groups.
Make a quiz on anything