[Перевод] 15 тенденций в области разработки программного обеспечения в 2024 году

Содержание:

Интеграция искусственного интеллекта и машинного обучения

Искусственный интеллект и машинное обучение уже стали неотъемлемыми составляющими разработки программного обеспечения, и они продолжают устанавливать всё новые стандарты функциональности и производительности. Технологии AI/ML, от алгоритмов прогнозирования до автоматизированных проверок кода, повышают эффективность и расширяют возможности в различных отраслях.

Среди самых заметных прорывов 2023 года было появление расширенных функций ChatGPT, включающих возможности генерации кода и текста;, а также заметное развитие искусственного интеллекта по части создания изображений на основе текстовых запросов.

Разработчики стали чаще использовать инструменты искусственного интеллекта при написании кода — и это не только ускоряет процесс кодирования, но и помогает сократить количество человеческих ошибок. Например, Copilot от GitHub предлагает разработчикам фрагменты кода и целые функции в режиме реального времени. Аналогичным образом, инструменты аналитики на базе искусственного интеллекта, такие как Tableau, позволяют бизнесу получать выводы из своих данных более эффективно, чем когда-либо.

Несомненно, в 2024 году продолжится развитие и интеграция этих технологий в рабочие процессы — особенно по части автоматизации задач по работе с написанием текста, кода и созданием изображений.

Блокчейн за пределами криптовалют

Блокчейн находит своё применение не только в сфере криптовалюты. Рост числа мобильных приложений приводит к увеличению числа приложений на основе блокчейна.

К основным характеристикам систем на основе блокчейн-ориентированного программного обеспечения (BOS) относятся:

  • Репликация данных: данные дублируются и хранятся в тысячах систем, что значительно повышает безопасность данных.

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

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

  • Криптография с открытым ключом: процесс транзакций в BOS основан на криптографии с открытым ключом, что обеспечивает безопасность и верифицируемость транзакций.

Однако у блокчейна есть и свои ограничения: масштабируемость и энергопотребление остаются препятствиями для его более широкого внедрения.

Микросервисы с множественными средами выполнения

Микросервисная архитектура — это метод разработки программных приложений в виде набора небольших, независимо развёртываемых и модульных сервисов, каждый из которых работает в собственном процессе и взаимодействует с помощью легковесных механизмов, часто API на основе HTTP.

0a46d35298ff8397695c7c7911f21561.jpeg

Ожидается, что в 2024 году микросервисная архитектура продолжит свой рост и постепенно эволюционирует в микросервисы с множественными средами выполнения (multi-runtime microservices). Эта архитектура также известна как MACH. MACH архитектура позволяет писать различные сервисы на разных языках программирования, использовать разные технологии хранения данных и развёртывать их в разных средах выполнения. Такое разнообразие сред выполнения отвечает специфическим потребностям и характеристикам каждого сервиса, позволяя выбрать индивидуальный и оптимизированный подход для каждого компонента приложения.

Основным преимуществом микросервисной архитектуры с множественными средами выполнения является её способность использовать сильные стороны различных технологий и платформ. Например, сервис, который требует высокой вычислительной мощности, может быть развёрнут в среде выполнения, специально предназначенной для таких задач;, а другой сервис, который работает с данными в режиме реального времени, может использовать другую среду, оптимизированную для скорости и низких задержек. Такой подход гарантирует, что каждый сервис будет работать в своей идеальной среде. Также это облегчает процесс обновления и обслуживания — изменения в одном сервисе не обязательно повлияют на другие.

Кроме того, микросервисы с множественными средами выполнения поддерживают более гибкий процесс разработки, позволяя командам одновременно работать над разными сервисами без зависимостей.

Кибербезопасность 

