CS ATLAS A map of computing

Chronology — 326 entries

Timeline

326 entries, from the third century BC to today. Filter by domain, or search for people, technologies and years.

326 entries

Prehistory

From Euclid to Boole

1900 — 1949

Logic and the dawn of electronics

1901Russell's paradoxNaive set theory develops a crack.Set Theory & Infinity · Foundations & Mathematics1908Zermelo's axiomatisationThe axiom of separation restricts how sets may be constructed.Set Theory & Infinity · Foundations & Mathematics1922ZFC takes shapeFraenkel and Skolem complete the axiom of replacement.Set Theory & Infinity · Foundations & Mathematics1928Hilbert poses the EntscheidungsproblemHe asks for a decision procedure for predicate logic.Gödel’s Incompleteness Theorems · Foundations & Mathematics1928Hartley measures information in logarithmsA precursor to Shannon's theory.Information Theory · Foundations & Mathematics1930Gödel's completeness theoremSemantic entailment and formal provability in first-order logic coincide exactly.Formal Logic · Foundations & Mathematics1931The incompleteness theoremsSelf-reference and coding expose the intrinsic limits of formal systems.Gödel’s Incompleteness Theorems · Foundations & Mathematics1933Kolmogorov's axiomatisationProbability becomes part of measure theory.Probability & Statistics · Foundations & Mathematics1936Turing defines computabilityThe Turing machine reformulates 'algorithm' and proves the halting problem undecidable.Gödel’s Incompleteness Theorems · Foundations & Mathematics1936On Computable NumbersThe Turing machine — and the universal Turing machine — are born.Turing Machine · Theory of Computation1936Church introduces the lambda calculusAn equivalent model of computability, built from function abstraction.Turing Machine · Theory of Computation1936The halting problem is undecidableThe diagonal argument, applied to programs.Computability & the Halting Problem · Theory of Computation1936The Entscheidungsproblem has no solutionHilbert's programme is proved impossible.Computability & the Halting Problem · Theory of Computation1937Shannon's master's thesisProves switching circuits are isomorphic to Boolean algebra: circuit design gains a mathematical tool.Boolean Algebra & Switching Circuits · Foundations & Mathematics1940Simply typed lambda calculusChurch adds types to avoid paradoxes.Lambda Calculus · Theory of Computation1943The McCulloch–Pitts neuronNeural activity described with logic gates.Automata & Formal Languages · Theory of Computation1945von Neumann's EDVAC reportTurns the universal Turing machine into a stored-program architecture.Turing Machine · Theory of Computation1945Merge sortvon Neumann implements it on the EDVAC.Sorting & Searching · Algorithms & Data Structures1945The EDVAC reportThe classic description of the stored-program architecture.Von Neumann Architecture · Computer Architecture1947The point-contact transistorBardeen, Brattain and Shockley at Bell Labs.Transistor & Integrated Circuit · Computer Architecture1948The Manchester BabyThe first machine to run a stored program.Von Neumann Architecture · Computer Architecture1948A Mathematical Theory of CommunicationEntropy, channel capacity and rate–distortion arrive together.Information Theory · Foundations & Mathematics1949EDSAC goes into serviceThe first practical stored-program computer.Von Neumann Architecture · Computer Architecture

1950 — 1969

Computing becomes an industry

