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