Pull to refresh

Джеймс Гослинг: почему Applе отказывается от JVM

Java *
Как известно, несколько дней назад компания Apple фактически отказалась от дальнейшей разработки Apple JVM. Прошло более десяти лет с тех пор как Стив Джобс со сцены конференции JavaOne 2000 заявлял, что сделает «лучшую на планете платформу для Java прямо из коробки».

В далёком 2000 году Sun занимала 150-е место в списке крупнейших корпораций Америки, опережая Oracle и Apple, не говоря уже о стартапе Google, который вошёл в список Fortune 500 только в 2005 году.

Что и говорить, времена изменились.

Впрочем, Стив Джобс сдержал обещание. Macintosh действительно можно было назвать лучшим компьютером для Java-программиста. Почитайте, что писал в 2003 году Джеймс Гослинг в своём блоге — он и сам работал на «маке» и был чрезвычайно этим доволен. Сейчас его мнение, конечно, кардинально изменилось.

По мнению Гослинга, есть несколько причин, по которым Apple отказывается от Java. Во-первых, это их «фундаментальная тенденция к тотальному контролю» (Apple's fundamental control-freak tendency), из-за которой они со временем уделяли всё меньше внимания Java. Ситуацию усложняло то, что первые версии, которые они сделали, были сильно кастомизированы, намного сильнее, чем нужно было. Из-за этого было очень сложно делать апгрейд по графику, так что довольно долго Apple JVM отставала по версиям от других платформ, хотя в последние годы Apple всё-таки собралась с силами, догнала и хорошо справлялась.

Далее цитируем Гослинга по тексту:

Тем не менее, периодически возникали дискуссии о том, что груз должна взять на себя Sun или сообщество. Было много обстоятельств. Одно из них в том, что многие веб-сайты Apple (MobileMe, iTunes, App Store) были Java-приложениями и они нервничали, что не контролируют качество своих приложений. Этот тезис стал довольно спорным, когда Apple стала в итоге использовать большое количество аппаратного обеспечения Sun (наконец-то!). Но самое главное обстоятельство — это их секретные API. Да, в OS X была куча секретных API. Точно таких же, как у Microsoft, которые стали одной из причин антимонопольного разбирательства. Важной областью, где они использовались, был рендеринг графики.

Довольно странно, что эти секретные API использовались для сглаживания графики: графическая подсистема Apple хорошо спроектирована, она замечательно делает сглаживание в любых условиях. Спецификации графики Java содержат специальное аккуратное описание, чтобы использовать исключительно подсистему Apple для сглаживания. К сожалению, старые платформы Microsoft поддерживали только графику без сглаживания, и в некоторых (очень редких) приложениях появлялись артефакты, если к ним применяли сглаживание. Эти приложения не соответствовали спецификациям, и большинство авторов исправляли их, чтобы те работали на обеих платформах. Но один разработчик повёл себя принципиально по этому поводу [took a serious «fuck you» attitude] и заставил Apple реализовать поддержку рендеринга без сглаживания — что они и сделали, но сохранили в секрете, потому что это была абсолютно отвратительная вещь. Кто был этот «один разработчик»? Oracle, конечно...»


P.S. Первый комментарий к заметке в блоге Гослинга: «Это последний гвоздь в гроб Java. Сдавайся, мужик».
Tags:
Hubs:
Total votes 91: ↑67 and ↓24 +43
Views 2.2K
Comments Comments 99