Skip to content

💻The Greats

Инженер-программист · Пишет, тестирует и поддерживает код, который управляет современной жизнью, и является одной из первых профессий, наблюдающих, как ИИ автоматизирует свою повседневную работу.

Share

Каноны разработки программного обеспечения короче и моложе, чем каноны медицины или права, и на удивление большая их часть была написана женщинами, работающими в комнатах, полных мужчин, которые еще не считали программирование значимым. Восемь человек здесь - это графиня, пишущая для машины, которая так и не была построена, и дизайнер японского языка, который все еще поддерживает свое собственное творение, которому уже за шестьдесят.

Их объединяет не общее прошлое (они живут в четырех странах и более 180 лет), а общее убеждение в том, что то, как создается программное обеспечение, имеет такое же значение, как и то, работает ли оно вообще.

The all-time podium

Грейс Хоппер
Грейс Хоппер
Соединенные Штаты
2
Деннис Ричи
Деннис Ричи
Соединенные Штаты
1
Маргарет Гамильтон
Маргарет Гамильтон
Соединенные Штаты
3

“Создавайте так, чтобы работа переживала машину, для которой она была создана — переносимость позволила идеям Unix пережить пятьдесят лет аппаратного обеспечения.”

Деннис Ричи

The eight who reached the top

1
Фотография Денниса Ричи Denise Panyik-Dale · CC BY 2.0

Деннис Ричи

Соединенные Штаты · 1941–2011

Соавтор Unix и разработал язык программирования C в Bell Labs, дав отрасли портативную операционную систему и язык, синтаксис которого заимствовали большинство более поздних языков. Он разделил премию Тьюринга 1983 года с Кеном Томпсоном; большинство операционных систем, работающих сегодня, произошли от его работы или были созданы с использованием инструментов.

The story

Вместе с Томпсоном Ричи переписал Unix на C в 1973 году, чтобы можно было перейти на новое оборудование вместо привязки к одной машине — решение, которое позволило Unix и всему, что произошло от нее, пережить любой отдельный компьютер. Он умер дома в Беркли-Хайтс, штат Нью-Джерси, 12 октября 2011 года, и эта смерть в значительной степени омрачена в прессе смертью Стива Джобса неделей ранее, хотя программное обеспечение, созданное на основе работы Ричи, работало внутри собственных продуктов Джобса.

“Создавайте так, чтобы работа переживала машину, для которой она была создана — переносимость позволила идеям Unix пережить пятьдесят лет аппаратного обеспечения.”

Премия Тьюринга
1983 (с Томпсоном)
Языки произошли от C
C++, Java, C#, JavaScript…
Карьера в Bell Labs
~40 лет
2
Фотография Грейс Хоппер в военной форме ВМФ. James S. Davis · Public domain

Грейс Хоппер

Соединенные Штаты · 1906–1992

Математик и военно-морской офицер, создавший первый работающий компилятор в 1952 году, утверждавший, что людям следует программировать на чем-то более близком к английскому, а не на сырых машинных инструкциях. Этот аргумент привел непосредственно к COBOL, языку, который все еще используется в банках, авиакомпаниях и правительствах семь десятилетий спустя.

The story

Отвергнутая военно-морским флотом для прохождения действительной службы из-за недостаточного веса, Хоппер присоединилась к военно-морскому резерву в 1943 году, а позже была назначена для программирования Гарвардского корабля Mark I. В сентябре 1947 года ее команда Mark II записала в свой бортовой журнал мотылька, который заклинил реле, отметив «первый реальный случай обнаружения ошибки» - Хоппер не придумала слово «ошибка», но она рассказывала эту историю на протяжении десятилетий, пока она не стала легендой-основателем этой области.

“Заставьте машину говорить на языке программиста, а не только наоборот.”

Военно-морская карьера
43 года, контр-адмирал.
Возраст выхода на пенсию
79 лет, самый старый действующий офицер
Президентская медаль Свободы
2016 (посмертно)
3
Фотография Маргарет Гамильтон, стоящей рядом со стопкой списков программного обеспечения Apollo. Daphne Weld Nichols · CC BY-SA 3.0

Маргарет Гамильтон

Соединенные Штаты · б. 1936 год

Возглавлял команду в Лаборатории приборостроения Массачусетского технологического института, которая написала бортовое программное обеспечение для программы «Аполлон». Ему приписывают популяризацию термина «программная инженерия», утверждающего, что код заслуживает такой же строгости и уважения, как и разработка аппаратного обеспечения.

The story

Во время спуска «Аполлона-11» на Луну в июле 1969 года компьютер управления начал подавать сигналы тревоги 1202 и 1201, поскольку неправильно настроенный переключатель радара завалил его дополнительной работой. Команда Гамильтона создала программное обеспечение, позволяющее отбрасывать низкоприоритетные задачи при перегрузке, а не при сбое, поэтому оно поддерживало управление приземлением; Управление полетом, основанное на рукописной шпаргалке инженера НАСА, называемой «начать», а не «прервать».

“Создавайте программное обеспечение, которое будет корректно работать при перегрузке, а не только работать, когда все идет по плану.”

