Сегодня невозможно себе представить бизнес, работающий исключительно в офлайне. ИТ плотно интегрируются в каждую отрасль, одновременно изменяя условия работы и «правила игры». Так, кибербезопасность промышленных объектов и банковских счетов сегодня может быть даже важнее их физической охраны, а вычислительные мощности подчас развиваются быстрее, чем производственные. Разработчики ПО стали участниками постоянной гонки — с современными киберугрозами, нарастающей скоростью обработки данных и ростом их объемов, а также развитием цифровых устройств. Можно выделить семь главных на сегодняшний день трендов в разработке ПО.
Тренд № 1. Разработка в облаках
В 2018-2019 годах объем рынка облачных решений составлял более $200 млрд. А с переходом большей части сотрудников на удаленный режим работы облака стали еще более важным инструментом для разработчиков — появляется всё больше облачных сред для совместной разработки. В частности облачная среда для разработки Visual Studio Codespaces позволяет девелоперам оставаться продуктивными и работать из любого места на Земле.
Упрощается удаленная совместная работа, к сеансам которой можно подключаться прямо из браузера. Разработчики ПО используют одно и то же пространство для кода — как для решения краткосрочных задач, так и для создания новых функций.
В свою очередь, облачные среды дают разработчикам ряд бенефитов:
- Сокращается время, необходимое для подключения к новым проектам или задачам.
- Растет производительность облачных сред разработки, часто она даже лучше, чем у локальных сред.
- Есть возможность быстрого и простого переключения между браузерным редактором и облачной средой (например, Visual Studio Code).
- Стоимость облачных решений для разработки снижается. Например, в Visual Studio Codespaces разработчик платит только за время и ресурсы, которые он использует, то есть пока он активен и использует вычислительные мощности Azure.
- Общий доступ к коду — вне зависимости от того, какое приложение создает разработчик, на каком языке программирует или какую операционную систему использует, доступ к проекту можно предоставить любому из коллег, при этом отказываться от любимых инструментов никому не потребуется.
Облачные технологии давно стали трендом для решения бизнес-задач. Например, Microsoft Azure используется в самых разных отраслях: от крупномасштабного производства до розничного ритейла. Облачное хранилище и базы данных от Azure поддерживают платформу .NET, языки программирования Java, JavaScript (Node.js), Python, PHP и Go.
Сегодня облачные решения как никогда близки к определению «гибридных облаков», где создаются и используются приложения для работы в публичном облаке и локальных ЦОД. Отсюда еще одно направление в этом тренде — единообразие как важнейший фактор для эффективной разработки.
Компании, в свою очередь, останавливают свой выбор на гибридных технологиях, чтобы получить все бенефиты от использования локального оборудования вкупе с облачными инновациями. Решение Azure Stack позволяет работать с облачными сервисами в локальных средах — с требуемым уровнем защиты, возможностями использовать ИИ-модели, а также с возможностями DevOps для любой среды или облака. А для перехода от использования гибридного облака к доступности инновации Microsoft создал Azure Arc — набор технологий, предоставляющих новые гибридные сценарии для заказчиков и позволяющих использовать сервисы Azure в любой инфраструктуре. Теперь они доступны для серверов Linux и Windows, а также кластеров Kubernetes на любой инфраструктуре — локально, в любых облачных средах и на устройствах граничных вычислений.
Гибридный подход используется и в работе приложений, которые раньше работали только на подключенных к облаку IoT-устройствах с небольшими мощностями. Но сегодня для работы умных гаджетов уже требуются большие вычислительные мощности. Для это требуется решение задач в сфере граничных вычислений и оптимизированная работа с данными. Такие решения, как Azure SQL Database, позволяют разработчикам с легкостью переносить свои приложения для произведения вычислений на устройствах без необходимости изучать новые инструменты и языки.
Один из примеров — использование квантовых вычислений. Ряд компаний, среди которых Microsoft, Honeywell, Rigetti, открывают доступ к прототипам квантовых компьютеров через публичные облака. Таким образом, у разработчиков и других ИТ-специалистов уже есть уникальная возможность — получить доступ к колоссальным мощностям для задач, требующих существенно большие ресурсов.
Тренд № 2. Квантовые вычисления
В 2017 году появился совершенно новый язык программирования Q#. Вместе с ним компания Microsoft выпустила в том же году бесплатную версию пакета средств квантовой разработки Quantum Development Kit, включающий в себя эмулятор вычислений, работающий в локальной среде и облаке Azure.
Разработчикам был открыт доступ к следующему шагу технологического развития вычислительных мощностей — к квантовым компьютерам. Именно эти мощные инструменты будут необходимы человечеству для расчета сложных математических моделей и решения комплексных многопараметрических задач. А значит, нужно обучить как можно больше специалистов писать под них ПО на Q#.
В прошлом году на конференции Build 2019 Microsoft презентовала открытый код компиляторов и симуляторов на Q#, что стало следующим шагом в развитии нового комьюнити разработчиков и сделало квантовые вычисления более доступными. За год Quantum Development Kit был загружен свыше 200 тыс. раз.
Отдельно компания развивает Azure Quantum — экосистему с открытым кодом. Она позволяет производить симуляцию квантовых вычислений в облаке и получать доступ к подлинно квантовому оборудованию компаний 1QBit, Honeywell, IonQ и QCI.
В этому году на Build 2020 Microsoft представила новые бесплатные учебные модули для платформы Microsoft Learn, позволяющие разработчикам пройти обучение по работе с квантовыми вычислениями с использованием языка программирования #Q и Quantum Development Kit.
Очевидно, что в ближайшие десятилетия именно квантовые технологии лягут в основу новых криптографических систем. То есть появятся компьютеры, способные взламывать наименее стойкие традиционные шифры. Уже сегодня идёт разработка первой волны «послеквантовых» систем шифрования, которые требуют большое количество квалифицированных специалистов. Подготовка разработчиков для работы в этом сегменте ведется в ведущих мировых ИТ-вузах. Не исключение и Россия — соответствующих специалистов готовят в МГУ, Университете Иннополис, ИТМО и Политехе. Образование — важный этап работы с квантовыми компьютерами. Когда те выйдут на ожидаемые рабочие показатели, в мире уже будет достаточное количество разработчиков, способных эффективно их использовать.
Тренд № 3. Малокодовые разработки
Малокодовая (low code/no code), или упрощенная разработка не только не теряет своей актуальности, но и становится всё более востребованной. Главный ее плюс даже не технологического толка — она демократизирует индустрию. По сути, разработчиком может стать каждый.
Сейчас можно войти в профессию разработчика, даже не имея соответствующего образования. А новые инструменты позволяют создавать решения без специализированных знаний. Особенно это актуально в России, где доля ИТ-специалистов составляет всего 2,4% от экономически активного населения, что почти втрое меньше, чем у соседней Финляндии. Через четыре года потребность в топовых работниках сферы ИТ будет составлять 300 тыс. человек в год. В таких условиях обучить нужное количество специалистов крайне тяжело (особенно учитывая консервативность сферы высшего образования), зато зайти в профессию, начав с малокодовой разработки, может даже школьник. С другой стороны, высшее образование активно адаптируется к новым условиям. С сентября прошлого года девять российских вузов запустили магистерские программы при поддержке Microsoft. Студенты там проходят актуальные курсы по ИИ, машинному обучению, Big Data, интернету вещей и так далее.
Сегодня для создания программного продукта используются специальные платформы, в которых есть готовые инструменты и модули программного кода. Самыми популярными (40% всех разработок для приложений) в 2019 году малокодовыми платформами были PowerApps и Power Automate — корпоративные разработки от Microsoft. Специалисты рынка утверждают, что в 2020 году эти платформы в качестве основного поставщика будут использовать более 50% разработчиков.
В центре концепции, поддерживаемой PowerApps, лежит простая мысль: «Знать, что именно нужно сделать, должно быть целиком и полностью достаточно для того, чтобы сделать это». По сути, это и реализует платформа для создания бизнес-приложений в визуальном режиме. В нее уже заложены готовые компоненты, не требующие вручную писать программный код.
Тренд № 4. Искусственный интеллект доступен каждому, но он должен быть этичным
Демократизация ИИ положительно влияет на индустрию в целом, поскольку расширяет возможности разработчиков, делая их идеи более реализуемыми. За последние 10 лет технологии машинного обучения и искусственного интеллекта из «лабораторных изысков» превратились в реально используемые инструменты. Если в 2011 году Microsoft анонсировала только основу для семейства Services, набора готовых API для различных интеллектуальных задач — облачный сервис для автоматического перевода Translator API, то спустя пять лет появилась единая платформа Bot Framework для создания ботов с акцентом на кроссплатформенность.
А сегодня в Azure доступно множество когнитивных сервисов для разработчиков по самым разным направлениям: от компьютерного зрения и распознавания лиц до лингвистического анализа и выдачи потребительских рекомендаций. Главная особенность — для создания и работы с ИИ, как правило, не требуется специальных знаний. Сервис Azure Machine Learning Studio позволяет создать самообучающиеся алгоритмы даже специалистам, не знакомым с тонкостями работы с машинным обучением и программированием в целом.
Одно из главных событий конференции Build 2020 — создание одного из пяти самых мощных суперкомпьютеров в мире. Компания Microsoft разработала его на базе облака Azure для некоммерческой исследовательской организации OpenAI. Суперкомпьютер будут использовать для тренировки следующего поколения массивных распределенных ИИ-моделей. Фактически OpenAI и Microsoft планируют совместить разработки и коммерческое использование «пре-AGI (Artificial General Intelligence)» сервисов из облака, чтобы создать дружелюбный и полезный универсальный ИИ — то есть интеллект, подобный человеческому.
Кроме того, совершенствуются и инструменты для использования машинного обучения, которые помогают разработчикам лучше понимать поведение ML-моделей, контролировать их, а также обеспечивать конфиденциальность данных в течение всего цикла работы с ними. Один из главных трендов в этом сегменте — формирование ответственного и этичного подхода к разработке алгоритмов. Используя модели, прозрачность которых обеспечивается еще на этапе их создания, разработчики наглядно демонстрируют клиентам, что делают эти модели и как именно они помогают. Люди испытывают доверие, благодаря чему можно оценить преимущества машинного обучения. Новый функционал позволяет корректировать такие проблемы, как нерепрезентативность датасета или незащищенность используемых данных. В компании уже анонсировали, что он будет доступен в Azure Machine Learning и в виде открытого кода на GitHub.
Тренд № 5. Open Source
Согласно отчету GitHub, 2019 год стал настоящим годом open source проектов. Программы теперь создаются не закрытыми группами разработчиков, а в рамках многочисленных комьюнити. Находить команды для тех или иных проектов становится проще, в том числе благодаря таким веб-сервисам для совместной разработки, как GitHub.
Большинство ИТ-проектов перестают быть изолированными. Любой новый проект, как правило, уже интегрирован и связан с действующими проектами, а иногда и множеством.
Крупные корпорации разворачиваются в сторону открытого кода и всё больше признают вклад разработчиков по всему миру в общее дело. Именно открытый код стал источником инноваций в сфере ПО. Причина успеха проста — операционные системы с open source сохраняют лидирующие позиции в корпоративном секторе. Прогнозируется еще больший рост применения таких открытых проектов. Кроме того, растет использование платформ с открытым исходным кодом, таких как Docker и Kubernetes.
Microsoft тоже активно поддерживает проекты на открытом коде. Многие проекты выходят с открытым исходным кодом, в том числе подсистема Windows для Linux (WSL).
Компания также является разработчиком PowerShell и Visual Studio Code, а в 2018 году купила GitHub. В 2019 году браузер Microsoft Edge перешел на движок с открытым исходным кодом Chromium. А среди презентованных на конференции Build 2020 решений оказалось открытие кода интерактивной веб-платформы для совместной работы Fluid Framework, представленной год назад на Build 2019. Вскоре функционал Fluid Framework частично будет доступен не только разработчикам, но и конечным пользователям: ее компоненты и рабочие среды появятся на Office.com и в веб-версии Outlook.
Президент компании Microsoft недавно заявил, что корпорация позволяла себе неверные высказывания относительно open source и Linux.
«Сегодня Microsoft является единственным крупнейшим участником проектов по созданию ПО с открытым исходным кодом, когда речь идет о бизнесе. Если посмотреть на GitHub, то мы видим его как “дом” для разработки программ с открытым исходным кодом, а также знаем про свою ответственность за то, чтобы сделать его безопасным и продуктивным “домом” для разработчиков», — заявил Смит.
Тренд № 6. Смешанная и виртуальная реальности
В отличие от чистой VR, смешанная реальность имеет более прикладной характер, поскольку носит не только развлекательный характер. В частности, смешанную реальность могут использовать разработчики для своей профессиональной деятельности. Например, можно работать со сложными моделями во время их обучения. Смешанная реальность позволяет учитывать множество факторов реальной жизни. Кроме того, специалисты могут создавать высококачественные фотореалистичные рендеры в смешанной реальности для таких прикладных областей, как архитектура, дизайн продуктов, производство и многих других.
Платформа Windows Holographic, представленная на технологической конференции Build 2015, изменила способы взаимодействия с цифровым миром, который с каждым днем становится не просто дополнительной реальностью, а важной основой современной цивилизации.
Проект Kinect (дополнение к игровой консоли Xbox) фактически стал прообразом для гарнитуры смешанной реальности Hololens, использующей 64-разрядную ОС Windows Holographic. Именно этот проект стал отдельным универсальным предложением для разработчиков — Azure Kinect Developer Kit, оснащенный датчиками, позволял облачной ИИ-системе тренировать сложные модели компьютерного зрения и речи. В комплект входят датчик глубин, массив пространственных микрофонов, видеокамера и датчик пространственной ориентации. Один из важнейших компонентов Azure Kinect Developer Kit, времяпролетный датчик глубины, изначально был разработан для второй редакции гарнитуры смешанной реальности Microsoft — HoloLens 2.
Еще один продукт компании — это симулятор AirSim, имитирующий полет дронов в условиях окружающего мира с высокой детализацией. По сути, это кроссплатформенный проект с открытым исходным кодом на базе движка Unreal Engine. В основе работы AirSim лежит моделирование физики полета мультикоптера. Программа может генерировать трехмерное окружение дрона с реалистичной физикой и внешним видом, а также загружать другие карты, созданные для движка Unreal Engine.
Программа позволяет в реальном времени получать информацию с различных датчиков и камер беспилотника, а также строить карту мира. На данный момент стимулятор поддерживает только мультироторные беспилотники, но разработчики собираются добавить поддержку беспилотных устройств любой сложности, включая автомобили.
Тренд № 7. Кроссплатформенность
Не секрет, что если сайт не адаптирован к просмотру с мобильного телефона, теряется около 35% потенциальных покупателей. Эта же проблема касается и мобильных приложений — не все желают устанавливать их на смартфон, который и без того перегружен информацией. Поэтому главная задача программистов сводится к созданию площадок, которые будут одинаково хорошо просматриваться с разных операционных систем и браузеров. Пока существует несколько препятствий к этому:
- интерфейсы ОС отличаются, поэтому и элементы на них просматриваются по-разному;
- приходится довольствоваться «усредненной» версией, которая не всегда становится лучшим решением с точки зрения пользователей;
- топовые языки программирования — Java и Python — справляются с задачей кроссплатформенности только в сочетании с HTML 5.
По данным компании Similar Web, глобальный мобильный трафик в 2019 году вырос на 30,6% относительно 2017-го, а в настольном сегменте он просел на 3,3%. Именно поэтому основные требования заказчиков к созданию сайтов — кроссплатформенность и адаптивность.
Чтобы обеспечить кроссплатформенную разработку, Microsoft в 2011 году создала фреймворк Xamarin на основе .NET. С его помощью можно писать продукты для различных мобильных ОС. При этом писать код можно на любом языке программирования. Xamarin имеет хорошую производительность и с каждым годом всё чаще используется разработчиками.
А в 2017 году компания представила систему проектирования пользовательских интерфейсов Microsoft Fluent Design, которая предлагает разработчикам интуитивный, адаптивный и инклюзивный подход к созданию приложений для различных типов устройств, способных взаимодействовать между собой.
На конференции Build 2020 Microsoft представила Project Reunion — платформу, упрощающую разработку приложений для Windows 10. Если раньше разработчики были вынуждены выбирать между классической архитектурой Win32 (она совместима с предыдущими версиями Windows) и Universal Windows Platform, работающей на Windows 10, то новая платформа объединяет все программные интерфейсы, а главное — сохраняет обратную совместимость.
Кроме того, Project Reunion позволит обновить уже написанные приложения вне зависимости от языка, на котором это было сделано — C++, React Native или .NET. Благодаря нативной библиотеке интерфейса WinUI 3 приложения будут корректно адаптироваться и масштабироваться в зависимости от устройства.
ИТ-индустрия развивается в направлении демократизации и повышения доверия к ИИ и моделям машинного обучения. Задачи разработчиков тоже меняются — на первый план выходит экономия затрат, как материальных, так и вычислительных, повышение объективности в работе ИИ, а также обеспечение кроссплатформенности и хорошей интеграции.
Следующее десятилетие вполне может пройти под девизом «Разработчиком может быть каждый!». Требования к наличию специальных знаний снижаются, а входной порог в специальность становится ниже. Эти и другие тренды разработки нашли свое отражение, рассказали в рамках ежегодной технологической конференции Build 2020.