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

Конечно, взяв из Сети программу неизвестного назначения, можно нарваться на троянского коня. Привычка безнаказанно пользоваться нелегальным (ворованным) ПО «снимает» вопрос о цене MS Windows, Office или PhotoShop. Но дело не только в пресловутой «бедности». Дело в людях. Вот, например, перевод разработчика коммерческого ПО из США:

«Если бы программное обеспечение оказалось таким дорогим для меня, я бы, должно быть, тоже использовал пиратские программы. ...Что действительно огорчает меня, так это то, что люди, которых я вижу каждый день здесь в Америке, и которые в состоянии заплатить, думают, что они хорошие и честные, но воруют программы все время. ...некоторые из этих людей зарабатывают $75000 в год! Я таких людей не уважаю».

Но оставим в стороне этику. Посмотрим, какие выгоды можно извлечь из бесплатного ПО.

Во-первых, что можно получить бесплатно? Ответ — почти все. Бесплатные операционные системы: Linux, FreeBSD и прочие клоны UNIX. Издательская система TEX: emTEX, teTEX, MiKTEX и другие. Кстати, разработчик TEX Дональд Кнут предоставил его в безвозмездное пользование с исходными текстами. Существуют и коммерческие версии TEX, такие как Scientific Word и WorkPlace но они, как ни странно, имеют больше недостатков, чем преимуществ по сравнению с некоммерческими. Паковщики: InfoZip, GZip, Tar, BZip. Нужно заметить, что InfoZip уступает PkZip в скорости и функциональности, хотя имеет и некоторые преимущества. Компиляторы. Здесь речь идет о проекте GNU.

Идея проекта GNU заключается в дорогой технической поддержке, которая бывает нужна системным инженерам и сетевым администраторам, но не слишком актуальна для простых пользователей. GNU предлагает замену большинства утилит UNIX. Промелькнули замечания о невысоком качестве компиляторов GNU для UNIX на RISC-машинах по сравнению с «родными» фирменными. Что касается платформы Intel, к которой относится большинство ПК, то по моему опыту G77 (GNU FORTRAN-77 с элементами FORTRAN-90) примерно в полтора раза превосходит по производительности Power Station 4 (Microsoft FORTRAN-90), если речь идет не о скорости компиляции, а о скорости выполнения программ. «В одном флаконе» можно получить компиляторы с C, C++, FORTRAN-77, Assembler, Pascal и множество утилит из UNIX (bash, man, info, texinfo, head, tail, cat, и т. п.). Все это доступно для DOS, Windows, Linux. Единственное требование – процессор не хуже 80386. Впрочем, это сейчас не проблема. Есть даже утилиты и ядро Linux для 8086 и FreeDOS, который кое в чем больше похож на UNIX, чем на DOS.

Математика. Программа gnuplot, которая, вопреки своему названию, не имеет отношения к проекту GNU, интенсивно развивается и позволяет строить графики и поверхности по точкам или по формулам. В отличие от многих других программ аналогичного назначения gnuplot умеет экспортировать результаты работы в формате TEX, PostScript и других. Octave – программа, аналогичная MatLab. Мне известны только версии для UNIX. Не исключено, что с помощью компиляторов GNU удастся получить выполняемый код для DOS и Windows.

О StarOffice можно слышать разное, но в нем есть поддержка документов WinWord. Это, кстати, одна из важнейших проблем обмена информацией. Дело в том, что PDF (portable document format) и PostScript – форматы, предназначенные для просмотра и печати, но не для редактирования. В этом смысле RTF (rich text format) и TEX являются более гибкими: они допускают редактирование, причем RTF импортируется и экспортируется Word’ом. Формат RTF не допускает макросов в документе, что делает его вирусоустойчивым. Конечно, Word-97 позволяет блокировать выполнение макросов, хранящихся в документе, но при этом открытый документ не перестает быть носителем вируса.

REXX, Perl. Это языки для реализации сложных пакетных заданий, что-то вроде очень умных BAT-файлов. Существуют по крайней мере два бесплатных клона REXX: BREXX и Regina. Perl есть в дистрибутивах GNU.

Редакторы. Их море. Для поклонников XEDIT существует THE (редактор Гесслинга), для любителей UNIX – Emacs, Joe и другие. Кстати, все это удовольствие доступно и для DOS.

Это перечисление способно запутать кого угодно, но нужно с чего-то начать. Итак, ответим на существенные вопросы:

  1. Сколько стоят бесплатные программы?
  2. Позволяют ли они решить сто’ящие задачи?
  3. Может ли простой пользователь освоить предлагаемые программы и самостоятельно установить их? Что ему делать при возникновении вопросов?
  4. Как быть с обменом информацией?