1950The Turing testPuts an operational definition of intelligence on the table.Turing Machine · Theory of Computation1950Hamming codesThe first practical error-correcting code.Information Theory · Foundations & Mathematics1951Kleene's theoremRegular expressions and finite automata are equivalent.Automata & Formal Languages · Theory of Computation1951UNIVAC IThe first commercial computer.Von Neumann Architecture · Computer Architecture1952Quine–McCluskey algorithmA tabular method for minimal sum-of-products, implementable as a program.Boolean Algebra & Switching Circuits · Foundations & Mathematics1952The A-0 systemA compiler pioneer.Compilers & Optimization · Programming Languages & Compilers1953Karnaugh mapsAdjacent minterms in a grid make hand simplification visual.Boolean Algebra & Switching Circuits · Foundations & Mathematics1953Rice's theoremEvery non-trivial semantic property of programs is undecidable.Gödel’s Incompleteness Theorems · Foundations & Mathematics1953Bellman introduces dynamic programmingOptimising decisions made in stages.Dynamic Programming · Algorithms & Data Structures1953Hash tablesAverage constant-time lookup through a hash function.Data Structures · Algorithms & Data Structures1954The FORTRAN proposalBackus starts it at IBM.FORTRAN · Programming Languages & Compilers1956Dijkstra's shortest pathsSingle-source shortest paths with non-negative weights.Graph Algorithms · Algorithms & Data Structures1956The Chomsky hierarchyFormal languages classified by generative power.Automata & Formal Languages · Theory of Computation1956Magnetic-core memoryRandom-access main memory becomes real.Memory Hierarchy & Caches · Computer Architecture1956The Dartmouth workshopArtificial intelligence gets its name.Dartmouth & Symbolic AI · Artificial Intelligence1956GM-NAA I/OAn early batch-processing operating system.Batch & Time-Sharing Systems · Operating Systems1957Prim and Kruskal: minimum spanning treesTwo greedy strategies for the same problem.Graph Algorithms · Algorithms & Data Structures1957A FORTRAN compilerGenerated code reaches usable speed.Compilers & Optimization · Programming Languages & Compilers1957GPS, the General Problem SolverNewell and Simon.Dartmouth & Symbolic AI · Artificial Intelligence1957The FORTRAN compiler shipsThe first widely used high-level language.FORTRAN · Programming Languages & Compilers1958LISP appearsMcCarthy designs it at MIT, bringing the lambda calculus into programming languages.Lambda Calculus · Theory of Computation1958The first integrated circuitKilby puts several components on one piece of material.Transistor & Integrated Circuit · Computer Architecture1958LISPThe programming language of AI.Dartmouth & Symbolic AI · Artificial Intelligence1958ALGOL 58An international committee starts the design.ALGOL & Structured Programming · Programming Languages & Compilers1958The perceptronA learnable linear classifier.Perceptron & Connectionism · Artificial Intelligence1959The planar processNoyce and Moore make integrated circuits manufacturable.Transistor & Integrated Circuit · Computer Architecture1960QuicksortHoare's in-place divide and conquer.Sorting & Searching · Algorithms & Data Structures1960Parsing theoryLL and LR analysis mature.Compilers & Optimization · Programming Languages & Compilers1960Garbage collectionThe beginning of automatic memory management.LISP & Functional Programming · Programming Languages & Compilers1960The ALGOL 60 reportBNF, block structure and lexical scope.ALGOL & Structured Programming · Programming Languages & Compilers1961CTSS goes liveThe first time-sharing system.Batch & Time-Sharing Systems · Operating Systems1961Kleinrock's packet-switching paperQueueing theory applied to packet networks.Packet Switching & ARPANET · Computer Networks1962Floyd–WarshallAll-pairs shortest paths by dynamic programming.Graph Algorithms · Algorithms & Data Structures1962B-treesA multiway balanced tree designed for disk indexes.Data Structures · Algorithms & Data Structures1962Atlas demand pagingThe first implementation of virtual memory.Virtual Memory · Operating Systems1963The continuum hypothesis is independentCohen's forcing shows CH cannot be decided from ZFC.Set Theory & Infinity · Foundations & Mathematics1963SketchpadInteractive graphics and constraint solving.Sketchpad & Interactive Graphics · Graphics & Human–Computer Interaction1964HeapsortWilliams gives an in-place algorithm with worst-case O(n log n).Sorting & Searching · Algorithms & Data Structures1964Union–findNear-constant-time merging and querying of sets.Data Structures · Algorithms & Data Structures1964Multics beginsHierarchical file systems and virtual memory.Batch & Time-Sharing Systems · Operating Systems1964Baran's distributed networkNetworks designed for survivability.Packet Switching & ARPANET · Computer Networks1964Sutherland joins ARPAHe pushes graphics and networking research.Sketchpad & Interactive Graphics · Graphics & Human–Computer Interaction1964IBM System/360The model for CISC and for compatibility.Instruction Sets: RISC vs CISC · Computer Architecture1965LR parsingKnuth defines a grammar class that can be parsed efficiently.Automata & Formal Languages · Theory of Computation1965Moore's lawComponent counts roughly double every two years.Transistor & Integrated Circuit · Computer Architecture1965The cache ideaWilkes proposes a small, fast buffer memory.Memory Hierarchy & Caches · Computer Architecture1965Polynomial time as the yardstickProposed independently by Cobham and Edmonds.Computational Complexity · Theory of Computation1965The Multics process modelAddress spaces and resource isolation.Processes & Threads · Operating Systems1965DENDRALAn expert system for mass spectrometry.Expert Systems & AI Winter · Artificial Intelligence1965The Ultimate DisplaySutherland's vision.Virtual & Augmented Reality · Graphics & Human–Computer Interaction1966ELIZAOne of the first chatbots.Dartmouth & Symbolic AI · Artificial Intelligence1966The first standardFORTRAN 66.FORTRAN · Programming Languages & Compilers1967The Viterbi algorithmThe best path through a hidden Markov model.Dynamic Programming · Algorithms & Data Structures1967IBM CP/CMSA forerunner of the hypervisor.Virtualization & Containers · Operating Systems1967Simula 67Where classes and inheritance begin.Object-Oriented Programming · Programming Languages & Compilers1968DRAM is inventedOne transistor per bit.Memory Hierarchy & Caches · Computer Architecture1968Dijkstra on gotoA manifesto for structured programming.ALGOL & Structured Programming · Programming Languages & Compilers1968The HMD paperAn early vision of virtual reality.Sketchpad & Interactive Graphics · Graphics & Human–Computer Interaction1968Knuth systematises algorithm analysisThe first volume of The Art of Computer Programming appears.Algorithm Analysis · Algorithms & Data Structures1968The NATO software engineering conferenceThe moment the discipline is named.The Software Crisis · Software Engineering1968The Mother of All DemosThe mouse and hypertext.GUIs & Human–Computer Interaction · Graphics & Human–Computer Interaction1968The first head-mounted displayA mechanically tracked headset.Virtual & Augmented Reality · Graphics & Human–Computer Interaction1969Curry–Howard correspondencePrograms and proofs are shown to be the same kind of object.Lambda Calculus · Theory of Computation1969Perceptrons (the book)It points out the limits of single-layer networks.Perceptron & Connectionism · Artificial Intelligence1969Unix is bornIt grows out of the ruins of Multics.Batch & Time-Sharing Systems · Operating Systems1969ARPANET's first four nodesThe ancestor of the Internet.Packet Switching & ARPANET · Computer Networks1969Unix virtual memoryfork and copy-on-write.Virtual Memory · Operating Systems1969Unix, first editionAn internal project at Bell Labs.Unix & C · Operating Systems

