Прежде чем мы начнём, уточню: да, это субъективный список. Его цель — не закончить обсуждения, а породить их. Эти семь работ (отсортированных по дате публикации) я выделил потому, что они сильно повлияли на современный мир. Каждая из них заслуживает отдельного поста (или даже книги!). Если ваша любимая научная статья не попала в список, до дочитайте до раздела «Бонус» в конце, куда я добавил работы, которым чуть-чуть не хватило до попадания в основной список.

1. «On Computable Numbers, with an Application to the Entscheidungsproblem» (1936 год)


Автор: Алан Тьюринг

В 1930-х годах идея «программируемой машины» казалась чем-то из научно-фантастического рассказа. А потом о себе заявил Алан Тьюринг, заложивший фундамент того, на что теоретически способны компьютеры. Он сформулировал гипотетическую «машину Тьюринга», доказав, что если что-то вычислимо, то машина (теоретически) может с этим справиться.

Главная идея


Простая модель Тьюринга — лента, головка для чтения/записи и конечное множество состояний — стала предком всех современных вычислений. Она позволила определить, что решаемо (а что нет) в чисто механическом смысле, по сути, дав нам «правила игры» цифрового решения задач.

Почему это важно сегодня


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

Ссылки



2. «A Mathematical Theory of Communication» (1948 год)


Автор: Клод Шеннон

Тьюринг показал нам что могут (и не могут) машины, но как нам перемещать информацию? На сцене появляется Клод Шеннон, изобрётший теорию информации, которая позволила нам с научной точки зрения обсуждать биты, энтропию и шумные каналы.

Главная идея


Шеннон превратил абстрактное понятие «информация» во что-то чуть более измеримое. Это помогло нам понять, как можно эффективнее упаковывать (сжимать) данные и как защищать их от ошибок (коды коррекции ошибок) вне зависимости от того, передаём ли мы данные в космос или смотрим видео в Netflix.

Почему это важно сегодня


Каждый раз, когда вы отправляете SMS, стримите видео или звоните маме на WhatsApp, вы используете идеи Шеннона. Поверьте, без них звук и данные были гораздо более искажёнными.

Ссылки



3. «A Relational Model of Data for Large Shared Data Banks» (1970 год)


Автор: Эдгар Кодд

Итак, мы можем вычислять и передавать информацию. Замечательно! Но рано или поздно мы утонем под завалами данных. Эдгар Кодд предвидел это и придумал реляционную модель, по сути, позволившую нам хранить и запрашивать данные.

Главная идея


Кодд сказал: «Давайте хранить данные в таблицах и манипулировать ими при помощи логических операций». Сегодня это может показаться очевидным, но на то время такой подход был революционным. Его задумка привела к созданию SQL и огромного семейства реляционных баз данных, на основе которых работают практически все банки, онлайн-магазины и корпоративные системы.

Почему это важно сегодня


Даже в эпоху NoSQL фундаментальные концепции упорядочивания данных (таблицы, схемы, согласованность) берут своё начало в идеях Кодда. Если вы хоть раз в жизни писали SQL-запрос, то это случилось благодаря нему.

Ссылки



4. «The Complexity of Theorem-Proving Procedures» (1971 год)


Автор: Стивен Кук

Мы научились эффективно хранить данные, но как насчёт самих вычислений? Оказалось, некоторые задачи… мучительно сложны. В научной статье Стивена Кука было введено понятие NP-полноты. Эта концепция, по сути, гласит: «Да, некоторые задачи столь сложны, что даже суперкомпьютеры испытывают с ними трудности».

Главная идея


Кук доказал, что задача выполнимости булевых формул (SAT) NP-полная, то есть если мы волшебным образом научимся быстро решать SAT, то мгновенно «взломаем» целую кучу других задач, кажущихся нерешаемыми. Так был создан универсальный язык для обсуждения сложности задач.

Почему это важно сегодня


Когда мы встречаем в описании задачи формулировку «NP-сложная» или разбираемся, почему оптимизация маршрута убивает CPU, то пользуемся наследием Кука. Его работы привели к огромному прогрессу в сфере алгоритмов, криптографии и поиска эффективных решений (или хотя бы достаточно точных аппроксимаций).

Ссылки



5. «A Protocol for Packet Network Intercommunication» (1974 год)


Авторы: Винтон Серф и Роберт Кан

Итак, у нас есть сложные задачи и данные для хранения, но как нам соединить все эти компьютеры? Придуманный Серфом и Каном протокол TCP превратил изолированные сети в связанную сеть, позволяющую данным перемещаться по всей планете в крошечных пакетах.

Главная идея


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

Почему это важно сегодня


Если вкратце, то благодаря этому стал возможен Интернет. Каждый раз, когда вы находитесь в вебе, отправляете письмо или логинитесь на веб-сайте своего банка, вы используете TCP/IP для безопасного перемещения битов. Да, в некоторых областях применения может использоваться UDP, но базовая идея организации сетей, изложенная Серфом и Каном, всё равно объединяет все наши устройства в одну глобальную сеть.

