Uno de los anuncios más importantes en el WWDC fue el retiro del apoyo de las bibliotecas de código abierto, OpenGL y OpenCL, las cuales -de acuerdo a Apple- son prácticamente obsoletas. Pero los de la manzana venían preparados para decirnos que sustituirían esto por algo que llamaron Metal, que es un invento de Apple y que es un sistema de 3D de gráficos mucho más cercano al hardware.
OpenGL ha sido por mucho tiempo una plataforma cruzada para hacer gráficas 3D. El grupo que le da soporte, y que es de quienes inventaron el sistema. el Grupo Khronos, reemplazó esta biblioteca por Vulkan, la cual se acerca más al API del hardware gráfico junto con Microsof5 DirectX3D 123 y ahora Apple Metal. Los sistemas ofrecen sin embargo un control mucho más de bajo nivel en el API que OpenGL. Cabe decir que Vulkan es de plataforma cruzada, es decir, corre indistintamente en PC y Mac, por ejemplo, DirectX3D 12 es solamente para Windows y Metal es únicamente para MacOS/iOS.
Probablemente OpenGL y OpenCL (la biblioteca de paralelismo de código abierto), tal vez ya se acerquen a la obsolescencia, pero este es el primer paso serio para quitarlas definitivamente del mercado.
“Las apps construidas usando OpenGL y OpenCL seguirán corriendo en MacOS 10.14, pero estas tecnologías heredadas empezarán a dejar de soportarse. Los juegos y las apps intensivas en gráficas que usan OpenGL deberán portarse a Metal. Similarmente, apps que usan OpenCL deberían adoptar Metal y Metal performance shaders”, indica Apple.
También OpenGL/ES será sacado del panorama, indica Apple. “Las apps construidas usando OpenGL ES continuarán corriendo en iOS 12, pero ya no se deberá usar. De nuevo, la alternativa es Metal”, dice Apple.
Puede pensarse que la mayoría de los juegos se crean usando motores gráficos como Unity y realmente Metal es otro motor para poderse ayudar. Sin embargo, esta no es la historia completa. Apple ha aislado iOS y MacOS del resto del mundo. Si hubiese adoptado Vulkan y mantenido OpenGL, podría haber tenido una plataforma cruzada, pero al querer forzar a todos a usar Metal en una máquina Apple, simplemente muestran su arrogancia. Sin embargo habría que ser justos: Apple no piensa en los demás porque tienen un entorno muy sofisticado que es propietario y que les funciona o eso quieren creer, entonces ¿para qué ser compatibles con otra plataforma? Desde este punto de vista no tendría mucho sentido.
El hacer a un lado OpenCL, probablemente no tenga un gran efecto en los programadores, pues es una plataforma menos popular y además, es una plataforma cruzada para GPUs en donde se implementa la programación en paralelo.
Pero regresando a OpenGL ES, el asunto es confuso. OpenGL ES es una versión ligera de OpenGL, que se usa en sistemas móviles como Android, iOS, etcétera. Es además la base de estándar WebGL del Consorcio W3C. Si Apple decide no usar OpenGL ES, ¿significa esto que está despreciando entonces WebGL? Hay que decir que Apple soporta en Safari WebGL y es el default (como en la mayoría de los navegadores). Presumiblemente WebGL se mantendrá funcionando aunque Safari soportará Metal entonces como una nueva opción.
Como puede verse, una medida como la que esta tomando Apple puede modificarse mucho del trabajo que se hace en programación. Como la mayoría de los sistemas, estos tienden a volverse obsoletos con el tiempo. Apple de la impresión que se quiere mover a otras instancias. La pregunta es si es el momento adecuado para ello. El tiempo lo dirá.
La entrada Apple deja de apoyar a OpenGL y OpenCL para privilegiar a su app Metal se publicó primero en unocero.