1970 — 1989

Microprocessors, networks, personal computing

1970Logic synthesis tools appearSimplification moves from paper into programs, and scale takes off.Boolean Algebra & Switching Circuits · Foundations & Mathematics1970Denotational semanticsScott builds a model of the lambda calculus from domain theory.Lambda Calculus · Theory of Computation1970Recursion theory takes shapeComputability becomes a branch of its own.Computability & the Halting Problem · Theory of Computation1970Needleman–WunschDynamic programming for biological sequence alignment.Dynamic Programming · Algorithms & Data Structures1970Knapsack and interval DP systematisedBoth enter the algorithms textbooks.Dynamic Programming · Algorithms & Data Structures1970PascalThe model teaching language.ALGOL & Structured Programming · Programming Languages & Compilers1970Decision-tree lower boundsComparison sorting needs Omega(n log n).Algorithm Analysis · Algorithms & Data Structures1970Royce's waterfall paperThe classic statement of staged process.Waterfall & the Software Lifecycle · Software Engineering1970The SDLC spreadsThe software lifecycle becomes a management framework.Waterfall & the Software Lifecycle · Software Engineering1970Codd's relational modelTables, relational algebra and data independence.The Relational Model · Data & Databases1971Electronic mailThe first killer application.Packet Switching & ARPANET · Computer Networks1971Cook's theoremSAT is NP-complete.Computational Complexity · Theory of Computation1971Unix fork/execLightweight process creation.Processes & Threads · Operating Systems1971Intel 4004The first commercial microprocessor.Microprocessor & Moore’s Law · Computer Architecture1971ALOHAnetA pioneer of random access over radio.Wireless & Mobile Networks · Computer Networks1972Edmonds–Karp max flowBreadth-first search keeps it polynomial.Graph Algorithms · Algorithms & Data Structures1972Red–black treesA balanced binary search tree you can actually implement.Data Structures · Algorithms & Data Structures1972Karp's 21 problemsNP-completeness turns out to be everywhere.Computational Complexity · Theory of Computation1972MYCINRule-driven medical diagnosis.Expert Systems & AI Winter · Artificial Intelligence1972SmalltalkMessage passing and a pure object environment.Object-Oriented Programming · Programming Languages & Compilers1972C is createdDesigned to rewrite Unix.The C Programming Language · Programming Languages & Compilers1972SCCSOne of the first version-control systems.Version Control & Git · Software Engineering1973Amortised analysisSpread the cost of a whole sequence of operations across each one.Algorithm Analysis · Algorithms & Data Structures1973Xerox AltoBitmap screen and overlapping windows.GUIs & Human–Computer Interaction · Graphics & Human–Computer Interaction1973Unix rewritten in CPortability brings wide adoption.Unix & C · Operating Systems1973Metcalfe designs EthernetCSMA/CD on a shared bus.Ethernet & LAN · Computer Networks1974System RA prototype of SQL and query optimisation.The Relational Model · Data & Databases1974Intel 8080It fuels the personal-computer wave.Microprocessor & Moore’s Law · Computer Architecture1974Cerf and Kahn propose TCPThe core protocol for internetworking.TCP/IP · Computer Networks1974SEQUEL is proposedIBM's relational query language.SQL · Data & Databases1975SchemeA minimalist Lisp dialect.LISP & Functional Programming · Programming Languages & Compilers1975The Mythical Man-MonthBrooks's law: adding people does not speed things up.The Software Crisis · Software Engineering1976Diffie–HellmanPublic-key cryptography and key exchange.Public-Key Cryptography · Security & Cryptography1976Transactions in System RTwo-phase locking and recovery.Transactions & ACID · Data & Databases1977FORTRAN 77Structured control flow.FORTRAN · Programming Languages & Compilers1977Sanger sequencingWhere DNA sequencing begins.Bioinformatics · Distributed Systems & Frontiers1977RSAThe difficulty of factoring large integers.Public-Key Cryptography · Security & Cryptography1978Intel 8086The starting point of x86.Microprocessor & Moore’s Law · Computer Architecture1978The K&R bookThe de facto standard.The C Programming Language · Programming Languages & Compilers1978TCP and IP splitThe layered design settles.TCP/IP · Computer Networks1978Logical clocksCausality and partial order.Distributed Systems · Distributed Systems & Frontiers1979Oracle goes commercialThe relational database reaches the market.The Relational Model · Data & Databases1979Oracle ships SQLCommercial adoption spreads.SQL · Data & Databases1979Merkle treesA structure for verifying integrity.Hashes & Message Authentication · Security & Cryptography1980Multi-level cachesL1 and L2 become standard on processors.Memory Hierarchy & Caches · Computer Architecture1980PCs enter protected modeVirtual memory reaches personal computers.Virtual Memory · Operating Systems1980RISC is proposedPatterson starts the RISC project at Berkeley.Instruction Sets: RISC vs CISC · Computer Architecture1980XCONThe commercial peak of expert systems.Expert Systems & AI Winter · Artificial Intelligence1980The DIX standardThree companies agree on one specification.Ethernet & LAN · Computer Networks1980Whitted ray tracingRecursive reflection and refraction.Rendering · Graphics & Human–Computer Interaction1981The IBM PCAn open architecture creates the clone industry.Microprocessor & Moore’s Law · Computer Architecture1981RFC 791 / 793The formal specifications of IP and TCP.TCP/IP · Computer Networks1981Gray's transaction paperACID made systematic.Transactions & ACID · Data & Databases1981Feynman's idea of quantum simulationThe starting thought of quantum computing.Quantum Computing · Distributed Systems & Frontiers1982RCSVersion control for single files.Version Control & Git · Software Engineering1982The Byzantine generals problemAgreement with faulty nodes.Distributed Systems · Distributed Systems & Frontiers1983C++Objects enter systems programming.Object-Oriented Programming · Programming Languages & Compilers1983System V and BSD divergeTwo branches: commercial and academic.Unix & C · Operating Systems1983IEEE 802.3The international standard.Ethernet & LAN · Computer Networks1983ARPANET switches to TCP/IPThe Internet's birthday.TCP/IP · Computer Networks1983The term ACIDCoined by Härder and Reuter.Transactions & ACID · Data & Databases1983The DNS specificationMockapetris designs hierarchical naming.DNS & Domain Names · Computer Networks1983The GNU projectThe free-software movement begins.The Open Source Movement · Software Engineering1984Common LispA large, standardised Lisp.LISP & Functional Programming · Programming Languages & Compilers1984MacintoshThe GUI reaches the public.GUIs & Human–Computer Interaction · Graphics & Human–Computer Interaction1984RadiosityAn energy method for global illumination.Rendering · Graphics & Human–Computer Interaction1984Root servers deployedThirteen root server addresses.DNS & Domain Names · Computer Networks1985MIPS R2000A commercial RISC processor.Instruction Sets: RISC vs CISC · Computer Architecture1985The Mach microkernelUser-level threads and message passing.Processes & Threads · Operating Systems1985Elliptic-curve cryptographyShorter keys for the same strength.Public-Key Cryptography · Security & Cryptography1985The FLP impossibility resultThe limit of consensus in asynchronous systems.Distributed Systems · Distributed Systems & Frontiers1985The quantum Turing machineDeutsch's model.Quantum Computing · Distributed Systems & Frontiers1985The Free Software FoundationAn organisational and legal home for GNU.The Open Source Movement · Software Engineering1986The Dragon BookThe classic compiler textbook.Compilers & Optimization · Programming Languages & Compilers1986BackpropagationMulti-layer networks become trainable.Perceptron & Connectionism · Artificial Intelligence1986The spiral modelBoehm introduces risk management.Waterfall & the Software Lifecycle · Software Engineering1986SQL is standardisedANSI SQL.The Relational Model · Data & Databases1986SQL-86Standardised by ANSI.SQL · Data & Databases1986The Reyes pipelineFilm-grade micropolygon rendering.Rendering · Graphics & Human–Computer Interaction1987The AI winterThe market for specialised hardware collapses.Expert Systems & AI Winter · Artificial Intelligence1988The POSIX standardAn effort to standardise the interfaces.Unix & C · Operating Systems1988Congestion controlVan Jacobson keeps the network from collapsing.TCP/IP · Computer Networks1988Bayesian networksProbabilistic graphical models.Statistical Learning · Artificial Intelligence1988The Morris wormThe first large-scale network worm.Vulnerabilities & Attacks · Security & Cryptography1989Skip listsProbabilistic balance instead of strict rotations.Data Structures · Algorithms & Data Structures1989C89Standardised by ANSI.The C Programming Language · Programming Languages & Compilers1989The GPL, version 1Copyleft becomes law.The Open Source Movement · Software Engineering1989LeNetA convolutional network reads handwritten digits.Deep Learning · Artificial Intelligence1989Berners-Lee's proposalThe starting point of the Web.World Wide Web & HTTP · Computer Networks1989Q-learningModel-free temporal-difference control.Reinforcement Learning · Artificial Intelligence1989Paxos is writtenLamport's consensus algorithm.Consensus Algorithms · Distributed Systems & Frontiers