Появление всё более изощрённых киберугроз делает безопасность одним из важнейших аспектов разработки. Стандартной практикой становится интеграция передовых протоколов безопасности и использование искусственного интеллекта для обнаружения угроз. Фокус смещается с реактивных на проактивные меры безопасности:

  • Акцент на DevSecOps. Компании интегрируют безопасность в свои процессы DevOps, создавая культуру, в которой безопасность является общей ответственностью всех заинтересованных сторон. Такой подход гарантирует, что вопросы безопасности являются неотъемлемой частью всего жизненного цикла разработки программного обеспечения.

  • Архитектура Zero Trust. На смену традиционной концепции периметра безопасности приходит фреймворк Zero Trust, который работает по принципу «никогда не доверяй, всегда проверяй». Это означает проверку каждого пользователя и устройства — независимо от того, находятся ли они в сети организации или за её пределами.

  • Более широкое использование шифрования. В связи с участившимися случаями утечки данных растёт тенденция к использованию надёжных методов шифрования для защиты данных — как при передаче, так и в состоянии покоя. Всё большее распространение получают передовые криптографические методы, такие как гомоморфное шифрование, позволяющее обрабатывать данные, которые остаются зашифрованными.

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

  • Расцвет сети кибербезопасности (cybersecurity mesh). Эта концепция подразумевает гибкий, модульный подход к безопасности, при котором каждое устройство имеет свою собственную защиту, например брандмауэры и сетевые средства защиты. Это помогает создать более отзывчивую и адаптируемую инфраструктуру безопасности, способную справиться с динамичным характером современных киберугроз и сделать всю сеть более безопасной.

Дальнейшее внедрение VR и AR  

Поскольку технологии виртуальной (VR) и дополненной (AR) реальности становятся всё более доступными, спрос на такие приложения стремительно растёт во многих отраслях:

  • Образование: VR-технологии делают возможным проведение интерактивных уроков истории, географии и естественных наук;, а также предлагают безрисковое медицинское обучение с помощью виртуальных симуляторов проведения операций. Например, с помощью Google Expeditions и других образовательных AR-приложений учащиеся могут исследовать исторические места, препарировать виртуальных животных или изучать 3D-модели сложных предметов.

  • Здравоохранение: Например, AR-приложение AccuVein помогает обнаружить вены для более лёгкого введения иглы, а инструменты планирования хирургических операций накладывают 3D-модели на анатомию пациента для более точного хирургического руководства.

  • Бизнес: VR всё чаще используется в бизнесе для создания прототипов, обучения персонала и обслуживания клиентов. В сфере недвижимости компании используют VR/AR-инструменты для организации виртуальных туров по объектам недвижимости;, а также AR-приложения для визуализации того, как мебель или ремонт могут выглядеть в помещении перед совершением покупки.

Среди всего прочего, в 2024 году нас ожидают такие захватывающие события, как:

  • Гиперреалистичная виртуальная реальность: VR теперь может имитировать ощущения реального мира, например, шум дождя или запах летнего луга, тем самым стирая грань между виртуальностью и реальностью. И эта тенденция будет набирать обороты.

  • Расширение социальных VR-платформ: Социальные VR-платформы позволяют пользователям взаимодействовать в реальном времени, устраивать виртуальные вечеринки, посещать концерты и участвовать в многопользовательских играх.

  • Интеграция искусственного интеллекта в VR: Искуственный интеллект персонализирует опыт, адаптируясь к поведению пользователя, создавая динамические среды, которые реагируют на индивидуальные предпочтения и действия.

В этом видео вы найдете примеры гиперреалистичного VR:

Устойчивая разработка программного обеспечения

Зелёные вычисления и устойчивые методы разработки программного обеспечения привлекают всё больше внимания в связи с проблемами экологии. Разработчики всё больше внимания уделяют экологичным решениям, поддерживая такие инициативы, как Green Software Foundation и Sustainable Web Manifesto, которые продвигают энергосберегающие методы кодирования. Это подразумевает разработку кода, который сокращает время обработки, загрузки и запросов данных на сервере.

Ключевые аспекты устойчивой разработки программного обеспечения это:

  • Оптимизация программного обеспечения: оптимизация кода для снижения энергопотребления и повышения производительности.

  • Развёртывание: использование ресурсов только по мере необходимости, например, «ленивых» функций и облачных приложений для минимизации потерь энергии.

  • Интеграция: сокращение обработки данных между системами, чтобы избежать ненужного использования данных.

  • Хранящиеся данные: ограничение количества хранящихся данных и продолжительности их хранения в системе.

  • Размер данных: использование мультимедиа меньшего размера, где это возможно — для снижения потребностей в хранении и обработке данных.

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

  • Отказ от сторонних компонентов: сокращение зависимости от крупных внешних компонентов, которые потребляют больше ресурсов.

  • Архитектура программного обеспечения: использование архитектур, повышающих эффективность и снижающих энергопотребление.

  • Выбор центра обработки данных: выбор хостинговых сервисов, которые придерживаются «зелёных» практик.

