Джеймс Гослинг: Создавал для тостеров, а в итоге оказался везде
Джеймс Гослинг намеревался создать язык программирования для интерактивных телевизионных приставок и бытовой техники. В итоге Java стала запускать серверы, на которых работают большинство банков мира, Android-телефоны в миллиардах карманов и бесчисленные корпоративные системы, для которых она никогда не предназначалась — случай, когда инженер решил не ту проблему настолько хорошо, что решение полностью переросло ее.
От Калгари до Карнеги-Меллона
Гослинг родился 19 мая 1955 года недалеко от Калгари, Альберта, Канада, и получил степень бакалавра компьютерных наук в Университете Калгари, прежде чем перейти в Университет Карнеги-Меллона для получения степени магистра и доктора философии в области компьютерных наук, которую он завершил в 1983 году. Еще будучи аспирантом, он уже создавал инфраструктуру, которую будут использовать другие: он написал Gosling Emacs, ранний и влиятельный вариант текстового редактора Emacs, и создал версию Unix для 16-процессорного компьютера, занимаясь параллельными системами за годы до того, как многоядерное оборудование стало мейнстримом.
NeWS и невыбранный путь
Соучредитель Sun Microsystems Энди Бехтольсхайм нанял Гослинга в 1984 году, и он проработал там следующие двадцать шесть лет. Одним из его первых крупных проектов, разработанных совместно с Дэвидом Розенталем, был NeWS (Network/Extensible Window System) — амбициозная оконная система для растровых дисплеев рабочих станций. NeWS был технически сложным, но решение Sun не делать его свободно доступным помогло победить конкурирующей системе X Window System, что стало поучительным уроком о том, как лицензирование и открытость, а не только технические достоинства, определяют, какие системы выживут. Это был ранний пример паттерна, который десять лет спустя повторится в обратном порядке с Java.
Проект Green и рождение Java
В июне 1991 года Гослинг присоединился к коллегам Майку Шеридану и Патрику Нотону в рамках того, что в Sun называли «Проект Green» — попытка разработать программное обеспечение для грядущей волны потребительской электроники: приставок, телевизоров и других устройств, которые, по мнению руководителей Sun, вскоре должны были общаться друг с другом, — видение «цифровой конвергенции», опередившее свое время. Разочарованный ограничениями C++ для такого рода встроенного сетевого программирования, Гослинг разработал новый язык, первоначально названный «Oak» в честь дерева за его окном, позже переименованный в Java. Он создал его оригинальный компилятор и виртуальную машину — программный слой, который позволял скомпилированному байт-коду Java работать идентично на совершенно разном оборудовании — технический фундамент определяющего обещания Java: «Пиши один раз, запускай везде». Первая публичная демонстрация команды состоялась 2 сентября 1992 года, где был представлен Star-7, портативный медиа-контроллер с сенсорным экраном, загруженный графическим интерфейсом на базе Java — устройство, которое опередило смартфоны более чем на десятилетие, хотя рынок интерактивного телевидения, на который оно было нацелено, так и не материализовался полностью. Вместо этого Java нашла свою настоящую аудиторию во взрывном росте Всемирной паутины и корпоративных серверах, став, по большинству показателей, самым широко используемым языком программирования в мире в настольных вычислениях, научных исследованиях, корпоративных системах и, в конечном итоге, в мобильной экосистеме Android.
Двадцать вопросов, восемь минут на часах и процентиль, измеренный по всем, кто его проходил. Без регистрации.
Пройти тест IQ →Жизнь после Sun
Гослинг оставался в Sun в качестве самой заметной технической фигуры, занимая должности, включая вице-президента и технического директора группы продуктов для разработчиков, до тех пор, пока в 2010 году не было завершено поглощение Sun компанией Oracle. Он покинул Oracle в апреле того же года, сославшись на «сокращение зарплаты, статуса и способности принимать решения, а также смену роли и этические проблемы» — это был заметный публичный уход из компании, которая теперь контролировала созданный им язык. В 2011 году он ненадолго присоединился к Google, затем перешел в Liquid Robotics, стартап, создающий автономных роботов для исследования океана, позже приобретенный Boeing. В 2017 году он присоединился к Amazon Web Services в качестве заслуженного инженера (Distinguished Engineer), эту роль он занимал до выхода на пенсию в 2024 году.
Oracle против Google и сложная лояльность
Самое публично обсуждаемое заявление Гослинга в его поздней карьере касалось знакового судебного процесса Oracle против Google о том, является ли использование Google структур API Java в Android нарушением авторских прав. Несмотря на свой собственный горький уход из Oracle, Гослинг написал, что «хотя у меня есть разногласия с Oracle, в данном случае они правы. Google полностью обманула Sun» — поразительная лояльность к языку и компании, которые он построил, даже после ухода на враждебных условиях. Тем не менее, позже он сказал, что одобряет окончательное решение Верховного суда о том, что API не должны подлежать авторскому праву, — нюанс, который отразил его инстинкт отделять личные обиды от технических и правовых принципов.
Признание
В 2002 году Гослинг получил премию Economist Innovation Award и премию USENIX за жизненные достижения, известную как «The Flame Award». В 2004 году он был избран в Национальную инженерную академию за вклад в архитектуру Java и оконные системы, а в 2007 году Канада назначила его офицером Ордена Канады, второй по значимости гражданской наградой страны. В 2013 году он стал членом ACM, в 2015 году получил медаль IEEE Джона фон Неймана, а в 2019 году был назван членом Музея компьютерной истории.
Почему Джеймса называют гением
Самый веский аргумент в пользу гениальности Гослинга — архитектурный: проектирование виртуальной машины и формата байт-кода, достаточно надежных для того, чтобы язык, созданный для приставок в 1991 году, мог, лишь с небольшими изменениями, стать субстратом для корпоративных банковских систем, телефонов Android и веб-серверов десятилетие спустя, работая без изменений на архитектурах процессоров, которые никто в Sun не предвидел. Это специфическая и доказуемая форма дальновидности — создание уровня абстракции, достаточно общего, чтобы пережить свое первоначальное предназначение. Однако его собственный рассказ о лидерстве подрывает любой миф об одиноком гении; он говорил, что настоящая награда за хорошую инженерную работу — «вы никогда не поймете», и что работа в основном заключается в том, чтобы «давать деньги хорошим людям и говорить им делать хорошие вещи» — приписывая успех Java команде, собранной в рамках проекта Green, а не своей собственной уникальной идее. Честный контраргумент заключается в том, что синтаксис Java во многом заимствован из C и C++, его обещание «пиши один раз, запускай везде» потребовало годы мучительных доработок, прежде чем оно заработало надежно, и Гослинг был одним из нескольких важных архитекторов, а не единственным автором. Его гениальность, если это слово подходит, заключалась в системном проектировании и долговечности, а не в одной вспышке оригинальности.
Наследие
Java остается, спустя десятилетия после закрытия проекта Green, одной из самых значимых частей программной инфраструктуры из когда-либо созданных, продолжая обучать новых программистов и запускать системы, о нацеленности на которые оригинальная команда Гослинга никогда не подозревала. Мало кто из инженеров видел, как проект, созданный для рынка, который так и не появился, становится незаменимым для рынков, которым он никогда не должен был служить.