Президентская медаль Свободы
2016
Историческая миссия
Посадка Аполлона-11, 1969 год.
Роль MIT
Директор по программному обеспечению, инж. Див.
4
Фотография Линуса Торвальдса. Krd (photo) Von Sprat (crop/extraction) · CC BY-SA 4.0

Линус Торвальдс

Финляндия/США · б. 1969 год

Начал разработку ядра Linux как хобби-проект студента из Хельсинки в 1991 году, а четырнадцать лет спустя написал ядро ​​Git примерно за десять дней. Оба проекта сейчас лежат в основе большей части общедоступного Интернета, большинства телефонов в мире и ежедневного рабочего процесса большинства профессиональных команд разработчиков программного обеспечения.

The story

25 августа 1991 года Торвальдс сообщил в группе Usenet comp.os.minix, что пишет «(бесплатную) операционную систему (просто хобби, не будет такой большой и профессиональной, как gnu)». Добровольцы по всему миру начали вносить свой вклад в течение нескольких месяцев. В 2005 году, после того как лицензионный спор лишил команду ядра доступа к существующему инструменту контроля версий, он сам написал ядро ​​Git примерно за десять дней, вместо того, чтобы ждать, пока его создаст кто-то другой.

“Рабочий код, свободно распространяемый и обсуждаемый открыто, превосходит идеальный дизайн закрытого комитета.”

Ядро Linux запущено
1991 год, 21 год.
Git написан на
~10 дней, 2005 г.
Устройства под управлением ОС Linux
Миллиарды, в т.ч. все Android
5
Фотография Барбары Лисков Kenneth C. Zirkel · CC BY-SA 3.0

Барбара Лисков

Соединенные Штаты · б. 1939 год

В середине 1970-х годов в Массачусетском технологическом институте разработал CLU, один из первых языков с реальной абстракцией данных, а позже формализовал принцип замены, который до сих пор определяет, как инженеры проектируют иерархии классов. В 2008 году она стала второй женщиной, получившей премию Тьюринга.

The story

Лисков получила степень доктора компьютерных наук в Стэнфорде в 1968 году, став одной из первых женщин в США, получивших это звание. В Массачусетском технологическом институте она возглавляла команду, создавшую CLU в период с 1974 по 1975 год, представив абстрактные типы данных задолго до того, как термин «объектно-ориентированное программирование» стал обычным явлением. В своем выступлении на конференции 1987 года она изложила то, что стало известно как принцип замены Лискова, теперь буква «L» в принципах проектирования SOLID, которым учат почти каждого инженера.

“Подтип должен выполнять каждое обещание, данное его супертипом, иначе абстракция перестанет вас защищать.”

Премия Тьюринга
2008 (2-я женщина)
Кандидат компьютерных наук
1968, Стэнфорд
Встроенный язык CLU
1974–75, Массачусетский технологический институт
6
Портрет Ады Лавлейс Antoine Claudet · Public domain

Ада Лавлейс

Великобритания · 1815–1852

В 1843 году Лавлейс перевела и аннотировала итальянскую статью о незавершенной аналитической машине Чарльза Бэббиджа и в своей самой длинной заметке шаг за шагом описала, как машина может вычислять последовательность чисел — рабочую программу, написанную для компьютера, которого еще не существовало.

The story

В примечании G Лавлейс, самом длинном из семи примечаний, сопровождающих ее перевод статьи Луиджи Менабреа, изложены операционные карты аналитической машины для вычисления чисел Бернулли, и она обнаружила и исправила ошибку в расчете перед публикацией. Она умерла от рака в 1852 году в возрасте 36 лет, за десятилетия до того, как кто-либо построил машину, способную выполнять то, что она написала; в ее честь был назван язык программирования Ada, принятый Министерством обороны США в 1980 году.

“Программу можно спроектировать и отладить еще до того, как появится машина, на которой она будет выполняться.”

Примечания опубликованы
1843
Возраст на момент смерти
36
Язык, названный в ее честь
Ада, 1980 г., Министерство обороны США.
7

Фрэнсис Аллен

Соединенные Штаты · 1932–2020

Почти всю свою карьеру провела в IBM Research, превращая буквальный, неэффективный код, который сначала создает компилятор, в быстрые программы, которые инженеры фактически выпускают, закладывая математическую основу для современных оптимизирующих и распараллеливающих компиляторов. В 2006 году она стала первой женщиной, получившей премию Тьюринга.

The story

Аллен выросла на молочной ферме в Перу, штат Нью-Йорк, без электричества и водопровода, и присоединилась к IBM в 1957 году, главным образом, чтобы погасить свой долг за обучение в колледже. В ее статье 1966 года «Оптимизация программ» были представлены методы анализа кода на основе графов, которые до сих пор преподаются на курсах компиляторов. Позже она возглавила PTRAN, проект, который научил компиляторов автоматически находить скрытый параллелизм в старых программах на Фортране, и стала первой женщиной-стипендиатом IBM в 1989 году.

