Автор: Пользователь скрыл имя, 17 Ноября 2014 в 19:57, статья
Зачем программам быть свободными?
Право и экономика ПО.
Применимость СПО при реализации «Обязательного минимума.
Логика и последовательность освоения СПО.
Однако добавление все новых и новых возможностей и конструкций в HTML в ходе его развития привело к тому, что сложность его существенно выросла и приблизилась к сложности SGML-приложений, при сохраняющейся несовместимости с SGML.
Параллельное развитие двух близких по назначению языков было очевидно нецелесообразным, поэтому дальнейшее развитие WWW предполагает переход на XML – «расширяемый язык разметки», который превосходит по мощности, гибкости и согласованности HTML и является полноценным SGML-приложением. Уже сегодня наиболее развитые WWW-серверы генерируют HTML именно из XML; непосредственно «понимать» последний постепенно учатся и браузеры.
«Молодое поколение выбирает *ML!»
На наш взгляд, принципы расширяемой разметки, реализованные в XML, могут и должны стать одной из базовых составляющих компьютерной грамотности и обязательно должны найти свой путь в школьные учебные планы. Это позволит:
подвести единую основу и логически связать такие темы, как манипуляция размеченным текстом, гипертекстом и гипермедиа, векторной графикой, электронными таблицами и т.п.,
приблизить школьную информатику к реальным тенденциям развития информатики и информационной отрасли вообще, вывести ее из закутка «персонального компьютинга»,
упростить за счет стандартизации задачу выбора (разработки) учебных программ и пакетов.
Задача доступного изложения основ XML и приемов работы с ним сама по себе непроста, как дидактически, так и технически (в частности, нужны определения типов документов (DTD) для учебных задач, достаточно развитые для демонстрации возможностей языка, но в то же время достаточно простые для понимания XML-документов «с листа» и низкоуровневого редактирования).
Однако одно из основных препятствий на пути использования XML в школе – неразвитость визуализирующих редакторов – уже отпало с появлением офисного пакета «OpenOffice.org». Он сочетает привычные пользователям ПК пользовательские интерфейсы с поддержкой стандартных XML-приложений, таких, как «текстовый документ» (программа «OpenWriter»), «электронная таблица» («OpenCalc»), «презентация» (OpenImpess), «формула» (OpenMath), «гипертекст» (OpenWeb) и, что уже совсем не характерно для «офисного» софта, «векторный рисунок» («OpenDraw»), их взаимного внедрения и связывания.
По сути дела, «OO.o» – это «троянский конь», заброшенный в мир «малой компьютеризации»: «снаружи» он похож на «офис», а «изнутри» (или «с изнанки») представляет собой набор XML-инструментов. «Офисной» стороной он обращен к опыту пользователей персональных компьютеров, инструментальной – к современным, постперсональным вычислительно-коммуникационным системам (включая локальные сети и сети Интернет с возможностями безбумажного документооборота и совместной работы над документами).
«OpenWriter»
«OpenWriter» (далее – OW) – это неофициальное, но уже закрепляющееся название word-процессора из комплекта свободных офисных прикладных программ ОО.о (официальным названием, видимо, следует считать Ooowriter)74.
Как уже говорилось выше, все словарные процессоры внешне (по функциональности и интерфейсу) похожи друг на друга, и OW (см. рисунок) – не исключение. Он предназначен для набора, редактирования и оформления текстов на естественных языках (включая многоязычные) и поддерживает:
физическое и логическое (через механизм стилей) форматирование документа в целом, отдельных страниц, разделов, абзацев и символов;
шаблоны (наборы стилей и формы документов);
лингвистическую поддержку (корректные переносы, проверку орфографии и грамматики, тезаурус (русского грамматического и тезаурус-модулей пока нет));
внедрение и связывание объектов – как из XML-приложений, так и чужеродных (включая растровую графику и результаты выполнения запросов к базам данных);
импорт/экспорт унаследованных нестандартных форматов (в базовую поставку входит модуль только для Microsoft Office), а также плоско-текстовых и гипертекстовых форматов;
встроенный макроязык;
автоматическую нумерацию элементов, оглавления и указатели;
... (назовите сами).
За подробностями отсылаю к [6-9].
Интересное, однако, начинается, когда мы посмотрим на OW «с изнанки». Файлы с расширением имени «.sfx», создаваемые им – это PKZIP-архивы, содержащие (в простейшем случае) набор XML-файлов, соответствующих (в терминах XML) манифесту, содержанию документов, определению стилей и значениям текущих настроек.
Заглянем в файл с содержанием (content.xml). Даже не зная XML, и лишь ориентируясь в синтаксисе языка разметки, можно понять, что файл содержит сначала определения стилей, использованных в документе (даже «жесткое» форматирование имитируется в OW путем создания неявных стилей), а затем размеченного указаниями на эти стили текста. Смотрите, заголовок статьи размечен так (Рис. 4-3).
Понятно, что для форматирования использован один стиль абзаца «P2» и три стиля символов «T1», «T2» и «T3». Выше, в определениях стилей можно найти, что, допустим, «T2» – это стиль, определенный на Рис. 4-4.
То есть «текстовый» (символьный) стиль, предполагающий набор и отображение полужирным шрифтом.
Теперь content.xml может обрабатываться любым XML-инструментом уже без использования «OO.o». Его можно преобразовать в HTML или проиндексировать, вывести на печать, просмотреть браузером, поддерживающим XML. Произвольные определения документов напрямую пока браузерами не поддерживаются, однако текст (неформатированный) можно уже сегодня просмотреть, просто открыв content.xml в «Мозилла» или другом браузере, поддерживающем XML.
Слово «компьютер», означающее буквально «вычислитель» и восходящее к лат. computare, сегодня не нуждается в переводе: повсеместно им обозначают электронные вычислительные машины, и оно понятно даже носителям языков, в которых для компьютера есть собственное слово. Однако в английском, из которого оно и начало свое распространение, это слово имеет и более ранее значение: человек, занятый вычислениями.
Парадоксально, но сколько-нибудь систематического исследования вопроса о динамике совокупной «вычислительной мощи», которыми располагало человечество до появления автоматических вычислителей, в мировой литературе не существует (по крайней мере, с ходу не находится), хотя само содержание общематематического образования и профессиональной подготовки до сих пор наполнено, наряду с теоретическими сведениями о природе и свойствах математических объектов, вполне прагматическими приемами, способами, методами эффективного ручного счета.
Такое исследование будет непростым предприятием, учитывая, что в большинстве случаев вычисления были не отдельной профессией, а частью других профессиональных занятий. Бухгалтер, инженер, техник затрачивали существенные усилия на проведение расчетов, являющихся частью их повседневной работы. Компьютер меняет все это: от профессионала по-прежнему требуется умение применить способ расчета, но сами «вычислительные объемы» выполняются все более и более автоматизированно.
Лишь в относительно небольшом количестве случаев такие вычисления можно сделать полностью автоматическими и централизованными, свалить их на «числомолотилки», а в большинстве случаев расчеты должны проводиться уместно, в том месте и в тот момент, когда это необходимо. Иными словами, от все большего количества профессионалов ожидается умение программировать вычисления.
«Программирование» здесь употреблено не в узком значении, связанном с определенной профессиональной деятельностью, использованием специальных систем нотаций и интеллектуальной дисциплины, а в самом широком, совпадающем с этимологией слова. «Программировать» означает буквально всего лишь «прописывать наперед» те действия, которые должны быть выполнены.
«Убойное приложение» ПК
У маркетологов есть такое сленговое выражение: «убойное применение», или «убойное приложение» (killer application). Оно означает то применение какой-либо многофункциональной в своей основе вещи, которое формирует основную долю спроса на нее и превращает ее из модной новинки в массовый товар.
Появившийся на рубеже семидесятых и восьмидесятых, в сравнении с «настоящим» дорогим компьютером дешевый ПК был всем плох, кроме одного: он быстро выводил данные на экран.
Нужно вспомнить, что в те времена относительно дешевые алфавитно-цифровые терминалы соединялись с машиной последовательными интерфейсами (RS-232), скорость передачи данных по которым обычно измерялась в сотнях знаков в секунду, иногда в тысячах. Гораздо быстрее обменивались данными X-терминалы, включенные в сеть, но это оборудование другого класса, стоившее совсем других денег.
«Терминал» персонального компьютера – это (не считая клавиатуры и «мыши») адаптер, интегрированный на системной плате или вставленный в разъем шины с параллельной передачей сигнала со скоростью, как минимум в сотни раз превышающей пропускную способность последовательного интерфейса, а на монитор, находящийся всего в десятках сантиметров от компьютера, сигнал передается по аналоговому кабелю.
Даже на ранних ПК вывод данных на экран был, в масштабах человеческого восприятия, мгновенным (если не «тормозила», конечно, сама программа). Это позволило относительно дешево реализовать различные приложения, сама идея которых в том, чтобы представить пользователю «живую» презентацию каких-либо данных. К числу таких приложений относится полноэкранное редактирование текстов и, в особенности, работа с электронными таблицами. Электронные таблицы – по большому счету, единственное приложение компьютера, которое было придумано для ПК и впервые реализовано на ПК. Сегодня, разумеется, благодаря многократно возросшей скорости передачи данных, редакторами электронных таблиц можно пользоваться в компьютерных системах и сетях практически любой топологии (упомянутый ниже KSpread без проблем заработал на карманном компьютере Sharp Zaurus).
Программирование особого рода
Мы придерживаемся отнюдь не общепризнанной точки зрения, согласно которой популярность электронных таблиц как делового приложения компьютера, обусловлена именно простотой решения задач, требующих программирования.
Электронная таблица – это двумерный массив, каждый элемент (ячейка) которого может содержать либо значение, либо выражение (формулу), причем выражения в качестве связанных переменных могут содержать ссылки на другие ячейки. (Можно считать значение (константу) частным случаем формулы, однако по историческим и эргономическим соображениям синтаксис этих сущностей различен. Значения, к которым приводятся ячейки, содержащие формулу «=100» (если, как во всех известных нам системах управления электронными таблицами, синтаксис формулы предполагает «=» в первой позиции) и константу 100, равны.)
По сути дела, электронная таблица предполагает использование простого функционального языка программирования (точнее, современные системы управления электронными таблицами как правило реализуют язык формул, функциональный в своей основе, но с элементами инфиксной нотации, т.е. с возможностью вместо «=функция1(функция2((сумма(а; произведение(b;c)))))» написать чуть короче: «=функция1(функция2(a+b*c))»).
Синтаксис этого языка очевиден для всех, кому ясно, что такое формула в обычном математическом понимании. Кроме того, форма электронной таблицы снимает с пользователя-«программиста» заботу об организации данных (их организует сама таблица, и вместо имен переменных можно использовать координаты ячеек), о вводе-выводе и о связывании отдельных конструкций в программу (вычисление формул происходит по мере необходимости).
Таким образом, с помощью электронных таблиц в учебный курс информатики можно вводить «нулевую степень программирования», объясняя, что такое выражение и переменная, но откладывая на потом то, от чего можно абстрагироваться (сущности, перечисленные в предыдущем абзаце, и другие, более сложные).
Свободные редакторы электронных таблиц
Пробежавшись по каталогам свободных программ (таким, как «кузница кода» Sourceforge, содержащая тысячи проектов), можно обнаружить более двух десятков программ в категории «электронные таблицы». Большинство из них – незавершенные или более или менее законченные учебные проекты. Работу с электронными таблицами можно, видимо, считать зрелым персонально-компьютерным приложением: оказывается, за полгода-год один программист в состоянии реализовать (разумеется, опираясь на существующие библиотеки) до 90% функциональности, свойственной лидирующим программам в этой категории.
Однако знакомство с содержанием коммуникации на форумах поддержки позволяет предположить, что реальную широкую пользовательскую аудиторию получили три свободных проекта:
«OpenCalc» – электронно-табличный компонент уже знакомого нам по предыдущим разделам интегрированного прикладного делового пакета «OpenOffice.org»;
KSpread – компонент еще одного конкурирующего пакета под названием KOffice, который мы пока обходим вниманием. KSpread сегодня также не будет нами рассматриваться, но по чисто техническим причинам. Ничего плохого мы о нем сказать не можем. И, наконец,
Gnumeric – компонент слабоинтегрированного пакета (или, скорее, собрания программ) «Гном» Office, не слишком популярного в России из-за хронических сложностей с кириллической письменностью, свойственных word-процессорному его компоненту, Abiword. Сразу отметим, что, в отличие от последнего, Gnumeric «русофобией» не страдает.
Упомянутое выше слово – зрелость самого приложения – ключевая характеристика. Набор ожиданий пользователя, в общем-то, известен, причем не только в части функциональности, но и в части основных эргономических характеристик программы: помимо богатых выразительных возможностей самих функций, для работы с электронными таблицами важна т.н. «остенсивная» операторика, иными словами, возможность «показать пальцем» на объект, с которым нужно произвести те или иные действия. Например, «суммировать значения вот этих ячеек», а не «... ячеек с A5 по D5». В большей, чем в других приложениях, мере очевидны эвристики, которые должны реализовываться программой в качестве «подсказок»; например, если в ячейку, завершающую длинный столбец чисел, пользователь намерен ввести формулу, скорее всего он суммирует значения, а если он начал ряд «1 2 3» или «январь, февраль, март», скорее всего, он продолжит его достаточно прямолинейно.