Вычисления

В этом году мы ожидаем прогресса в ключевых областях вычислений: Function-as-a-Service, облачные и граничные вычисления, а также, что особенно важно, квантовые вычисления.

Внесерверная обработка данных (FaaS)

Бессерверные вычисления, или функции как сервис (Functions as a Service, FaaS), находятся на подъёме. Ведущими в этой области являются AWS Lambda, Azure Functions и Google Cloud Functions. FaaS позволяет разработчикам создавать и запускать приложения и сервисы без управления инфраструктурой —, а это ведёт к более эффективным и экономичным процессам разработки.

  • Один из ярких примеров — Netflix, использующая AWS Lambda для различных целей в рамках своей платформы потокового вещания. Netflix использует Lambda для таких задач, как кодирование видео, обработка аутентификации пользователей и управление бэкенд-процессами. Когда пользователь загружает видео, запускаются функции Lambda для кодирования и обработки контента в различные форматы, подходящие для потоковой передачи на различных устройствах. Это позволяет Netflix динамически масштабировать ресурсы в зависимости от спроса без управления серверами, что обеспечивает бесперебойную потоковую передачу для пользователей и оптимизирует расходы.

  • Spotify использует Google Cloud Functions для решения различных задач на бэкенде в рамках своей музыкальной платформы. Функции запускаются для управления аутентификацией пользователей, обработки пользовательского контента и выполнения задач на бэкенде для алгоритмов музыкальных рекомендаций, обеспечивая бесперебойный и персонализированный пользовательский опыт.

  • Дочерняя компания IBM, The Weather Company, использует IBM Cloud Functions для обработки и анализа больших объёмов погодных данных. Бессерверные функции позволили им выполнять обработку данных в режиме реального времени, генерировать прогнозы и предоставлять пользователям персонализированные оповещения о погоде в зависимости от их местоположения без необходимости управления базовой инфраструктурой.

257f93e5e4e4ed7c68bb6accaecc810d.jpeg

Эти FaaS-решения, характеризующиеся событийно-ориентированной архитектурой, автоматически запускают выполнение в ответ на запросы и корректируют использование ресурсов по мере необходимости. Масштабируемость и отзывчивость упрощают процесс разработки, что особенно удобно для приложений с высоким трафиком. Бессерверные вычисления всё чаще интегрируются с IoT, чат-ботами и виртуальными помощниками.

Расширение облачных вычислений

Ожидается, что в 2024 году облачно-ориентированные технологии претерпят значительную эволюцию. Они станут более удобными для пользователей, предлагая повышенную производительность, экономию средств и большую гибкость при решении ИТ-задач. Amazon Web Services (AWS), Microsoft Azure и Google Cloud Platform расширяют свои сервисы, предлагая пользователям более продвинутую аналитику, возможности машинного обучения и улучшенные средства безопасности.

В этом видеоролике — обзор различных областей применения облачных вычислений:

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

Всплеск периферийных вычислений

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

e33904fa3569f02b3ca46f0d3b1459be.jpeg

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

Квантовые вычисления: новый рубеж

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

В этом видеоролике даётся краткое объяснение основополагающих принципов квантовых вычислений:

Хотя до повсеместного внедрения квантовых вычислений ещё далеко, их влияние на разработку программного обеспечения уже начинает проявляться. Среди лидеров — такие тяжеловесы, как IBM, Microsoft, Google, D-Wave и Amazon. IBM является лидером со своими Quantum System One и Two, оснащёнными мощными процессорами с количеством кубитов до 127. Microsoft фокусируется на топологических кубитах, интегрируя их в свою облачную платформу Azure для более широкого доступа. Лаборатория Google Quantum AI нацелена на разработку практического универсального квантового компьютера, а компания D-Wave специализируется на квантовом отжиге, решая сложные задачи оптимизации. Компания Amazon с помощью своих AWS Centre for Quantum Networking и Amazon Braket создаёт обширную инфраструктуру для квантовых вычислений.