“Программа, которую пишет человек, и программа, которую должна запускать машина, — это разные проблемы; решить оба.”

Премия Тьюринга
2006 (1-я женщина)
Сотрудник IBM
1989 (1-я женщина)
Карьера в IBM Research
~45 лет
8

Юкихиро Мацумото

Япония · б. 1965 год

Начиная с 1993 года, разрабатывал язык программирования Ruby с одной явной целью — счастье программистов, а не эффективность машин — и наблюдал, как он стал двигателем первых Twitter, GitHub и Shopify, а также более широкой волны стартапов эпохи Rails, которые он помог запустить.

The story

Мацумото начал рисовать Ruby на бумаге в феврале 1993 года, смешивая кусочки Perl, Smalltalk, Eiffel, Lisp и Ada, и опубликовал его в 1995 году. Он сказал, что его цель заключалась в том, чтобы сделать программистов счастливыми, а не оптимизировать для компьютера. Эту философию сообщество Ruby превратило в свой собственный девиз: «Matz хорош, и поэтому мы хороши» — правило о том, как участники должны относиться друг к другу, а не только о том, как должен работать язык. вести себя.

“Создавайте инструменты с учетом того, как люди чувствуют себя при их использовании, а не только с учетом того, что они позволяют машине вычислять.”

Первый публичный релиз Ruby
1995
Годы разработки Ruby
С 1993 года
Роль
Главный дизайнер Руби

Длина полос — относительно лидера этого списка.

Лаборатория сравнения

Toggle names on and off — every bar rescales to the leader of your selection.

5 / 8

The argument

Вопрос о том, «придумал» ли конференция НАТО 1968 года термин «программная инженерия», остается спорным: Маргарет Гамильтон и другие говорят, что версии этой фразы уже неофициально циркулировали в инженерных кругах до Гармиша, и что конференция скорее популяризировала, чем изобрела его.

Именование и признание Linux порождают свои собственные давние аргументы: Ричард Столлман и Фонд свободного программного обеспечения утверждают, что операционную систему следует называть «GNU/Linux», поскольку большая часть окружающей ее инструментальной цепочки возникла из проекта GNU, который предшествовал ядру Торвальдса.

Similar professions

📊

Специалист по данным

Находит закономерности и строит прогнозные модели на основе данных — должность 2008 года, основанная на трех столетиях подсчета, тестирования и визуализации доказательств.

AI-resistant 38
📦

Инженер МЛОпс

Создает системы, которые обучают, развертывают, контролируют и управляют моделями машинного обучения в производстве.

AI-resistant 54
🗺️

Менеджер по продукту

Решает, что компания должна построить дальше и почему, превращая потребности клиентов, бизнес-цели и технические ограничения в один общий план, которым никто больше не владеет.

AI-resistant 50
🔐

Специалист по кибербезопасности

Защищает системы, данные и людей, обнаруживая, предотвращая и реагируя на цифровые атаки.

AI-resistant 63
🌿

Менеджер по устойчивому развитию

Руководит стратегией, измерениями и отчетностью, которые помогают организациям снизить экологический и социальный ущерб при выполнении деловых обязательств.

AI-resistant 66
🧾

Бухгалтер

Хранитель книг: наследник ремесла, настолько древнего, что оно изобрело само письмо, и теперь ведет переговоры с программным обеспечением, созданным для его автоматизации.

AI-resistant 35

Continue exploring

Keep exploring

More in Engineering & Technology

🤖

Исследователь искусственного интеллекта

Разрабатывает и тестирует алгоритмы, лежащие в основе машинного интеллекта, в области, которая сейчас стремится автоматизировать растущую долю собственного исследовательского процесса.

AI-resistant 50
🛰️

Аэрокосмический инженер

Проектирует, анализирует и сертифицирует летательные аппараты, ракеты и космические корабли, отрывающиеся от земли, работая с запасом безопасности, не оставляющим места для догадок.

AI-resistant 74
🌉

Инженер-строитель

Профессия, превращающая реки, скалы и гравитацию в мосты, дороги и чистую воду — тихая несущая сила цивилизации со времен Имхотепа.

AI-resistant 72
🔌

Инженер-полупроводник

Разрабатывает и производит транзисторы внутри каждого компьютера, телефона и оружия, используя настолько точные станки, что их могут эксплуатировать лишь несколько заводов на Земле.

AI-resistant 60
🦾

Инженер-робототехника

Разрабатывает машины, которые чувствуют, принимают решения и действуют в физическом мире, где сложной проблемой является не интеллект, а сам мир.

AI-resistant 65
🔐

Специалист по кибербезопасности

Защищает системы, данные и людей, обнаруживая, предотвращая и реагируя на цифровые атаки.

AI-resistant 63
📦

Инженер МЛОпс

Создает системы, которые обучают, развертывают, контролируют и управляют моделями машинного обучения в производстве.

AI-resistant 54
🌬️

Инженер по возобновляемым источникам энергии

Проектирует, строит и совершенствует ветровые, солнечные, накопительные и сетевые системы, которые превращают возобновляемые ресурсы в надежную электроэнергию.

AI-resistant 72