О пользе чистых начал

Тут в Гугл Плюсе Евгений Охотников сетует, что наработки 80–90-х годов нельзя переиспользовать в вебе:
Ну вот, допустим, кто-то 20-ть лет назад сделал движок текстового или графического редактора. Не суть важно, на C++, Eiffel, Java или Delphi. Для десктопа, понятное дело, т.к. Web тогда только зарождался. Какое-то время этот движок был актуальным и мог быть портирован под разные платформы путем адаптации GUI-библиотеки (или же путем написания слоя между движком и конкретной GUI-библиотекой).
Но с окончательной победой Web-приложений над здравым смыслом (т.е. где-то лет 10 назад по моим субъективным наблюдениям), у разработчиков такого движка встал бы серьезный вопрос: а как все имеющиеся наработки портировать под Web? В котором на клиенте нормально живет только JS, а технологии обмена информацией между клиентом и сервером где-то на уровне каменного века? :)
Кроме как путем серьезнейшей переделки потрохов не получится, имхо. Что, как мне представляется, хорошо видно на примере MS Office, который вышел в Web относительно недавно. И где потребовалось много времени и сил на то, чтобы переиспользовать старый код в Office 365, дописав к нему новых клиентов (своих для каждой платформы).
Все так, но это скорее хорошо, чем плохо.
Любая система рано или поздно упирается в локальный максимум, из которого уже не может выбраться эволюционным путем. Интерфейсы в 80-х мало кто понимал. Отчаянное время. Но и сейчас мы далеки от конечного равновесия: никто не обещает, что через пять лет все опять кардинально не поменяется. Мы пока просто не знаем, как должны выглядеть интерфейсы, программы, да и вообще компьютеры. Делать ставку на долгую поддержку в такой период глупо — наследственность тянет через себя не только хорошие вещи, но и давно неактуальные, а также откровенно плохие. Если вы знакомы с современным Фотошопом, в этом видео видно, откуда растут уши у его многочисленных странностей: Undo по Cmd+Shift+Z, кнопки Preview в эффектах, дурацкие модальные окошки с No pixels selected. Все они прожили по 25 лет.
Чем дольше существует система, тем сильнее обостряется конфликт между новыми потребностями и грузом прошлого. Кода много, его невыгодно переадаптировать, репутация питается только былыми заслугами, программа переходит в режим доживания. Становится выгодно начать с чистого листа. Так за последние 5 лет появились легкие и современные альтернативы Адоби: Скетч, Пиксельматор. Из ниоткуда. Но их экономика понятна: полное переписывание это всегда улучшение минимум на порядок. Новые программы удобнее и актуальнее.
Чем больше революций, чем больше кода выбрасывается и пишется заново, тем быстрее и вернее мы приближаем будущее. Не каждая попытка безоговорочное добро, главное чтобы их было много и они не задерживались. Нужно сорханять, популяризовать и переиспользовать идеи, практики, но не реализации. Хорошие идеи осядут.
Возникает чисто практический вопрос: разве это не безумная прорва работы, сделать что-то хотя бы минимально ценное для пользователя, тот же графический пакет или текстовый редактор? Да, но это и есть проблема: так не должно быть. Нет никаких предпосылок к тому, чтобы разработка Иллюстратора была десятилетней эпопеей на миллионы человеко-часов. Просто наши инструменты несовершенны: разработчики на C++ борются с проблемами, которые присущи не предметной области, а самому инструменту. Включая размер кода, который очень быстро сам по себе становится проблемой. Фокус не в том, где взять столько усилий, сколько вбухивает Адоби. Фокус в том, чтобы делать то же самое быстрее и проще. Этому не научишься, если постоянно доделывать один монолит, поэтому даже хорошо, что GTK не натягивается на HTML. Каждый следующий виток снимает еще одну головную боль, и постепенно, раз за разом, мы придем к нужному состоянию, когда студент сможет написать базовую версию Фотошопа за летние каникулы.
|
</> |