1990 — 2009

The Web and the graphical interface

1990MCMC becomes practicalHigh-dimensional posterior inference becomes feasible.Probability & Statistics · Foundations & Mathematics1990Fortran 90Modules, array operations and free-form source.FORTRAN · Programming Languages & Compilers1990ARM is foundedLow-power RISC moves into mobile devices.Instruction Sets: RISC vs CISC · Computer Architecture1990The Human Genome ProjectLarge-scale collaboration.Bioinformatics · Distributed Systems & Frontiers1990CVSMulti-person collaboration and open source.Version Control & Git · Software Engineering1990Switched EthernetCollision domains disappear.Ethernet & LAN · Computer Networks1990MVCC spreadsReads stop blocking writes.Transactions & ACID · Data & Databases1991The Linux kernel is releasedThe start of open-source Unix-compatible systems.Unix & C · Operating Systems1991GSM goes commercialThe digital cellular standard.Wireless & Mobile Networks · Computer Networks1991PGPPublic-key encryption for individuals.Public-Key Cryptography · Security & Cryptography1991The Linux kernelA model of global collaboration.The Open Source Movement · Software Engineering1991The first websiteOnline at CERN.World Wide Web & HTTP · Computer Networks1991Project OakDesigned for consumer electronics.Java & the JVM · Programming Languages & Compilers1992The PCP theoremA deep link between approximation and proof verification.Computational Complexity · Theory of Computation1992SQL-92One of the most important revisions of the standard.SQL · Data & Databases1992MD5Widely used, later found to collide.Hashes & Message Authentication · Security & Cryptography1992TD-GammonAn early success at self-play.Reinforcement Learning · Artificial Intelligence1993Turbo codesIterative decoding that approaches the Shannon limit.Information Theory · Foundations & Mathematics1993The Mosaic browserInline images bring the Web to everyone.World Wide Web & HTTP · Computer Networks1994Design PatternsThe GoF formalise experience.Object-Oriented Programming · Programming Languages & Compilers1994Shor's algorithmQuantum factoring and discrete logarithms.Quantum Computing · Distributed Systems & Frontiers1995Threads built into JavaConcurrency enters a mainstream language.Processes & Threads · Operating Systems1995JavaPortability and garbage collection.Object-Oriented Programming · Programming Languages & Compilers1995Windows 95Graphical interfaces on the PC.GUIs & Human–Computer Interaction · Graphics & Human–Computer Interaction1995SHA-1The basis of TLS and Git.Hashes & Message Authentication · Security & Cryptography1995Support vector machinesKernels and the maximum margin.Statistical Learning · Artificial Intelligence1995Java is releasedWrite once, run anywhere.Java & the JVM · Programming Languages & Compilers1995SSL 2.0Netscape's security layer.TLS & Secure Transport · Security & Cryptography1996Grover's algorithmA quadratic speed-up for search.Quantum Computing · Distributed Systems & Frontiers1996HTTP/1.0Standardised.World Wide Web & HTTP · Computer Networks1996JDK 1.0The first official release.Java & the JVM · Programming Languages & Compilers1997IEEE 802.11Wi-Fi is born.Wireless & Mobile Networks · Computer Networks1998ICANN is foundedThe body for names and addresses.DNS & Domain Names · Computer Networks1998The OSI is foundedThe term 'open source' is coined.The Open Source Movement · Software Engineering1998Paxos is publishedThe paper appears nine years late.Consensus Algorithms · Distributed Systems & Frontiers1999VMware is foundedx86 virtualisation becomes a business.Virtualization & Containers · Operating Systems1999C99Variable-length arrays and inline functions.The C Programming Language · Programming Languages & Compilers1999TLS 1.0Standardised by the IETF.TLS & Secure Transport · Security & Cryptography1999GeForce 256The word GPU reaches a wide audience.GPU & Heterogeneous Computing · Computer Architecture1999Extreme Programming ExplainedKent Beck systematises XP.Agile Software Development · Software Engineering2000LLVMModular compiler infrastructure.Compilers & Optimization · Programming Languages & Compilers2000NUMA and the memory wallThe coherence challenge of the multicore era.Memory Hierarchy & Caches · Computer Architecture2000Huge pages and TLB tuningA response to the memory wall.Virtual Memory · Operating Systems2000P vs NP becomes a Millennium ProblemA one-million-dollar prize on the table.Computational Complexity · Theory of Computation2000SVNA central repository with atomic commits.Version Control & Git · Software Engineering200010 Gigabit and the datacentreEthernet moves into the backbone.Ethernet & LAN · Computer Networks2000The CAP theoremConsistency, availability, partition tolerance.Distributed Systems · Distributed Systems & Frontiers2000Gradient-boosted treesThe workhorse for tabular data.Statistical Learning · Artificial Intelligence2001The Agile ManifestoA reaction against document-heavy process, written at Snowbird.Waterfall & the Software Lifecycle · Software Engineering2001The human genome draftSequence data explodes.Bioinformatics · Distributed Systems & Frontiers2001Random forestsThe face of ensemble learning.Statistical Learning · Artificial Intelligence2001Programmable shadersGPUs begin to accept general programs.GPU & Heterogeneous Computing · Computer Architecture2002TimsortAn adaptive merge sort designed for real-world data.Sorting & Searching · Algorithms & Data Structures2002Scrum spreadsIterations and role separation.Agile Software Development · Software Engineering2003XenParavirtualisation, an early foundation of cloud computing.Virtualization & Containers · Operating Systems2003Window functionsAnalytical queries get stronger.SQL · Data & Databases2003The GFS paperA distributed file system.Big Data & MapReduce · Data & Databases2004MD5 and SHA-1 collisionsAttacks by Wang Xiaoyun's team.Hashes & Message Authentication · Security & Cryptography2004The MapReduce paperA programming model for batch processing.Big Data & MapReduce · Data & Databases2005Multicore goes mainstreamConcurrency becomes a general programming problem.Processes & Threads · Operating Systems2005Multicore becomes mainstreamClock speeds stall and parallelism becomes the main road.Microprocessor & Moore’s Law · Computer Architecture2005GitDistributed version control.Version Control & Git · Software Engineering2006Deep belief networksLayer-by-layer pretraining.Deep Learning · Artificial Intelligence2006HotSpot goes open sourceJIT compilation and runtime optimisation.Java & the JVM · Programming Languages & Compilers2006CUDAAn operating system for general-purpose GPU computing.GPU & Heterogeneous Computing · Computer Architecture2006HadoopThe open-source implementation.Big Data & MapReduce · Data & Databases2006BigTableColumn families and distributed indexes.NoSQL · Data & Databases2006AWS S3 / EC2Public cloud goes commercial.Cloud Computing · Distributed Systems & Frontiers2007ClojureA modern Lisp on the JVM.LISP & Functional Programming · Programming Languages & Compilers2007iPhoneMulti-touch.GUIs & Human–Computer Interaction · Graphics & Human–Computer Interaction2007DynamoEventual consistency and consistent hashing.NoSQL · Data & Databases2008Polar codesAdopted for 5G control channels.Information Theory · Foundations & Mathematics2008GitHubSocial collaboration for code.The Open Source Movement · Software Engineering2008AndroidJava reaches mobile.Java & the JVM · Programming Languages & Compilers2008Google App EngineAn early PaaS.Cloud Computing · Distributed Systems & Frontiers2008The Bitcoin whitepaperPermissionless consensus.Blockchain & Bitcoin · Distributed Systems & Frontiers20094G LTEMobile broadband.Wireless & Mobile Networks · Computer Networks2009WebGL3D in the browser.Programmable Shaders · Graphics & Human–Computer Interaction2009MongoDB and RedisDocument and in-memory stores go mainstream.NoSQL · Data & Databases2009The genesis blockThe Bitcoin network starts.Blockchain & Bitcoin · Distributed Systems & Frontiers

