Apple объявила устаревшими технологии OpenGL и OpenCL

Компания Apple обновила документацию для разработчиков. Раздел «Что нового?» посвящён ключевым изменениям в macOS 10.14: это тёмная цветовая схема Dark Mode, новая технология Create ML для создания и обучения нейросетей на Mac, обновлённый Mac App Store с новыми программными интерфейсами для рейтингов и обзоров (под macOS 10.14 SDK), новый сетевой фреймворк Network Framework, предоставляющий прямой доступ к сетевым протоколам TLS, TCP и UDP из приложений, фреймворк Natural Language для анализа естественной речи и вычленения из неё метаданных, специфических для конкретного языка (фреймворк можно использовать совместно с Create ML при обучении нейросетей).

Но самое интересное спрятано в подвале, а именно в разделе «Устаревшие и удалённые API» (Deprecations and Removed APIs). Там упоминается об отказе от «устаревших» технологий OpenGL и OpenCL. Этим технологиям вручается «чёрная метка», то есть Apple настоятельно не рекомендует использовать OpenGL и OpenCL в разработке новых продуктов.

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

Apple отмечает, что устаревшие API обычно остаются в системе и могут использоваться в течение «разумного времени» после релиза, когда их объявили устаревшими. Однако активная разработка на них прекращается, и API получают только незначительные обновления безопасности или других критических ошибок. Разработчиков предупреждают, что устаревшие API могут быть полностью удалены из будущей версии операционной системы.

Apple рекомендует как можно скорее избавиться от устаревших API в своём коде. Как минимум, новый код ни в коему случае не должен использовать OpenGL и OpenCL. И если эти интерфейсы использует какой-то старый код, то его нужно заменить максимально быстро.