Многие концепции, которые были лишь теоретическими 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 страницах для мобильных версий сайтов на поддоменах отпала. Вместо этого мы создаём обычные страницы для мобильных версий сайтов на поддоменах.