Давайте проведем небольшой экскурс в историю. Вспомните, уважаемый
человек заводит тему про printf(), в которой поносит C++ и обвиняет
его во всех смертных грехах, топик переходит в 12-страничный флейм который
не приносит ничего толкового. А вот другой человек, встретившись с той же ошибкой
подумает: "при использовании printf() надо быть внимательнее", вот и все.
Или вот другой персонаж решает войти в стройные ряды emacs-оидов, он качает,
пытается все установить и настроить, у него ничего не получается и он
заводит тему с обидным названием "xemacs-помойка", который также переходит
в мощный многостраничный флейм, заканичвающийся матом и перемыванием косточек.
А другой человек скачивает тот же дистрибутив, устанавливает, у него ничего
не получается, он читает документацию, снова пробует, снова читает, и вот --
чудо -- все работает!
Если хотите увидеть невежество в абсолюте, безграничное и бесконечное
столпотворение невежд -- посмотрите форум на gamedev.ru.
Так вот, мое программное заявление заключается в том, что нет плохих
инструментов. Есть замечательная пословица: "нечего не зеркало пенять
коли рожа кривая".
"Тысячи людей с удовольствием программируют на C++, почему у меня это не
получается?"
"Тысячи людей с удовольствием используют Emacs, почему у меня это не
получается?"
Я приведу небольшой пример. Некоторое время назад к нам в контору взяли
человека, с которым я должен был работать. Когда он стал спрашивать меня
про разницу между виртуальными и статическими функциями, я удивился: как
могли взять человека, который не знает даже этого. Но когда он стал писать
сложнейшие части системы, моему удивлению небыло пределов.
Именно поэтому, я утверждаю что C++ простой и интуитивный язык. Совершенно
не нужно знать тонкости ADL, чтобы писать нужные и полезные программы. Точка.
У меня недавно был совершенно замечательный опыт общения с конечным
пользователем. Он рассказывал, что в один прекрасный момент начальство
решило обновить их базу данных и вот молодые люди в очках с высокими
лбами написали новую базу данных на .NET. База оказалась неудобной и полной
ошибок и они вернулись к старой, проверенной базе на FoxPro. Как выразился
конечный пользователь, "эта база данных умненькая, проводишь сканером, а она
все заносит в базу"
Но почему старая база данных оказалась лучше новой? FoxPro лучше .NET? Не
верю. Что помешало программистам с высокими лбами в очках написать "умненькую"
базу данных? Я думаю, что все дело в них самих.
Фишка в том, что у каждого инструмента есть правильный способ использования.
Фишка в том, что инструмент может не понравиться программисту из чисто
субъективных причин.
Фишка в том, что на языке конкретному проргаммисту может быть трудно выразить
свои мысли, а может быть, что мыслей нет вообще.
Отношение конкретного программиста к конкретному языку может быть основано на
сотне различных факторов, объективных и субъективных, на вкусе, способе мышления,
на настроении, которое было у человека, когда он столкнулся с языком, на
царящей в этот момент парадигме и идеях программирования.
Потрясающе малое количество людей могут делать выводы независимо.
И, самая главная истина заключается в том, что иногда при работе с техникой
возникает раздражение, и ни в коем случае не стоит позволять раздражению
формировать свое отношение к технике.