В начале была командная строка - Страница 24
ГРАФИЧЕСКИЕ ИНТЕРФЕЙСЫ ПОЛЬЗОВАТЕЛЯ имеют тенденцию навязывать большие расходы на каждый отдельный кусок софта, даже минимальный, и эти потери полностью изменяют среду программирования. Небольшие программные утилиты больше не стоят написания. Их функции взамен, имеют тенденцию быть поглощенными программными пакетами общего назначения. По мере того как ГРАФИЧЕСКИЕ ИНТЕРФЕЙСЫ ПОЛЬЗОВАТЕЛЯ становятся сложнее, и навязывают все больше и больше расходы, эта тенденция становится более повсеместной, и программные пакеты вырастают до колоссальных размеров; и с некоторого момента, когда они начинают объединяться друг с другом, как Microsoft Word, Excel и PowerPoint объединились в Microsoft Office: колоссальный универмаг программного обеспечения занимает часть города, когда-то заполненную небольшими магазинами, которые все поглощены им.
Это — нечестная аналогия, поскольку, когда небольшой магазин оказывается поглощен, это означает, что какой-то мелкий лавочник потерял свой бизнес. Конечно, ничто типа этого не случается, когда «wc» становится включенным в один из бесчисленных пунктов меню «Мелкомягкого Ворда». Единственным реальным недостатоком является потеря гибкости для пользователя, но это недостаток, на который большинство клиентов, очевидно не обращает внимания или не беспокоится о нем. Наиболее серьезный недостаток универмаговского метода, что большинство пользователей хотят или нуждаются в небольшой доле тогог, что содержится в этих гигантских программных пакетах. Остальное — мусор, мертвый груз. А еще у одного пользователя в следующей клетушке будут совершенно другие мнения о том, что полезно и что не.
Другая важная вещь, которую стоит упомянуть здесь, что Microsoft включил в натуре крутую примочку в офисный пакет: среду программирования на языке Бейсик. Бейсик — первый машинный язык, который я узнал, возвращаясь к тем лихим денькам, когда я использовал бумажную перфоленту и телетайп. (Как говорится, «и какой же хакер не знает бейсика…» — Прим. прев.) Используя версию Бейсика, которая приходит с Офисом, на котором вы можете написать ваши собственные небольшие программные утилиты, которые знают как взаимодействовать со всеми маленькими ключиками, прибамбасами, бубенчиками и свистульками в Офисе. Бейсиком проще пользоваться, чем языками, обычно используемыми в юниховом программировании командной строки, и Офис достиг намного, намного большего количества людей, чем инструментальные средства ГНУ. Таким образом, вполне возможно, что эта фишка Офиса, в конце концов, породит больше приколов, чем ГНУ. (Хотя нельзя сказать, не погрешив против истины, что в Редмонде придумали что-то новое — встроенные языки расширений имеются у многих юниховых программ: тот же ЛИСП напропалую используется в emacs для настройки и добавления возможностей… Просто в юнихе большинство задач гораздо проще решить иными средствами, не изобретая еще один велосипед — прим. прев.)
Но сейчас я говорю о прикладном программном обеспечении, не об ОпСистемах. И как я сказал, «мелкомягкие» софтины стремятся быть очень хорошими вещами. Я не пользуюсь ими часто, потому что я не отношусь к их целевому рынку. Если Microsoft когда-нибудь сделает пакет программ, которым, я воспользуюсь и заторчу, тогда действительно настанет время, чтобы сбывать их акции, потому что я окажусь в рыночным сегменте для одного.
Гикнутая усталость
(GEEK — в данном случае, фанат возни с железом и ОпСистемами: с точки зрения обычных сапиенсов, довольно гикнутое занятие)
За годы, когда я работал с Linux, я заполнил три с половиной записных книжки, отражающие мои опыты. Я начинаю записывать что-либо лишь тогда, когда делаю нечто заумное, подобно установке X Window или «ступлению по лезвию» соединения с Интернетом, и поэтому те записные книжки содержат только записки о моей борьбе и поражениях. Когда вещи по-моему ведут себя хорошо, я буду работать себе счастливо в течение многих месяцев, не записывая ни единственой памятки. Итак, эти записные книжки созданы для весьма мрачного чтения. Изменение чего-либо в Линухе связано с открытием всех тех разных мелких текстовых файлов ASCII и изменением слова здесь и символа там, что чрезвычайно существенно в том смысле, как система действует.
Многие файлы, которые определяют, как Linux работает, — не что иное, как командные строки, которые стали такими длинными и сложными, что даже линуховым хакерам влом кропотливо набирать их правильно. Работая с чем-то таким же мощный, как и Linux, вы можете легко потратить целых полчаса на создание единственной командной строки. Например, «find» команда, которая ищет файлы в вашей файловой системе, которая сочетает определенные критерии, фантастически мощные и общие. Его «руководство» — длиной одиннадцать страниц, и это вразумительные страницы; вы могли бы легко развернуть их в целую книгу. И буде это не слишком заумно и само по себе, вы можете всегда «затрубить» выход одной команды Unix на ввод другой (от слова pipe, использованного в качестве глагола — на юниховом жаргоне «трубка», такой же сложной. «pon», команда, которая используется, чтобы установить соединение PPP с Интернет (вообще-то, в разных системах могут быть разные команды: в юнихах это всякие дружественные надстроки над сложной, почти мистической для простого юзера сущностью демона коммутируемых соединений pppd), требует столько подробной информации, что практически невозможно запустить эту прогу целиком из командной строки. Взамен вы сводите большие куски своего ручного ввода в три или четыре дополнительных файла. Вам нужен «дозвонный» сценарий (to dial — набирать номер, и в этом смысле — дозваниваться — прим. перев.), который является фактически небольшой программой, сообщающей проге, как набирать телефонный номер и откликаться на различные события; файл опций, который включает вплоть до шестидесяти других настроек, указывающих, как соединение PPP должно быть установлено; и секретный файл, содержащий информацию о вашем пароле.
Возможно, есть «богоидные» (от godlike — в смысле, «богоподобные», но многие хакеры, как следует из уважаемого словаря жаргона от Стила, склонны в шутку применять термин bogus, к тем, кто слонен что-либо сравнивать с богом — эта «богость» последних часто приводит к тому, что их грандиозные замыслы становятся в натуре «[у]богими», часто — из-за нарушения принципа простоты «KISS» и более общего — бритвы Оккама — прим. перев.) хакеры Юниха где-нибудь в мире, которым не нужно использовать эти небольшие сценарии и файлы опций, как костыли, и кто может просто настучать фантастически сложные командные строки, без типографские ошибок и не тратя часы на перелистывание документации. Но я не один из них. Как почти все линуховые пользователи, я завишу от того, чтоб иметь все те подробности спрятанными к дьяволу в тысячи небольших текстовых файлов ASCII, которые в свою очередь запрятаны в тайники Юниховой файловой системы. Когда я хочу изменить что-то в способе, которым моя система работает, я редактирую те файлы. Я знаю, что если не отслежу каждого небольшого изменения, которое сделал, я не смогу вернуть вашу систему обратно к прежнему порядку работы, после того, как мне удалось все облажать. Хранение вручную записанных протоколов скучно, не говоря уже о своего рода анахроничности. Но необходимо.
Я вероятно уберег бы свою голову от многих болей, имея дело с компанией, называющейся Cygnus Support («поддержка от Сайнуса» — прим. перев.), которая существует, чтобы предоставить помощь пользователям свободного программного обеспечения. Но я этого не сделал, из-за того, что хотел увидеть, смогу ли я сделать что-то сам. Ответ оказался скорее «да», но еле-еле. И есть много «ужимок и прыжков» (ухищрений оптимизации — прим. перев.), которые я мог вероятно сделать в моей системе, к чему я никогда не оставлял попыток, частично из-за того, что меня прет от того, чтоб побыть Морлоком несколько дней, и частично из-за того, что я боюсь неисправности в системе, которая обычно работает хорошо.