Примечание переводчика: Недавно создатель NodeJS Рейн Даль открыл конференцию HolyJS в Санкт-Петербурге.
И я вспомнил, что у меня есть неопубликованный перевод из его блога, и решил его опубликовать.
В некоторых местах перевод весьма явный.
Надеюсь, вам это будет интересно.
Дата публикации статьи: октябрь 2011 г.
Дата выхода NodeJS: 27 мая 2009 г.
Это ненужно и сложно практически на каждом слое.
Лучшее, что я могу сделать, это поздравить кого-то с быстрым и простым решением проблемы, учитывая ту чушь, которую он предлагает. Единственное программное обеспечение, которое мне нравится, — это то, которое я легко понимаю, и оно решает мои проблемы.
Количество трудностей, которые я готов терпеть, пропорционально размеру проблемы, которую предстоит решить.
Думаю, за последний год я наконец-то понял идеалы Unix: файловые дескрипторы и процессы оркеструются с использованием C. Это отличная идея.
Но мы имеем дело не с этим.
Сложность не была задумана.
Вместо этого мне приходится иметь дело с DBus, /usr/lib, Boost, ioctls, SMF, сигналами, изменчивыми переменными, прототипным наследованием, _C99_FEATURES_, dpkg и autoconf. Те из нас, кто пишет программное обеспечение поверх этих систем, добавляют сложности.
Теперь вам нужно знать не только $LD_LIBRARY_PATH, чтобы система работала, но и $NODE_PATH — знайте, что это моя работа, это я усложняю! Пользователей — тех, кто хочет видеть веб-страницу, — их это совершенно не волнует. Их не волнует, как мы организуем /usr, их не волнует, как работают зомби-процессы, их не волнует, как работает завершение команд в bash, их не волнует, как zlib связан с Node статически или динамически.
Наступит момент, когда накопленная сложность существующих систем превысит сложность создания новой.
Когда этот момент наступит, вся эта хрень отправится в мусорку.
Мы можем спустить в унитаз boost, glib и autoconf и больше никогда о них не думать.
Те из вас, кто до сих пор получает удовольствие от изучения деталей, скажем, языка программирования — например, те, кто с радостью может наизусть сказать, равен ли NaN нулю или нет, — то вы даже не понимаете, насколько это хреново.
Если вы думаете, что было бы неплохо выровнять все знаки равенства в вашем коде, если вы тратите время на настройку оконного менеджера или редактора, если вы включаете проверку тегов Юникода в программу запуска тестов, если вы добавляете ненужные иерархии в папки кода, если ты делаешь хоть что-то кроме решения проблемы - то ты не понимаешь, насколько всё хреново.
Никого не волнует объектная модель glib. Одна вещь, которая имеет значение в разработке программного обеспечения, — это опыт пользователя.
Теги: #ИТ-история #node.js #пользовательский опыт
-
Программное Обеспечение Для Удаления Вирусов
19 Oct, 24 -
Пуассон, Симеон Дени
19 Oct, 24 -
Новый Логотип Одноклассников.
19 Oct, 24 -
Невидимая Мышь
19 Oct, 24 -
Берегите Свои Глаза
19 Oct, 24