Обложка: Как в 2012 году представляли разработку в 2020 году

Как в 2012 году представляли разработку в 2020 году

В 2012 году пользователь блога Lambda the Ultimate под ником Sean McDirmid спросил у разработчиков, как они представляют программирование через 8 лет — в 2020 году. По его словам, программирование в 2012 не сильно отличается от программирования в 2004. Поэтому можно ли ожидать каких-то кардинальных изменений за 8 лет?

Мы собрали и перевели для вас интересные вырезки из этого треда.

Серверы приложений

dmbarbour: Мне кажется, что серверы приложений станут универсальным способом разработки. Приложения будут структурированы из апплетов и формлетов и будут работать с абстрактным клиентским API. Затем такое приложение будет «компилироваться» на разные целевые платформы: для веб-браузера, мобильного или десктопного приложения. Такой способ может оказаться мобильным и эффективным.

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

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

Комментарий от Sean McDirmid: Не думаю, что в будущем приложения будут такими. Нет простого способа изменять дизайн независимо от целевой платформы. Честно говоря, не думаю, что абстракция приложений станет решением будущего, если мы не говорим о чём-то на подобии машинного обучения или ИИ.

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


Больше интеграции с носимыми устройствами

RM Schellhas: Я бы не ожидал каких-то ключевых изменений. Вероятно, мы будем больше разрабатывать для мобильных устройств, включая связь и интеграцию с большим количеством «персональных устройств». Но в целом не думаю, что от этого разработка сильно изменится.

Прим. перев. Под «персональными устройствами» автор, скорей всего, подразумевал носимые гаджеты.


Рост функционального программирования

Jon Purdy: Я думаю, что функциональное программирование продолжит набирать обороты по мере того, как разработчики будут открывать преимущество параллелизма и иммутабельности. Но это будет не Haskell, Scala или Clojure. Мне кажется, разработчики будут использовать язык, в котором:

  • есть мощные библиотеки и инструментарий;
  • доступная система типов;
  • детерминированное поведение памяти;
  • по умолчанию строгое определение;
  • коммерческий банкинг.

Сейчас в каждом функциональном языке программирования отсутствует как минимум один из этих пунктов.


Ничего значимого

Eivind Eklund: Мы можем ожидать примерно такие же изменения, как и с 2005. Маловероятно, что к тому времени появятся какие-то совершенно новые лидирующие языки программирования, ведь 8 лет для этого недостаточно.

Скорее всего, в текущих языках просто произойдут изменения, появятся новые направления в технологиях, но не те, которые популярны сейчас.

Думаю, что мы начнём шире использоваться Clojure и Scala, поскольку Java сейчас движется вниз. Может будет какая-то замена R и Matlab.


Финансовая ответственность за баги

Robbert van Dalen: В 2020 году у нас будет действовать закон, который возложит на корпорации финансовую ответственность за их неисправное программное обеспечение (за исключением ПО до 2020 года). Но может такой закон и не примут, как это случилось с Базелем III.


Нанотехнологии и 3D-интерфейсы

markrendle: Мне кажется, мы продвинемся в области нанотехнологий. Мы сможем создавать микроскопические устройства, запрограммированные для конкретных целей. Компиляторы будут «создавать» устройства, а не биты.

Это будет похоже на Алмазный Век Нила Стивенсона, который, как мне кажется, становится всё ближе после каждого пресс-релиза из MIT или Стэнфорда. Сейчас, например, уже ведутся работы над программированием РНК для создания медицинских наноустройств, которые будут нацелены на раковые клетки и их полимеризацию.

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

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

UI-фреймворки уйдут в прошлое вместе с мышками, клавиатурами и сенсорными экранами. Перед нами появится новый вид интерфейса, который будет проецироваться прямо в пространстве или в линзы очков (а ещё позже, возможно, в активные контактные линзы или даже глазные импланты). Мы будем взаимодействовать с этим 3D-интерфейсом прикасаясь к нему или двигая руками, за которыми будут следить датчики движения.

Возможно.


Ленивые молодые разработчики

scottmcl: В 2020 году 99% программ будут созданы в основном молодёжью с минимальной технической подготовкой и сомнительными способностями учиться. Их решения будут создаваться как можно быстрее и дешевле.


Больше кроссплатформенности

John Nagle: Всё больше разработок будут происходить на платформах, отличных от целевой. Разрабатывать для ПК долгое время можно было только на ПК — это считалось нормой.

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


ИИ или перфокарты

jrincayc: Самые быстрые суперкомпьютеры уже обладают вычислительной мощностью больше, чем у человеческого мозга (Computers vs Brains, Scientific American ноябрь 2011 ). Предполагаю, что где-то между 2020 и 2030 мы будем программировать, делая запрос компьютеру, который будет обладать собственной волей. Либо мы уничтожим все передовые технологии и вернёмся к перфокартам.


Предлагаем запустить похожий тред с представлением о программировании через 9 лет. Как по вашему мнению будет выглядеть разработка в 2030? Делитесь догадками в комментариях.

Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.

Перейти к регистрации