Вы сказали - компилятор, то есть здесь как бы двухэтапная компиляция?
Д.Г.: Да, технология даже состоит, скорее, из трех этапов: в среде разработки пишется программа на Java, вы отлаживаете ее там и встроенным компилятором получаете универсальный байт-код. Затем вы этот код можете запустить на любой виртуальной машине, где он будет оптимально откомпилирован под конкретный процессор.
Ну хорошо, давайте поговорим об OpenSolaris[opensolaris.org/os. Суть проекта - в открытии исходных кодов операционной системы Sun Solaris. Однако лицензия CDDL, под которой распространяется ее код, не эквивалентна лицензии GPL, хотя и имеет с нею много общих положений]. Какие надежды вы на нее возлагали и оправдались ли они?
Д.Г.: Язык Java открыт уже больше десяти лет, и это очень способствовало разработке и совершенствованию технологии. Многие проблемы были обнаружены на самой ранней стадии, и мы благодарны энтузиастам, которые помогли их исправить. Проект OpenSolaris стартовал совсем недавно, так что выводы делать рано. Мы, разумеется, ожидаем позитивный результат. Главная цель этого шага - вовлечение в совершенствование продукта наших клиентов. Мы хотим их сделать нашими партнерами.
Мы не только ждем развития Solaris от сторонних разработчиков, в других системах уже появляются и наши решения. Например, утилита DTrace, которой мы по праву гордимся, портирована во FreeBSD.
Не планируете ли вы выйти с Solaris на рынок конечных пользователей?
Д.Г.: Мы вообще очень любим конечных пользователей, однако пока нет идеи, каким образом на этом рынке можно работать. У нас нет бизнес-модели. Нужно иметь обширную службу поддержки. Операционная система должна быть протестирована и отлажена на большом количестве оборудования и т. п. В общем, мы пока не думаем на эту тему.
Участвует ли Sun в государственных программах, включая такие неоднозначные, как Digital Passport?
Д.Г.: Да, мы участвуем во множестве различных государственных программ. Наиболее тесно компания сотрудничает с государственными учреждениями Бразилии. Там уже работают наши решения в системе здравоохранения и в налоговой службе.
А.Б.: Насколько я знаю, в России Sun не работает напрямую с клиентами, но наши партнеры участвуют в подобных программах. Однако представителей Sun нередко приглашают на правительственные совещания для консультаций.
Java использовался в марсианском проекте, вы не расскажете подробности?
Д.Г.: В первой части проекта использовался язык Java, но только в наземном оборудовании. В самих марсоходах, которые бороздят поверхность четвертой планеты, применены другие технологии. Однако американский президент решил поскорее отправить на Марс человека, и вторая часть проекта, связанная с посылкой автоматизированных систем, приостановлена. Хотя многое уже было сделано.
Вы, конечно, знаете об ANSI C, ведь это тоже универсальный стандартизованный язык, так зачем понадобилась Java?
Д.Г.: Если писать сложные программы, особенно для очень разных платформ, то проект на основе ANSI C будет долгим и дорогим. На Java решение таких задач обходится вдвое дешевле. К тому же у Java более понятный код и проще отладка. В программе на С очень трудно искать ошибки, так как место ошибки и место ее проявления могут быть сильно разнесены в тексте программного проекта. Например, если вы ошибетесь в хедере[Часть программы на С с описаниями переменных и классов, которая может быть вынесена в отдельный файл], то выловить эту ошибку порой невероятно трудно. В Java баги так глубоко не прячутся, и обнаружить их чаще всего не составляет труда.
А почему программы на Java медленнее, чем на С или ассемблере?
Д.Г.: Я бы так не сказал. В клиент-серверных приложениях они быстрее программ на С или .NET. Откровенно говоря, разработчики нередко слишком увлекаются дополнительными сервисами и «примочками» на Java. Хорошо написанный Java-код часто работает быстрее приложений на языке C. То есть скорость во многом зависит от квалификации программиста, и мне кажется, что программист средней квалификации напишет на Java лучший код.
Касательно ассемблера следует отметить, что в реальном времени Java работает очень быстро. Если проект большой, то делать его на ассемблере трудно и дорого. В первую очередь - из-за сложности отладки. К тому же такие программы практически не масштабируются, плохо защищены, имеют нечитаемый код.
Теперь личный вопрос: как ваша общественная деятельность в должности «Джеймса Гослинга» сочетается с работой программистом?
Д.Г. (смеется): Очень трудно оценить. Да, сейчас практическая часть сокращается, я все больше времени провожу на различных встречах и конференциях, подобных этой. Часто встречаюсь с клиентами, но не для того, чтобы убедить их в чем-то, а скорее, чтобы всегда быть в курсе их потребностей. Но программы я все еще пишу.
Джеймс, а что для вас значит «корпоративная дисциплина»?
Д.Г. (смеется): Я не заметил никакой корпоративной дисциплины. Мне иногда кажется, что все у нас происходит хаотично и спонтанно. Наша система управления очень децентрализована, как мы шутим - «e-mail management». То есть большинство решений мы принимаем, обмениваясь сообщениями по электронной почте.
А.Б.: Да, у нас управление не на основе авторитета, а только на основе компетентности. Выбор стратегии никогда не бывает единоличным решением. У нас нет ситуаций: «Будет так, потому я выше по должности». Прав тот, кто лучше знает предмет. Прежде чем принять то или иное важное решение, мы всегда выслушиваем мнение экспертов.
Вы знакомы с Ричардом Столменом[Richard M. Stallman - основатель и руководитель Free Software Foundation, известный борец за свободу программного обеспечения. Активно критиковал положения лицензии OpenSolaris]?
Д.Г.: Хм, это странное знакомство. Да, мы встречались, и я не хотел бы публично обсуждать наш разговор. Но я подал бы иск на него за нарушение интеллектуальной собственности. Не могу сказать, что мы друзья.
И напоследок такой вопрос: я знаю, что дома вы работаете за компьютером производства Apple, с чем связан ваш выбор? Почему не Sun?
Д.Г.: Потому, что Sun не делает лэптопов. Почему не PC? Потому, что они очень неудобные, а их дизайн ужасен. Когда работаешь с ноутбуком, часто открываешь и закрываешь экран. На PC, после открытия крышки, приходится ждать кучу времени, пока система снова заработает, а Powerbook начинает работать сразу.
Большое спасибо за интервью. Надеюсь, вы заглянете в ближайшее время и к нам в Москву.
Наука: На полпути к сверхчеловеку
Брюс Лан (Bruce Lahn) из Чикагского университета сообщил в журнале Science, что биологическая эволюция человеческого мозга продолжается и в настоящее время. Возглавляемая им группа исследователей изучала распространение двух генов, нарушение работы которых приводит к микроцефалии (резкому уменьшению размера мозга).
Выяснилось, что у здоровых людей встречаются разные аллели (состояния) таких генов. Предположение, что эти аллели функционально идентичны, опровергается тем, что в их распространении среди населения нашей планеты наблюдаются следы действия отбора. Более старые аллели описанных генов чаще встречаются в Африке, но по мере расселения человека частоты эволюционно более молодых аллелей в популяциях возрастали.
Гены, о которых идет речь, интенсивнее эволюционировали у предков людей, нежели в родственных группах млекопитающих. Можно допустить, что их нормальное функционирование не только спасает от микроцефалии, но и способствуют лучшему развитию мозга у здоровых индивидов. Значит, мозги коренных европейцев, азиатов и американцев «умнее», чем мозги коренных африканцев?