2010 — today

Deep learning, cloud and mobile

2010RISC-VAn open, extensible instruction set.Instruction Sets: RISC vs CISC · Computer Architecture2010Agile at scaleFrameworks such as SAFe appear.Agile Software Development · Software Engineering2010SparkIn-memory computing and RDDs.Big Data & MapReduce · Data & Databases2010OpenStackThe open-source cloud platform.Cloud Computing · Distributed Systems & Frontiers2012Oculus RiftConsumer VR revived.Virtual & Augmented Reality · Graphics & Human–Computer Interaction2012SpannerGlobally distributed, strongly consistent transactions.Transactions & ACID · Data & Databases2012AlexNetGPU-trained deep networks begin.Deep Learning · Artificial Intelligence2012NewSQLFusion routes such as VoltDB and Spanner.NoSQL · Data & Databases2013DockerThe container becomes the unit of development and delivery.Virtualization & Containers · Operating Systems2013DQNDeep reinforcement learning plays Atari.Reinforcement Learning · Artificial Intelligence2013EthereumSmart contracts.Blockchain & Bitcoin · Distributed Systems & Frontiers2014KubernetesContainers get a de facto orchestrator.Virtualization & Containers · Operating Systems2014HeartbleedA memory leak in OpenSSL.Vulnerabilities & Attacks · Security & Cryptography2014RaftDesigned for understandability.Consensus Algorithms · Distributed Systems & Frontiers2014etcd adopts RaftThe configuration backbone of Kubernetes.Consensus Algorithms · Distributed Systems & Frontiers2014FlinkStream and batch in one engine.Big Data & MapReduce · Data & Databases2014GANsAdversarial training generates images.Generative Models · Artificial Intelligence2014VAEsVariational inference with latent variables.Generative Models · Artificial Intelligence2014AttentionBahdanau applies it to machine translation.Transformers & Large Language Models · Artificial Intelligence2015SHA-3Keccak is standardised.Hashes & Message Authentication · Security & Cryptography2015ResNetResidual connections train very deep networks.Deep Learning · Artificial Intelligence2015HTTP/2Multiplexing and header compression.World Wide Web & HTTP · Computer Networks2015Let's EncryptFree certificates make HTTPS universal.TLS & Secure Transport · Security & Cryptography2015Ethereum mainnet launchesA programmable blockchain.Blockchain & Bitcoin · Distributed Systems & Frontiers2015Raft becomes popularA consensus algorithm you can understand.Distributed Databases · Data & Databases2016Consumer VR arrivesVive and PSVR.Virtual & Augmented Reality · Graphics & Human–Computer Interaction2016The IANA transitionRoot-zone management becomes multistakeholder.DNS & Domain Names · Computer Networks2016AlphaGoIt beats Lee Sedol.Reinforcement Learning · Artificial Intelligence2016The NIST PQC competitionStandardisation begins.Post-Quantum Cryptography · Security & Cryptography2017WannaCryRansomware goes global.Vulnerabilities & Attacks · Security & Cryptography2017AlphaZeroGeneral game learning from scratch.Reinforcement Learning · Artificial Intelligence2017TPUs and dedicated acceleratorsGoogle puts tensor arithmetic into silicon.GPU & Heterogeneous Computing · Computer Architecture2017CockroachDB and TiDBNewSQL goes commercial.Distributed Databases · Data & Databases2017TransformerThe self-attention architecture.Transformers & Large Language Models · Artificial Intelligence2018Real-time ray tracingRTX hardware.Rendering · Graphics & Human–Computer Interaction2018Spectre and MeltdownCPU side channels.Vulnerabilities & Attacks · Security & Cryptography2018TLS 1.3Faster handshakes and stronger defaults.TLS & Secure Transport · Security & Cryptography2018Real-time ray tracing in shadersRay tracing combined with rasterised shading.Programmable Shaders · Graphics & Human–Computer Interaction2018BERT and GPTPretrain then fine-tune; pretrain then generate.Transformers & Large Language Models · Artificial Intelligence20195G goes commercialLow latency and massive IoT.Wireless & Mobile Networks · Computer Networks2019Quantum supremacyThe Sycamore sampling experiment.Quantum Computing · Distributed Systems & Frontiers2020AlphaFold 2A breakthrough in protein structure prediction.Bioinformatics · Distributed Systems & Frontiers2020NeRFNeural radiance fields reconstruct a scene.Rendering · Graphics & Human–Computer Interaction2020DDPMDiffusion models.Generative Models · Artificial Intelligence2020GPT-3Scale brings few-shot ability.Transformers & Large Language Models · Artificial Intelligence2021Log4ShellAn open-source supply-chain crisis.Vulnerabilities & Attacks · Security & Cryptography2021CLIP and DALL·EAligning text and images.Generative Models · Artificial Intelligence2022C23A modern revision.The C Programming Language · Programming Languages & Compilers2022HTTP/3 and QUICA new transport built on UDP.World Wide Web & HTTP · Computer Networks2022The first algorithms are chosenKyber, Dilithium and others.Post-Quantum Cryptography · Security & Cryptography2022The MergeEthereum moves from proof of work to proof of stake.Blockchain & Bitcoin · Distributed Systems & Frontiers2022Stable DiffusionOpen-source image generation.Generative Models · Artificial Intelligence2022ChatGPTLarge models reach the mass market.Transformers & Large Language Models · Artificial Intelligence2023Vision ProSpatial computing.Virtual & Augmented Reality · Graphics & Human–Computer Interaction2024The FIPS standards arriveML-KEM, ML-DSA and SLH-DSA.Post-Quantum Cryptography · Security & Cryptography