Завински, Джейми
Дже́йми Ве́рнер Зави́нски (англ. Jamie Werner Zawinski, известный также как jwz; род. 3 ноября 1968, Питтсбург, Пенсильвания, США) — американский программист, блогер и импресарио. Один из ключевых разработчиков Netscape Navigator и сооснователь проекта Mozilla.org. Также известен как создатель проектов Netscape Mail, Lucid Emacs, заставок XScreenSaver и владелец ночного клуба DNA Lounge в Сан-Франциско.
Биография
В 16 лет Джейми Завински начал свою деятельность программистом в проекте Скотта Фалмана Spice Lisp (диалект языка программирования Лисп) в Университете Карнеги-Меллона. Затем он работал в стартапе Expert Technologies, Inc., занимающемся разработкой технологий искусственного интеллекта, а далее — в исследовательской группе по ИИ Роберта Виленски и Питера Норвига в Калифорнийском университете в Беркли, где занимался обработкой естественного языка.
В 1990 году Джейми Завински работал в Lucid Inc., (компания по разработке ПО в Калифорнии) сначала над Lucid Common Lisp (одно из коммерческих решений Common Lisp— диалекта языка Лисп), а затем над IDE Energize C++ от Lucid. Когда в Lucid решили использовать GNU Emacs в качестве текстового редактора для своей IDE из-за его свободной лицензии, популярности и расширяемости, Завински возглавил этот проект. Поскольку Завински и другие программисты вносили фундаментальные изменения в GNU Emacs, добавляя новые функции, разногласия по поводу того, как объединить эти патчи в основное дерево, в конечном итоге привели к разделению проекта на GNU Emacs и Lucid Emacs (теперь XEmacs)[1].
В 1992 году Джейми Завински выпустил первую версию XScreenSaver — бесплатной коллекции из более чем 240 заставок экрана с открытым исходным кодом[2]. Изначально была разработана для Unix, а затем стала поддерживать macOS, iOS и Android. В системах Unix она также предоставляет фреймворк для затемнения и блокировки экрана. Завински поддерживает её, выпуская новые версии несколько раз в год[3].
Netscape и Mozilla
В 1994 году после банкротства Lucid Джейми Завински стал одним из первых сотрудников Mosaic Communications, позже известной как Netscape. В Netscape он разработал Unix- версию Netscape Navigator 1.0[4][5], а затем и Netscape Mail — первую программу для чтения почты (или Usenet- клиента) со встроенной поддержкой HTML[6].
Джейми Завински придумал название «Mozilla» (первоначально, внутреннее кодовое название веб-браузера) во время совещания сотрудников, это была отсылка к Годзилле и производное от «Mosaic killer» (убийца Мозаики)[7][8].
Пасхальное яйцо, которое он закодировал в браузере Netscape, стало довольно известным в первые дни существования Всемирной паутины: ввод «about: jwz» в адресной строке перенаправлял пользователя на домашнюю страницу и менял анимацию логотипа браузера на огнедышащего дракона[9].
Считается, что благодаря своей многолетней поддержке и пропаганде свободного программного обеспечения как внутри компании, так и за её пределами, Джейми Завински вдохновил Netscape на решение открыть исходный код браузера в 1998 году[10][11]. Он был основателем компании Mozilla.org, лично зарегистрировал её доменное имя в день объявления о работе Netscape с открытым исходным кодом и помогал проектировать и управлять организацией в течение первого года её существования[12][13].
Когда в 1999 году крупный американский проект AOL приобрёл Netscape, Джейми Завински написал бюллетень, в котором объяснил, что работа Mozilla будет продолжаться с Netscape или без него. А через год после первоначального выпуска исходного кода он ушёл из Netscape и Mozilla, сославшись на своё разочарование тем, что другие участники проекта решили переписать код вместо того, чтобы постепенно его улучшать[14][15].
Клуб DNA Lounge
В 1999 году вскоре после ухода из Джейми Завински объявил о покупке DNA Lounge — ночного клуба в Сан-Франциско[16][17][18][19] примерно за 5 миллионов долларов. Клуб был вновь открыт в июле 2001 года, о чём Джейми Завински подробно описал в блоге под названием «DNA Sequencing»[20][21].
В 2016 году он изучал альтернативные идеи финансирования, чтобы сохранить заведение на плаву во время спада посещаемости[20].
Интервью и выступления
В 2000 году Джейми Завински снялся в 60-минутном документальном фильме PBS «Code Rush», в котором рассказывается о создании Mozilla.org и разработке исходного кода браузера в 1998 году.
В своей книге, написанной в 1998 году («Ускорение сети: внутренняя история Netscape и как она бросила вызов Microsoft»[22]), американский журналист Джош Куиттнер подробно рассказал о Джейми Завински.
Также Джейми Завински фигурирует в книге Глина Муди, английского писателя, специализирующегося на технологических вопросах,— «Мятежный код: Linux и революция открытого исходного кода»[11], написанной в 2001 году.
В книге Питера Сейбеля 2009 года «Программисты за работой: размышления о ремесле программирования» есть глава о Джейми Завински[23][24].
А в 2001 году в документальном фильме «California Dreamin': The Gold Rush», снятом для немецкого общественного телевидения, можно увидеть Джейми Завински[25][26].
Джейми Завински фигурирует в нескольких видеоинсталляциях на выставке Музея компьютерной истории «Революция: первые 2000 лет вычислений»[27].
Скринсейверы, созданные Джейми Завински, были представлены на галерейной выставке в Роттердаме в 2017 году под названием «Спящий режим: искусство заставки» под кураторством Рафаэля Розендаля (Rafaël Rozendaal) в Институте Het Nieuwe Instituut, на сайте которого размещено интервью с Джейми Завински[28].
«Закон Завински»
Джейми Завински сформулировал Закон Завински (Zawinski’s Law) — это ироничное наблюдение в сфере разработки программного обеспечения:
Каждая программа развивается до тех пор, пока не сможет читать электронную почту. Программы, которые не способны так развиться, вытесняются теми, что смогут (Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can).
Несмотря на не совсем научное обоснование, закон фиксирует устойчивую тенденцию[29]:
- естественное разрастание функционала — программные продукты постепенно наращивают возможности, выходя за рамки изначальной специализации;
- конкуренция через универсальность — если одна программа не успевает «эволюционировать», её вытесняют более многофункциональные аналоги;
- парадокс простоты — даже узкоспециализированные инструменты со временем превращаются в платформы с избыточными функциями (например, мессенджеры, включающие платежи, игры и т. д.).
Можно привести такие примеры проявления закона[29]:
- Instagram. Начал как приложение для публикации фото с фильтрами, позже добавил Direct‑сообщения, видеостримы, маркетплейс и AR‑эффекты;
- браузеры. Из инструментов для просмотра веб‑страниц превратились в платформы с мессенджерами, почтовыми клиентами, магазинами приложений и т. п.;
- офисные пакеты. Современные аналоги (например, Microsoft 365) включают не только текстовые редакторы, но и электронную почту, облачные хранилища, видеоконференции.
Закон Завински контрастирует с некоторыми другими идеями и «законами» программирования[29]:
- KISS (Keep It Simple, Stupid) — призывом к минимализму в дизайне;
- YAGNI (You Aren’t Gonna Need It) — принципом отказа от избыточных функций;
- законом Теслера — идеей, что сложность системы нельзя устранить полностью, а лишь перенести (например, с пользователя на разработчика).
Закон Завински описывает реальную динамику развития ПО, но не является безусловным правилом. Балансирование между функциональностью и простотой остаётся ключевой задачей разработчиков[29].
Эрик Рэймонд интерпретировал этот закон как комментарий к феномену раздувания программного обеспечения из-за популярных функций[30][31].
Джейми Завински заявил в 2020 году:
Я говорил не о подражателях, а о платформизации. Приложения, в которых вы «живёте» весь день, вынуждены становиться всем и делать всё. Приложение для редактирования текста становится IDE, затем ОС. Приложение для отображения гипертекстовых документов становится почтовым клиентом, а затем ОС.
Принципы
Джейми Завински впервые добился известности как программист на языке Lisp, но большинство его крупных проектов написано на C. Несмотря на это, он долгое время критиковал языки программирования, в которых отсутствует безопасность доступа к памяти и автоматическое управление памятью. Он особенно активно выступал против C++ . В книге Питера Сейбеля «Программисты за работой: размышления о ремесле программирования» Джейми Завински называет C++ «мерзостью… ассемблером PDP-11, возомнившим себя объектной системой»[24][32].
Хотя Джейми Завински написал и опубликовал множество утилит на языке Perl[33], он подверг его критике, характеризуя Perl как «объединение всех худших аспектов C и Lisp: миллиард различных подъязыков в одном монолитном исполняемом файле. Он сочетает в себе мощь C с читабельностью PostScript»[34] .
Джейми Завински критиковал ряд недостатков языка и библиотек, с которыми столкнулся при программировании на Java, особенно маркетинговые и политические мотивы, стоящие за этим, которые привели к тому, что Sun объединила язык, библиотеку классов, виртуальную машину и модель безопасности под одним названием «Java», что, по его словам, пошло им во вред. Несмотря на положительные аспекты, в конечном итоге Джейми Завински вернулся к программированию на C, «поскольку это по-прежнему единственный способ выпускать переносимые программы»[35].