Начнем с того, что бесплатность – вещь относительная. Например, вы узнали, что в Сети есть, скажем, бесплатный компилятор FORTRAN’а. Вам потребуется его скопировать, и за время (и/или объем) передачи данных придеся заплатить. Пусть не вам лично, но вашей организации. Привыкший к «дармовщине» отечественный пользователь заглянет через недельку по тому же адресу в Интернет: а не появилось ли новой версии? И с радостью возьмет и ее. Менее опытный человек тут же все это и установит, причем поверх старого... Дальше выяснится, что новая версия содержит одну ошибочку, делающую ее применение для его целей невозможным. Человек потратит время, а за справкой опять пойдет в Интернет. Опытный пользователь может затраченное на все это время превратить в выгоду: стать у кого-нибудь из производителей программ бета-тестером, то есть пробовать новые версии, может быть, даже коммерческих. Но бета-тестеры – это исключение, а не правило.

Установив Linux и ужаснувшись множеству проблем, вы захотите срочно послать электронное письмо о поддержке... и тут выясняется, что прежде вам следует проштудировать HOWTOs (как) и FAQ (frequently asked questions) – часто задаваемые вопросы. Вы потратите час или день в поисках нужного и, что вероятно, не найдете. Нередко в документации к Linux не больше информации, чем в Help (справке) Windows: что объяснено – и так ясно, а чего нужно – нет.

В результате вместо покупки дешевого CD-ROM’а или копирования, что в данном случае вполне легально, Вы покупаете дорогой (но все-таки не такой, как Windows) компакт-диск от, например, Red Hat, которые гарантируют техническую поддержку. Теперь представьте себе, что ваша видеоплата не поддерживается. «Извините», – говорят вам, – «но либо ждите появления драйверов, либо меняйте плату». Как писал Дональд Кнут – глубокий выдох. Можно, правда, пойти по обычному пути: найти в своем окружении специалиста и мучить его...

«Так зачем мне этот Linux?» Очень просто: вы можете иметь при минимуме затрат на аппаратные средства (машину) максимум функций. Здесь и сетевая поддержка, и многозадачность, и эффективный межзадачный обмен (в Windows его почти нет), и целый арсенал средств автоматической обработки текста.

Хорошо, но можно ли писать документы, считать, использовать учебные пособия? А почему нет? И графический интерфейс можно иметь, если есть адекватная техника. Что касается документов, то в UNIX есть целый набор средств форматирования, лидером среди которых является TEX. При всей своей «шаманской» сущности (требуется кое-что знать из книг) TEX на сегодняшний день – единственная программа позволяющая вводить в документ формулы без ограничений. Для тех, кто не знает: Word не поддерживает формулы вообще, а используемые в Windows шрифты TrueType слишком примитивны и непригодны для набора формул. Именно этим объясняются «налетающие» друг на друга символы. Если в Word вставлено слишком много объектов, его производительность катастрофически падает даже на очень быстрых машинах. Формулы, набираемые, например, в Equation Editor, как раз и являются такими «объектами».

Кроме того, TEX и RTF имеют текстовый формат, документированы и могут быть автоматически созданы программой. Зачем? Вы хотите сделать пособие или экзаменационные билеты по математике, физике или химии. Вам нужен расчет, причем не обязательно тривиальный. Вы пишете программу, которая под нужный ответ подбирает данные и результат автоматически помещает в виде формулы в билет, или же ответ – в пособие. К примеру, следующий фрагмент на FORTRAN-77 выводит число rnum в показательной форме:


      subroutine expform(rnum, str)
      character * 22 str
      write(str(1:13), ‘(e13.6)’) rnum ! +0.000000E+00
      ! +0.000000E+00 -> +0,00000010^{+00}
      str(3:3)=’,’
      str(19:21)=str(11:13)
      str(10:18)=’10^{‘
      str(22:22)=’}’
      return
      end
      

Выглядеть такое число будет как +0,000000.10+00. Опять же нет проблем с греческими буквами со специальными символами, вроде знаков, которых нет в стандартном символьном наборе шрифтов Windows. А как же написать обратимую химическую реакцию?

Есть программы, позволяющие записывать результат в виде PostScript. При этом возможна полутоновая графика и практически любые деформации шрифтов. Можно сделать надпись и по диагонали, и по спирали. Иногда это нужно.

