Я увидел этот вопрос на Quora и начал писать ответ. Но ответ получился слишком большим, так что я превратил его в эту статью.


Вот часть изменений в случайном порядке, которые я заметил в программировании за последние 20 лет:


  • Многие концепции, которые были лишь теоретическими 20 лет назад, сегодня широко применяются на практике. Например, такие функциональные парадигмы как неизменяемость объектов, хвостовая рекурсия, ленивые коллекции, сопоставление с шаблоном, функции первого класса и взгляд свысока на тех, кто всё это не использует.
  • «Десктопным приложением» многие неиронично называют упакованный браузер со страницей по умолчанию и без адресной строки.
  • Объектно-ориентированное программирование (ООП) сдало позиции, хотя всё ещё гораздо популярнее любой из альтернатив. Молодые языки типа Go, Rust и Swift всё активнее используют типажи. Композицию повсеместно предпочитают наследованию.
  • Из-за распространённости многоядерных процессоров поддержку параллельного программирования в языках сегодня встретить легче, чем поддержку примитивных обращений к операционной системе 20 лет назад. Таким образом, в обиход прочно вошли асинхронные примитивы (типа async/await), параллельные сопрограммы вроде «горутин» в Go или каналов в D, семантика композиционности («composability semantics») вроде механизма «observables» при реактивном программировании.
  • Пиксель перестал быть подходящей единицей измерения.
  • Сборка мусора стала обычным способом безопасного программирования, но ей на пятки наступают более молодые альтернативы типа семантики для указания времени жизни объектов в Rust и язвительных шуток на код-ревью.
  • 3 миллиарда девайсов используют Java. Правда, это число не менялось уже лет десять.
  • Система управления зависимостями стала жизненно важной частью любого языка. Никто не хочет вручную скачивать или устанавливать что-либо. 20 лет назад, скачав zip архив, распаковав его в папку проекта, мы обновляли файл конфигурации и молились, чтобы ничего не сломалось.
  • Быть командой разработчиков теперь означает необходимость выполнять таинственный ритуал: всем вместе 15 минут с утра рисовать оккультные символы на стикерах.
  • Набор инструментов при работе с языком гораздо шире. Раньше был только компилятор и, если повезёт, отладчик. Сегодня они обычно идут в комплекте с линтером, средством форматирования кода, шаблонизатором, возможностью самообновления и списком доводов для использования в холиварах против конкурирующих языков.
  • Даже языки программирования приняли участие в дебатах «табы или пробелы».
  • Adobe Flash, который был единственным рабочим способом реализовать нормальный интерфейс в вебе, к счастью, ныне почил. Правда, на смену единому стандарту пришли три разных фреймворка с абсолютно разными моделями.
  • IDE и языки программирования удаляются друг от друга. 20 лет назад был язык и IDE, специально разработанная для него, вроде Eclipse для Java, Visual Basic, Delphi и т.п. Теперь же у нас есть универсальные редакторы типа VS Code, способные поддерживать множество разных языков и возможностей.
  • Код принято выполнять за тремя слоями виртуализации. Это как минимум. Код, который выполняется на голом железе? Не, это было бы излишне производительно.
  • Кросс-платформенная разработка — стандарт из-за кучи архитектур, мобильных девайсов, облачных серверов, встроенных IoT систем. 20 лет назад разработка велась почти эксклюзивно для ПК.
  • Код стали запускать локально гораздо реже.
  • Документация теперь только в онлайне и называется Гугл. Оффлайновой документации почти нет. А когда она есть, никто не знает, где она находится.
  • Многие не считают туториалы полезными, если только это не видеоролик. Даже если его просмотр займёт больше времени, чем прочтение текста.
  • Говорят, что до изобретения StackOverflow приходилось задавать вопросы живым людям.
  • Люди занимаются разработкой на Mac OS.
  • Подключение к интернету — правило, а оффлайн — исключение. Раньше было ровно наоборот.
  • Защита от взлома — то, о чём сейчас приходится думать при создании программы.
  • Мобильные девайсы способны отображать обычные страницы, так что нужда в WAP страницах для мобильных версий сайтов на поддоменах отпала. Вместо этого мы создаём обычные страницы для мобильных версий сайтов на поддоменах.
  • Мы с радостью выкладываем наш код в Open Source. Конечно, кроме кода, за который нам стыдно.
  • В индустрии гораздо больше талантливых женщин, людей не европейской внешности, и представителей ЛГБТ сообщества — спасибо всем, кто боролся против дискриминации. Не думаю, что полное равноправие уже достигнуто, но ситуация гораздо лучше, чем она была 20 лет назад. (не забывайте, что это перевод — прим. перев.)
  • Утечка данных пользователей — типовое событие. В таких случаях в корпоративный блог пишется пост с рекомендацией срочно поменять пароль. Прощения обычно не просят.
  • Работать программистом удалённо теперь легче, чем когда-либо. За это спасибо технологиям видео-конференций, повсеместному доступу в интернет и домашним кофе-машинам.
  • Мы больше не используем IRC для связи. Мы выбрали гораздо более раздутую альтернативу под названием Slack, лишь бы не пришлось вбивать адрес сервера вручную.
  • Мы выполняем программы на видеокартах.
  • Ваш продукт не стоит и копейки, если не полагается на блокчейн и AI. Да, даже если централизованная и управляемая алгоритмами версия проще, эффективнее и быстрее.
  • Один гигабайт — недостаточный объём.
  • Из-за атак по сторонним каналам мы не можем доверять даже физическим процессорам.
  • Значительная часть программирования сейчас происходит во время игры в настольный футбол.
  • Так как у нас появились более быстрые ЦПУ, сложные вычисления мы стали делать на Python, не на Fortran. Так что вычисления занимают примерно то же время, что занимали 20 лет назад.
  • Создание новых языков программирования или даже создание новых девайсов — обычное, нормальное хобби.
  • Модульное тестирование, как и любая другая полезная вещь, которую постиг хайп, стало использоваться даже там, где не нужно, и в конечном итоге превратилось в религию.
  • Коллеги хмурятся, когда узнают, что вы храните пароли пользователей в открытом виде. Но ничего не говорят: они сами так делают.