Pull to refresh

Я ненавижу почти всё ПО

Reading time2 min
Views32K
Original author: Ryan Dahl
Прим. переводчика:

Недавно создатель NodeJS Райн Дал открывал конференцию HolyJS в Питере. И я вспомнил, что у меня есть неопубликованный перевод с его блога и решил его опубликовать. Местами перевод довольно откровенный. Надеюсь, вам будет интересно. Дата выхода статьи — Октябрь 2011. Дата выхода NodeJS — 27 Мая 2009.

Оно не нужно и осложнено почти на каждом слое. Лучшее, что я могу, это поздравить кого-то это за быстрое и простое решение проблемы, учитывая то говно, что они поставляют. Единственное ПО, которое я люблю это то, которое я могу легко понять, и оно решает мои проблемы. Размер сложности, который я согласен терпеть, пропорционален размеру проблемы, которая должна быть решена.

За последний год, я думаю, я наконец-то пришел к пониманию идеалов Unix: файловые дескрипторы и процессы оркестрируются с помощью C. Это прекрасная идея. Но это не то с чем мы имеем дело. Сложность не подразумевалась. Наоборот мне приходится иметь дело с DBus, /usr/lib, Boost, ioctls, SMF, сигналами, volatile переменнымии, прототипным наследованием, _C99_FEATURES_, dpkg и autoconf.

Те из нас кто пишет софт поверх этих систем добавляет сложность. Теперь ты должен знать не только $LD_LIBRARY_PATH, чтобы заставить систему работать, но ещё и $NODE_PATH — знай, это моих рук дело, это мое добавление сложности! Пользователи — те кто хотят видеть веб-страницу — им вообще пофиг. Им всё равно как мы организуем /usr, всё равно как работают zombie-процессы, всё равно как работает дополнение команд в bash, всё равно как zlib слинкован с Node статически или динамически. Наступит момент, когда накопленная сложность наших существующих систем будет больше, чем сложность создания новой. Когда этот момент настанет всё это дерьмо пойдет в мусорку. Мы сможем смыть boost и glib и autoconf в туалет и никогда не вспоминать о них.

Те из вас, кто до сих пор получает удовольствие от изучения деталей, скажем, языка программирования — например, те кто с удовольствием могут наизусь сказать является ли NaN равным null или нет — то вы даже не понимаете насколько это херово. Если вы думаете, что было бы мило выровнять все знаки равно в вашем коде, если вы тратите время настраивая ваш оконный менеджер или редактор, если вставляете проверку unicode меток в тест ранере, если вы добавляете ненужные иерархии в ваших папках с кодом, если вы делаете хоть что-то кроме того, что решаете проблему — то вы не понимаете насколько всё херово. Никого не волнует объектная модель glib.

Одна вещь, которая имеет значение в разработке ПО это что чувствует пользователь (experience of the user).
Tags:
Hubs:
Total votes 91: ↑68 and ↓23+45
Comments30

Articles