Максим Отставнов. Прикладные свободные программы в школе --------------------------------------------------------------- © Copyright Максим Отставнов, 2003 Email: maksim@otstavnov.com WWW: www.otstavnov.com ║ http://www.otstavnov.com ISBN5-94842-003-5 Origin: http://www.otstavnov.com/fsft/ISBN5-94842-003-5/ISBN5-94842-003-5.html ║ http://www.otstavnov.com/fsft/ISBN5-94842-003-5/ISBN5-94842-003-5.html ---------------------------------------------------------------
УДК 372.800.2
ББК 74.263.2
О80
Использован текст лекций, публиковавшихся автором в приложении к газете "Первое сентября" "Информатика" (http://inf.1september.ru) в 2002-3 г., а также фрагменты статей, ранее публиковавшихся в журналах "Компьютерра" и "Домашний компьютер".
Материалы, представленные в этой книге, также доступны в Интернет на странице www.otstavnov.com/fsft на условиях Свободной лицензии ГНУ на документацию (GNU FDL). Все прочие права сохраняются за автором.
Максим Отставнов
О80 Прикладные свободные программы в школе. -- М.: Издательство "Медиа Технолоджи сервис", 200". -- 96 с.: ил.
ISBN 5-94842-003-5
Курс лекций, включенных в брошюру, знакомит читателя с популярными свободными прикладными программами, полезными при преподавании информатики в средней школе. В обзор вошли пакет "офисных" программ OpenOffice.org, коммуникационный пакет Mozilla, графический редактор GIMP, современные графические среды GNOME и KDE и другие программы.
Для преподавателей информатики, методистов и студентов и аспирантов соответствующих специальностей.
В╘ 2002-3, Максим Отставнов.
В╘ 2002, Андрей Добровольский (раздел 10.4).
Оглавление
Зачем программам быть свободными?
Лекция 1. OpenWriter -- свободный word-процессор
Лекция 2. Свободный инструментарий работы с текстом
Лекция 3. OpenDraw -- свободный редактор векторной графики
Лекция 4. GIMP -- свободный редактор растровой графики
Лекция 5. OpenCalc -- свободный редактор электронных таблиц
Лекция 6. Строка длиною в жизнь
Лекция 7. Графический интерфейс пользователя
Лекция 8. ГИП II: "Легкие" графические среды
Лекция 9. ГИП III: Интегрированные графические среды
Лекция 10. Свободные коммуникации
Литература
Об авторе
На сегодня в школе, как и в некоторых других сегментах рынка, доминируют "альтернативные", нестандарные операционные системы и платформы (такие, как MS-DOS, Microsoft Windows, Microsoft Windows NT, MacOS версий до X). Пользование ими описывается в учебниках, на них ориентируются авторы отечественных учебных программ.
В течение долгого времени "цена вопроса" просто не становилась поводом для сколько-либо серьезного анализа -- ни для кого не секрет, что доля контрафактного ПО в российских школах очень высока, а общественное мнение, увы, пока склонно считать "легальность" программного обеспечения вопросом более отвлеченно-академическим, нежели насущно-практическим, а уж там, где дело касается зарубежных правообладателей, -- относиться к нему не как к "пиратскому", а как к "трофейному" (что, впрочем, также имеет свои основания).
Имеются очень, на наш взгляд, веские причины, чтобы постепенно отказаться от этой недоброй традиции и вернуться в русло, более соответствующее магистральным линиям развития информационных и коммуникационных технологий:
нестандартные системы ненадежны и небезопасны. С распространением в школах компьютеров и особенно сетей (включая доступ к региональным и глобальным сетям) ущерб от вирусов, несанкционированного доступа к информации и т.п. станет заметной статьей издержек информатизации;
нестандартные системы дороги. Практически для всех стандартных технологий имеются свободные реализации (или, по крайней мере, конкурентный рынок реализаций), в то время, как ожидать появления свободной реализации, допустим, той же MS Windows API в обозримом будущем не приходится, и цены будут оставаться монопольно завышенными. Мы не сторонники "экономии на детях", но, право же, выделяемые на информатизацию школы деньги можно расходовать гораздо более разумно -- от их вложения в перспективные разработки до повышения окладов учителей и обслуживающего персонала;
нестандартные системы ограничивают выбор оборудования и зачастую предъявляют завышенные требования к его параметрам;
поставщик и партнеры нестандартных систем получают неосновательное преимущество в других сегментах рынка. Если целенаправленно подменять обучение в школе общим принципам и стандартным технологиям изучением конкретных программ, через некоторое время специфические навыки пользования ими распространятся в обществе настолько, что поставщикам конкурирующих технологий и решений пробиться на рынок будет совсем нелегко;
использование несвободного ПО отрезает учащихся (и их наставников!) от самых прогрессивных технологических решений.
Могут ли сегодня свободные реализации стандартных технологий качественно обеспечить учебный процесс в школе? Вопрос неоднозначный, и мы видим ответ на него двояким:
с технической точки зрения -- безусловно. Имеющийся пул СПО с избытком перекрывает потребности любого разумного учебного курса по информатике, причем большинство программ способно работать на массовом и недорогом оборудовании, распространенном в школах (ПК архитектур IBM PC и Apple Macintosh, терминальные классы от SUN на UltraSPARC и т.п.), включая весьма "пожилые" модели. Некоторые програмы требуют определенных усилий по локализации (переводу элементов интерфейса и документации), однако эти затраты на порядок меньше, чем стоимость "легализации" несвободных альтернатив;
с организационной -- все зависит от того, как поставить дело. Мы не беремся предсказывать масштабы и темп освоения свободного ПО российской школой, но заметим, что любые попытки волевого "насаждения" тех или иных решений или конкретных систем "сверху", на наш взгляд, к успеху не приведут.
Гораздо разумнее со вниманием отнестись к тому интересу, который уже проявляется учителями к свободному ПО (и наоборот, авторов и поставщиков свободных программ -- к учебному процессу) и поддержать процесс его освоения в том темпе, который окажется "естественным".
В начале текущего (2002-3) учебного года к автору обратилась группа методистов с предложением описать десяток наиболее применимых в школьной учебной практике программ. Полагая, что такой рассказ интересен и более широкой аудитории, автор договорился с редакцией "Информатики", приложения к газете "Первое сентября", о "цикле лекций" на страницах этого издания. В эту брошюру вошли материалы первых десяти "лекций", посвященных прикладным свободным программам.
Поскольку существует изрядная путаница с терминологией, имеет смысл привести определения далее используемых терминов. Это особенно уместно, когда мы говорим о программах в школе, ведь свободное ПО пока очень слабо проникло в эту важнейшую сферу применения компьютеров.
Свободными называются программы, автор (или иной обладатель имущественных авторских прав) которых опубликовал (обнародовал) их в сопровождении так называемой "свободной лицензии", или, если следовать терминологии отечественного законодательства, публичного авторского договора, передающего приобретателю права: 0) пользоваться программой для любых целей (в рамках российского законодательства это тавтология, так как у правообладателя нет правомочия ограничивать цели, в которых собственник экземпляра программы может ее применять) и на неограниченном количестве компьютеров или мест в сети; 1) беспрепятственно получать доступ к ее исходным кодам; 2) изготовлять (производить) неограниченное количество дополнительных ее экземпляров, как для собственного пользования, так и для распространения или сдачи в прокат/аренду на тех же условиях, возмездно или безвозмездно (по своему выбору); 3) модифицировать ее как для собственного пользования, так и для распространения на тех же условиях.
Конкретная "лицензия" (условия конкретного договора) могут предоставлять приобретателю дополнительные правомочия, безусловно или на определенных условиях, и это не делает программу несвободной. Несвободной является программа, распространяемая на условиях, ограничивающих вышеперечисленные права приобретателя.
Свободные программы (free software) не следует, как это часто делают, путать со "свободно распространяемыми" (shareware, иногда почему-то называемыми у нас "условно-бесплатными") или "бесплатными" (freeware).
Также следует иметь в виду, что, хотя термин "программы с открытыми исходниками" (open source software) часто используется как синоним "свободных программ", им иногда злоупотребляют.
Свободное ПО не следует путать и с "открытым" (open software): "открытость" относится к соблюдению стандартов на интерфейсы, и только, а свобода -- к условиям лицензирования и модели разработки.
И наконец, не следует путать "коммерческое" с несвободным, а "некоммерческое" -- со свободным. Хотя роль программистов, в порядке активизма или хобби пишущих и развивающих свободные программы, очень велика, значительная часть (вероятно, большая) свободного кода разрабатывается в коммерческих рамках. В то же время, существует большое количество некоммерческого несвободного кода (freeware).
Узел терминологических тонкостей и концептуальных сложностей можно разрубить, введя альтернативное определение: свободные программы -- это программы, все услуги по разработке, модификации, сопровождению и поддержки которых продаются на свободном рынке. Если вы видите, что, например, свободный дистрибутив какой-либо версии GNU/Linux, включающий, помимо операционной системы и нескольких операционных сред, большое количество прикладных программ, стоит от нескольких десятков до нескольких тысяч рублей, в то время, как "набрать" даже небольшую часть этой функциональности программами несвободными может обойтись и в десять, и в сто раз дороже1, причина этому не в "бесплатности" чего-либо, а в конкурентности рынка.
Мы избавим читателя от обсуждения анатомии рынка (как формируются цены, кто, за что и каким образом вознаграждается), отослав интересующихся к соответствующей литературе [2, 3]. Важно то, что соответствующий рынок успешно развивается уже в течении четверти века, есть примеры исполнения им задач, немыслимых для отдельных корпораций (самый яркий из них -- разворачивание в девяностых на основе свободных программ и систем всемирного сообщества сетей Интернет), и, наконец, то, что после многочисленных колебаний, лидеры компьютерной отрасли сегодня практически однозначно высказазываются в поддержку свободного ПО.
Информатика, будучи относительно молодым предметом в школьной практике (особенно в сравнении с учебными предметами, чей "возраст" превышает две тысячи лет), с неизбежностью вызывает споры среди теоретиков педагогики и практикующих учителей касательно своего содержания. Спорят и о том, прагматическая (знакомство с миром компьютерных технологий) или теоретическая (основы компьютерных наук) ориентация должна превалировать в школе, и о том, стоит ли программирование делать частью общего школьного образования, и даже о том, должна ли информатика развиваться в виде отдельного предмета. Периодически этот спор выплескивается за рамки профессионального педагогического сообщества на страницы печати, что также вполне понятно.
Мы попытаемся в данном случае уклониться от участия в этом споре и не заявлять свою позицию. Возможно, это не вполне соответствует традициям русского интеллигентского общества, в котором не принято, не решив ряда "последних вопросов" (в том числе, кто виноват, что делать и, главное, чему и как учить), предпринимать какие-либо действия. Но рамки у этого цикла лекций вполне прагматические, и можно только надеяться, что данные в таких рамках ответы окажутся в достаточной степени инвариантными для ответов на вопросы более глубокие (и, охотно согласимся, в конечном итоге более важные), и что-то полезное для себя в изложенном материале найдут партизаны самых разных точек зрения по этим глубоким и важным вопросам.
Упомянутые прагматические рамки заключаются в следующем. Точно так же, как кажется вполне осмысленным предположением, что для освоения грамотности и счета школьнику неплохо бы овладеть ручкой и карандашом и понять, чем одна от другого отличается (вне зависимости от того, выделяется ли чистописание в отдельный учебный предмет, как это было принято ранее, или же, как сейчас, освоение инструментов письма идет на тех же уроках, где ученик знакомится с буквами и их чтением), наличие в "Обязательном минимуме содержания образования по информатике" [1] списка приложений компьютера ("информационных технологий"), с которыми стоит познакомить школьников, протестов у нас не вызывает.
Среди них:
создание и редактирование текстов (в широком смысле),
создание и редактирование растровой графики,
создание и редактирование векторной графики,
работа с электронными таблицами,
работа с базами данных,
работа с электронной почтой и новостными конференциями,
обмен файлами в сетях,
работа с мультимедиа (только уровень Б),
работа с распределенными гипермедиа (WWW) в сетях.
Кроме того, другие пункты "Минимума" (не отнесенные авторами к "информационным технологиям") также с неизбежностью подразумевают знакомство с определенными приложениями компьютера (если, конечно, автор конкретного курса не предпочел чисто теоретический режим знакомства с материалом, соответствующим тому или иному пункту).
Например, для того, чтобы предметно показать учащимся разницу в различных способах представления (кодирования) информации (п. 2 "Обязательного минимума..."), неплохо иметь под рукой соответствующую программу просмотра. Знакомство с языками программирования (п. 5) предполагает и знакомство с интерпретатором или компилятором и другими компонентами инструментальной среды и т.д. и т.п. Ну и, разумеется, чтобы учащийся мог работать со всеми этими программами, ему необходимы базовые навыки обращения с операционной системой/средой (вне зависимости от того, присутствует ли такая тема отдельной строкой в учебном плане).
Поскольку, как упоминалось выше, СПО развивалось в направлении от инструментальных программ к системным и, далее, к прикладным, сегодняшнее положение дел, при котором все из перечисленных приложений имеют свободную реализацию, сложилось не сразу. Однако уже в течение нескольких лет основная масса свободных прикладных программ находится на уровне, достаточном для их применения в школьном учебном процессе, и в педагогическом сообществе постепенно накапливается опыт их использования.
В России, насколько нам известно, наиболее последователен в этом плане опыт Центра компьютерных технологий Московского государственного индустриального университета, сеть которого используется, в том числе, и для практических занятий учащихся московских школ.
В ноябре 2001 года, во время рабочей встречи "Свободное программное обеспечение", проведенной Высшей школой экономики и издательским домом "Компьютерра" в рамках разворачивания федеральной целевой программы "Электронная Россия" [2], было достигнуто принципиальное соглашение о том, чтобы учебные материалы, разработанные в ЦКТ МГИУ и касающиеся применения СПО в учебном процессе, были опубликованы также под свободной лицензией, и коллеги из МГИУ выполнили свое обещание, благодаря чему на их сайте можно найти учебник "Практическая информатика" [4] (также опубликован и выпущен в продажу в виде традиционного двухтомного издания).
Логика и последовательность изложения материала в этом курсе существенно отличается от логики, в которой написано большинство книг, посвященных СПО.
Чаще всего авторы исходят из того, что последовательность внедрения программ и пакетов, относящихся к различным категориям, будет соответствовать последовательности построения информационной системы (например, школьной сети). Это вполне оправдано в случае разработки и реализации такой системы "с нуля", однако может вызвать существенные сложности в ситуациях, когда система уже существует, развернута на базе несвободного (и, как следствие, почти всегда нестандартного) ПО, нужна поддержка ее роста и развития, и администрация учебного заведения обращается к СПО именно как к средству обеспечения такого развития.
"Сплошная миграция", при которой администрации необходимо внедрять (а всем пользователям, включая учителей и учащихся, осваивать) и системное, и прикладное (а в случаях, если проводятся какие-то свои разработки, и инструментальное) ПО одновременно, -- объективно очень сложный и болезненный процесс. Если говорить об учебном заведении, то он сложен вдвойне, поскольку очень разнится уровень пользователей различных категорий. Если говорить о школах, где единственный преподаватель информатики -- сам себе и учитель, и методист, и системный администратор, и лаборант (а не большинство ли наших школ таковы?), миграция по этому сценарию требует, без преувеличения, героических усилий, ожидать которых в массовом порядке не вполне разумно.
Однако поскольку значительная часть свободного прикладного программного обеспечения портирована (перенесена), в том числе, и в несвободное окружение (включая получившие широкое распространение в наших школах операционные среды Microsoft Windows и MacOS), миграцию можно облегчить, проведя ее в два этапа (которым в учебном заведении могут соответствовать два академических года): сначала прикладная часть, а затем -- системная.
В настоящей брошюре мы ограничились лишь прикладными программами, пакетами и платформами.
Изначально наша первая "лекция" задумывалась как простая презентация ряда свободных word-процессоров (AbiWord, Kword, OpenWriter) и программ, могущих использоваться в качестве таковых (издательская оболочка LyX и т.п.). Однако уже первые шаги по определению структуры таблицы, представляющей их характеристики, и ее наполнения, заставили задуматься: а что вы с этим потом будете делать?
И "Обязательный минимум...", и большинство конкретных учебных планов предусматривает знакомство лишь с базовой функциональностью программ манипуляции текстами, и любой из перечисленных процессоров гарантированно и с избытком перекроет требования (так же, как и масса присутствующих на рынке несвободных программ, таких, как Microsoft Word, "Лексикон", StarOffice или WordPerfect). Поскольку большинство из них так или иначе развивают основные интерфейсные подходы WordPerfect, существенного (и могущего быть выявленным в пределах тех немногих часов, что учитель в состоянии уделить этой теме) эргономического различия между ними нет.
Значит основания для рационального выбора программы нужно искать не внутри темы манипулирования тестами, а в ее связи с другими учебными темами. У программистов есть такой эмпирический принцип: когда начинаешь путаться в программах, отложи их в сторону и попытайся разобраться со структурами данных -- сам удивишься, насколько очевидными и простыми окажутся после этого решения, касающиеся программ. Возможно, этот принцип разумно применять и пользователям.
Давайте попробуем отложить в сторону программный инструментарий и разобраться с тем, какого рода данные мы им обрабатываем.
Водораздел между текстовыми редакторами (заслуживающими отдельной лекции) и word-процессорами проходит по критерию способа отображения размеченного (имеющего некоторые атрибуты, такие, как цвет, начертание и кегль (размер) символов, выключка (выравнивание) и расположение абзацев, оформление страницы и т.п.) текста. Текстовый редактор отображает его как есть, например:
<курсив>Предложение, набранное курсивом.</курсив>
а word-процессор визуализирует эти атрибуты, например:
Предложение, набранное курсивом.
Визуализацию иногда путают с так называемым WYSIWYG-принципом (сокращение от "What you see is what you get" -- "Что видишь, то и получишь").
Однако в общем случае это неверно: WYSIWYG-идеология унаследована от эпохи персональных компьютеров, когда в ходе "малой компьютеризации" отдельные офисы и рабочие места становились "островами" безбумажных технологий в море бумажной коммуникации, и компьютерное представление мыслилось лишь промежуточной или предварительной формой существования текста или документа.
Сегодня большинство документов никогда не попадает на принтер, и нет нужды подстраиваться под архаичный бумажный документооборот. Вполне возможно, что автору или редактору удобнее выделение не курсивом, а подчеркиванием:
Предложение, набранное курсивом.
Более того, современные технологии (например, HTML или XML-оформление текстов) изначально предполагают, что читатель документа может устанавливать собственные предпочтения в визуализации, зависящие от особенностей используемого им оборудования (размеров и разрешающей способности монитора и т.п.) или от своих биологических особенностей (слабого зрения, дальтонизма и т.п.), и в общем случае они могут не совпадать с предпочтениями автора или редактора.
Таким образом, один и тот же документ может быть отображен с разметкой, с визуализацией, а иногда -- и с разметкой и с визуализацией.
|
|
|
Один и тот же гипертекстовый документ, отображенный браузером Mozilla с разметкой, с визуализацией и с использованием обоих способов визуализации
Хотя на рисунке нам удалось показать три типа отображения одного и того же документа, не выходя из одного прикладного пакета, это не такой частый случай. На самом деле текстовые редакторы, как правило, не имеют способности непосредственной визуализации вообще или обладают ею лишь в зачатке (как, например, Emacs, способный визуализировать формат Enriched text, но Emacs это не просто редактор, а целая операционная среда), а word-процессоры, в свою очередь, крайне неудобны для редактирования "плоского" текста: слишком разнятся базовая операторика и ожидаемая эргономика этих двух типов прикладных программ.
Учащийся сталкивается с задачей манипулирования "плоским" текстом как минимум два раза (при знакомстве с электронной почтой и при изучении основ программирования), соответственно, успевает познакомиться, как правило, с двумя разными текстовыми редакторами (встроенными в почтовую программу и среду программирования, соответственно). Как минимум два раза он сталкивается и с задачей манипулирования размеченным текстом: один раз его знакомят с word-процессором (как правило, в России под руку подворачивается "пиратский" Microsoft Word, либо бесплатно распространяемый StarOffice 5, либо дешевый "Лексикон", исключения единичны), а затем ему преподносят основы HTML.
Знакомство с манипулированием текстом, таким образом, оказывается бессистемным и фрагментарным, и, в лучшем случае, автор учебника или учитель сумеют рассказать о том, что сфера это, в общем-то единая, а показать это оказывается весьма затруднительно.
Значительным шагом к систематизации опыта, вырабатываемого школьным курсом, на наш взгляд, является использование инструментария, позволяющего демонстрировать возможность работы с размеченным текстом разными средствами. Это значит, что к очевидным требованиям, предъявляемым к "учебному" word-процессору (достаточность функций, локализованность, мультиплатформенность, ценовая доступность), добавляется серьезное пожелание: стандартность формата разметки.
Это сильно облегчает выбор. На самом деле, на сегодня всем перечисленным требованиям удовлетворяет, по сути, лишь одна программа. Но сначала -- немного о стандартах.
Существует и доказали свою устойчивость два основных типа языков разметки.
Первый из них, это семейство, называемое *ML-языками: на эти две буквы заканчиваются аббревиатуры их названий -- GML, SGML, HTML, XML, -- а сами по себе эти буквы означают просто "markup language" -- "язык разметки".
Второй -- разработанный выдающимся американским теоретиком и практиком программирования Дональдом Кнутом язык программирования верстки TeX (это греческий корень, он читается как русское "тех", а не как "текс") и его расширения (например, LaTeX). Не будучи официальным стандартом, ТеХ постепенно вытесняет и замещает прочие языки разметки, предназначенные для набора и верстки текстов (TeX и системы на его основе плохо приспособлены для верстки т.н. "иллюстрированных изданий" с характерным для них богатым насыщением текста графикой, сложными обводами и наложениями текста на графику и пр., и этот сегмент рынка остается пока не стандартизованным).
За пределами этих типов -- огромное множество нестандартных (и даже неопубликованных) форматов, зачастую использующих не текстовую, а двоичную форму представления данных (например, файлы Microsoft Word, "Лексикона" и т.п.). Это исключает возможность использования для работы с такими данными обычных текстовых редакторов и обработку их стандартными текстовыми утилитами, а также сильно затрудняет обратную разработку формата с целью обеспечения импорта и экспорта из независимо написанных программ2.
Наверное, TeX имеет потенциал к использованию в качестве примера языка разметки (или, точнее, языка генерации разметки), однако вряд ли в средней школе -- отчасти потому, что ориентирован на печатную форму в качестве окончательной формы представления содержания, что представляет на сегодня если не экзотический, то, во всяком случае, достаточно специальную область применения компьютеров, в отличие от *ML-языков, в равной степени ориентированных и на "экран", и на "бумагу".
SGML достаточно давно (с 1986 г.) является стандартом на разметку документов, принятым Международной организацией стандартизации (серия ISO 8879). Парадокс заключается в том, что до недавнего времени даже частичные реализации SGML были сравнительно немногочисленными, и его использование ограничивалось рамками государственных организаций (в массе своей оборонных и научных) и крупных корпораций. Гораздо более широкое распространение получили "похожие на SGML" языки, а именно, HTML различных версий, являющийся одним из технологических столпов WWW.
HTML был сознательно создан как "игрушечный SGML": он не обладал всей гибкостью и мощью последнего, но был очень компактен и легок в реализации и изучении. Одна из сторон "игрушечности" HTML заключается в том, что он подталкивает пользователя к использованию физической, а не логической разметки, и именно поэтому, на наш взгляд, его не стоит изучать в школе.
Однако добавление все новых и новых возможностей и конструкций в HTML в ходе его развития привело к тому, что сложность его существенно выросла и приблизилась к сложности SGML-приложений, при сохраняющейся несовместимости с SGML.
Параллельное развитие двух близких по назначению языков было очевидно нецелесообразным, поэтому дальнейшее развитие WWW предполагает переход на XML -- "расширяемый язык разметки", который превосходит по мощности, гибкости и согласованности HTML и является полноценным SGML-приложением. Уже сегодня наиболее развитые WWW-серверы генерируют HTML именно из XML; непосредственно "понимать" последний постепенно учатся и браузеры.
На наш взгляд, принципы расширяемой разметки, реализованные в XML, могут и должны стать одной из базовых составляющих компьютерной грамотности и обязательно должны найти свой путь в школьные учебные планы. Это позволит:
подвести единую основу и логически связать такие темы, как манипуляция размеченным текстом, гипертекстом и гипермедиа, векторной графикой, электронными таблицами и т.п.,
приблизить школьную информатику к реальным тенденциям развития информатики и информационной отрасли вообще, вывести ее из закутка "персонального компьютинга",
упростить за счет стандартизации задачу выбора (разработки) учебных программ и пакетов.
Задача доступного изложения основ XML и приемов работы с ним сама по себе непроста, как дидактически, так и технически (в частности, нужны определения типов документов (DTD) для учебных задач, достаточно развитые для демонстрации возможностей языка, но в то же время достаточно простые для понимания XML-документов "с листа" и низкоуровневого редактирования).
Однако одно из основных препятствий на пути использования XML в школе -- неразвитость визуализирующих редакторов -- уже отпало с появлением офисного пакета OpenOffice.org (далее -- OO.o). Он сочетает привычные пользователям ПК пользовательские интерфейсы с поддержкой стандартных XML-приложений, таких, как "текстовый документ" (программа OpenWriter), "электронная таблица" (OpenCalc), "презентация" (OpenImpess), "формула" (OpenMath), "гипертекст" (OpenWeb) и, что уже совсем не характерно для "офисного" софта, "векторный рисунок" (OpenDraw), их взаимного внедрения и связывания.
По сути дела, OO.o -- это "троянский конь", заброшенный в мир "малой компьютеризации": "снаружи" он похож на "офис", а "изнутри" (или "с изнанки") представляет собой набор XML-инструментов. "Офисной" стороной он обращен к опыту пользователей персональных компьютеров, инструментальной -- к современным, постперсональным вычислительно-коммуникационным системам (включая локальные сети и сети Интернет с возможностями безбумажного документооборота и совместной работы над документами).
OpenWriter (далее -- OW) -- это неофициальное, но уже закрепляющееся название word-процессора из комплекта свободных офисных прикладных программ ОО.о (официальным названием, видимо, следует считать Ooowriter)3.
|
---|
Простой документ в окне OpenWriter |
Как уже говорилось выше, все word-процессоры внешне (по функциональности и интерфейсу) похожи друг на друга, и OW (см. рисунок) -- не исключение. Он предназначен для набора, редактирования и оформления текстов на естественных языках (включая многоязычные) и поддерживает:
физическое и логическое (через механизм стилей) форматирование документа в целом, отдельных страниц, разделов, абзацев и символов;
шаблоны (наборы стилей и формы документов);
лингвистическую поддержку (корректные переносы, проверку орфографии и грамматики, тезаурус (русского грамматического и тезаурус-модулей пока нет));
внедрение и связывание объектов -- как из XML-приложений, так и чужеродных (включая растровую графику и результаты выполнения запросов к базам данных);
импорт/экспорт унаследованных нестандартных форматов (в базовую поставку входит модуль только для Microsoft Office), а также плоско-текстовых и гипертекстовых форматов;
встроенный макроязык;
автоматическую нумерацию элементов, оглавления и указатели;
... (назовите сами).
За подробностями отсылаю к [6-9].
Интересное, однако, начинается, когда мы посмотрим
на OW "с изнанки". Файлы с расширением имени ".sfx",
создаваемые им -- это PKZIP-архивы, содержащие (в простейшем
случае) набор XML-файлов, соответствующих (в терминах XML) манифесту,
содержанию документов, определению стилей и значениям текущих
настроек.
Заглянем в файл с содержанием (content.xml). Даже не зная XML, и лишь ориентируясь в синтаксисе языка разметки, можно понять, что файл содержит сначала определения стилей, использованных в документе (даже "жесткое" форматирование имитируется в OW путем создания неявных стилей), а затем размеченного указаниями на эти стили текста. Смотрите, заголовок статьи размечен так:
<text:p text:style-name="P2">
<text:span text:style-name="T1">
Лекция 0.
</text:span>
<text:span text:style-name="T2">
OpenWriter --
</text:span>
<text:span text:style-name="T3">
свободный
</text:span>
<text:span text:style-name="T2">
word-
</text:span>
<text:span text:style-name="T3">
процессор
</text:span>
</text:p>
Понятно, что для форматирования использован один стиль абзаца "P2" и три стиля символов "T1", "T2" и "T3". Выше, в определениях стилей можно найти, что, допустим, "T2" -- это
<style:style style:name="T2" style:famil