The real world timeline is shown side by side with this alternate history (and marked with a gray background).
This alternate history looks at how computers would have been different without the haphazardness of capitalism.
For this alternate history, we will assume that ideas came into existence at the same time they occurred in real history.
For this alternate history, we will assume that ideas for computers, programming languages, and operating systems are much more orderly than in real history.
For this alternate history, we will assume that the first computer hardware was almost as disorderly and chaotic as real history and we will introduce more orderly machines in the time frame of the real history.
For this alternate history, we will assume that the specifications for the alternate processors/computers, operating systems, and programming language are maintained by a non-profit organization.
For this alternate history, we will assume that the hardware is manufactured by the normal for profit corporations and at least one socialist corporation (worker owned).
technology mid 4,000s B.C.E. The Copper Age started in the mid 4,000s B.C.E.. Copper was the second metal humans worked (gold was first). Copper was used for axes, nails, roofing tiles, crowns, maces, armor, pans, jewewlry, statues, and wire.
technology 3,000 B.C.E. Papyrus from the papyrus plant of the Nile Delta.
At this point the need and the technology was ready for the paperclip. Bend some wire and use with paper. Spoiler alert: the paperclip wasnt invented until 1867.
Do we just insert the paperclip right here? Probably not.
Writing on paper is way easier than writing on clay or rock. Paper is an early form of memory. Old school data storage.
The Mesopotamians stored a lot information on clay tablets (fueling advances). The Egyptians stored a lot more data on paper (fueling advances).
mathematics 1932 Lambda calculus (Alonzo Church) is computationally complete, but highly inefficient.
If you dont already have familiarity with Lambda calculus, these words are going to be confusing.
We need either the word lambda or the lower case Greek lambda λ.
Lambda cakculus is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution (Wikipedias definition).
Variables, Abstraction, and Application give us all the building blocks for any possible computation. The programmer can create anything Turing complete from only these three terms.
There are many commonly used named functions.
Alternate history: At this point we can do reductions and we can make use of lambda functions. We also gain the capaibilities of LISP and other programming languages based on lambda calculus once we figure out how to efficiently evaluate them.
mathematics 1936 Turing machines (universal machine) (Alan Turing) are computationally complete, but highly inefficient.
A Turing machine has three types of action:
Programs for a Turing machine are written as a finite set of quintupes of the form:
qi Sj Sij Mij qij
Where qi is the current state, Sj the content of the sqaure being scanned, Sij the new content of the square, Mij specifies whether the machine is to move one square to the left, to the right, or to remain at the same square, and qij is the next state of the machine (Stanford Encyclopedia of Philosophy fair use, typical of the small quotations that normally appear in research papers).
Alternate history: At this point we have all of the basic computer hardware possibilities, including state machines, addressable memory, and subroutines.
programming language 1950 Short Code released 1950.
Chief developers: William F Schmidt, Albert B. Tonik, J.R. Logan
Predecessor: Brief Code
programming language 1950 Birkbeck Assembler released 1950 for the ARC (Automatic Relay Computer designed by Andrew Donald Booth at Birkbeck College, London, available 1947-1948).
Chief developers: Kathleen Booth
programming language 1951 Regional Assembly Language released 1951, designed 1950.
Derived from EDSAC Initial Orders and evolved into EDSAC Autocode, as well as being a strong influence on SO 2. (Online Historical Encyclopedaedia of Programming Languages)
programming language 1951 Superplan developed between 1949 and 1951, released 1951.
Chief developer: Heinz Rutishauser
Predecessor: Plantalk
Introduced the keyword "for". a is an array:
Für i=base(increment)limit: ai + addend = ni
Alternate history: At this point we can iterate over an array and perform an addition to the elements. Presumably we could figure out variations, such as subtraction, multiplication, division, increment, decrement, zero, fill, etc.
programming language 1952 Autocode released 1952.
programming language 1954 IPL (forerunner to LISP) released 1954.
programming language 1955 FLOW-MATIC (forerunner to COBOL) released 1955.
programming language 1957 FORTRAN (first compiler) released 1957.
programming language 1957 COMTRAN (precursor to COBOL) released 1957.
programming language 1958 LISP released 1958.
programming language 1958 ALGOL 58 released 1958.
computer 1959 IBM 1401 released October 5, 1959, started 1958.
programming language 1959 FACT (forerunner to COBOL) released 1959.
programming language 1959 COBOL released 1959. Worldwide #26 most popular programming language according to PYPL as of June 2020 (0.37%).
programming language 1959 RPG released 1959.
mathematics 1960 Donald Knuth proposed the quater-imaginary base in 1960. It is a non-standard positional numeral system which uses the imaginary number 2i as its base. It is able to (almost) uniquely represent every complex number using only the digits 0, 1, 2, and 3 (Wikipedia).
Alternate history: At this point we can express complex numbers in a more compact system. We probably should allow a programmer to write complex numbers using either the FORTRAN-style pair or Knuths quater-imaginary base, as well as offer both output options.
computer 1960 DEC PDP-1 delivered November 1960, prototype December 1959.
computer 1960 CDC 1604 released 1960.
computer 1960 CDC 160A released 1960.
programming language 1962 APL released 1962.
programming language 1962 Simula released 1962.
programming language 1962 SNOBOL released 1962.
programming language 1963 CPL (forerunner to C) released 1963.
computer 1964 CDC 6600 released September 1964.
computer 1964 PDP-6 released 1964.
programming language 1964 BASIC released 1964.
programming language 1964 PL/I released 1964.
computer 1965 PDP-8 released March 22, 1965.
computer 1964 IBM System/360 introduced April 7, 1964, delivered 1965, started 1960.
programming language 1966 JOSS released 1966.
computer 1967 CDC 7600 released June, 1967.
programming language 1967 BCPL (forerunner to C) released 1967.
computer 1968 PDP-10 released 1968.
programming language 1968 Logo released 1968.
computer 1969 GRI-909 released 1969.
programming language 1969 B (forerunner to C) released 1969.
computer 1970 PDP-11 released 1970, prototype 1969.
programming language 1970 Pascal released 1970.
programming language 1970 Forth released 1970.
computer 1971 Intel 4004 released.
Ted Hoff and Stanley Mazor conceived Intels first integrated CPU, the 4004 40bit device, as a member of the MCS-4 Micro Computer Chip Set. In 1971, Federico Faggin, assisted by Masatoshi Shima, applied his expertise in silicon-gate MPS technology to squeeze the 2300 transistors of the 4004 into a low-cost 16-pin package. 1971: Microprocessor Integrates CPU Function onto a Single Chip
programming language 1972 C released 1972. Worldwide #6 most popular programming language (grouped with C++) according to PYPL as of June 2020 (5.69%).
programming language 1972 Smalltalk released 1972.
programming language 1972 Prolog released 1972.
computer 1972 Intel 40080084 announced.
[Federico] Faggin also supervised Hal Feeneys design of the 8-bit 8008 device announced in 1972. Designed for CTC (later Datapoint), prototypes of the 8008 function were also built by Texas Instruments as the TMX1795 but never offered commercially. Popularly known as a microprocessor or MPU (from micro-processor unit), these MPUs required additional supporting and peripheral functions to build a complete system. Single-chip solutions offering limited functionality for a specific application are called microcontrollers. 1971: Microprocessor Integrates CPU Function onto a Single Chip
programming language 1973 ML released 1973.
computer 1974 CDC STAR-100 released 1974.
computer 1974 Texas Instruments TMS 1000 released.
programming language 1975 Scheme released 1975.
processor 1975 Chuck Peddle led a small team at MOS Technology to create the 6502 in 1975.
computer 1976 Cray-1 released 1976, announced 1975.
computer 1977 Apple II released June 1977.
computer 1977 Tandy TRS-80 released August 3, 1977.
computer 1977 VAX-11/780 released October 25, 1977.
computer 1977 Commodore PET released December 1977, started 1976, prototype January 1977.
programming language 1977 Programming Computable Functions (PFC) introduced by Gordon Plotkin in 1977, based on previous unpublished material by Dana Scott. (Wikipedia: Programming Computable Functions)
We need a bunch of specialized mathematical sybols or a way to convert them into standard characters.
programming language 1978 SQL released 1978.
computer 1979 Atari 400 and Atari 800 released November 1979.
processor 1979 Intel released the 2920 as an analog signal processor in 1979.
computer 1980 Tandy TRS-80 Color released September 1980.
programming language 1980 C with classes (renamed C++ in 1983) released 1980. Worldwide #6 most popular programming language (grouped with C) according to PYPL as of June 2020 (5.69%).
computer 1981 IBM Personal Computer released August 12, 1981.
computer 1982 Commodore 64 released August 1982, introduced January 1982.
processor 1982 DEC Alpha released 1982.
programming language 1982 PostScript released 1982.
computer 1983 Apple Lisa released January 19, 1983.
programming language 1983 Common Lisp released 1983.
programming language 1983 Ada (MIL-STD-1815) first validated compiler certified April 11, 1983, Military Standard reference manual approved December 10, 1980. Worldwide #23 most popular programming language according to PYPL as of June 2020 (0.43).
programming language 1983 ABAP (Advanced Business Application Programming) released 1983, originally named Allgemeiner Berichts-Aufbereitungs-Prozessor, German for General Report Creation Processor. Worldwide #21 most popular programming language according to PYPL as of June 2020 (0.45%).
computer 1984 Apple Macintosh 128K released January 24, 1984.
programming language 1984 MATLAB released 1984. Worldwide #11 most popular programming language according to PYPL as of June 2020 (1.72%).
computer 1984 HP Saturn released.
computer 1985 Commodore 128 released 1985, introduced January 1985.
computer 1985 Cray-2 released 1985.
programming language 1985 Eiffel released 1985.
programming language 1986 Objective-C released 1986. Worldwide #8 most popular programming language according to PYPL as of June 2020 (2.5%).
programming language 1986 Erlang released 1986.
programming language 1987 Perl released 1987. Worldwide #20 most popular programming language according to PYPL as of June 2020 (0.46%).
computer 1988 Cray Y-MP released 1988.
programming language 1988 Tcl released 1988.
programming language 1988 Mathematica released 1988.
programming language 1989 Bash initially released 1989.
programming language 1989 FL released 1989.
programming language 1990 Haskell released 1990. Worldwide #27 most popular programming language according to PYPL as of June 2020 (0.28%).
programming language 1991 Python released 1991. Worldwide #1 most popular programming language according to PYPL as of June 2020 (31.6%).
programming language 1991 Visual Basic released 1991. Worldwide #17 most popular programming language according to PYPL as of June 2020 (0.88%).
programming language 1993 Ruby released 1993. Worldwide #15 most popular programming language according to PYPL as of June 2020 (1.23%).
programming language 1993 Lua released 1993. Worldwide #22 most popular programming language according to PYPL as of June 2020 (0.44%).
programming language 1993 R released 1993. Worldwide #7 most popular programming language according to PYPL as of June 2020 (3.86%).
programming language 1993 AppleScript released 1993.
programming language 1993 Visual Basic for Applications (VBA) released 1993. Worldwide #14 most popular programming language according to PYPL as of June 2020 (1.24%).
programming language 1994 CLOS released 1994.
programming language 1995 Ada 95 released 1995. Worldwide #23 most popular programming language according to PYPL as of June 2020 (0.43%).
programming language 1995 Java released 1995. Worldwide #2 most popular programming language according to PYPL as of June 2020 (17.67%).
programming language 1995 Delphi (Object Pascal) released 1995. Worldwide #82 most popular programming language according to PYPL as of June 2020 (0.27%).
programming language 1995 JavaScript released 1995. Worldwide #3 most popular programming language according to PYPL as of June 2020 (8.02%).
programming language 1995 PHP released 1995. Worldwide #5 most popular programming language according to PYPL as of June 2020 (6.02%).
programming language 1996 WebDNA released 1996.
programming language 1997 Rebol released 1997.
programming language 1999 D released 1999.
programming language 2000 ActionScript released 2000.
programming language 2000 C# released 2000. Worldwide #4 most popular programming language according to PYPL as of June 2020 (6.87%).
programming language 2001 Visual Basic .NET released 2001.
programming language 2003 Groovy released 2003. Worldwide #24 most popular programming language according to PYPL as of June 2020 (0.41%).
programming language 2003 Scala released 2003. Worldwide #16 most popular programming language according to PYPL as of June 2020 (1.0%).
programming language 2005 F# released 2005.
programming language 2007 Clojure released 2007.
programming language 2009 Go (GoLang) released 2009. Worldwide #13 most popular programming language according to PYPL as of June 2020 (1.29%).
computer 2009 Gakken GMC-4 Microcomputer released.
programming language 2011 Dart released 2011. Worldwide #19 most popular programming language according to PYPL as of June 2020 (0.5%).
programming language 2011 Kotlin released 2011. Worldwide #12 most popular programming language according to PYPL as of June 2020 (1.54%).
programming language 2012 Rust released 2012. Worldwide #18 most popular programming language according to PYPL as of June 2020 (0.78%).
programming language 2012 TypeScript released 2012. Worldwide #10 most popular programming language according to PYPL as of June 2020 (1.86%).
programming language 2012 Julia released 2012. Worldwide #25 most popular programming language according to PYPL as of June 2020 (0.39%).
programming language 2014 Swift released 2014. Worldwide #9 most popular programming language according to PYPL as of June 2020 (2.24%).