ИНТЕРВЬЮ
Компания Sun Microsystems регулярно проводит в России технические семинары для Java-разработчиков. Однако прошедшая в конце апреля в Москве двухдневная конференция Sun Tech Day имела особый статус, поскольку проходила в рамках всемирного тура подобных мероприятий корпорации. Помимо обсуждения практических вопросов применения Java (в том числе в ходе мастерклассов) на ней были впервые представлены последние новинки Java - новая версия средства разработки NetBeans 5.0, бета-версия Java Platform, Standard Edition (JSE) 6, ознакомительный вариант Java Platform, Enterprise Edition (JEE) 5 (см. PC Week/RE, N 11/2006, с. 26). Отдельная секция Tech Day была посвящена операционным системам Solaris и OpenSolaris.
Но, возможно, самым значительным событием конференции стало то, что в ее работе принял участие Джеймс Гослинг, создатель языка Java, который уже более десяти лет отвечает в Sun за развитие этой системы (см. PC Week/RE, N 19/2005, с. 31). О Java, общей ситуации на рынке средств разработки и перспективах ее развития с ним беседует обозреватель PC Week/RE Андрей Колесов.
Джеймс Гослинг
PC Week: Складывается впечатление, что после первых пяти лет пребывания на рынке, отмеченных быстрым функциональным расширением платформы Java, система перешла в стадию неспешного эволюционного развития. Что вы можете сказать по этому поводу?
Джеймс Гослинг: В чем-то я и согласен и не согласен с такой оценкой. Первое время Java действительно быстро пополнялась новыми сопутствующими технологиями, что вполне естественно, так как платформа искала свое место на рынке (точнее, боролась за него). В последние годы внешне видится более спокойная картина, но на самом деле в каждой новой версии Java появляется много нового. Например, в текущем варианте JSE 5, вышедшем в 2004 г., было отмечено самое значительное количество новшеств по сравнению со всеми предыдущими выпусками. А в JSE 6, которая появится уже скоро, их будет еще больше.
Другое дело, что в разных направлениях применения развитие Java шло неравномерно. Первые пять лет основной вектор был нацелен на освоение сегмента корпоративных приложений, где основную роль играют серверные технологии. Я считаю, что JEE достигла очень высокого уровня зрелости.
Последние пять лет ключевой акцент делается на упрощение процесса разработки Java-приложений, отсюда повышение внимания к средствам разработки и стандартной версии платформы. Параллельно идет быстрое освоение сегмента мобильных устройств и сферы телекоммуникаций. Должен сказать, что первая версия Java для сотовых телефонов в 1999 г. больше годилась для создания развлекательных "штучек", и только сегодня мы подошли к реальному освоению корпоративных систем на уровне микроустройств. Как раз сейчас мы наблюдаем второе взрывоподобное расширение сферы применения Java в сотовой связи, что, конечно, определяется достижением качественно нового уровня производительности аппаратуры.
PC Week: А как быть с реальным осуществлением главного лозунга Java "Write Once - Run Anywhere" ("Напиши один раз - запускай где угодно")? То, что уже давно есть три разных издания платформы - Enterprise, Standard и Micro, - это вполне понятно. Но ведь о совместимости Java в области мобильных систем пока говорить не приходится. Будет ли здесь как-то меняться ситуация?
Дж. Г.: Проблемы совместимости в сфере "микро" объясняются объективными причинами. Вычислительная мощность мобильных устройств оказалась так мала, что их изготовители были вынуждены для повышения производительности задействовать специфические функции процессоров за счет собственных расширений Java. Сейчас мощность используемых здесь микропроцессоров значительно выросла и соответственно актуальность разных специальных функций снизилась. Еще один важный момент: поставщики мобильных устройств переходят к решительному освоению корпоративного рынка, а тут требования к унификации гораздо выше, чем со стороны индивидуальных пользователей.
PC Week: На рынке средств Java-разработки идет совершенно очевидный процесс консолидации. Почему же Sun не подключается к проекту Eclipse, который стал одним из центров объединения всего Java-сообщества, и продолжает развитие собственной среды NetBeans? Не пойдет ли это во вред идее продвижения Java вообще и роли самой Sun в частности?
Дж. Г.: Правильная постановка вопроса должна бы звучать так: почему IBM запустила свой проект Eclipse, когда уже существовал NetBeans, открытый для широкого сотрудничества Java-поставщиков*1? Ведь хронологически мы превратили NetBeans в открытый проект на год раньше, чем IBM сделала это с Eclipse.
_____
*1 На эту тему см. также PC Week/RE, N 17/2005, с. 38. - Прим. ред.
PC Week: Вы считаете, что эти две линии продолжат автономное развитие, или все же имеются шансы, что они сольются?
Дж. Г.: Скорее всего, будет первый вариант.
PC Week: Периодически в Java-сообществе обсуждается возможность реализации на базе ядра Java поддержки разных по синтаксису языков программирования (то, что реализует Microsoft на своей платформе .NET). И в этой связи порой раздаются упреки в адрес Sun, которая якобы противодействует таким устремлениям. Каково ваше мнение на этот счет?
Дж. Г.: Вообще-то в мире Java этим занимаются всю историю ее существования, и я не вижу никаких препятствий такой деятельности со стороны Sun. Есть реализации таких языков, как Lisp, Perl, Фортран и ряд других. Другое дело, что эти реализации на базе Java не получили широкого применения, хотя тому есть объективные объяснения, никак не связанные с позицией Sun по данному вопросу. Это определяется отсутствием рыночного спроса на подобные инструменты.
Ну а Microsoft по сути дела реализовала то, что мы сделали еще задолго до них, но только сопроводив все это мощной маркетинговой кампанией. Я в свое время искренне опасался, что Microsoft в ответ на нашу Java сделает что-то действительно новое и интересное, но они решили пойти по пути копирования наших идей.
Кстати, несмотря на официальные декларации о многоязыковой поддержке, в среде .NET предпочтение отдается одному языку - C#, который является явным аналогом Java, а популярный ранее Visual Basic отходит на второй план. И это при том, что некоторые новые интересные идеи в области языков были как раз связаны с возможным развитием VB и получили развитие в последние годы в виде набирающих популярность скриптовых языков.
PC Week: Получается, что сейчас наступила эпоха моноязыка (C# и Java можно считать в данном случае просто несколько различающимися его версиями), которая пришла на смену многоязычию предыдущих десятилетий?
Дж. Г.: В какой-то степени это действительно так, и связана такая ситуация с общемировыми процессами глобализации, которые неминуемо требуют унификации применяемых технологий. Но при этом многие языки прочно удерживают свои нишевые позиции, как, например, Фортран в области математических вычислений. Нужно подчеркнуть, что встречающееся порой в публикациях противопоставление "старых" и "новых" языков является неверным. Все языки программирования связаны между собой, если так можно выразиться, на генетическом уровне. В Java вы найдете много от Ada, SmallTalk и ряда других систем. Так что языки не умирают, они передают все лучшее следующим поколениям. Кстати, нас порой упрекают, что мы постоянно модифицируем Java. Но как раз самое страшное будет, если через 30 лет Java останется таким же, как сегодня.
PC Week: А вы не боитесь нарастающей конкуренции со стороны скриптовых языков - Perl, Python, PHP?
Дж. Г.: Нет, не боюсь. Их популярность действительно быстро растет, но все же они не могут претендовать на роль универсальных языков широкого назначения. Собственно, сила и успех этих языков заключаются именно в том, что их создатели не испытывают никаких комплексов по поводу некоторых серьезных ограничений и не пытаются преобразовать свои языки из специализированных в универсальные.
PC Week: В последнем десятилетии прошлого века мы наблюдали четко выраженные взрывные моменты в развитии технологий разработки: Visual Basic, потом Java, затем .NET. Сейчас таких заметных явлений вроде бы нет. Но можно ли ожидать в ближайшем будущем каких-то принципиально новых платформ, которые придут на смену сегодняшним?
Дж. Г.: Сейчас действительно настал такой стабильный этап развития ИТ, когда имеющиеся средства и технологии способны удовлетворить любые запросы рынка. Спрогнозировать развитие ситуации в долгосрочной перспективе очень сложно, может быть, даже нереально. Поэтому вполне вероятно, что лучшей стратегией является ориентация на текущее положение дел и быстрое реагирование на его изменение. Например, еще недавно никто не ожидал, что полоса пропускания каналов связи будет расти так стремительно и повлечет за собой необходимость радикальной коррекции не только архитектурных решений, но и используемых моделей бизнеса.
С другой стороны, решающая роль в развитии ИТ принадлежит не самим технологиям. Тут все большее значение приобретает сфера так называемых социальных экспериментов: что действительно нужно людям, чтобы улучшить их качество жизни, эффективность бизнеса? Какие ИТ-предложения ими будут приняты, а какие отвергнуты...
PC Week: Вы действительно верите, что развитием рынка управляет потребитель? Ведь порой создается впечатление, что мы, пользователи, идем, не сознавая этого, под звуки волшебной дудочки ИТ-поставщиков.
Дж. Г.: Тут двоякая ситуация. С одной стороны, конечно, маркетинговое давление со стороны ИТ-отрасли на заказчиков очень велико. Но с другой - заставить людей покупать то, что им не нужно в долгосрочной перспективе, просто невозможно. Ну, если, конечно, ваша компания не называется Microsoft.
PC Week: Сейчас мы наблюдаем переход к многоядерным микропроцессорам и резкое повышение интереса к параллельным вычислениям. Может быть, это послужит основой для всплеска инноваций в области языков программирования?
Дж. Г.: Да, наступил этап освоения более сложных микропроцессорных решений, и связано это с тем, что методы повышения производительности вычислителей, применявшиеся последние 15-20 лет, сейчас перестают работать. Кстати, закон Мура все еще остается жизнеспособным. Но он ведь говорит только об удвоении числа транзисторов на микросхеме каждые полтора-два года. Это происходит и сейчас, но уже не приводит к столь же значительному росту производительности, в том числе за счет тактовой частоты.
В Java есть много средств для поддержки многопроцессорной среды, и их возможности очень далеки от появления каких-то ограничений в этом направлении. Имеются примеры применения Java в системах с тысячами процессоров. Sun сама производит компьютеры с сотнями микропроцессоров. Правда, когда мы будем реально иметь дело с системами со многими тысячами вычислительных узлов, тут все же придется вносить какие-то серьезные архитектурные изменения на уровне языка и виртуальной машины.
PC Week: Можно ли ожидать сближения платформ Java и .NET в плане повышения уровня их интероперабельности? Или подобные вопросы будут решаться только на уровне технологий Web Services?
Дж. Г.: Думаю, что Web Services вполне достаточно для решения проблем межплатформенного взаимодействия. Кстати, сотрудничество в этой области ведущих ИТ-поставщиков - огромное достижение ИТ-индустрии, которая показала, что она может, несмотря на острую внутреннюю конкуренцию, совместно решать стоящие перед ней задачи.
PC Week: Каковы отношения Sun с сообществом Open Source? Наряду с явной близостью позиций тут есть и заметные разногласия.
Дж. Г.: Идеология Open Source нам очень близка, многие наши программные продукты создаются как раз в соответствии с этой концепцией. По большому счету различие позиций наблюдается только в лицензировании открытого ПО: мы считаем, что, применяя чужое открытое ПО, разработчик должен провести тестирование своих продуктов на предмет совместимости с установленными стандартами.
Еще я должен сказать, что мировое сообщество разработчиков ПО - это совершенно уникальное явление в современном мире. Ни одна другая отрасль, ни одна сфера деятельности человечества не может похвастаться чем-то подобным. Вполне возможно, что Open Source представляет собой модель развития не только ИТ-отрасли, но всей нашей цивилизации в целом.
PC Week: Поскольку мы разговариваем в Москве, то хотелось бы затронуть российские дела. Одна из любимых тем наших внутренних дискуссий - поиск своего места на мировом рынке. Как тут вам видятся возможности российских разработчиков?
Дж. Г.: Я не думаю, что им нужно искать какие-то свои ниши и особые пути продвижения на мировой рынок. У вас очень сильные разработчики, способные трудиться в самых разных областях. Например, мы в США давно знали, что ваши программисты особенно хорошо подготовлены в сфере математических вычислений. Но когда мы искали специалистов для работы у себя, мы обнаружили, что тут есть много людей, умеющих управлять качеством процессов разработки. Есть отличные профессионалы в области создания софта для сотовых телефонов.
PC Week: Как вы оцениваете деятельность своего центра разработки в Санкт-Петербурге?
Дж. Г.: Я выскажу мнение руководства Sun, с которым абсолютно согласен: мы в полном восторге! Сам я много лет слежу за развитием ситуации в России и искренне потрясен успехами, которых удалось добиться вашим людям. В том или ином виде мы ведем свои разработки в России уже лет десять. Раньше они были разбросаны по разным городам и командам, а потом мы решили объединить их в Петербурге. У нас есть планы расширения этого центра, но пока я не могу их назвать.
PC Week: И все же если бы вы сегодня получили возможность заново создать Java с учетом его одиннадцатилетней истории и сегодняшних реалий ИТ-мира, то что бы вы сделали в нем по-иному?
Дж. Г.: В принципе, ничего радикально я бы не стал менять. Наверное, стоило бы больше внимания уделить вопросам параллельных вычислений. Возможно, еще я бы отказался от синтаксиса Си и уж точно убрал бы из языка эти фигурные скобки.