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

    Как известно, несколько дней назад компания 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. Сдавайся, мужик».
    Поддержать автора
    Поделиться публикацией

    Похожие публикации

    Комментарии 99

      +30
      Эпплу нужно, чтобы пользователь жил в экосистеме их продуктов: писал программы для развития их инфраструктуры (например, Айпада или Айфона) на их железе. Настала пора, когда Java перстала вписываться в эту концепцию.
        +2
        Главное, чтоб Apple не забывала, что есть не только Mobile Development, но и Web. И не убила это.
          0
          Вы хотите от Apple создать в их инфраструктуре еще языки\фреймворки для Веба?
            +1
            У них это есть и развивается, посмотрите разработку веб-приложений в Dashcode, правда опять же с яблочным привкусом.
              0
              Ну да, у них также есть и WebObjects, но все оно настолько сырое, что воспринимать всерьез это не стоит.
                +1
                Такой сырой, что на нем написаны iTunes Store, Mobile Me и прочие сервисы компании.
                  +1
                  MobileMe — SproutCore. По сути это Cocoa для Вэба, еще больше Cocoa только в Cappucino (их моторола купила), там вообще ObjC^W ObjJ & Cocoa во все поля. SC кстати очень удобная штука для написание фронтэндов которые не надо индексировать (a.k.a. для людей).
                    0
                    SproutCore — это FrontEnd, Webobjects — это backend.
                      0
                      Начнем с того, что WO это Application Server, а так же одноименный framework. Так вот раньше Apple front-end писали на WO. Теперь — нет. Я хотел подписать, что я фронтэндах говорю, но комментирование раз в час делает свое дело. И откуда инфа о MobileMe? :D
                        0
                        И на этом наверное закончим ибо у WO нет сдвигов после 2008. А SC заточен под RESTful API, а WO нет.
                  +4
                  А разве WebObject это не Java?
                +1
                Нет, но они поддерживают Ruby on Rails из коробки. А я с этим работаю. :)
                  +10
                  Скоро перестанут. )
                  • НЛО прилетело и опубликовало эту надпись здесь
                  –1
                  Вообще-то они делают много и добиваются успеха в этом направлении больше чем кто бы то ни было еще. Safari под Mac прекрасен и быстр. Не это ли самое главное что можно было бы сделать ими для веба?
                    0
                    разговор был о серверной части.
                    Safari вроде на сервера еще не ставят.
                +1
                это нужно любому держателю платформы
                  +7
                  Вы не правы. Я не знаю видели ли вы Java-приложения под MacOS, но они выглядят превосходно. Берешь одно и тоже приложение под Windows и Mac — и вод Win это все отдано на откуп разработчикам, вкус которых зачастую оставляет желать лучшего. Ужасные шрифты. Ужасные кнопки. Съехавшие блоки и границы.
                  In Mac OS все чисто и красиво. Аккуратно. Обновления Java поддерживаются нативными обновлениями системы, а не дурацкми java scheduler который в Win либо вечно висит в трее, доставая время от времени, либо просто выключен у тех пользователей, кто не любит кучи ненужных иконок в трее, пусть даже спрятанных.
                    +3
                    Да. Согласен с вами. Но похоже, что Эппл всё-таки не осиливает обновлять эту красоту вместе с Ораклом. Потому и отказались.
                      0
                      Не осиливает? Не верю!
                        0
                        Ну кто ж вам так сразу и признается :) Скорее всего мы никогда не узнаем, как же оно на самом деле. Флэш туда же :)
                      +2
                      Волею судьбы я как-то проработал три дня на MacBook в Eclipse.
                      Выглядело оно точно так же, как и под Win. Конечно, контролы MacOS выглядят лучше виндовых.
                      А еще там почему-то криво работал буфер обмена.

                      Так что, как минимум, не все Java-приложения «одинаково полезны»:)
                        +3
                        Эклипс использует тулкит SWT, который в свою очередь использует тулкит Carbon, который не Cocoa :)
                          0
                          А, вот оно что. Ясно, спасибо:)
                            +1
                            Эээ, ну вообще-то SWT уже использует Cocoa, а не Carbon. И уже несколько месяцев как.
                              0
                              … и уже даже не месяцев, да ;)
                              0
                              С версии 3.5 Eclipse использует Cocoa.
                              0
                              сделайте кто-нибудь скриншот eclipse под mac, пожалуйста
                          +2
                          Вы немного однобоко трактуете. Тотальный контроль качества — это не только создание экосистемы их продуктов, но и повышение качества других компонентов. Apple больше не тратит деньги на поддержку продукта который должен поддерживать Oracle.
                            +4
                            Честно говоря, на клиенте за довольно редким исключением я не вижу Java. За исключением, разумеется… IDE для языка Java, да ;) а вот на сервере Java (и JVM в более широком смысле — т.е. Groovy/Grails, Scala, Clojure et al) практически безальтернативен – кроме С++ ему сейчас нет реальных конкурентов.
                              0
                              Под Android все равно можно будет писать с использованием OpenJDK. Eclipse на ней вполне работоспособен.
                              +1
                              Поживем увидим, последний ли это гвоздь.
                                +11
                                Oracle начинает использовать Java в качестве оружия для политических игр, например недавние иски против Google из-за нарушения патентов на Java в Android.

                                Возможно, Apple заранее защищается от возможных атак Oracle.

                                Ну и, естественно, Apple все жестче выступает с позицией о поддержке нативных приложений, специально разработанных под OS X / iPhone / iPad, и этот ее шаг вполне логичен.

                                В конце концов, пока речь идет только об отказе от поддержки «из коробки», так что паниковать как минимум рано.
                                  +5
                                  Oracle нет причин атаковать Apple, поскольку у них честно лицензированная Java, прошедшая TCK
                                  +30
                                  Какой еще последний гвоздь?
                                  Ява на десктопах никогда и не была особо востребована, а на серверах она умирать не собирается.
                                  А кому она понадобится на apple — скачает и поставит.
                                    –5
                                    Не была востребована на десктопах, говорите? А на чем вы будете писать кроссплатформенное приложение, если перед вами встанет такая задача?
                                      +14
                                      Qt
                                        +2
                                        или gtk+
                                          +5
                                          gtk+ на маке? Уж увольте, оно никак не вписывается в интерфейс и работает только в x11.
                                            0
                                            а джава вписывается, да? на винде gtk+ хотя бы не тормозит…
                                              +5
                                              с SWT джава прекрасно вписывается, да. Потому что SWT с некоторых пор использует Cocoa.
                                              0
                                              Есть Cocoa порт QTK, но про стабильность не в курсе
                                            –6
                                            Пишу на шарпе, пока доволен. Gtk#, конечно, штука наркоманская, но от нас в любом случае требуют «уникальный дизайн» (читай, свои виджеты), так что это не особо мешает. Руки чешутся соорудить библиотеку создания интерфейса на чистом C# с бакэндами для всех трёх платформ, дабы не мучиться с биндингами, но, как всегда, не хватает времени.
                                              +1
                                              Можно пошутить? Adobe AIR! =)
                                                0
                                                Петросянство же. Оно же никогда не научится нативным виджетам.
                                                  +2
                                                  Уже умеет.
                                                    0
                                                    А можно ссылочку?
                                                        0
                                                        И где по ссылке или на картинке нативные виджеты?
                                                          0
                                                          Native processes не оно? Я просто за последние 2 недели встречаю уже 4е толкование слова widget могу тупить.
                                                            –1
                                                            Нет. Нативные виджеты это совсем другое, это даже с гуем не связано. А виджетов там так и нет и не будет видимо. А ненативный look&feel таки пугает маководов
                                                              0
                                                              Native processes — возможность запускать внешние процессы и взаимодействовать с ними, что есть хорошо.

                                                              Виджеты здесь — родные кнопки, таблицы, диалоги, поля ввода и прочее. Этого не обещано и это как раз то, от чего они старательно уходят. Иммено поэтому в Air HTML+Javascript или AS
                                                                0
                                                                Если вы паритесь по поводу GUI, то скинование контролов поддерживается из коробки. можно сделать так, что даже Стив ничего не заподозрит. Что кстати делает систему гораздо более гибкой. Кстати эти 2 коммента противоречат друг другу. Определитесь в чем косяк AIR уже.
                                                    0
                                                    кстати, как там с юникодным инпутом на маке? пофиксили уже?
                                                    +3
                                                    На Жаваскрипте?:))
                                                      0
                                                      Возможно что и на яве, и что с того?
                                                      Я ж говорю, кому очень надо тот сам поставит jre.
                                                    +19
                                                    Не «перестала» использовать, а строго наоборот, «стала в итоге использовать» (ended up using a lot of Sun hardware). Иначе с чего бы Гослингу радоваться?
                                                      0
                                                      Терзают меня смутные сомненья, но как говорят звезды скоро все будет один сплошной и не отвратимый AppStore, к сожалению…
                                                        –2
                                                        And nothing of value was lost.
                                                        +7
                                                        Java однозначно нужна. IDEA вряд-ли будет переписывать все свои продукты, а они весьма выдающиеся и все на Java.
                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                            +11
                                                            Люди в Jetbrains настолько круты, что смогут написать свою Java, я в них верю. :)
                                                              +10
                                                              Знаете, еще пару месяцев назад я бы не понял о чём вы. Но судьба натолкнула меня на их IDE.
                                                              И это, наверное, первый купленный с гордостью и удовольствием продукт.
                                                              +1
                                                              Сразу в машкоде, чо мелочиться…
                                                                0
                                                                у людей из JB, (а именно у yole) всё-таки немножко другое мнение по этому поводу
                                                              +11
                                                              никуда Java из интерпрайз-сектора не денется
                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                                  +9
                                                                  хоть вас и минусуют, но вы пишите о настоящем, а не о будующем ;)
                                                                    +1
                                                                    будущее не меняется :)

                                                                    то есть из настоящего (и в его контексте) всегда выглядит одинаково.
                                                                  +9
                                                                  Я, как ярый рубист, контр-энтерпрайзщик и яблочник категорически вас поддерживаю. Джава крута в ентерпрайзе, и никто ее оттуда ближайшее время не выгонит, поэтому ни о каких гвоздях речи быть не может.

                                                                  И да, я не люблю Джаву, но спорить с очевидными фактами не собираюсь: для многих задач она подходит лучше всего.
                                                                  –1
                                                                  Apple все-таки последнее время больше позиционируется на десктоп окружение (включая сюда мобильные версии)
                                                                  А для промышленных приложений нужны и другие требования к ОС
                                                                  и таки да, Java на десктопе у обычного пользователя скорее исключение, чем правило
                                                                  IDEA конечно не будет переписывать, но и большинство потребителей ее продукции на windows и linux
                                                                  Захотят использовать — или возьмут подходящую JVM или OS+JVM
                                                                    0
                                                                    > таки да, Java на десктопе у обычного пользователя скорее исключение, чем правило

                                                                    Если речь про все десктопы, а не только яблочные, то, имхо, установленный jre (да ещё не одной версии) скорее правило, чем исключение
                                                                      +1
                                                                      >IDEA конечно не будет переписывать, но и большинство потребителей ее продукции на windows и linux

                                                                      не уверен. на java-конференциях количество маководов нередко достигает 50%
                                                                        0
                                                                        Кстати, заметил, что во многих «сегментах рынка», которые я по ассоциации «свободный софт»->«свободная ось» считал прерогативой linux/freebsd/..., доля маководов, как минимум, выше доли виндоводов, хотя этот софт, в теории, для этих трёх платформ полностью аналогичен и, уж точно, на мак его портировали либо с одной, либо с другой стороны, но не с мака на другие две. И если почему предпочитают макось винде я могу понять, но почему лиуксу…
                                                                          0
                                                                          а о каких сегментах рынка идёт речь?

                                                                          если вы о каком-нибудь услоном «системном администрировании», так мак лучше чем, что его не нужно настраивать(как в винде) и в нём всё или почти всё есть искаропки(как в линуксе)
                                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                                        +8
                                                                        приветствую вас, человек, который тоже прочитал оригинал.
                                                                        автор сего «переведенного» опуса весьма желтит и переворачивает всё с ног на голову. филиал комсомольской правды прямо таки.
                                                                        после таких «переводов» и кучки комментариев людей «разобравшихся» в вопросе, даже комментарии по сути не хочется оставлять.
                                                                          +1
                                                                          Дак это же ализар, в своём стиле.
                                                                          0
                                                                          Исправил, еще есть где-нибудь неточность?
                                                                          +2
                                                                          повёл себя принципиально по этому поводу [took a serious «fuck you» attitude]


                                                                          Какое удивительно точное и «вкусное» выражение...;)
                                                                            0
                                                                            Думаю что 1.6 которая сейчас есть хватит на пару-тройку лет, а там уже можно будет паниковать :)
                                                                              0
                                                                              Есть сейчас в ранее проданных железках, а в новых — уже не будет, как и Flash.
                                                                              0
                                                                              Надеюсь все же кто-то возьмет на себя поддержку этого дела…
                                                                                +9
                                                                                Java замышлялся как одеяло, которое может согреть любого. С тех пор как поменялся логотип с Sun на Oracle оно стало уменьшаться в размерах. Все сперва подумали «с чего бы это»? Но теперь видно, что это Оракл его активно тянет на себя, бормоча под нос «всё равно все прийдете к ораклу. Будет все как в старые добрые времена, когда ко мне и цари в рванье заходили на поклон».
                                                                                  +1
                                                                                  детский сад. эпл просто не хочет тратить денег на поддержку продукта, который могут поддерживать другие. если бы не было сообщества способного осуществлять эту поддержкуб яблочные бы не рыпались, так как java им нужна.
                                                                                  новость скорее нужно читать: java на яблоке достигла своего совершеннолетия и пускается во взрослую самостоятельную жизнь. а у оракла ещё одна статья расходов незапланированная наметилась, смотри ещё чего замарозят :(.
                                                                                    –1
                                                                                    Я желаю зла Apple и добра Java.
                                                                                      +4
                                                                                      Я желаю зла Oracle, fixed
                                                                                        –5
                                                                                        Apple тоже проприетарная хрень. Делает свою закрытую платформу. Это зло.
                                                                                      0
                                                                                      Проще отказаться от продукции Аппла, чем от Java.
                                                                                      В данный момент на работе debian, дома macbook. Вероятно в скором времени от последнего придется избавится, больно уж напрягает навязка мне своих условий производителем.
                                                                                        0
                                                                                        ну можете мне macbook выслать. А так на него же можно поставить linux или windows
                                                                                          0
                                                                                          Пока на леопарде 10.5, который у меня установлен есть нормальная версия jvm. А дальше будет видно, возможно oracle подсуетится и что нибудь выпустит.
                                                                                          0
                                                                                          А что мешает поставить debian на macbook? :) Вроде по законам никто пока не имеет права указывать потребителю какой софт на своём (то есть купленном) железе он обязан использовать. Максимум потеря гарантии (на днях был очень удивлен, когда в суппорте Dell сказали, что установка Linux на новенький Inspiron One 19 приведёт к потери гарантии :( )
                                                                                            0
                                                                                            Ничего. Но пока не решаюсь.
                                                                                            Буду ждать новостей от sun (oracle).
                                                                                              0
                                                                                              >А что мешает поставить debian на macbook?

                                                                                              боюсь, что допиливать напильником его нужно будет очень долго…
                                                                                                0
                                                                                                Афаик, главное инсталлятор чтобы запустился. Сейчас усиленно вентилирую этот вопрос, правда имею в виду не debian, а ubuntu. Нравятся мне макбуки как железки, но не нравится мне макось как *никс.
                                                                                                  0
                                                                                                  у меня livecd убунты вполне себе запускался, но назвать работой я это не могу…
                                                                                            +1
                                                                                            Хехе, секретные API. Гослинг хитрит, и мы это знаем! ))
                                                                                            Не секретные API мешают нормальному портированию сановской джавы. И никакое не «сглаживание». Нет проблем имплементировать Graphics2D rendering pipe стандартными средствами MacOS X. Кроме того уже давно есть почти допиленный OpenGL rendering pipe, который будет работать на маке.

                                                                                            А вот что мешает портировать Java на Mac, так это создать маковский look-and-feel для свинга. «Секретные API» — это не что иное как метод отрисовки нативных виджетов, который остается за кадром. Если в Windows XP/Vista/7 Java научилась вытаскивать битмапы для кнопочек из ресурсов ОС, то для мака это, видимо, не так просто (если вообще возможно). А на джаву с неродными виджетами пользователи маков будут смотреть как на дерьмо.

                                                                                            Гослинг обходит стороной факт, что его идея мимикрии виджетов под нативные была изначально провальной. Она потребовала кучу сил и ресурсов, а в итоге принесла только проблемы. AWT должен был развиться до SWT и использовать нативные виджеты платформы в апликациях, а Swing должен быть light-weight библиотечкой, ориентируемой исключительно на веб.

                                                                                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                            Самое читаемое