Ниже — компактный обзор ключевых событий, идей и людей, которые в наибольшей степени сформировали современную разработку ПО. Разбит по темам для удобства.
Фундамент и теория
Ада Лавлейс XIXв.XIX в.XIXв. — первая программа и идея вычислений как универсального процесса.Алан Тьюринг 1936–1950−е1936–1950-е1936–1950−е — формализация вычислимости машинаТьюрингамашина ТьюрингамашинаТьюринга и идея универсальной вычислительной машины; вклад в криптографию и основы информатики.Джон фон Нейман и архитектура фон Неймана 1940–1950−е1940–1950-е1940–1950−е — модель хранения программ в памяти, определившая устройство большинства компьютеров.Теория алгоритмов и сложности 1950–70−е;Cook,Karpидр.1950–70-е; Cook, Karp и др.1950–70−е;Cook,Karpидр. — понятия NP-полных задач, ограничений вычислимости.
Языки программирования и парадигмы
Первый компилятор/идеи автоматической трансляции ГрейсХоппер,1950−еГрейс Хоппер, 1950-еГрейсХоппер,1950−е — привёл к COBOL и бизнес-языкам.Fortran ДжонБэккусикоманда,1957Джон Бэккус и команда, 1957ДжонБэккусикоманда,1957 — первый широко используемый язык высокого уровня для численных вычислений; начал эру компиляторов.Lisp ДжонМаккарти,1958Джон Маккарти, 1958ДжонМаккарти,1958 — функциональная парадигма, важна для ИИ и метапрограммирования.Algol/структурное программирование 1958–60−е1958–60-е1958–60−е — введение блоков, структур; повлияло на многие последующие языки.Simula Оле−ЙоханДалиКристенНордаль,1960−еОле-Йохан Дал и Кристен Нордаль, 1960-еОле−ЙоханДалиКристенНордаль,1960−е — первая объектно-ориентированная идея.C ДеннисРитчи,1972Деннис Ритчи, 1972ДеннисРитчи,1972 — язык системного программирования, повлиявший на множество последующих языков.Smalltalk АланКейикомандавXeroxPARC,1970−еАлан Кей и команда в Xerox PARC, 1970-еАланКейикомандавXeroxPARC,1970−е — чистая ООП-модель и идеи интерактивной разработки.C++ БьярнеСтрауструп,1980−еБьярне Страуструп, 1980-еБьярнеСтрауструп,1980−е и Java ДжеймсГослинг,1995Джеймс Гослинг, 1995ДжеймсГослинг,1995 — массовое распространение ООП; Java задаёт модель переносимости и управляемой среды JVMJVMJVM.Появление скриптовых языков и динамических языков Perl,Python,RubyPerl, Python, RubyPerl,Python,Ruby — повышение продуктивности, быстрые прототипы.
Операционные системы, инструменты и среды
Unix КенТомпсон,ДеннисРитчи,1970−еКен Томпсон, Деннис Ритчи, 1970-еКенТомпсон,ДеннисРитчи,1970−е — простая философия инструментов, многообразие утилит, POSIX; основа для Linux/macOS.Развитие компиляторов, дебаггеров, сборщиков и сред разработки — сформировали рабочие практики.Версионирование: SCCS → RCS → CVS → Subversion → Git ЛинусТорвальдс,2005Линус Торвальдс, 2005ЛинусТорвальдс,2005 — распределённый контроль версий кардинально изменил совместную работу.
Сеть, интернет и веб
ARPANET 1960–70−е1960–70-е1960–70−е — основа сетей и протоколов.TCP/IP ВинтСерф,БобКанВинт Серф, Боб КанВинтСерф,БобКан — стек, на котором стоит Интернет.WWW ТимБернерс−Ли,1989–1990Тим Бернерс-Ли, 1989–1990ТимБернерс−Ли,1989–1990 — гипертекст и браузеры как платформа для приложений; начало веб-разработки.Появление веб-стеков HTML/CSS/JSHTML/CSS/JSHTML/CSS/JS и браузеров, клиент-серверная модель, AJAX, SPA — кардинально изменили интерфейсы и архитектуры приложений.
Базы данных и хранение
Реляционная модель ЭдгарКодд,1970Эдгар Кодд, 1970ЭдгарКодд,1970 — SQL и систематизация хранения данных.Распределённые БД, NoSQL, CAP-теорема BrewerBrewerBrewer — влияние на масштабирование и архитектуры больших данных.
Методологии и культура разработки
«Кризис программного обеспечения» и конференция НАТО 196819681968 — рождение дисциплины «инженерия ПО».Структурное программирование ЭдсгерДейкстраЭдсгер ДейкстраЭдсгерДейкстра и формальные методы — повышение надежности.Agile Manifesto 200120012001 — переход к итеративной, командной и клиент-ориентированной разработке; XP KentBeckKent BeckKentBeck, Scrum KenSchwaber,JeffSutherlandKen Schwaber, Jeff SutherlandKenSchwaber,JeffSutherland.DevOps терминидвижение,PatrickDeboisидр.термин и движение, Patrick Debois и др.терминидвижение,PatrickDeboisидр. — слияние разработки и эксплуатации; автоматизация CI/CD.
Открытое ПО и коммерческая экосистема
Ричард Столлман и GNU с1983с 1983с1983, движение Free Software — философия свободы исходников.Linux ЛинусТорвальдс,1991Линус Торвальдс, 1991ЛинусТорвальдс,1991 — свободная ОС, критическая инфраструктура для серверов и облака.Модель Open Source, GitHub и коллаборативная разработка — изменили способ создания ПО и найма разработчиков.Появление облачных провайдеров AWS2006идр.AWS 2006 и др.AWS2006идр. — смена модели доставки и масштабирования ПО IaaS/PaaS/SaaSIaaS/PaaS/SaaSIaaS/PaaS/SaaS.
Инфраструктура и современные практики
Виртуализация и контейнеризация VMware;Docker2013VMware; Docker 2013VMware;Docker2013 — изоляция сред и портируемость.CI/CD и автоматизированное тестирование — быстрые и безопасные релизы.Микросервисная архитектура и оркестрация KubernetesKubernetesKubernetes — масштабируемость и устойчивость сложных систем.
Безопасность и криптография
Понятия современной криптографии Diffie–Hellman,RSADiffie–Hellman, RSADiffie–Hellman,RSA и стандарты шифрования — фундамент для безопасных коммуникаций и электронной коммерции.Рост внимания к безопасному SDLC, DevSecOps.
Ключевые личности краткократкократко
Ада Лавлейс, Алан Тьюринг, Джон фон Нейман — теоретический фундамент.Грейс Хоппер, Джон Бэккус, Джон Маккарти — ранние языки и инструменты.Деннис Ритчи, Кен Томпсон — C и Unix.Линус Торвальдс, Ричард Столлман — Linux и свободное ПО.Тим Бернерс-Ли — WWW.Kent Beck, Ken Schwaber, Jeff Sutherland, Patrick Debois — Agile/DevOps/CI/CD движения.Эдгар Кодд — реляционные БД.
Почему это важно для современности
Архитектуры, языки и инструменты прошлых десятилетий определяют сегодняшние лучшие практики, набор технологий и культурные нормы Agile,OpenSource,CI/CDAgile, Open Source, CI/CDAgile,OpenSource,CI/CD.Теоретические основы алгоритмы,моделивычислений,криптографияалгоритмы, модели вычислений, криптографияалгоритмы,моделивычислений,криптография задают пределы и возможности решений.Появление сетей, веба и облака изменило масштаб, модели доставки и требования к надежности и безопасности ПО.
Если хотите, могу:
Сделать хронологическую ленту с датами и ключевыми вехами.Подготовить список книг/ресурсов для углубления по каждой теме.
Ниже — компактный обзор ключевых событий, идей и людей, которые в наибольшей степени сформировали современную разработку ПО. Разбит по темам для удобства.
Фундамент и теория
Ада Лавлейс XIXв.XIX в.XIXв. — первая программа и идея вычислений как универсального процесса.Алан Тьюринг 1936–1950−е1936–1950-е1936–1950−е — формализация вычислимости машинаТьюрингамашина ТьюрингамашинаТьюринга и идея универсальной вычислительной машины; вклад в криптографию и основы информатики.Джон фон Нейман и архитектура фон Неймана 1940–1950−е1940–1950-е1940–1950−е — модель хранения программ в памяти, определившая устройство большинства компьютеров.Теория алгоритмов и сложности 1950–70−е;Cook,Karpидр.1950–70-е; Cook, Karp и др.1950–70−е;Cook,Karpидр. — понятия NP-полных задач, ограничений вычислимости.Языки программирования и парадигмы
Первый компилятор/идеи автоматической трансляции ГрейсХоппер,1950−еГрейс Хоппер, 1950-еГрейсХоппер,1950−е — привёл к COBOL и бизнес-языкам.Fortran ДжонБэккусикоманда,1957Джон Бэккус и команда, 1957ДжонБэккусикоманда,1957 — первый широко используемый язык высокого уровня для численных вычислений; начал эру компиляторов.Lisp ДжонМаккарти,1958Джон Маккарти, 1958ДжонМаккарти,1958 — функциональная парадигма, важна для ИИ и метапрограммирования.Algol/структурное программирование 1958–60−е1958–60-е1958–60−е — введение блоков, структур; повлияло на многие последующие языки.Simula Оле−ЙоханДалиКристенНордаль,1960−еОле-Йохан Дал и Кристен Нордаль, 1960-еОле−ЙоханДалиКристенНордаль,1960−е — первая объектно-ориентированная идея.C ДеннисРитчи,1972Деннис Ритчи, 1972ДеннисРитчи,1972 — язык системного программирования, повлиявший на множество последующих языков.Smalltalk АланКейикомандавXeroxPARC,1970−еАлан Кей и команда в Xerox PARC, 1970-еАланКейикомандавXeroxPARC,1970−е — чистая ООП-модель и идеи интерактивной разработки.C++ БьярнеСтрауструп,1980−еБьярне Страуструп, 1980-еБьярнеСтрауструп,1980−е и Java ДжеймсГослинг,1995Джеймс Гослинг, 1995ДжеймсГослинг,1995 — массовое распространение ООП; Java задаёт модель переносимости и управляемой среды JVMJVMJVM.Появление скриптовых языков и динамических языков Perl,Python,RubyPerl, Python, RubyPerl,Python,Ruby — повышение продуктивности, быстрые прототипы.Операционные системы, инструменты и среды
Unix КенТомпсон,ДеннисРитчи,1970−еКен Томпсон, Деннис Ритчи, 1970-еКенТомпсон,ДеннисРитчи,1970−е — простая философия инструментов, многообразие утилит, POSIX; основа для Linux/macOS.Развитие компиляторов, дебаггеров, сборщиков и сред разработки — сформировали рабочие практики.Версионирование: SCCS → RCS → CVS → Subversion → Git ЛинусТорвальдс,2005Линус Торвальдс, 2005ЛинусТорвальдс,2005 — распределённый контроль версий кардинально изменил совместную работу.Сеть, интернет и веб
ARPANET 1960–70−е1960–70-е1960–70−е — основа сетей и протоколов.TCP/IP ВинтСерф,БобКанВинт Серф, Боб КанВинтСерф,БобКан — стек, на котором стоит Интернет.WWW ТимБернерс−Ли,1989–1990Тим Бернерс-Ли, 1989–1990ТимБернерс−Ли,1989–1990 — гипертекст и браузеры как платформа для приложений; начало веб-разработки.Появление веб-стеков HTML/CSS/JSHTML/CSS/JSHTML/CSS/JS и браузеров, клиент-серверная модель, AJAX, SPA — кардинально изменили интерфейсы и архитектуры приложений.Базы данных и хранение
Реляционная модель ЭдгарКодд,1970Эдгар Кодд, 1970ЭдгарКодд,1970 — SQL и систематизация хранения данных.Распределённые БД, NoSQL, CAP-теорема BrewerBrewerBrewer — влияние на масштабирование и архитектуры больших данных.Методологии и культура разработки
«Кризис программного обеспечения» и конференция НАТО 196819681968 — рождение дисциплины «инженерия ПО».Структурное программирование ЭдсгерДейкстраЭдсгер ДейкстраЭдсгерДейкстра и формальные методы — повышение надежности.Agile Manifesto 200120012001 — переход к итеративной, командной и клиент-ориентированной разработке; XP KentBeckKent BeckKentBeck, Scrum KenSchwaber,JeffSutherlandKen Schwaber, Jeff SutherlandKenSchwaber,JeffSutherland.DevOps терминидвижение,PatrickDeboisидр.термин и движение, Patrick Debois и др.терминидвижение,PatrickDeboisидр. — слияние разработки и эксплуатации; автоматизация CI/CD.Открытое ПО и коммерческая экосистема
Ричард Столлман и GNU с1983с 1983с1983, движение Free Software — философия свободы исходников.Linux ЛинусТорвальдс,1991Линус Торвальдс, 1991ЛинусТорвальдс,1991 — свободная ОС, критическая инфраструктура для серверов и облака.Модель Open Source, GitHub и коллаборативная разработка — изменили способ создания ПО и найма разработчиков.Появление облачных провайдеров AWS2006идр.AWS 2006 и др.AWS2006идр. — смена модели доставки и масштабирования ПО IaaS/PaaS/SaaSIaaS/PaaS/SaaSIaaS/PaaS/SaaS.Инфраструктура и современные практики
Виртуализация и контейнеризация VMware;Docker2013VMware; Docker 2013VMware;Docker2013 — изоляция сред и портируемость.CI/CD и автоматизированное тестирование — быстрые и безопасные релизы.Микросервисная архитектура и оркестрация KubernetesKubernetesKubernetes — масштабируемость и устойчивость сложных систем.Безопасность и криптография
Понятия современной криптографии Diffie–Hellman,RSADiffie–Hellman, RSADiffie–Hellman,RSA и стандарты шифрования — фундамент для безопасных коммуникаций и электронной коммерции.Рост внимания к безопасному SDLC, DevSecOps.Ключевые личности краткократкократко
Ада Лавлейс, Алан Тьюринг, Джон фон Нейман — теоретический фундамент.Грейс Хоппер, Джон Бэккус, Джон Маккарти — ранние языки и инструменты.Деннис Ритчи, Кен Томпсон — C и Unix.Линус Торвальдс, Ричард Столлман — Linux и свободное ПО.Тим Бернерс-Ли — WWW.Kent Beck, Ken Schwaber, Jeff Sutherland, Patrick Debois — Agile/DevOps/CI/CD движения.Эдгар Кодд — реляционные БД.Почему это важно для современности
Архитектуры, языки и инструменты прошлых десятилетий определяют сегодняшние лучшие практики, набор технологий и культурные нормы Agile,OpenSource,CI/CDAgile, Open Source, CI/CDAgile,OpenSource,CI/CD.Теоретические основы алгоритмы,моделивычислений,криптографияалгоритмы, модели вычислений, криптографияалгоритмы,моделивычислений,криптография задают пределы и возможности решений.Появление сетей, веба и облака изменило масштаб, модели доставки и требования к надежности и безопасности ПО.Если хотите, могу:
Сделать хронологическую ленту с датами и ключевыми вехами.Подготовить список книг/ресурсов для углубления по каждой теме.