Awesome Programmers
A collection of software engineers that deserve to be in this collection. They are the most awesome programmers in history. Lets give them some respect.
Undoubtedly, there are some great candidates that I've overlooked. If you see a programmer, active today or from the past, that you think should be included submit a new issue.
Table of Contents
-
Algorithms / Datatypes
-
Artificial Intelligence
-
-
Programming Languages
-
Computer Architecture / Theory
-
Protocols / Standards
-
Analysis / Verification
Databases
-
Edgar F. Codd
: The inventor of the relational model
for database management, the theoretical basis for RDMS and co-creator of System R, the first implementation of the SQL
database query language.
-
Charles W. Bachman
: The designer of the linked-list data storage database Integrated Data Store
, known to be one of the first database management systems and he is the organizer of the group CODASYL
.
-
Donald D. Chamberlin
: The co-creator of the most popular database query language, SQL
.
-
Raymond F. Boyce
: The co-creator of the most popular database query language, SQL
.
-
Jeff Dean
: The co-author of the seminal paper of "big data" storage BigTable
, the co-developer of the BigTable
system, the co-author of the important paper for the "big data" operational model MapReduce
and the co-author of the paper for a highly distributed database Spanner
.
-
Sanjay Ghemawat
: The co-author of the seminal paper of "big data" storage BigTable
, the co-developer of the BigTable
system, the co-author of the important paper for the "big data" operational model MapReduce
, the co-author of the large cluster data system Google File System
and the co-author of the paper for a highly distributed database Spanner
.
-
Michael Stonebraker
: The creator of one of the first implementations of the relational database model Ingres
and the creator of the very popular relational database Postgres
database.
-
Doug Cutting
: The co-creator of the BigTable inspired, de-facto "big data" distributed file system and processing framework Hadoop
.
-
Mike Cafarella
: The co-creator of the BigTable inspired, de-facto "big data" distributed file system and processing framework Hadoop
.
-
Avinash Lakshman
: The co-creator of the Dynamo
storage system which has played an influential role
in the modern design of highly scalable databases. He is also the creator of the Cassandra
distributed database system.
-
Werner Vogels
: The co-creator of the Dynamo
storage system which has played an influential role
in the modern design of highly scalable databases.
-
Jim Gray
: The original designer of database transactions
, the single logical unit of work performed by a database.
-
Andreas Reuter
: Helped coin the definitions for ACID
properties of database transactions.
-
Theo Härder
: Helped coin the definitions for ACID
properties of database transactions.
-
Phil Bernstein
: The creator of concepts for concurrency control over distributed networks
-
Salvatore Sanfilippo (antirez)
: The creator of the Redis
key-value database
-
Prashant Malik
: The co-creator of the Cassandra
distributed database system
-
Avinash Lakshman
: The co-creator of the Cassandra
distributed database system
-
Peter Chen
: The creator of the Entity–relationship model
which was a more familiar database design than earlier versions of relational models.
-
T. William Olle
: He was an active developer in the CODASYL
consortium that promoted effective data systems analysis, design and implementation.
-
C.Wayne Ratliff
: The creator of dBase
, originally named Vulcan, one of the first databases with a development environment on personal computers in the 1980s.
-
Malcolm Atkinson
: One of the early pioneers of the Object database
defining the core concepts in his paper Object-Oriented Database Manifesto.
-
Vern Watts: The creator of the IMS
IBM hierarchical database system.
-
Dwight Merriman: The creator of the popular document-oriented database system Mongodb
.
-
Shay Banon: The creator of the Lucene based full-text search engine database Elasticsearch
.
-
Yonik Seeley: The creator of the Lucene based full-text search engine database Solr
.
-
Joydeep Sen Sarma
: The co-creator of the Hadoop based data warehouse framework Hive
.
-
Ashish Thusoo
: The co-creator of the Hadoop based data warehouse framework Hive
.
-
Brad Fitzpatrick
: The creator of the distributed memory caching system Memcached
.
-
Andy Gross: The co-creator of the highly scalable key-value database Riak
.
-
Damien Katz: The creator of the document-oriented database CouchDB
.
-
Luca Garulli: The co-creator of the multi-model NoSQL database OrientDB
-
Andrey Lomakin: The co-creator of the multi-model NoSQL database OrientDB
-
Emil Eifrem: The co-creator of the graph database Neo4j
-
Johan Svensson: The co-creator of the graph database Neo4j
-
Matthias Broecheler: The creator of the graph databaseTitan
Algorithms / Datatypes
-
Donald E. Knuth
: Help contribute to the development of algorithm analysis and help formalize algorithm techniques like asymptotic notation and knuth-bendix completion algorithm.
-
Edsger W. Dijkstra
: Helped develop many profoundly impactful algorithms such as Dijkstra's algorithm (shortest path algorithm)
, Prim's algorithm
and Shunting-yard algorithm
-
John Von Neumann
: The inventor of the Merge Sort
algorithm, an efficient and one of the most widely used sorting algorithms.
-
Leslie Lamport
: The creator of the impactful Bakery algorithm
which orders processes based on their arrival like a bakery providing "loop freedom" and improving safety for shared resources on multiple threads, the creator of the Paxos
algorithm / protocol now considered to be the de-facto framework for designing consensus and agreement in a distributed computing system, and the creator of Lamport timestamps
introduced through his well-cited paper "Time, Clocks, and the Ordering of Events in a Distributed System", .
-
Robert W. Floyd
: The creator of important algorithms like Floyd–Warshall algorithm
for finding the shortest path in a graph, the Floyd's cycle-finding algorithm
, and the Floyd–Steinberg dithering
algorithm commonly used for image manipulation.
-
Tony Hoare
: The creator the sorting algorithm quicksort
, one of the most commonly used algorithms.
-
Michael Burrows
: The co-creator of the efficient string compression algorithm Burrows–Wheeler transform
.
-
David Wheeler
: The co-creator of the efficient string compression algorithm Burrows–Wheeler transform
.
-
Stephen Cook
: The author of seminal papers that describe the notions of polynomial-time reduction
, NP-completeness
and propositional proof system
, all making significant contributions to algorithmic complexity.
-
Richard M. Karp
: The co-creator of the Edmonds-Karp algorithm
for efficiently computing a networks maximum flow
, the author of proof for 21 NP-complete problems
, the co-publisher of the Hopcroft–Karp algorithm
for finding maximum cardinality matchings
, the co-creator of the Rabin–Karp algorithm
for string searching, and co-publisher of the Karp–Lipton theorem
.
-
John Hopcroft
: The co-publisher of the Hopcroft–Karp algorithm
for finding maximum cardinality matchings
and the co-publisher of the Hopcroft-Tarjan Planarity Algorithm
.
-
Robert Tarjan
: The publisher of the Tarjan's off-line lowest common ancestors algorithm
, the publisher of Tarjan's strongly connected components algorithm
, the co-author of the Hopcroft-Tarjan Planarity Algorithm
, the creator of the Fibonacci heap
data structure and co-created the splay tree
data structure.
-
John Cocke
: The co-creator of the CYK algorithm
for parsing context-free grammars in compilers.
-
Juris Hartmanis
: The co-author of an influential paper that establishes the foundations for the field of computational complexity theory
and introduced time complexity classes
quantifying the efficiency of an algorithm.
-
Richard E. Stearns
: The co-author of an influential paper that establishes the foundations for the field of computational complexity theory
and introduced time complexity classes
quantifying the efficiency of an algorithm.
-
Geoffrey Hinton
: One of the first to demonstrate the use of Backpropagation
algorithm to train multi-layer neural networks influencing the deep learning community.
-
Chi-Chih Andrew Yao
: The author of complexity theory proof Yao's principle
which "has become a fundamental technique for reasoning about randomized algorithms and complexity", the co-author of Dolev–Yao model
, the author of important rules for Pseudorandom number generators
, the author of the paper "On the security of public key protocols", the author of Yao's Millionaires' Problem
and the author of the XOR-lemma technique.
-
Leslie G. Valiant
: The author of an important paper introducing Probably approximately correct learning
model for machine learning, and the discoverer of Sharp-P-complete
definition in complexity theory.
-
Michael O. Rabin
: The creator of the first randomized algorithm
with the Closest pair problem
, the co-creator of the Miller–Rabin primality test
, and the co-creator of the Rabin–Karp algorithm
for string searching.
-
Charles E. Leiserson
: The creator of the fat-tree
interconnection network for provably efficient communication, and the creator of the Cache-oblivious algorithm
.
-
Jon Bentley
: The creator of the k-d tree
space-partitioning data structure widely used for searching with multidimensional keys, and the creator of the Bentley–Ottmann algorithm
.
Cryptography
-
Manuel Blum
: The developer of an important complexity theory that spawned results like the compression theorem
, the Gap theorem
and Blum's speedup theorem
. The creator of the median of medians
algorithm which finds the median in linear time. The co-creator of cryptography applications like the Blum Blum Shub
and the Blum–Goldwasser cryptosystem
. The co-creator of the CAPTCHA originally served as a benchmark turing task.
-
Ron Rivest
: The co-creator of one of the first and most widely used practical public-key cryptosystems RSA
, the creator of the symmetric key encryption algorithms (RC2, RC4, RC5), and the creator of hash functions MD2, MD4, MD5
and MD6.
-
Adi Shamir
: The co-creator of one of the first and most widely used practical public-key cryptosystems RSA
, the co-creator of Feige–Fiat–Shamir identification scheme
a type of zero-knowledge proof
, the creator of Shamir's Secret Sharing
algorithm, the co-creator of most well-known visual cryptography technique (2, N) Visual Cryptography Sharing Case
, and co-discovered Differential cryptanalysis
.
-
Leonard Adleman
: The co-creator of one of the first and most widely used practical public-key cryptosystems RSA
, and the author of the influential paper "Molecular Computation of Solutions To Combinatorial Problems" which introduced the concept of using DNA as a computational system.
-
Whitfield Diffie
: The co-author of important cryptography paper "New Directions in Cryptography" introducing the Diffie–Hellman key exchange
, one-way encoding functions using a public-key, which later inspired the practical implementation of RSA
.
-
Martin Hellman
: The co-author of important cryptography paper "New Directions in Cryptography" introducing the Diffie–Hellman key exchange
, one-way encoding functions using a public-key, which later inspired the practical implementation of RSA
.
-
Shafi Goldwasser
: The co-creator of encryption algorithm Blum–Goldwasser cryptosystem
which unlike RSA has been mathematically proven to be as hard to break as factoring, the co-creator of encryption algorithm Goldwasser–Micali cryptosystem
considered to be the first probabilistic public-key encryption scheme, the co-author of Zero-knowledge proof
in the paper "The Knowledge Complexity of Interactive Proof-Systems", and the co-definer of for proper constructions of Pseudorandom function family
.
-
Silvio Micali
: The co-creator of encryption algorithm Goldwasser–Micali cryptosystem
considered to be the first probabilistic public-key encryption scheme, the co-author of Zero-knowledge proof
in the paper "The Knowledge Complexity of Interactive Proof-Systems", and the co-definer of for proper constructions of Pseudorandom function family
.
-
Michael O. Rabin
: The creator of the Oblivious transfer
protocol for transferring information from a sender to a receiver without knowing the pieces transferred.
Artificial Intelligence
-
Alan Turing
: The father of artificial intelligence, the creator of the Turing Test
standard for which a machine's ability to exhibit intelligent behavior is measured, and pioneered concepts of machines computing according to a set of rules.
-
Marvin Minsky
: Helped establish the principle concepts of artificial intelligence and co-founder of the Massachusetts Institute of Technology's AI laboratory
-
John McCarthy
: One of the founders for the discipline of artificial intelligence and coined the term "artificial intelligence".
-
Allen Newell
: Along with Herbert A. Simon, helped build two of the earliest Artificial Intelligence programs, the Logic Theorist and the General Problem Solver.
-
Herbert A. Simon
: Along with Allen Newell, helped build two of the earliest Artificial Intelligence programs, the Logic Theorist and the General Problem Solver.
-
Nathaniel Rochester
: He is sometimes considered to be the founder in the academic field of artificial intelligence by organizing a group in IBM focused on the subject. This group later evolved into the Dartmouth Conferences
, the seminal event in the artificial intelligence.
-
Edward Feigenbaum
: The chief developer of the first expert system
Dendral
primarily used to explore induction in problems for the scientific commmunity.
-
Raj Reddy
: The co-creator of early robotic systems like the Hearsay 1 that demonstrated advanced language speaking, and co-creator of many innovative artificial intelligence systems like the "blackboard model".
-
Andrew Ng
: The co-founder of Google Brain
research project where one of the first applications of the deep learning model was applied and the co-developer of Robot Operating System
.
-
Jeff Dean
: The co-founder of Google Brain
research project which is used for Android's speech recognition system, photo search and video recommendations.
-
Judea Pearl
: The creator of the highly important Bayesian networks
probabilistic graphical model and the principal inference algorithms within the model. He is also the developer of a theory for casual inference
.
-
Jacek Karpiński
: The co-creator of one of the first machine learning algorithms for character and image recognition.
-
Gerald Jay Sussman
: The creator of artificial intelligence based CAD technology, the contributor to AI research like Debugging Almost-Right Plans
and dependency-based backtracking.
Tools
-
Tim Berners-Lee
: The creator of the first web browser, and the first web server CERN httpd
-
Richard Matthew Stallman
: The creator of the GNU
open source operating system, co-creator of the original Emacs
text-editor also known as "GNUMACS", and the creator of the popular debugging tool GDB (GNU)
-
Marc Andreessen
: The co-creator of the first widely used modern web browser Mosaic
popularizing the world wide web.
-
Robert McCool
: The creator of Apache HTTP Server
-
Butler Lampson
: The co-creator of the operating system, laser printer software, the first Ethernet and the Bravo WYSIWYG
text editor for the first personal computer Xerox Alto
.
-
Charles Thacker
: The original designer, co-creator of the laser printer software and the first Ethernet for the first personal computer Xerox Alto
.
-
Doug Cutting
: The creator of the data search library Lucene
and co-creator of the highly scalable web crawler Nutch
.
-
Mike Cafarella
: The co-creator of the highly scalable web crawler Nutch
.
-
Jeff Dean
: The co-creator of the machine learning library Tensorflow
.
-
Bill Joy
: The creator of the Unix text editor vi
, the creator of the C shell
command-line interpreter, one of the earliest developers of BSD
and co-creator of NFS
Version 2.
-
Lars Bak
: The creator of Javascript engine V8
.
-
Matei Zaharia
: The creator of the cluster computing framework Spark
and the cluster management system Mesos
.
-
Jason van Zyl: The creator of Maven
build automation tool for JVM environments
-
James Duncan Davidson
: The creator of the Tomcat
Java HTTP web server
-
Alexander Stepanov
: The primary designer and implementer of the C++ Standard Template Library
and helped formalize concepts of generic programming
.
-
Stephen R. Bourne
: The creator of the influential command-line interpreter Bourne Shell
.
-
Nathan Marz: The creator of the distributed stream processing framework Storm
.
-
Ryan Dahl: The creator of the Node.js
Javascript runtime interpreter
-
Solomon Hykes: The creator of Docker
, the system virtualization tool
-
Erich Gamma
: The co-creator of popular code testing framework for Java JUnit
.
-
Kent Beck
: The co-creator of SUnit
unit testing framework for Smalltalk, and co-creator of popular code testing framework for Java JUnit
.
-
Ward Cunningham
: The creator of the wiki
, the first web content-collaboration tool.
-
Igor Sysoev
: The creator of popular web server Nginx
.
-
Jamie Zawinski
: One of the original developers of the Mozilla
browser and open-source community, and one of the early developers of the Netscape Navigator browser
.
-
Daniel J. Bernstein
: The creator of a mail transfer agent qmail
with an emphasis on security, and the creator of the highly secure DNS server djbdns
.
-
Michael Burrows
: The co-creator of the lock service for distributed systems Chubby
.
-
Robby Russell: The creator of popular shell frameworkoh-my-zsh.
-
Cheng Zhao: The creator of the popular desktop application development environmentelectron.
-
Michael DeHaan: The creator of the computer automation, configuration management tool Ansible
.
-
David Cournapeau: The creator of the machine learning library for python Scikit-learn
.
-
Max Howell: The creator of the package management system for macOS homebrew
.
-
Mitchell Hashimoto: The creator of the virtual environment build toolVagrant.
-
Jose Valim: The co-creator of the authentication plugin for RailsDevise.
-
Yangqing Jia: The creator of the deep learning frameworkCaffe.
-
Jon Skeet: The co-creator of the popular data serializing tool Protocol Buffers
.
-
Brendan Burns: The co-creator of container cluster management system Kubernetes
, inspired by the Google Borg project.
-
Joe Beda: The co-creator of container cluster management system Kubernetes
, inspired by the Google Borg project.
-
Jonas Bonér: The creator of concurrent and distributed application toolkit on the JVM Akka
.
-
Jay Kreps: The creator of the high-throughput message broker Kafka
.
-
Jun Rao: The creator of the high-throughput message broker Kafka
.
-
Neha Narkhede: The creator of the high-throughput message broker Kafka
.
-
Ben Reed
: The distributed key-value store primarily used as Hadoop's configuration and synchronization service Zookeeper
.
-
Lars Rasmussen
: The co-creator of the original system for Google Maps
.
-
Jack Dongarra
: The co-creator of linear algebra tool BLAS (Basic Linear Algebra Subprograms)
, the co-creator of the parallel computing message system MPI (message passing interface)
, the creator of ranking system for powerful computers TOP500
and co-creator of linear algebra library ATLAS
.
-
Travis Oliphant
: The creator of NumPy
, a package for numerical computing in Python.
Operating Systems
-
Dennis Ritchie
: The co-creator of the Unix
operating system family that inspired the architecture of many modern operating systems like Linux.
-
Ken Thompson
: The co-creator of the Unix
operating system family and one of the original developers for the Plan 9
operating system.
-
Rob Pike
: The co-creator of Plan 9
operating system and the Inferno
operating system.
-
Linus Torvalds
: The creator of the Linux Operating System Kernel
and the Git
distributed version control system.
-
Brian Kernighan
: One of the original developers of the Unix
operating system family, often credited to coin the name.
-
Dave Cutler
: The co-creator of Windows NT
operating system family which it's kernel is still the foundation of the modern Microsoft operating system.
-
Ian Murdock
: The creator of one of the most popular Linux operating system distribution Debian
.
-
Douglas McIlroy
: The creator of Unix / Linux feature Pipeline
that chains a sequence of process together with a pipe character, the creator of Unix based data comparison tool diff utility
, and the creator of the Unix based listing command sort
.
-
Russ Cox: The core developer of the Plan 9
operating system, and the core developer of the Go
programming language.
Development Frameworks
-
David Heinemeier Hansson
: The creator of Ruby on Rails
, the web application framework
-
Jordan Walke: The original author of React
Javascript framework.
-
Adrian Holovaty
: The co-creator of the Django
web framework.
-
Simon Willison
: The co-creator of the Django
web framework.
-
Mark Otto: The co-creator of the front-end web framework Twitter Bootstrap
.
-
Jacob Thornton: The co-creator of the front-end web framework Twitter Bootstrap
.
-
Mike Bostock
: The creator of the D3
Javascript library
-
John Resig
: The creator of the Jquery
Javascript Library
-
Miško Hevery: The creator of the Javascript web application framework AngularJS
.
-
Erik Meijer
: The creator of the asynchronous programming frameworkReactive extensions.
-
Ben Christensen: The creator of the asynchronous programming frameworkRxJava.
-
Armin Ronacher: The creator of the micro web application framework for python Flask
.
-
Geoff Schmidt: The co-creator of popular Javascript application development environmentmeteor.
-
Guillermo Rauch: The creator of the real-time Javascript application framework Socket.io
.
-
Guillaume Bort: The creator of the web application framework for Scala and Java Play
.
-
Taylor Otwell: The creator of the PHP web application framework Laravel
.
-
Yehuda Katz: The co-creator of the Javascript application development framework Ember.js
, the creator of Javascript templating tool handlebars
, the co-creator of package management system for rubybundler, and once a member of core development teams for "Jquery" and "Ruby on Rails".
Programming Languages
-
Dennis Ritchie
: The creator of the C
programming language, one of the most influential languages of all time.
-
Ken Thompson
: The co-creator of the Go
programming language and sole creator of the B
programming language, the direct predecessor of the C programming language.
-
Alan J. Perlis
: The co-creator ALGOL
programming language andhelped standardize education of computer science and programming language design.
-
John McCarthy
: The original developer of the Lisp
programming language family, and significantly influenced the design of the ALGOL
programming language.
-
Donald E. Knuth
: The creator of the TeX computer typesetting system, the related METAFONT font definition language and rendering system, LR(k) grammars, and attribute grammars.
-
Brian Kernighan
: The creator of the Unix text processing language AWK
and the math computing language AMPL
-
Chris Lattner
: The creator of the LLVM
compiler infrastructure, the Clang
front-end compiler and the Swift
programming language.
-
Kristen Nygaard
: The co-inventor of Simula
which introduced the formal concept of object-oriented programming
paradigm.
-
Ole-Johan Dahl
: The co-inventor of Simula
which introduced the formal concept of object-oriented programming
paradigm.
-
Alain Colmerauer
: The creator of Prolog
and one of the main founders of Constraint logic programming
-
James Gosling
: The creator of the Oak
programming language which later became Java
-
Niklaus Wirth
: The creator of several important programming languages including Euler
, Algol W
, and the Pascal
procedural programming language.
-
Konrad Zuse
: The creator of the first high-level programming language Plankalkül
originally created for his original and world's first programmable computer, the Z3
.
-
Bjarne Stroustrup
: The creator of C++
, one of the most popular programming languages of all time.
-
Larry Wall
: The creator of the Perl
dynamic programming language popularized by its unsurpassed regular expression and string parsing abilities.
-
Don Syme
: The creator of the F#
programming language, and the creator of generics in .NET
framework.
-
Anders Hejlsberg
: One of the original authors of C#
, Delphi
Pascal dialet programming toolkit and the Typescript
Javascript superset language.
-
Joe Armstrong: The creator of the Erlang
functional programming language known for being well suited for systems that are distributed, fault tolerant, and concurrent.
-
Rob Pike
: The co-creator of the Go
programming language.
-
Alan Cooper
: The creator of Visual Basic
, a user-friendly programming language for Microsoft applications.
-
John G. Kemeny
: The co-creator of the Basic
Programming Language.
-
Thomas E. Kurtz
: The co-creator of the Basic
Programming Language.
-
Brad Cox
: The co-creator of Objective-C
Programming Language
-
Tom Love: The co-creator of Objective-C
Programming Language
-
Brendan Eich
: The creator of Javascript
Programming Language
-
Guido van Rossum
: The creator of the Python
programming language.
-
Erik Meijer
: The co-creator of the specifications for Haskell
programming language.
-
Kevin Hammond
: The co-creator of the specifications for Haskell
programming language, and the co-creator of GHC (Glasgow Haskell Compiler)
.
-
Simon Peyton Jones
: The co-creator of the specifications for Haskell
programming language, and the co-creator of GHC (Glasgow Haskell Compiler)
.
-
Rich Hickey: The creator of the Clojure
functional programming language, a modern Lisp
that compiles for the Java virtual machine
.
-
Jean Ichbiah
: The creator of Ada
, an object oriented programming language.
-
Kenneth E. Iverson
: The creator of APL
that lead innovations in array programming
and contributing to the development of the functional programming paradigm.
-
Yukihiro Matsumoto
: The creator of the Ruby
object-oriented programming language.
-
Bertrand Meyer
: The creator of the Eiffel
programming language, one of the first object oriented languages and creator of Design by contract
.
-
Rasmus Lerdorf
: The creator of the server-side scripting language PHP
primarily used for web development.
-
Martin Odersky
: The creator of the Scala
functional / object-oriented programming language for the Java virtual machine
.
-
Xavier Leroy
: The co-creator of the OCaml
programming language that has functional and object oriented properties to its design.
-
Graydon Hoare: The original creator of the Rust
low-level systems programming language.
-
Jeremy Ashkenas: The creator of the Javascript transcompiled programming language CoffeeScript
.
-
Jose Valim: The creator of the functional concurrent programming language Elixir
built on top of BEAM Erlang virtual machine.
-
Lars Bak
: The creator of the Dart
programming language that transcompiles into Javascript.
-
Jeff Bezanson
: The co-creator of the Julia
dynamic programming language designed for high performance scientific computing.
-
Stefan Karpinski
: The co-creator of the Julia
dynamic programming language designed for high performance scientific computing.
-
Ary Borenszweig: The co-creator of the statically type, object oriented programming language Crystal
inspired by Ruby's syntax and C's compilation.
-
Juan Wajnerman: The co-creator of the statically type, object oriented programming language Crystal
inspired by Ruby's syntax and C's compilation.
-
Andrey Breslav: The co-creator of the JVM run, statically typed programming language Kotlin
.
-
Slava Pestov: The creator of stack-oriented
programming language Factor
and a member of the core team for Swift
.
-
Arthur Whitney
: The creator of the programming language A+
and the creator of the programming language K
.
Theory
-
Edsger W. Dijkstra
: Led the Structured Programming
movement helping set standards for quality software development and eliminating harmful practices like the GOTO
statement. He also introduced the concepts of "recursion" and "stack" with the creation of ALGOL 60 compiler.
-
Alan Kay
: He helped pioneer the idea of object-oriented programming and helped create the Smalltalk language originally used for graphical interfaces.
-
Maurice Wilkes
: The designer of EDSAC, the first computer with an internally stored program. Also helped define concepts like microprogramming, symbolic labels and macros.
-
Tony Hoare
: The author of influential paper "An axiomatic basis for computer programming", and the creator of the influential language Communicating sequential processes
for describing patterns of interaction in concurrent systems.
-
Allen Newell
: Along with Herbert Simon, he helped create Information Processing Language (IPL) which introduced the concept of list processing and often cited as the first functional programming language.
-
Herbert A. Simon
: Along with Allen Newell, he helped create Information Processing Language and the Heuristic Compiler, the first system with capabilities for automatic programming.
-
Ivan Sutherland
: The first to define the notion of "objects" and "instances" during the development of Sketchpad
.
-
Peter Naur
: The co-creator of the influential programming language Algol 60
introducing nested function with lexical scope, and the co-creator of the Backus-Naur form
one of the main notation techniques for context free grammars
used to describe syntax of programming languages.
-
Jean-Yves Girard
: One of the discoverers of System F
, the polymorphic lambda calculus that forms the theoretical basis for Haskell and ML.
-
John C. Reynolds
: One of the discoverers of System F
, the polymorphic lambda calculus that forms the theoretical basis for Haskell and ML.
-
Barbara Liskov
: The co-creator of the important object-oriented subtyping definition Liskov substitution principle
and the co-creator of CLU
programming language that introduced key features like abstract data types, iterators and use of classes with constructors.
-
Robin Milner
: The creator of ML
functional programming language, the first language to use a polymorphic type inference alongside type-safe exception handling, and the creator of concurrency theory CCS (Calculus of communicating systems)
.
-
Dana Scott
: The co-creator of Denotational semantics or Scott–Strachey semantics
formalizing the definitions of programming languages by creating mathematical denotations describing expressions from the language.
-
Noam Chomsky
: The creator of the Chomsky hierarchy
, a containment heirarchy for classes of formal grammars.
-
Seymour Ginsburg
: The creator of the Abstract family of languages Theory
, and proved languages like ALGOL are context-free.
Compilers
-
Grace Hopper
: The inventor of the A-0 System
, often considered as the first compiler
but functioned as a loader
for Assembly
resulting to the development of higher level programming languages like COBOL
.
-
John Backus
: The co-creator of the first high-level compiled programming language FORTRAN
and its compiler, often credited as being the first optimizing compiler
and fully complete compiler.
-
Frances E. Allen
: The author of the paper "Program Optimization" that laid the basis for systematic analysis of computer programs, the author of "Control Flow Analysis" that uses intervals to analyze data flow, and the co-author of the paper "A Catalog of Optimizing Transformations" which is one of the main analysis strategies used in optimizing compilers.
-
Richard Matthew Stallman
: The creator of the GCC (GNU Compiler Collection)
system which has been adopted as the standard compiler system by many operating systems.
-
Nathaniel Rochester
: The creator of the first assembler
, translating assembly code into byte code for the first mass-produced computer that he also created, the IBM 701
.
-
Lois Haibt
: The co-creator of the first high-level compiled programming language FORTRAN
and its compiler.
-
Alon Zakai: The creator ofemscripten, the LLVM to Javascript compiler.
Computer Graphics
-
Alvy Ray Smith
: He is the creator of HSB
, the HSV color space, which is the most common model to represent RGB colors.
-
Ivan Sutherland
: He is the creator of the revolutionary computer program Sketchpad
, often known to be the first real-time graphical user interface and foundation for modern Computer-aided design
and the creator of whats considered to be the first virtual reality head-mounted system The Sword of Damocles
.
-
Douglas Engelbart
: The creator of the revolutionary NLS
that employed the first practical use of hypertext
and a precursor of the graphical user interface.
-
Alan Kay
: The creator of KiddiComp
concept which became a profound influence to graphical user interfaces.
-
Larry Tesler
: The co-creator of the Gypsy word processor
with point and click ability, and the co-creator of "copy and paste" mechanism.
-
Daniel Henry Holmes Ingalls Jr.
: The co-creator of Bit blit
data operations for computer graphics, and the popup menu
graphical mechanism.
-
David Canfield Smith
: The creator of the "Pygmalion" system that directly led to the concept of computer icons.
-
Bill Atkinson
: The co-creator of the GUI for the Apple Lisa, the creator of the original drawing software MacPaint
, and the creator of the QuickDraw
graphics library.
-
Rob Pike
: The co-creator of programmable bitmap graphics terminal Blit
.
-
John Carmack
: The video game creator of Doom and its 3D rendering engine Doom Engine
who innovated in 3D graphics with the Carmack's reverse algorithm for shadow volumes.
-
William Fetter
: The creator of the first human figure as a 3D model while exploring perspective fundamentals for computer graphics while the coining the term "computer graphics".
-
Pierre Bézier
: The creator of 3D CAD
, the creator of Bézier curve
and Bézier surface
3D computer graphics concepts.
-
Michael Abrash
: The co-creator of the video game and 3D rendering engine Quake
Quake Engine
.
Computer Architecture / Theory
-
Alan Turing
: The creator of the Turing machine
also known as the "automatic machine" because of its ability to automate sets of mathematical operations at a time when computing process was all handled by humans. This important discovery led to the fundamental principles of modern computing directly inspiring most digital systems including the Von Neumann architecture.
-
Kurt Gödel
: The creator of Gödel's incompleteness theorems
often considered to be the foundation of theoretical computer science and inspiration to Turing and Church, the creator of universal formal languages and the limits of proof and computation, and the creator of the proof for axiomatized arithmetic to not be both logically consistent
and complete in first-order predicate calculus.
-
Charles Babbage
: The creator of the concept for a programmable general-purpose computer with the design of the Analytical Engine
and the creator for a prototype for a less powerful mechanical calculator
.
-
Edsger W. Dijkstra
: The first to publish papers in the field of concurrent programming
and distributed programming
while discovering concepts like mutual exclusion
and the semaphore
.
-
John von Neumann
: He created the universally important von Neumann architecture
that describes the design for a digital computer that continues to be the basis of modern computers with breakthrough concepts like shared address space for memory. He also started the field of cellular automata
and is considered to be the creator of the first computer virus
while studying self-replicating programs.
-
Leslie Lamport
: The creator of the industry standard Sequential consistency
memory model, the creator of "Atomic and regular registers" that helps solve semantic problems when multiple resources interact to shared data, the creator of of distributed computing paradigm State machine replication
for building fault-tolerance by coordinating commands across replicated servers, and the co-discoverer of the Byzantine fault tolerance
failure definitions.
-
Alonzo Church
: The creator of mathematical logic system and computation model to simulate single-taped Turing machines called Lambda Calculus
, and the co-creator of the Church–Turing thesis
formalizing the definitions of computable functions.
-
Claude Shannon
: The author of seminal paper "A Mathematical Theory of Communication" which essentially founded the field of information theory and entropy, the creator of error-correcting schemes for communication channel bandwidth.
-
Ada Lovelace
: The creator of mathematical operations for Charles Babbage's mechanical machines now recognized as being one of the first algorithms for a machine so is now considered to be one of the first computer programmers.
-
J. C. R. Licklider
: The creator of concepts for modern-style interactive computing, and an early researcher at Arpanet for concepts of a connected network like the internet.
-
Stephen Cole Kleene
: The creator of Regular expression
pattern matching mechanism, and the creator of mathematical logic branch recursion theory
-
John McCarthy
: Developed the concept of time-sharing
for computers with multiprogramming.
-
John Cocke
: The creator of the Reduced Instruction Set Computing (RISC)
architecture that optimized the basic set of computer instructions appropriately for the compiler to produce a high performance pipelined processor.
-
Fernando J. Corbató
: The co-author of a paper that describes one of the earliest time-sharing
computer systems CTSS (compatible time-sharing system)
and the original creator of the influential time-sharing operating system Multics
which pioneered many concepts widely adopted by almost all operating systems like Unix.
-
Per Brinch Hansen
: The creator of the RC 4000 multiprogramming system
introducing the concept of operating system kernels and microkernel architectures with the separation of policy and mechanism, the co-createor of the synchronization construct for threads with mutex and blocking ability known as the monitor
, the first to implement a remote procedure call, and the creator of the "Distributed Processes" language for distributed systems using RPC for external requests.
-
Gerard Salton
: The creator of vector space model
for information retrievel.
-
Sophie Wilson
: The co-creator of the Acorn RISC Machine (ARM) architecture
, the most widely used model for modern smartphones, and the creator of the BBC Basic
language for the acorn systems.
-
Tommy Flowers
: The creator of the Colossus computer
, the first programmable digital computing systems.
-
Fred Brooks
: The co-creator of the System 360
computer that introduced 8-bit byte addressing and first to emphasize the distinction of "system architecture" and implementation.
-
George Boole
: The creator of Boolean Algebra
mathematical logic which has inspired the basis of logic gates
and computer science.
-
Michael O. Rabin
: The co-creator of the Nondeterministic finite automaton
a kind of state machine that has several possible transitions out of each state.
-
Dana Scott
: The co-creator of the Nondeterministic finite automaton
a kind of state machine that has several possible transitions out of each state.
-
Margaret Hamilton
: The creator of important concepts in asynchronous systems, priority scheduling, and end-to-end testing.
-
Herman Hollerith
: The creator of the punch-card
Tabulating machine
sparking the era of automatic data processing systems.
-
Joseph Marie Jacquard
: The creator of Jacquard loom
one of the first punch card controlled programmable mechanized loom.
-
Nikolay Brusentsov
: The creator of a computer using ternary logic
called the Seturn
.
-
Vannevar Bush
: The creator of what influenced hypertext, Memex
, originally conceived to store compressed information.
-
Paul Baran
: The co-creator of the packet switched computer network for an early prototype of internet technology at ARPANET.
-
Jean Bartik
: The co-developer of early "stored program" computers and considered to be one of the first computer programmers, using the ENIAC, a vacuum tube computer during a time when "programming" meant using cables, dials, and switches to physically rewire the machine.
-
Kent Beck
: The co-creator of software development methodology extreme programming
to improve overall software quality, the co-founder of the "Agile Manifesto" and the agile software development paradigm, and credited to be the founder of Test-driven development
.
-
Ward Cunningham
: The co-creator of software development methodology extreme programming
to improve overall software quality.
-
Dave Thomas
: The co-founder of the "Agile Manifesto" and coined the phrases "DRY" Don't repeat yourself
which emphasizes to reduce the repetition of code or data in software.
-
Richard Hamming
: Defined numerical methods, automatic coding systems, and error-detecting and error-correcting codes
-
Nathan Marz: The author of the data-processing Lambda architecture
designed to use stream-processing or batch processing to handle data at a large scale.
-
Eric Brewer
: The original writer of the CAP theorem
stating that a distributed computer system cannot simultaneously provide the guarantees Consistency, Availability and Partition Tolerance.
Protocols / Standards
-
Tim Berners-Lee
: The creator of the World Wide Web, the creator of the HTTP
data communication protocol, and the founder of the World Wide Web Consortium
for internet standards.
-
Vint Cerf
: The co-creator of the fundamental design principles for computer networking Transmission Control Protocol and Internet Protocol (TCP/IP)
in a profound paper "A Protocol for Packet Network Intercommunication" essentially outlining the architecture of the internet.
-
Robert E. Kahn
: The co-creator of the fundamental design principles for computer networking Transmission Control Protocol and Internet Protocol (TCP/IP)
in a profound paper "A Protocol for Packet Network Intercommunication" essentially outlining the architecture of the internet.
-
Leslie Lamport
: The creator of the Paxos
consensus protocol now considered to be the de-facto framework for designing consensus and agreement in a distributed computing system, and the co-author of Byzantine agreement
protocol that handle and avoid failures in distributed algorithms.
-
Jeremie Miller
: The original creator of the Extensible Messaging and Presence Protocol
(XMPP)
-
William Kahan
: The primary architect behind the floating point computation standard IEEE 754-1985
which was the de-facto standard for implementation rules of floating points in software.
-
Butler Lampson
: The creator of the two-phase commit protocol
which coordinates the processes in a distributed atomic transaction on whether to commit or rollback the transaction.
-
Rob Pike
: The co-designer of the character encoding standard UTF-8
, capable of encoding all possible characters and is the most widely used encoding for HTML files.
-
Ken Thompson
: The co-designer of the character encoding standard UTF-8
, capable of encoding all possible characters and is the most widely used encoding for HTML files.
Analysis / Verification
-
James H. Wilkinson
: Helped facilitate the use of the high-speed digital computer with numerical analysis and the developer of the "backward" error analysis
for algorithms.
-
Amir Pnueli
: Introduced temporal logic
into formal verification
as a way to prove correctness in algorithms and a way to reason about time in computer programs.
-
Tony Hoare
: The creator of the Hoare Logic
correctness system for languages.
-
Robert W. Floyd
: The author of the important paper Assigning Meanings to Programs
introducing concepts of program correctness directly inspiring Hoare's triples
.
-
Edmund Melson Clarke
: The co-creator of the field for Model-checking
that introduced a machine executed system of temporal logic
to verify the computer program's correctness, and the co-creator of a system that represents state spaces during model checking runtime called symbolic model checking
.
-
E. Allen Emerson
: The co-creator of the field for Model-checking
that introduced a machine executed system of temporal logic
to verify the computer program's correctness.
-
Joseph Sifakis
: The co-creator of the field for Model-checking
that introduced a machine executed system of temporal logic
to verify the computer program's correctness.
Books
-
Donald E. Knuth
: He is the author of the multi-volume work The Art of Computer Programming
, often considered the bible of all fundamental algorithms.
-
Brian Kernighan
: The author of several of the most important programming books including The Elements of Programming Style
, The C Programming Language
and The Unix Programming Environment
.
-
Dennis Ritchie
: The author of The C Programming Language (K&R)
, the authoritative reference of the language.
-
Alexander Stepanov
: He is the author of Elements of Programming
-
Jeffrey Ullman
: He helped write several popular textbooks ranging from compilers, computational theory, data structures and databases including "the Dragon Book" and "the Cinderella Book".
-
Alfred Aho
: He helped write several textbooks covering compilers and algorithms including industry classics like "the Dragon Book", and the Principles of Compiler Design.
-
John Hopcroft
: The co-author of the influential books Introduction to Automata Theory, Languages, and Computation
also known as the "Cinderella Book", "Data Structures and Algorithms" and "The Design and Analysis of Computer Algorithms".
-
Steve McConnell
: The author of popular software development book Code Complete
.
-
Fred Brooks
: The author of the classic text The Mythical Man-Month
where Brook's law
was first coined.
-
Erich Gamma
: The "gang of four" co-author of influential book Design Patterns: Elements of Reusable Object-Oriented Software
.
-
Ralph Johnson
: The "gang of four" co-author of influential book Design Patterns: Elements of Reusable Object-Oriented Software
.
-
Richard Helm
: The "gang of four" co-author of influential book Design Patterns: Elements of Reusable Object-Oriented Software
.
-
John Vlissides
: The "gang of four" co-author of influential book Design Patterns: Elements of Reusable Object-Oriented Software
.
-
Hal Abelson
: The co-author of Structure and Interpretation of Computer Programs
also known as the "wizard book" that helped teach the principles of programming.
-
Gerald Jay Sussman
: The co-author of Structure and Interpretation of Computer Programs
also known as the "wizard book" that helped teach the principles of programming.
-
Thomas H. Cormen
: The co-author of influential book Introduction to Algorithms
also known as "CLRS" now considered to be the standard reference for algorithms.
-
Charles E. Leiserson
: The co-author of influential book Introduction to Algorithms
also known as "CLRS" now considered to be the standard reference for algorithms.
-
Clifford Stein
: The co-author of influential book Introduction to Algorithms
also known as "CLRS" now considered to be the standard reference for algorithms.
-
Andy Hunt
: The co-author of software development book The Pragmatic Programmer
, the co-author of many books in the "Pragmatic Bookshelf" series, and the co-author of "Programming Ruby".
-
Dave Thomas
: The co-author of software development book The Pragmatic Programmer
, the co-author of many books in the "Pragmatic Bookshelf" series, and the co-author of "Programming Ruby".
-
Robert Cecil Martin
: The author software development technique book "Clean Code: A Handbook of Agile Software Craftsmanship".
-
Scott Meyers
: The author of book series "Effective C++".
-
Martin Fowler
: The co-author of book that popularized agile software development "Refactoring: Improving the Design of Existing Code"
Miscellaneous
-
Richard Matthew Stallman
: The creator of the GNU Project
for the collection and development of free software through the use of its friendly GNU General Public License
-
Brian Kernighan
: He wrote the original program to read "Hello World!".
-
Jon Skeet
: The user with the most "reputation" points on Stack Overflow.
-
Robert Floyd
: The most cited author in Donald Knuth's "The Art of Computer Programming" series.
-
Robert Tappan Morris
: The creator of the internet's first computer worm Morris Worm
.
-
Petr Mitrichev
: The winner of multiple TopCoder
competitions, took 100 wins in a single round of TopCoder, winner of Russian Code Cup, winner of Facebook Hacker Cup, winner of Yandex algorithm competition, and winner of Google Code Jam
.
-
Gennady Korotkevich
: The six time gold medalist for the International Olympiad in Informatics
programming competition, on the winning team for several years in ACM International Collegiate Programming Contest
, multiple medal winner in the CodeForces
contests, and winner of Google Code Jam for several consecutive years.
原文
https://github.com/rekihattori/awesome-programmers/blob/master/README.md#operating-systems