Статьи

Обнаружение очевидного

(Rant alert: вас предупредили)

Пробирался через Искусство Unix-программирования , что, в общем-то, превосходно — должно потребоваться чтение для всех, кто разрабатывает программное обеспечение.

Джоэл Спольски написал хорошую критику под названием « Biculturalism» в конце прошлого года и согласен с тем, что Эрик С. Рэймонд действительно иногда (но не всегда) необоснованно ослеплен / предвзят в отношении Windows и понятия GUI.

Один конкретный пример возникает в его обсуждении документации , где я чувствую, что он недооценивает значение редакторов WYSIWYG, даже когда он используется для редактирования структурной разметки (вместо представления), где он служит формой генератора кода. Воспользовавшись Epic Editor (рассмотренным Кевином здесь ), который является коммерческим редактором документации, он обнаружил, что он работает хорошо — во много раз лучше, чем ручное кодирование, даже если вы используете emacs. Я бы сказал, что из-за отсутствия приличного редактора WYSIWYG для docbook PEAR, в основном, недокументирован .

Несмотря на это (и это само по себе интересное понимание того, откуда он взялся, что это «неправильно»), это отличная книга.

Что поразило меня, возможно, замечание всей книги, так это

Оглядываясь назад, довольно удивительно, насколько мы все не замечали последствий нашего собственного поведения.

Он говорит здесь в контексте разработки с открытым исходным кодом и Кафедрального собора и базара, но я думаю, что это замечание можно применить более широко к разработке программного обеспечения в целом — мы слишком слепы к человеческому фактору. Вот тут-то и появляются методологии разработки, такие как экстремальное программирование . Если вы читаете между строк обмана и жаргона, окружающих XP (что является нормой для курса, если вы хотите, чтобы ваши идеи воспринимались всерьез), это действительно о принятии подхода, хорошо подходящего для нормального человека. существа, принимая во внимание наши ограничения.

Вернувшись к Раймонду, он продолжает говорить;

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

Изначально изучив физику (возможно, первоначальную форму системного анализа, исключая философию), я считаю, что любая фундаментальная система, имеющая наблюдаемые правила, может (и должна) быть понятна любому. Однажды поняв, что система становится предсказуемой. Конечно, чем сложнее система, тем сложнее определить правила, которые ее регулируют, и опыт играет роль в этом процессе, в то время как обусловленность человека может привести к предвзятости, которая затемняет правила. Тем не менее, первые впечатления «наивного» наблюдателя часто несут реальную проницательность и должны цениться.

Обратная ситуация — когда умные люди жертвуют своими «внутренними чувствами» и покупают новейшее видение «правильного способа» действовать, как это было предписано экспертом дня.

Примером вне разработки программного обеспечения (но относящимся ко всем отцам PHP — поздравляю с Джорджем, который последним) является дискуссия, которая вращалась вокруг насилия в развлечениях, и это влияет на детей. Еще в 80-х годах, когда Голливуд поднял уровень насилия в фильмах, было много споров о том, полезно ли смотреть, как Арни уничтожает другой легион второстепенных актеров, полезно для детей. Индустрии развлечений удалось заставить замолчать критиков, спросив: «Где ваши доказательства?» (Или: где ваш эксперт?). Спустя годы в Совместном заявлении о влиянии насилия в сфере развлечений на детей , проведя бесчисленные исследования, было подтверждено, что насилие на экране может быть вредным для детей. Ух ты — сюрприз! Кто бы мог подумать?

Возвращаясь к разработке программного обеспечения, мой козел видит экспертов (из аромата, которые никогда не выходили за пределы «Hello World!», Если они даже зашли так далеко), которые держатся за будущее разработки программного обеспечения (а также разработчиков программного обеспечения на волне). ).

Все время классика, вероятно, идет к профессору М. Эрику Джонсону (профессору по управлению операциями и обладателю улыбки, которую нужно стереть), который сказал еще в декабре 2003 года в интервью по аутсорсингу с Нью-Йорк Таймс (требуется регистрация);

В районе Bay Area есть много людей, которые хотели бы создать немного протекционизма вокруг своих рабочих мест в сфере ИТ, но нам гораздо лучше позволить многим из этих рабочих мест уйти. Задания с низким уровнем квалификации, такие как программирование , перемещаются в офшор, а на их месте остаются более продвинутые задания по управлению проектами .

Достаточно. (есть дальнейшее обсуждение здесь и здесь ).

Между тем, введите Software Factory , следующая революция . Я искренне не подразумеваю это как разбивание MS — суть идеи, кажется, такая же, как совет Эрика С. Рэймонда — использовать преимущества генерации кода и специфичных для предметной области языков (которые, как вы можете утверждать, является примером PHP) , Проблема, с которой я сталкиваюсь в «Фабриках программного обеспечения», заключается в использовании тона — больше «следуйте за нами, мы знаем лучше, жертвуйте своим разумом ради революции». Разработчики программного обеспечения могут не покупать его, но история говорит нам, что те, кто на этих «продвинутых рабочих местах управления проектами», скорее всего, будут.

Снова кажется, что человеческий фактор теряется. В отличие от этого, ActiveState опубликовал официальный документ в июле 2004 года: « Динамические языки», готовый к решению следующих задач . Если что-то может претендовать на «революцию» (иронически), я думаю, что это такие языки, как Perl, Python, Ruby и PHP, которые смогли сократить разрыв между человеческими намерениями и машинными инструкциями, что привело к реальному влиянию на усилия по разработке программного обеспечения и затраты.

К сожалению, никто с маркетинговым долларом на самом деле их не подталкивает, хотя кто-то в Microsoft, к счастью, занимается этим делом, наняв Джима Хугунина, автора Jython (Python для Java) и Iron Python (Python для .NET).

В любом случае — не совсем уверен, к чему я клоню, но общее чувство, которое я испытываю, это те, кто платит за программное обеспечение, и его разработка все больше разочаровывается большими обещаниями, сопровождаемыми плохой доставкой. Тем не менее, больше шумихи и «абстрактной практики» наносит больший урон тому, что уже плохо понимается «индустрией», обеспечивая тем, кто верит в разработку программного обеспечения, работу с низкой квалификацией. Поцелуй