David A. Wheeler
|
Missing image
David_a_wheeler.jpg
David_a_wheeler.jpg
David A. Wheeler (born 1965) specializes in developing high-risk software systems, particularly large software systems and computer security. He has written a number of articles on open source software and free software. His articles and books include:
- Why Open Source Software / Free Software (OSS/FS)? Look at the Numbers! (http://www.dwheeler.com/oss_fs_why.html)
- Secure Programming for Linux and Unix HOWTO (http://www.dwheeler.com/secure-programs)
- More than a Gigabuck: Estimating GNU/Linux's Size (http://www.dwheeler.com/sloc)
- The Most Important Software Innovations (http://www.dwheeler.com/innovation)
- Make Your Open Source Software GPL-Compatible. Or Else. (http://www.dwheeler.com/essays/gpl-compatible.html)
- Software Inspection: An Industry Best Practice by David A. Wheeler, Bill Brykczynski, and Reginald N. Meeson, Jr. IEEE Computer Society Press. ISBN 0-8186-7340-0.
- Ada 95: The Lovelace Tutorial. Springer-Verlag. ISBN 0-387-948-01-5.
He lives in Northern Virginia.
Most Important Software Innovations
In 2001, Wheeler made a list of the most important software concepts (http://www.dwheeler.com/innovation/innovation.html) developed until that date. His list consists of:
- 1837: Charles Babbage's Analytical Engine
- 1845: Boolean algebra
- 1936-37: Turing machine
- 1945: Stored program concept
- 1945: Hypertext
- 1951: Subroutines
- 1952: Assemblers
- 1952: Compilers
- 1954: Practically Compiling Human-like Notation (FORTRAN programming language)
- 1955: Stack Principle
- 1957: Timesharing
- 1958-60: List Processing (LISP programming language)
- 1960: Survivable Packet-Switching Networks
- 1964: Word processor (the IBM MT/ST)
- 1964: Computer mouse
- 1965: Semaphores
- 1965: Hierarchical directories, program names as commands (Multics)
- 1965: Unification
- 1966: Structured programming
- 1966: Spell checker
- 1967: Object oriented programming
- 1967: Separating Text Content from Format
- 1968: The graphical user interface (GUI)
- 1968: Regular Expressions
- 1969-70: Standardized Generic Markup Language (SGML)
- 1970: Relational Model and Algebra (leading to relational databases)
- 1970: Distributed Network Email
- 1972: Modularity criteria
- 1972: Screen-Oriented Word processing
- 1972: Pipes
- 1972: B-Tree
- 1972, 1976: Portable operating systems (OS6, Unix)
- 1972: Internetworking using Datagrams (TCP/IP)
- 1973: Font generation algorithms
- 1974: Monitor
- 1975: Communicating Sequential Processes (CSP)
- 1977: Diffie-Hellman Security Algorithm
- 1978: RSA security algorithm
- 1978: Spreadsheet
- 1978: Lamport clocks
- 1979: Distributed Newsgroups (USENET)
- 1980: Model View Controller (MVC)
- 1981?: Remote Procedure Call (RPC)
- 1984: Distributing Naming (DNS)
- 1986: Lockless version management (CVS)
- 1989: Distributed Hypertext via Simple Mechanisms (World Wide Web)
- 1991: Design patterns
- 1992: Secure Mobile Code (Java programming language and Safe-Tcl)
- 1993: Refactoring
- 1994: Web-crawling search engines
External link
- Personal homepage (http://www.dwheeler.com)