Java: три дня до катастрофы на сцене, история из нового фильма

Студия Cult.Repo выпустила в пятницу на YouTube документальный фильм «The Java Story», четвёртый в серии картин об истории языков программирования (до этого выходили фильмы про C++, Python и React). Проект начинала команда сайта для ИТ-вакансий Honeypot.io: в 2019 году Honeypot купила компания XING (позже переименованная в New Work SE), но основательница Эмма Трейси выкупила продюсерское подразделение обратно и переименовала его в Cult.Repo. В фильме участвуют создатель Java Джеймс Гослинг и архитекторы Oracle Марк Рейнхольд и Брайан Гетц.
Java, которая сегодня стабильно держится в верхних строчках индекса популярности языков TIOBE и остаётся основным языком корпоративной разработки, начиналась как язык Oak, разработка экспериментального подразделения Sun Microsystems под названием FirstPerson (1994 год). Компания рассчитывала получить контракт Time Warner на софт для интерактивного видео по запросу на телеприставках, но контракт достался конкуренту, Silicon Graphics (SGI). Проект Time Warner буксовал несколько лет и был закрыт в 1997 году, что ударило и по финансам SGI. После потери контракта Sun сократила почти весь штат FirstPerson, оставив на проекте Oak лишь 12 инженеров, включая Гослинга и менеджера проекта Ким Полесе.
Тима Линдхольма, нанятого для доработки виртуальной машины, взяли на проект всего за месяц до сокращений. По его словам The Register, оставшиеся сотрудники чувствовали себя «беженцами в разбомблённом бункере», а сам он ждал увольнения со дня на день. Проект спасла случайность: один из инженеров, игравший с только что вышедшим браузером Mosaic, предложил перенацелить Oak на набирающую популярность Всемирную паутину, это было за год до того, как Windows 95 принесла интернет массовому пользователю. Команда собрала клон Mosaic под названием WebRunner, ставший предшественником Java-апплетов. В начале 1995 года Oak переименовали в Java, по легенде, в честь любви команды к кофе.
Перед первым публичным показом языка на конференции SunWorld в 1995 году (предшественнице JavaOne) среда выполнения регулярно падала. Линдхольм выяснил, что модель многопоточности «была фундаментально сломана»: системные прерывания срабатывали прямо во время выполнения инструкции процессором SPARC, и система не могла восстановить сброшенное из памяти состояние. Линдхольм понял, что прерывания нужно допускать только в определённых точках, и за три дня до конференции переписал весь пакет потоков заново. На презентации, когда тогдашний гендиректор Sun Скотт МакНили демонстрировал Java публике, Линдхольм сидел в зале и готовился к худшему, но переписанный код сработал.
Линдхольм также стоял у истоков первой попытки Sun сделать Java открытой, ещё до того, как Эрик Рэймонд ввёл в оборот сам термин «open source». Компания бесплатно распространяла бинарный рантайм Java, а всем, кто запрашивал, отдавала и исходный код; таких запросов пришли тысячи. По легенде из фильма, трафик на домен Java превысил трафик самого sun.com, и команде пришлось провести в офис отдельную линию T3. Программу так и не формализовали: Sun приглашала выступить Ричарда Столлмана, но его позиция показалась руководству «слишком радикальной», и официально Java открыли лишь десятилетие спустя.
В 1996 году к языку присмотрелась Microsoft, увидев в кроссплатформенном рантайме угрозу для Windows, особенно для тогда ещё молодой Windows NT. Компания лицензировала Java для Windows, но добавила собственные API и отказалась поддерживать часть стандартных (так появился печально известный Microsoft J++). Sun утверждала, что изменения Microsoft были направлены на подрыв кроссплатформенности Java и должны были подтолкнуть разработчиков к Windows-специфичной реализации. Многолетняя судебная тяжба вымотала команду разработки и отвлекла ресурсы от самого языка; в итоге Microsoft выплатила Sun почти $2 млрд по серии мировых соглашений.
Дальше фильм прослеживает историю Java через десятилетия: эпоху переусложнённых J2EE и Java EE 5, появление фреймворка Spring, крах Sun и её поглощение Oracle, а также расцвет JVM-языков после выхода OpenJDK в открытый доступ. Сам Линдхольм охладел к Java к началу 2000-х на фоне растущей корпоративной бюрократии и ушёл в Google, где проработал следующие 20 лет вплоть до недавнего выхода на пенсию.
Ключевые факты
- Документальный фильм «The Java Story» (студия Cult.Repo, экс-Honeypot.io) вышел на YouTube в пятницу; в нём участвуют создатель Java Джеймс Гослинг и архитекторы Oracle Марк Рейнхольд и Брайан Гетц.
- Java начиналась как язык Oak для интерактивных телеприставок Time Warner в подразделении Sun под названием FirstPerson; контракт достался конкуренту SGI, проект закрыли в 1997-м, а почти всю команду сократили.
- За три дня до презентации Java на конференции SunWorld в 1995 году Тим Линдхольм обнаружил, что модель потоков «фундаментально сломана», и переписал её с нуля, код заработал прямо на демо гендиректора Sun Скотта МакНили.
- Sun бесплатно раздавала исходный код Java ещё в 1990-х, за десятилетие до официального открытия языка; трафик Java-домена превысил трафик sun.com, и команде пришлось провести в офис отдельную линию T3.
- Microsoft лицензировала Java для Windows в 1996 году, но изменила API (Microsoft J++), что Sun расценила как попытку подорвать кроссплатформенность; многолетняя тяжба завершилась выплатой почти $2 млрд.
Почему это важно
«The Java Story», четвёртая картина в серии документалок о языках программирования (после C++, Python и React) и первый проект студии Cult.Repo. Фильм показывает, как язык, который сегодня держится в верхних строчках индекса TIOBE и лежит в основе огромного массива корпоративного софта, вырос из провалившегося проекта для телеприставок и был на грани полного краха ещё до публичного релиза.
Кому это важно
Java-разработчикам, архитекторам корпоративных систем и всем, кто интересуется историей ключевых технологий индустрии, фильм собрал воспоминания создателя языка Джеймса Гослинга и других участников первых лет разработки.
Как это применить
Посмотреть фильм на YouTube. История также годится как иллюстрация: критические баги вскрываются в последний момент перед публичным показом, а успех технологии нередко определяется случайным поворотом (пивот с телеприставок на веб), а не изначальным планом.
Можно ли доверять
Главный источник, очевидец событий, один из соавторов первой спецификации JVM Тим Линдхольм, рассказавший историю The Register напрямую; в фильме его слова подтверждают другие участники разработки, включая создателя языка Гослинга. Эта статья The Register, прямой репортаж о премьере документалки, а не сатирическая заметка.
Риски и подводные камни
Рассказ построен на воспоминаниях спустя более 30 лет и снят продюсерской компанией, заинтересованной в драматичной подаче истории для собственного коммерческого проекта; детали вроде точной причины сбоя потоков или объёма трафика подтверждены только словами участников, независимой проверки цифр нет.
«Мы были как беженцы в разбомблённом бункере.»
— Тим Линдхольм, инженер, стоявший у истоков виртуальной машины Java