Хорошие времена рождают слабаков

В статье «Моё разочарование в софте» мы увидели, как программное обеспечение деградировало за последние два десятилетия. В 2019 Джонатан Блоу (разработчик игр Braid и The Whitness) выступил с докладом, в котором объяснил, почему это может происходить:

Выступление очень, очень хорошее, но, поскольку я уже знаю, что у вас не будет времени посмотреть его, то вот вам моя интерпретация.

Кризис программного обеспечения носит системный и поколенческий характер. Скажем, первое поколение работает над проектом X. После того, как X создан и становится популярным, проходит время, и приходит следующее поколение программистов и работает уже над проектом Y, основанное на X. Им не нужно точно знать, как построен проект X, почему он был построен таким образом, или как написать альтернативный X с нуля. Они не хуже и не ленивее, у них просто нет реальной необходимости создавать X2, поскольку X уже существует и позволяет им решать многие насущные задачи.

Самым важным моментом выступления было то, что если вы работаете над Y, а Y основано на X, то это не означает то, что вы автоматом знаете и X. Даже если люди, которые создают X, все еще существуют, их знания не передаются автоматически и без реальной необходимости уйдут с людьми, которые изначально владели ими.

Это парадокс: большинство людей могли подумать, что, если бы мы построили, например, космический корабль или сложный самолет в прошлом, то мы смогли бы построить его снова в любое время. Но нет, если бы мы не строили определенный самолет непрерывно, то спустя всего 50 лет уже легче было бы разработать новый с нуля, чем пытаться возродить старые процессы и документацию. Знания не передаются следующему поколению автоматически.

В программировании мы развиваем абстракции с пугающей скоростью. Когда они накапливаются в достаточном количестве, понимать и контролировать всё что происходит становится невозможным. Здесь начинается мой вклад: я полагаю, что нашел несколько довольно ярких примеров того, как лестница абстракций начала падать, и теперь никто ничего не может с этим поделать, потому что все мы привыкли работать только на самой ее вершине.

Войдите в macOS Catalina. Каждый год Apple выпускает новую операционную систему, и каждый год ей нужна флагманская функция для ее продвижения. В этом году это было долгожданное отдельное музыкальное приложение. Ну, что может быть проще, не так ли? Список файлов, категорий, фильтров, умных списков. Все это есть в iTunes, по крайней мере, с 2001 года. Но даже если это не так, насколько это сложно — создать достойный музыкальный проигрыватель? Многие компании на порядок меньше Apple уже успешно сделали это в прошлом.

И все же всё прошло не так гладко. У ребят из «Annoying.Technology» есть отличные примеры.
Щелчок по одному элементу открывает другой:

Заголовок Music.app отображается неправильно:

Хорошие времена рождают слабаков

Проблема не ограничивается только музыкой. В подкастах некоторые элементы выделяются при выборе, а другие нет:

Как правильно заметил Филипп,

“Это не какая-то там сторонняя утилита, которая выглядит немного странно на непонятной версии MacOS. Это флагманский вариант новой версии Music.app, который загружается вместе с Catalina”.

Я думаю, что это отличный пример, потому что все возможные объяснения, которые у вас только могут быть, уместны только в случае, если бы это было любое другое приложение.

Невнимательность? Что ж, они сами выбрали сделать приложение «Музыка». Они сами выбрали сделать его флагманским продуктом Catalina. Тысячи глаз смотрели и верили. Не помогло.

Нехватка ресурсов? Это Apple, компания, которая могла бы нанять кого угодно в мире. Над их музыкальным плеером, возможно, работает больше людей, чем над всем бизнесом Spotify. Тоже не помогло.

Им просто все равно? Что ж, опять же, Apple в прошлом была известна своим вниманием к деталям и хорошо следовала этому принципу. Я сомневаюсь, что они намеренно полностью изменили приоритеты компании. Логично предположить, что им не было все равно, но и это не помогло.

Это слишком незначительно для единственной ошибки? Что ж, ошибок множество, и они портят все приложения Catalina.

Ошибка слишком непонятная? Что может быть очевиднее, когда при щелчке по одному элементу он не выбирается.

Недостаточно опыта? Они создают музыкальные плееры вот уже 18 лет!

Проблема слишком сложная? Масштабы слишком велики? В общем-то, нет. Музыкальное приложение менее мощное и более ограниченное, чем iTunes. Конечно, этого следовало ожидать, поскольку у iTunes было время для развития, но все же. Это музыкальный плеер. Это не ядерная физика!

Да, эти специфические ошибки довольно незначительны и, вероятно, не повлияют на бизнес в краткосрочной перспективе, а только на репутацию Apple. Тем не менее, это имеет большое значение. Представьте, насколько высока, непрозрачна и нестабильна эта лестница абстракций, что можно потерпеть неудачу даже в такой простой вещи, как выбор элемента в списке?

Если вы щелкаете на список, он должен выбрать то, что вы только что щелкнули. Как вы думаете, насколько это сложная задача? Почему он работает безупречно с момента появления первого iPod с монохромным экраном и на с четвертью вычислительной мощности современных часов, но не может быть реализован во флагманском продукте с самой передовой операционной системой в мире?

Потому что продвинутый — значит сложный. Настолько сложный, что никто не смог бы его понять или контролировать, даже если бы захотел. Apple действительно этого хотела. Но даже они не смогли. Даже со всеми ресурсами мира.

В этот момент вы можете подумать, что я просто цепляюсь к Apple или Catalina. Бог знает, что там пошло не так. Может быть, они поменяли приоритеты и наняли других программистов. Но нет. Эта проблема повсеместна.

Amazon не может сделать экран с двумя чекбоксами:

Я имею в виду, что да, Amazon никогда не был известен производством качественного программного обеспечения. Тем не менее, я настаиваю, что задача настолько тривиальна, что невозможно потерпеть неудачу. Эна демонстрирует, насколько плохо люди понимают и контролируют свой инструмент.

Недавно обновленный пользовательский интерфейс Twitter загружает первый твит в 7 раз дольше, делая для вас, по сути, всё то же самое, но гораздо дольше и с гораздо большими усилиями:

У меня нет контактов, но я слышал, что Gmail после полного обновления также стал намного медленнее без появления каких-либо новых функций. Это все еще довольно-таки радикально. Если вы поместите GMail рядом с Fastmail или Twitter рядом с Tweetdeck, оба из которых не подвергались полному обновлению за последнее десятилетие, вы увидите, насколько быстрым мог бы быть даже пользовательский интерфейс, если бы мы не поднимались постоянно вверх по лестнице абстракций.

Docker и Electron — самые разрекламированные новые технологии за последние пять лет. Ни то, ни другое не имеет отношения к улучшению положения, выяснению сложностей и их уменьшению. Оба являются лишь скомпрометированными попытками скрыть накопленные проблемы от разработчиков, потому что справится с ними стало невозможно.

И это очень печально.


 

Источник

производительность, разработка, софт

Читайте также