О моих былых заблуждениях и перфекционизме
20 октября 2011
Со временем взгляды на некоторые вещи меняются. Лет шесть назад я писал на C++ (а фактически — на чистом Си) с использованием Windows API и для меня это было «наше все». Да-да, я уже тогда был редкостным ботаником :) А потом я попробовал Perl и вся эта возня с указателями и ручным управлением памятью стала казаться мне странной и ненужной. Еще недавно я плевался от Flash, а теперь спокойно пользуюсь им. Самое интересное, что я все еще понимаю, чем плох Flash. Просто мне намного удобнее поставить его и спокойно смотреть видео на Ютубе, чем делать это через самопальный скрипт.
Вот еще далеко не полный список вещей, к которым я изменил свое отношение:
- В своих старых скриптах на Perl для скачивания веб-страниц я использовал утилиту wget через вызов system(). Когда мне понадобилось запустить пару своих скриптов под Виндой, пришлось возиться со скачиванием wget.exe и прописыванием его в %PATH%. Если бы я с самого начала использовал LWP, этого гемора можно было избежать. Поэтому в новых скриптах, для которых существует вероятность повторного использования в будущем, я стараюсь сразу использовать LWP.
- Было время, когда я плевался от ICQ. Понятно же, что закрытый бинарный протокол без шифрования трафика хуже открытого и шифрованного протокола Jabber. Потом какое-то время я пользовался Аськой, просто потому что в ней сидело большинство нужных мне людей, а возиться с транспортами или даже тупо несколькими протоколами было лень. Сейчас я почти не захожу ни в Jabber, ни в ICQ. Просто мне это стало не нужно.
- Когда я только-только начинал свой путь юниксоида, весь софт я собирал из исходников. Ведь софт, собранный из исходников, оптимизирован конкретно под твою машину и имеет только нужные тебе опции. Сейчас в 99% случаев я пользуюсь бинарными пакетами. Так быстрее и проще, а разницы в плане скорости по сравнению со сборкой из исходников нет никакой.
- Во Вконтактике я зарегистрировался только в этом году. И знаете, я не пользуюсь им, как социальной сетью. Для меня Вконтакт — это большой музыкальный архив. Больше не нужно вводить капчи на zaycev.net и синхронизировать свою музыкальную коллекцию между несколькими компьютерами. Да и на диске свободного места стало побольше. Удобно, что тут скажешь. И почему я раньше этим не пользовался?
- Я долгое время не решался использовать Akismet. Зачем где-то регистрироваться и создавать лишнюю нагрузку на свой блог, когда можно тупо прикрутить капчу? Оказалось, что на практике нагрузка от Akismet совершенно незаметна. При этом спам фильтруется не хуже, чем при использовании графической капчи. Только код с капчи нужно вводить, а Akismet совершенно прозрачен для комментатора.
- Было время, когда я безумно фанател от Firefox. Бесплатный, быстрый, открытый, с кучей плагинов — просто сказка. Сейчас же я им не пользуюсь. Вообще. Как минимум, меня сильно раздражает, что при выходе каждой новой версии отваливается часть плагинов. А также то, что развитие браузера происходит преимущественно за счет слизывания фишек у конкурентов.
- Совсем недавно я пользовался Chromium. Но оказалось, что после продолжительной работы он начинает сильно тупить, так что этот пост я пишу в Opera. Да, она закрытая и немодная, но зато в ней все необходимое есть «из коробки». А еще мне очень нравится, как Opera прорисовывает шрифты.
- Во FreeBSD бывают серьезные уязвимости или не очень серьезные, но в больших количествах. Нет, я еще не утратил веру во FreeBSD. Но в последнее время я стал относиться к недолюбливаемому мною Linux… чуть более уважительно, что ли. Меня даже почти перестало беспокоить, что во главе проекта стоит один человек в лице Линуса Торвальдса. Просто я вспомнил, что в случае с моим любимом Perl ситуация практически та же. И ничего, живем ведь как-то.
Кажется, моя проблема была в том, что я страдал тяжелой формой перфекционизма. Пройдемся еще раз по приведенным выше пунктам: (1) настоящие программисты сидят под юниксами, (2) Jabber — идеальный протокол мгновенного обмена сообщениями, (3) программы должны работать на пике своей производительности, (4) социальные сети — для неосиливших электронную почту, (5) standalone блог не должен зависеть от сторонних сервисов, (6) open source — наше все, (7) лицензия BSD — наше все, (8) даешь core team из девяти человек. Знакомо? Мне неизвестно способов лечения перфекционизма, но, кажется, мне удалось его купировать.
Идея в том, чтобы искать не идеальное решение вообще, а идеальное решение для конкретного случая. То есть, сосредоточиться на том, чтобы решить конкретную задачу, а не на том, чтобы решение было красивым и элегантным (кажется, это называется прагматизмом). Задача: бесплатно слушать любую музыку на работе и дома, синхронизируя плейлисты там и там. Решение: зарегаться во Вконтакте. Задача: поставить на нетбук быструю операционную систему с менеджером пакетов и удобной консолью, чтобы при этом подцепилось все железо и поменьше беспокоиться о безопасности. Решение: попробовать Xubuntu. Притом для разных задач решение может быть совершенно разным, даже если задачи кажутся похожими. Например, если пользователю не нужны менеджер пакетов и консоль на его нетбуке, но нужен Microsoft Office, то ему стоит попробовать Windows 7.
Вы тоже замечали у себя симптомы перфекционизма? Тогда повторяйте за мной. Ни одна программа не работает на пике своей производительности, но часто программы работают достаточно быстро. Посуда никогда не бывает идеально чистой, но часто она бывает достаточно чистой. Любые физические измерения имеют какую-то погрешность, сколь бы точны не были приборы. В любой ванной обитают толпы разномастных микроорганизмов и с этим ничего не поделать. Кроссбраузерная верстка любого более-менее сложного сайта невозможна. Совершенства нет. Смиритесь с этим!
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.