Apple обнови документацията за разработчици и представи редица нови технологии и софтуерни решения.Разделът „Какво ново в macOS“ е посветен на основните промени в macOS 10.14. Това е тъмната тема Dark Mode, новата технология Create ML за създаване и обучение на невронни мрежи с Mac компютри, обновеният Mac App Store с със своите нови рейтинги и обзори (за macOS 10.14 SDK), новият мрежови фреймуърк Network Framework, предоставящ директен достъп до мрежовите протоколи TLS, TCP и UDP от приложенията, фреймуъркът Natural Language за анализ на естествената човешка реч и разпознаване на метаданните, характерни за всеки конкретен език. Но най-интересното е скрито най-долу. По-точно в раздела „Остарели и премахнати API: (Deprecations and Removed APIs). Именно там се споменава за отказа от „остарелите“ технологии OpenGL и OpenCL. На тези технологии е поставен кръст и Apple най-настоятелно не препоръчва използването на OpenGL и OpenCL в разработването на нов софтуер. „Apple периодично добавя макроси за стареенето на API, за да укаже, кои API не трябва активно да се използват в разработването“ – се казва в документацията. „Когато имаме остаряване, това съвсем не означава незабавното приключване на живота на тези програмни интерфейси. Това означава началото на преходния (grace) преход от тези API към по-нова и съвременна алтернатива, която постепенно ще ги замени„. Apple отбелязва, че остарелите API обикновено си остават в системата и могат да се използват през „разумен период от време“, след като са обявени за остарели. Но активната разработка на софтуер с тяхна помощ се прекратява. Разработчиците се предупреждават, че остарелите API могат да бъдат напълно премахнати в една от бъдещите версии на операционната система. Apple настоятелно препоръчва на програмистите да се избавят от остарелите API в своя код. Като минимум, новият код в никакъв случай не трябва да използва OpenGL и OpenCL. И ако тези интерфейси използват някакъв стар код, то той максимално бързо трябва да бъде подменен. Алтернативата: MetalПриложенията, създадени с използването на OpenGL и OpenCL ще продължат да работят в macOS 10.14, но това са вече остарели технологии. „Игрите и графичните приложения, използващи OpenGL, сега трябва да използват Metal. Аналогично, приложенията, използващи OpenCL за различните изчислителни задачи, сега трябва да използват Metal и Metal Performance Shaders„. Metal са разработени от нулата програмни интерфейси без обратна съвместимост с предишния софтуер. Според Apple, те осигуряват по-добър и по-пълноценен достъп до съвременните графични процесори в macOS и в tvOS устройствата. „Metal дава възможност да се избегнат излишните разходи, характерни за остарелите технологии и предоставя най-новите функции за обработката на графика. Единната поддръжка на графиката и изчисленията позволява на приложенията възможно най-ефективно да използват новите технологии за визуализация. Примери за разработване на приложения и игри с използването на Metal са дадени в документацията за разработчиците„. Информацията за миграцията на OpenGL кода към Metal е публикувана в статията Mixing Metal and OpenGL Rendering in a View. Разработчиците от Hacker News са скептични към действията на Apple. Консенсусът е следният: тази компания или наистина ненавижда компютърните игри или жестоко страда от синдрома „не е създадено тук“ (NIH синдрома). Това е особена позиция в социалната, корпоративната и организационната култури, при които се избягва използването на чужди разработки по най-различни причини: страх от нарушаване на патентното право, неразбиране на чуждата работа, нежелание да се признае и оцени труда на другите, ревност и част от така наречената „война за територия“. Според Hacker News, технологията Metal потвърждава наличието на NIH синдрома. Но от друга страна, днес повечето компютърни игри се създават чрез Unity3D, Unreal Engine и други енджини, които поддържат Metal. А който е инвестирал време и пари в разработването под OpenGL/OpenCL – сам си е виновен. |