...Некоторое время назад в компьютерной прессе на полном серьезе обсуждались проблемы безудержного прогресса в области программ и компьютеров, постоянно заставляющем пользователя «раскошеливаться». Злопыхатели разносили в прах Microsoft и Intel, и кричали о собственной бедности и завышенной потребности Windows в машинных ресурсах. Те, кто побогаче, скромно замечали: «Не нравится Windows и Pentium – работайте на 80286 под DOS...»

Меня, не скрою, нервировал бешеный темп развития Windows и все больший ворох проблем: при работе на «трешке» не нужно было думать о вентиляторе для процессора, который в среднем работает год-два. Я мог бы не беспокоиться, но существовало несколько «но». Во-первых, у меня были задачи, требующие больших ресурсов. Во-вторых, мне не нравилась слабая защищенность Windows при запуске приложений DOS, а позволить себе приличные аналоги для Windows из-за ограниченности ресурсов я не мог. Самая же серьезная проблема возникала при обмене документами (будь то картинки или документы Word).

Windows-95, съевшая добрую четверть полугигабайтного диска, показалась почти сказочной по сравнению с 3.1, но 16Мб оперативной памяти оказались не широким полем, а комнатушкой, в которую без задействования виртуальной памяти влезало одно-два приложения. Что же реально я получил сменив платформу, кроме удобства запуска приложений Windows из окна DOS и тому подобных «автоматизаций»? Как ни странно, ничего! Операционная система взяла на себя заботу о моих интеллектуальных затратах и «разбухла».

В чем же дело? Какую отдачу мы ожидаем получить с вложенного в машину рубля? Существует простое решение: нужно, не думая, улучшить программный парк – купи более современную машину. Человек захотел слушать музыку в формате MPEG и при этом работать – сменил Pentium-75 на Pentium-150. Разница в цене – существенная, а производительность увеличилась линейно. Прихоть заставила купить машину, не оптимальную по соотношению цена/качество. Хорошо, когда большие возможности машины по сервисности оказываются следствием, а не причиной дополнительных затрат. Я искал «рабочую лошадку» для быстрого счета, и получил к этому возможность без проблем работать со звуком. Как следствие.

Итак, райские кущи описаны, но где они? Многие уже посчитали свои деньги за Интернет, чтобы загрузить оттуда бесплатную программу. Посчитали и ужаснулись: дороговат получается бесплатный софт!

Это еще не все проблемы. Есть такой термин total cost of ownership (TCO), который переводят как полная (общая, совокупная) стоимость владения (ПСВ). Дело в том, что и компьютерную сеть, и отдельный ПК нужно обслуживать. По мере появления новых задач нужно добавлять программное обеспечение и добиваться его совместимости с уже имеющимся. Если деньги на обновление и поддержку не заложены, то из инструмента машина или сеть превращается в обузу.

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

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

ПСВ системы типа Linux, не поддерживаемой хорошим системным администратором, может оказаться очень высокой. Техническая поддержка GNU будет не по карману. Если же специалист по Linux хорошо оплачивается, и не нужно получать справку у производителей Linux или из Интернета (конференций), то по сумме выплат на зарплату ПСВ опять может оказаться немалым.

Вместе с тем бесплатные программы, в частности распространяемый по лицензии GNU, типа MiKTEX, устанавливаются и поддерживаются достаточно хорошо, успешно конкурируя с коммерческими программами. Для программ вроде редактора Гесслинга (THE), которые еще не состоялись как полноценные продукты, ПСВ может стать непомерным.

Раздумывая долгое время над проблемой оптимального соотношения цены и функциональности, я пришел к выводу, что техника должна быть адекватна задачам. Не нужен ПК на базе Pentium-III/500 чтобы учить детей программированию. Конечно, хорошо дать возможность ученикам прикоснуться к современной информационной технологии, если на это у школы или родителей есть деньги. Чаще нет. Компьютерный парк моей alma mater (московской школы № 444), в которую западные немцы в 70-х годах приезжали, чтобы перенимать опыт преподавания программирования, не слишком современный и многочисленный. В провинции ситуация еще хуже.

Я совершенно серьезно предлагаю использовать доступную устаревшую технику (8088, 8086, 80286, 80386, 80486, Pentium) и имеющийся в распоряжении набор бесплатных программ (преимущественно проекта GNU, которые разрешено даже продавать) для создания на их основе рабочих мест для решения конкретных задач. Цена такого рабочего места и его технической поддержки может быть почти условна. Почему? Потому, что затраты на создание типового рабочего места и его вариантов — однократные. Почему не бесплатно? В связи с тем, что задача создания такого рабочего места не тривиальная: она требует квалификации и свободной ориентации и в технике, и в программах. Можно свести и начальные затрыты на технику и программы и стоимость поддержки (ПСВ) к вполне реальной величине.