Языки программирования

В 2024 году в программировании по-прежнему будет доминировать Python, при этом заметно возрастёт доля Rust.

Python

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

Python — самый популярный язык программирования с самыми высокими темпами роста (19%) согласно индексу PYPL, который измеряет частоту поиска руководств по языку в Google.

В опросе Stack Overflow 2023 года Python назван самым желанным языком для изучения разработчиками. Опередив Java впервые с 2012 года, Python теперь не просто входит в число двух лучших языков для разработки веб-приложений. Он также трижды за пять лет получал награду TIOBE Programming Language of the Year — признание, присуждаемое языку с наибольшим ежегодным ростом рейтинга. Обширный набор библиотек Python, которые легко интегрируются в код и масштабируются на более крупные приложения, открывает широкие возможности для разработки приложений как для веб-, так и для desktop-приложений, включая системные операции.

Рост числа пользователей языка Rust

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

Разработка приложений

В мире приложений важными тенденциями являются более широкое распространение low-code и no-code платформ, прогресс в кросс-платформенной разработке и растущее использование прогрессивных веб-приложений.

Рост числа low-code и no-code платформ

ecd0dcc66ce335e0756eca5be54928cb.jpeg

Демократизация разработки программного обеспечения стимулируется появлением low-code и no-code платформ. Эти инструменты позволяют людям с минимальными знаниями в области программирования создавать и развёртывать приложения, значительно сокращая время разработки.

Такие платформы, как Microsoft Power Apps и Bubble, позволяют пользователям создавать приложения без написания кода. Эти инструменты особенно популярны для разработки бизнес-приложений, позволяя компаниям быстро создавать прототипы и развёртывать решения без привлечения большой команды разработчиков. Однако такие платформы не способны решать сложные задачи кастомной разработки.

Рост числа прогрессивных веб-приложений (PWA)

PWA (Progressive Web Apps) загружаются быстрее и требуют меньше ресурсов, чем нативные приложения. Они работают в автономном режиме и автоматически обновляются при каждом посещении. С точки зрения разработки они экономичны и эффективны, требуют меньшего количества версий для разных устройств, что приводит к затратам в 3–4 раза ниже, чем у нативных приложений. Эту технологию используют такие крупные компании, как Forbes, Starbucks и Pinterest.

Ключевым фактором растущей популярности PWA (Progressive Web Apps) среди разработчиков является их независимость от платформы. Это избавляет от необходимости создавать отдельные приложения для мобильных, планшетных и настольных компьютеров. Однако простота разработки — не единственное преимущество PWA с точки зрения экономии средств. Они также быстрее создаются и дешевле поддерживаются.

Чтобы узнать, как создать PWA, посмотрите это видео:

Разработка кросс-платформенных приложений

С момента появления мобильных приложений разработчики оказались перед выбором: создавать два нативных приложения для Android и iOS или одно кроссбраузерное приложение. Благодаря своей более высокой производительности, на рынке преимущественно доминировали нативные приложения.

Важным событием 2023 года, которое продолжит набирать обороты в 2024-м, станет появление новых инструментов, позволяющих создавать удобные кроссплатформенные решения и одновременно снижать затраты на разработку.

Кроссплатформенные приложения имеют множество преимуществ:

  • Более широкий охват: возможность использования на нескольких операционных системах (iOS, Android), что увеличивает потенциальную базу пользователей.

  • Ускоренное время разработки: один проект разработки вместо нескольких нативных приложений ускоряет процесс.

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

  • Общая кодовая база: возможность повторного использования кода и эффективность разработки.

  • Более простое развёртывание: обновления распространяются одновременно на всех платформах.

  • Эффективность использования ресурсов: требуется меньше ресурсов и меньшая команда разработчиков.

  • Экономическая эффективность: снижение затрат на разработку и сопровождение, поскольку для нескольких платформ используется единая кодовая база.

К популярным кроссплатформенным фреймворкам относятся: React Native, Flutter, Ionic и другие.

Материал подготовлен в преддверии старта онлайн-курса «Цифровизация и трансформация бизнеса».

© Habrahabr.ru