Ссылки



6. «Information Management: A Proposal» (1989 год)


Автор: Тим Бернерс-Ли

К слову, о TCP/IP: как только машины научились легко общаться друг с другом, Тим Бернерс-Ли задался вопросом: «А что, если мы сделаем эту систему удобной для всех?» Так родилась World Wide Web.

Главная идея


Бернерс-Ли придумал идею глобальной гипертекстовой системы, состоящей из гиперссылок, URL и HTTP. Внезапно документы по всему миру перестали быть изолированными; они оказались связанными в «веб», превратив Интернет в место, удобное не только для учёных, но и для обычных людей.

Почему это важно сегодня


Мы живём в вебе: социальные сети, онлайн-шопинг, странные посты в три часа ночи — всё это стало результатом реализации предложения Бернерса-Ли. Оно навсегда изменило способ передачи знаний.

Ссылки



7. «The Anatomy of a Large-Scale Hypertextual Web Search Engine» (1998 год)


Авторы: Сергей Брин и Ларри Пейдж

Когда веб Бернерса-Ли начал развиваться, он превратился в джунгли из ссылок, страниц и мемов с котиками. Сергей Брин и Ларри Пейдж решили укротить эти джунгли. Их решение, основанное на анализе ссылок, позже эволюцировало в поисковый движок, известный нам под названием Google.

Главная идея


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

Почему это важно сегодня


Вы вводите вопрос в Google и получаете мгновенный ответ? Это всё работа PageRank (и последовавших за ним инноваций). Мы пересмотрели подход к поиску информации онлайн и зародили новую эпоху технологий на основе данных — рекламы, аналитики, машинного обучения и так далее.

Ссылки



Бонус (ещё пять статей, чуть-чуть не дотянувших до основного списка)


1. «Recursive Functions of Symbolic Expressions and Their Computation by Machine» (1960 год) – Джон Маккарти

В этой статье представлена идея Lisp и функционального программирования, проникшего в современные языки и фреймворки.

2. «Go To Statement Considered Harmful» (1968 год) – Эдсгер Дейкстра

Короткая, но яркая статья, автор которой заявил, что goto приводит к созданию хаотичного, неструктурированного кода; она начала революцию структурированного программирования.

3. «Time, Clocks, and the Ordering of Events in a Distributed System» (1978 год) – Лесли Лэмпорт

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

4. «No Silver Bullet—Essence and Accident in Software Engineering» (1986 год) – Фред Брукс

Брукс заявил, что не существует какого-то одного волшебного решения проблемы неотъемлемой сложности разработки ПО. Даже спустя десятки лет, в поисках нового громкого имени в сфере фреймворков и методологий, мы всё равно вынуждены признавать, что некоторые задачи сложны, и с этим ничего не поделать.

5. «Attention Is All You Need» (2017 год) – Васвани с соавторами

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

Заключение


Сегодня мы утопаем в новой информации: новых языках, поражающих воображение прорывах в сфере ИИ, квантовых скачках и еженедельно появляющихся новых JavaScript-фреймворках. Всё это крайне интересно, но самое главное — это фундамент. Не стоит забывать, что без полного понимания фундаментальных знаний новое будет лишь игрушками. Перечисленные в этом посте статьи — напоминание о том, откуда взялись базовые концепции: структуры данных, алгоритмы и даже сам веб.

Комментарии (5)


  1. nin-jin
    02.02.2025 16:58

    Даже когда мы говорим о квантовых вычислениях, то всё равно опираемся на описанные Тьюрингом границы.

    Какие такие границы? Что программа выдаёт либо "да" либо "нет" и никогда не выдаёт ошибку? Не хотелось бы вас расстраивать, но ни одно реальное вычислительное устройство не эквивалентно машине Тьюринга.

    Его задумка привела к созданию SQL и огромного семейства реляционных баз данных, на основе которых работают практически все банки, онлайн-магазины и корпоративные системы.

    Примечательно, что запросы они делают не к таблицам, а к индексам - этаким встроенным нереляционным СУБД внутри каждой реляционной СУБД, но через SQL это крайне не удобно делать - приходится гадать на кофейной гуще, как поведёт себя оптимизатор запросов.


    1. e_u_g
      02.02.2025 16:58

      Не хотелось бы вас расстраивать, но ни одно реальное вычислительное устройство не эквивалентно машине Тьюринга.

      Вы уверены?! Извините, где Вы учились?

      https://ru.m.wikipedia.org/wiki/%D0%A2%D0%B5%D0%B7%D0%B8%D1%81_%D0%A7%D1%91%D1%80%D1%87%D0%B0_%E2%80%94_%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D0%B0



  1. avshkol
    02.02.2025 16:58

    Вот еще претендент в этот список, из последних: https://arxiv.org/abs/2001.08361

    Перевод на Хабре: Законы масштабирования нейронных языковых моделей


  1. FlyingDutchman2
    02.02.2025 16:58

    David Parnas "On the Criteria To Be Used in Decomposing Systems into Modules" (1972)