Da apresentação da AppleA Apple atualizou a documentação do desenvolvedor. Seção
"O que há de novo?" dedicada às principais mudanças no macOS 10.14: o esquema de cores escuras Dark Mode, a nova tecnologia Create ML para criar e treinar redes neurais no Mac, a Mac App Store atualizada com novas interfaces de programação para classificações e análises (para macOS 10.14 SDK), o novo framework de rede Network Framework , que fornece acesso direto aos protocolos de rede TLS, TCP e UDP dos aplicativos, a estrutura Natural Language para analisar a fala natural e isolar metadados específicos de uma linguagem específica (a estrutura pode ser usada em conjunto com o Create ML para o treinamento de redes neurais).
Mas o mais interessante está oculto no porão, nomeadamente na seção Deprecations and Removed APIs. Menciona o abandono das tecnologias OpenGL e OpenCL "obsoletas". Essas tecnologias recebem a “marca preta”, ou seja, a Apple desencoraja fortemente o uso do OpenGL e OpenCL no desenvolvimento de novos produtos.
"A Apple periodicamente adiciona macros de descontinuação à API para indicar que essas APIs não devem mais ser usadas no desenvolvimento ativo", diz a documentação. - Quando a obsolescência ocorre, isso não significa o fim da vida útil imediata dessas interfaces de software. Isso marca o início de um período de carência para a transição dessas APIs para uma alternativa mais nova e moderna que está sendo substituída. ”
A Apple observa que as APIs obsoletas geralmente permanecem no sistema e podem ser usadas por um "tempo razoável" após o lançamento, quando são preteridas. No entanto, o desenvolvimento ativo é interrompido e a API recebe apenas pequenas atualizações de segurança ou outros erros críticos. Os desenvolvedores são avisados de que as
APIs obsoletas podem ser completamente removidas de uma versão futura do sistema operacional .
A Apple recomenda se livrar de APIs obsoletas em seu código o mais rápido possível. No mínimo, o novo código nunca deve usar o OpenGL e o OpenCL. E se algum código antigo usa essas interfaces, ele precisa ser substituído o mais rápido possível.
Alternativa: Metal
Os aplicativos criados usando o OpenGL e o OpenCL continuarão em execução no macOS 10.14, mas essas já são tecnologias obsoletas. “Os aplicativos de jogos e gráficos usando o OpenGL agora devem usar o Metal. Da mesma forma, aplicativos usando OpenCL para tarefas computacionais agora devem usar Metal e Metal Performance Shaders. ”
Metal - novas interfaces de software desenvolvidas a partir do zero sem compatibilidade com versões anteriores. Segundo a Apple, eles fornecem melhor acesso aos processadores gráficos modernos em iOS, macOS e dispositivos tvOS: “O metal evita a sobrecarga inerente às tecnologias desatualizadas e representa as mais recentes funções de processamento gráfico. O suporte gráfico e de computação unificado da Metal permite que os aplicativos aproveitem a mais recente tecnologia de visualização. Para obter informações sobre o desenvolvimento de aplicativos e jogos usando o Metal, consulte a documentação do desenvolvedor do
Metal ,
Metal Performance Shaders e
MetalKit . ”
Para obter informações sobre como migrar o código OpenGL para o Metal, consulte
Misturando Metal e Renderização OpenGL em uma Visualização .
Os desenvolvedores do Hacker News são
céticos em
relação à Apple. Em geral, o consenso é este: essa empresa odeia realmente os jogos de computador ou sofre severamente de uma
síndrome de rejeição do desenvolvimento de outra pessoa (síndrome do NIH). Esta é uma posição nas culturas sociais, corporativas ou organizacionais que evita o uso de desenvolvimentos de terceiros por várias razões: medo de violação de patente, mal-entendido do trabalho de outra pessoa, falta de vontade de reconhecer ou apreciar o trabalho de outras pessoas, ciúme ou como parte de uma "guerra pelo território" mais ampla. Alegadamente, a tecnologia Metal confirma a presença da síndrome do NIH.
Os comentaristas também lembram que, devido ao suporte descuidado ao OpenGL, o projeto Elite Dangerous para Mac
teve que fechar recentemente.
Por outro lado, hoje a maioria dos jogos é criada no Unity3D, no Unreal Engine e em outros mecanismos compatíveis com o Metal. Bem, quem quer que tenha investido tempo e dinheiro em desenvolvimento para o OpenGL / OpenCL é o culpado.