Для машин типа XT, AT планируется FreeDOS или ядро Linux для 8086 (последнее нужно еще собрать и доукомплектовать). Дополнительно будет предложен комплект бесплатных компиляторов, не подлежащих продаже, например, BC FORTRAN или Turbo C 2.01, распространяемых свободно. Для более современных – Linux или FreeBSD. Компиляторы C, C++, Basic, FORTRAN планируется брать из набора программ проекта GNU (для DOS/Windows: EMX, DJGPP, Cygnus). Пользователь не должен тратить время на установку и наладку программ. Он может этим заниматься, если захочет. Без сомнения, пользователь должен получить документацию как на языке оригинала, так и на русском.

Для набора и верстки планируется TEX. Он работает на всех платформах.

Математические средства: gnuplot, GNUBC, Octave, EE – практически на все платформы.

Кто-то может возразить, что это нереально. У меня есть lap-top Schneider (Шнайдер) с предустановленным немецким DOS 3.30, немецкой клавиатурой, 8-мегагерцовым 286-м процессором (работает как XT), 640 Kб оперативной и 20 Mб дисковой памяти, видеоплатой CGA и монохромным дисплеем типа «плазма». Для непосвященных замечу, что русификация текстового режима на такой машине принципиально невозможна. Что я на нее поставил? Примерно следующее:

  1. emTEX (freeware) с шрифтами для Epson-FX (9 иголок) до 14 кегля. Качество печати – 240× 216 точек на дюйм с двойным проходом – выглядит более, чем репрезентативно. Установлены шрифты вашингтонской кодировки для транслитерации кириллицы.
  2. RK. Русификатор.
  3. Browse 1.1 (freeware). Просмотр файлов, работающий в графическом режиме (устанавливается маленькой самодельной программой), в котором проявляется русификация RK.
  4. Turbo C 2.01 (freeware). Компилятор.
  5. gnuplot 3.5 (freeware). Версия 3.7, видимо, требует 386-й процессор. Построение графиков по формуле или набору точек.
  6. GNUBC (freeware). Интерпретатор языка, сходного с C.
  7. EE (freeware). Интерпретатор формул.
  8. BC FORTRAN-77 (freeware). Вполне работоспособный компилятор. Не работает под FreeDOS. Для FreeDOS планируется f2c (freeware) для ретрансляции FORTRAN-77 в C. Сравнил с Microsoft FORTRAN-77 V 5.1. Результат ошеломил: отсутствие сопроцессора оказалось «губительным» для последнего, он проиграл по скорости почти в 3,5 раза!
  9. Pictor. Устаревший, компактный, но вполне работоспособный графический редактор. Есть русские шрифты.
  10. Cyril 1.04 (shareware). Текстовый процессор, автоматически включающий графический режим и имеющий собственный шрифт кириллицы. Самодельный ретранслятор (можно использовать портированную в DOS утилиту tr с указанием таблицы перекодировки) превращающий документ Cyril в текстовый файл с альтернативной кодировкой и обратно.
  11. KEDIT 5.0 (лицензионный). Редактор типа XEDIT. Есть его бесплатный аналог THE. Просто, у меня для KEDIT наработано много макросов, включая переход от альтернативной кодировки в транслитерацию и обратно. Это можно сделать и средствами, портированными из UNIX.
  12. Volkov Commander (shareware). Некорректно работает с FreeDOS. Вместо него можно использовать оболочку DeskTop, напоминающую Windows.
  13. InfoZip (freeware). Архиватор (ZIP, UNZIP). Я готов продемонстрировать кому угодно, что большинство школьных проблем, включая обучение программированию и создание первоклассных документов, возможно в приемлемые сроки решить на этой убогой машине. Моя диссертация, набранная в TEX, вполне может быть отредактирована и распечатана на этой машине.

Что касается «богатых», то есть тех, кто может себе позволить дорогой ПК, но не хочет упражняться в системном администрировании, планируется Linux с полным «боекомплектом»: графическим интерфейсом, всеми утилитами и пакетами на все случаи жизни.

Принципиальным в этой затее является то, что можно ставить систему целиком, а можно и «подогнать» ядро операционной системы (имеется в вид Linux) под конкретные требования, чтобы его «не утяжелять». Специалист, который умеет это хорошо делать, является одним из соавторов этой идеи.