Выставка Macworld Expo Boston, проходившая летом прошлого года, принесла обнадеживающие вести программистам на Java, работающим в MacOS. Хотя виртуальная машина Java для Mac выходит позже обещанного срока, дела на текущий момент обстоят не так уж плохо (см. врезку "MacOS 8.1"). Статья обобщает сведения о Java для Mac, почерпнутые из доклада главы Apple Стива Джоббса, из выступлений участников конференции Java on the Mac, которую проводил главный редактор JavaWorld Майкл О'Коннелл, и из бесед с представителями компаний Apple, Metrowerks, Symantec и Sun.
Что же нового стало известно о Java для Mac? Компания Apple готовит к выпуску ОС MacOS 8.1 со встроенной виртуальной Java-машиной (JVM). Ее совместной доработкой занимаются Apple и Sun. Компании Metrowerks и Symantec предлагают интегрированный среды разработки Java-приложений для Macintosh.
Доклад Стива Джоббса
"Мы любим Java", - заверил присутствующих исполняющий обязанности главы Apple Стив Джоббс в ходе своего выступления на Macworld San Francisco 6 января нынешнего года. Тем не менее, о конкретных планах компании в этой области Джоббс сказал немного, да и вообще коснулся темы Java лишь вскользь, в отличие от своего выступления на Macworld Boston, проходившей в августе прошлого года. На фоне подробного рассказа о MacOS 8.1 сообщение о реализации поддержки спецификации Java 1.1 в JVM для Mac осталось практически незамеченным.
Как сообщил Джоббс, владельцы MacOS 8 смогут получить MacOS 8.1 бесплатно. В ее состав войдет MacOS Runtime for Java (MRJ) version 2.0 (см. врезку "MacOS 8.1"). MRJ 2.0 соответствует спецификации Sun Java 1.1.3 и представляет собой первую общедоступную виртуальную машину Apple, поддерживающую все функции, имеющиеся в Java 1.1. Вам не обязательно ждать появления MacOS 8.1, чтобы воспользоваться MRJ 2.0, - она распространяется через Web с 20 декабря прошлого года.
В отличие от августовской Macworld Expo, где Джобс в основном рассказывал о планах Apple, последний раз он перечислил только то, что уже было достигнуто или вот-вот будет достигнуто компанией в отношении Java. В ходе доклада была продемонстрирована работа Java-программ компаний Microsoft и Oracle. Последняя представила более пятидесяти крупномасштабных Java-приложений, работающих на системах Power Macintosh G3, недавно выпущенных Apple.
Джоббс выразил уверенность, что Macintosh вновь займет особое место среди персональных компьютеров, и появятся полезные программы, существующие "только на Mac". Пока же отставание Mac от других платформ в области поддержки Java составляет почти год. Посмотрим, поможет ли симпатия Джобса к Java сократить задержки между выходом очередных версий Java для MacOS.
Виртуальные Java-машины для MacOS
Строго говоря, MRJ 2.0 не является первой виртуальной Java-машиной с поддержкой Java 1.1 для MacOS. Первую версию такой JVM разработала компания Metrowerks. Вместе с JIT-компилятором (компилятором, запускаемым непосредственно перед выполнением Java-приложения) Metrowerks эта виртуальная машина поставлялась в составе Internet Explorer для MacOS версий ниже 4.0. В состав IE for MacOS 4.0, распространявшегося на Macworld бесплатно, входит новая JVM, разработанная компанией Microsoft.
Год назад в интервью JavaWorld представитель Metrowerks Горди Дэвис сказал: "JVM для Mac не существовало, и поэтому мы ее сделали. Однако поскольку виртуальная машина Java, по сути, является частью операционной системы, то как только Apple выпустит свою версию, мы окажем ей поддержку". Президент Metrowerks Грег Галанос и поныне считает, что на Mac должна быть только одна JVM.
"Разработчикам будет проще, если на Mac будет единственная версия JVM", - говорит Гэри Литл, менеджер Apple, ответственный за выпуск Java-продуктов. В текущей версии интегрированной среды разработки Metrowerks CodeWarrior Pro 2 предусмотрена возможность выбора одной из двух JVM - Metrowerks или MRJ. В средах разработки Visual Cafe и Roaster (выпуск последней прекращен) компании Symantec используется только MRJ.
Как утверждает Apple, MRJ 2.0 успешно прошла тесты на соответствие 100% Pure Java. Директор группы Sun по платформе Java Джина Чентони довольна фактом появления MRJ и тем, что эта JVM прошла сертификацию 100% Pure Java. Чентони признает преимущества идеи существования одной JVM для MacOS, и считает, что несоответствие 100% Pure Java никому пользы не принесет.
Отставание Mac сохраняется: ситуация с Sun и Apple
На августовской Macworld Expo представитель Apple Шаан Пруден заявила, что бета-версия MRJ 2.0 выйдет в конце сентября. Желающим заранее получить доступ к JVM компании Apple Литл рекомендует подписаться на MRJ-Dev Digest (см. врезку "Ресурсы"). Бета-версии MRJ 2.0 начали выходить осенью, но для доступа к ним требовался пароль. Этот пароль публикуется в MRJ-Dev Digest и выдается практически всем желающим. Как сказал Литл, принятия этих мер требовали условия соглашения между Apple и Sun. Чентони, однако, утверждает, что все владельцы лицензии на Java имеют право распространять бета-версии по своему усмотрению, хотя соглашения с каждым составляются, действительно, индивидуально.
До конца остается невыясненным распределение ответственности за Java для MacOS между Sun и Apple. "Apple несет всю ответственность за разработку виртуальной Java-машины для MacOS, - утверждает Литл. - Я рад, что к проекту привлечены разработчики JavaSoft". Чентони подтверждает, что ответственность за выпуск продуктов целиком лежит на держателях лицензии, и что задача Sun состоит в содействии таким компаниям, как Apple. На конференции Java on the Mac Литл заявил, что отставание Mac от других платформ сократится. "Надежды Apple на то, что Sun своевременно предоставит спецификацию Java для Macintosh, не оправдались, и мы больше не будем ждать", - сказал он.
"Sun несет ответственность за содействие в переносе Java, - объясняет Чентони. - Sun своевременно предоставляет спецификацию Java и модули коррекции ошибок. В Sun существует также центр по переносу и настройке Java, который делает все возможное, чтобы держатели лицензии своевременно выпускали обновленные версии Java". Однако на самом деле все не совсем так. Авторы книги "Core Java 1.1", выпущенной SunSoft Press, отмечают, что Sun, как правило, в первую очередь уделяет внимание поддержке Solaris и Windows NT, а MacOS остается в стороне.
В январе JavaWorld задал своим читателям вопрос, сможет ли разработчик Java-приложений обеспечить себе конкурентоспособность, работая на Macintosh. Из 509 респондентов 47% ответили "да", 45% - "нет", 6% воздержались. Ответившие положительно объяснили это тем, что в браузерах поддержка Java 1.1 появилась лишь недавно, и поэтому отставание Mac нельзя назвать большим. Читатели, давшие отрицательный ответ, аргументировали его тем, что разработчики Java-приложений на других платформах получили возможность изучения новой технологии почти на целый год раньше. Чак Шоттен из компании StarNine Technologies, участвовавший в конференции Java on the Mac, не видит большой беды в отставании Macintosh. "Уже в первой версии MRJ есть практически все из того, что нужно разработчикам", - отметил он.
В MacOS наконец-то появилась JVM, соответствующая 100% Pure Java. Можем ли мы теперь надеяться на скорое появление нормальной версии Bean Development Kit (BDK) для Mac? По сообщению в одной из статей JavaWorld, BDK для MacOS существует, но его не так-то просто заставить работать. Вышли простые в установке версии BDK для Windows 95/NT и Unix-платформ. Чентони пообещала, что Sun выпустит новый BDK и для MacOS, не сказав, однако, когда это произойдет.
Еще о цифрах
Дополнительную неразбериху создает и отставание номеров версий Java для Mac от других платформ. MRJ 2.0 соответствует спецификации Java 1.1.3. Текущая версия Java для Windows и Unix - 1.1.5. По словам Литла, поддержку Java версии 1.1.5 Apple намерена реализовать весной нынешнего года. Как утверждает Чентони, разработчиков не должно останавливать отставание номеров, поскольку в версиях с 1.1.3 по 1.1.5 не было ничего нового, - в них лишь исправлялись ошибки.
Однако, Sun уже выпустила предварительную версию Java Development Kit (JDK) 1.2 - в нем новые функции присутствуют. Финальную версию JDK 1.2 компания намерена выпустить к концу второго квартала. На августовской Macworld Expo Пруден пообещала, что поддержка JDK 1.2 в MRJ 2.x появится уже в начале 1998 года. Недавно же она написала в MRJ-Dev Digest, что Apple ждет получения исходных текстов от Sun, и пока ничего насчет реализации поддержки Java 1.2 в MRJ сказать не может. Литл, тем не менее, утверждает, что на этот раз отставание будет существенно меньшим, и поддержка Java 1.2 на Mac появится не позднее конца нынешнего года.
JDK 1.1.3 компании Apple будет бесплатным, но для решения серьезных задач Литл рекомендует программистам интегрированные среды разработки, выпускаемые компаниями Metrowerks и Symantec. Visual Cafe, например, дает возможность посмотреть текст Java-процедур, описывающих каждый компонент, созданный в редакторе интерфейсов. По мнению одного из участников конференции Java on the Mac, это прекрасный способ обучения программированию на Java. "В Visual Cafe есть функции визуального программирования, создания пользовательских интерфейсов и подключения баз данных к Web", - добавляет представитель Symantec Уилл Айверсон.
Президент Metrowerks Грег Галанос отметил, что многие программисты используют более одного языка и "не всегда работают на той же машине, на которой будут работать и их приложения". "CodeWarrior поддерживает несколько языков и несколько платформ. Для переноса вашей программы с одной из них на другую ее нужно просто заново скомпилировать", - говорит Галанос.
Компания Microsoft не собирается выпускать среду разработки Java-программ для MacOS. Apple и Microsoft обменялись наборами тестов и совместно разработали кое-какие из компонентов MRJ. Что касается судебного разбирательства между Microsoft и Sun по поводу Java, то, по словам Галаноса, о нем беспокоиться не стоит. "Когда JVM для Mac не существовало, Metrowerks выпустила ее. Мы не позволим нашим клиентам оказаться в положении заложников. Мы снабдим их всем необходимым".
Другими словами, разработчикам Java-приложений на Mac есть на кого положиться. Как сказал Гарри Литл: "Нам выгоднее, когда разработчики создают Java-программы на Macintosh, поскольку тогда они с гарантией будут на нем работать; кроме того, пока что большая часть Java-приложений - всего-навсего интерфейсы для других систем". Одним из них, кстати, является Biscotti - разрабатываемый Apple интерфейс для QuickTime 3.0, продемонстрированный в ходе выступления Джоббса.
Дэниел Стейнберг (Daniel H. Steinberg) - профессор математики, нештатный сотрудник Oberlin College. Он ведет исследования в области упругих линий в гиперболическом пространстве, используя в своей работе Macintosh. Со Стейнбергом можно связаться по адресу daniel.steinberg@javaworld.com.
MacOS 8.1
Похоже, Apple возвращается к политике "обещаю мало, делается много". Выпуск MacOS 8.1 был намечен на февраль, но произошел уже 21 января. Если у вас установлена американская версия MacOS 8.0, вы сможете загрузить MacOS 8.1 по адресу http://support.info.apple.com/ftp/8.1us.html. Выпуск версий, локализованных для других стран, обещан Apple в течение двух месяцев.
Если вы собираетесь использовать MacOS Extended Format, Apple рекомендует установить MacOS 8.1 с компакт-диска. Он стоит около 20 долл. Информацию об этом можно получить по адресу http://www.apple.com/macos/8.1/upgrade/.
Ресурсы
http://applejava.apple.com
http://www.metrowerks.com
http://www.symantec.com
http://java.sun.com