Свободные программы и системы в школе
Добавить в закладки К обложке
- Введение. Зачем программам быть свободными? - Страница 1
- 0.1 Право и экономика ПО - Страница 2
- 0.2 Применимость СПО при реализации «Обязательного минимума...» - Страница 3
- 0.3 Логика и последовательность освоения СПО - Страница 4
- Глава 1. Краткое введение в открытые ОС - Страница 5
- 1.1 Операционные системы - Страница 6
- 1.2 Практическая интеграция - Страница 9
- 1.3 Почему командная строка? - Страница 16
- 1.4 Сеанс работы и команды - Страница 18
- 1.5 Файлы и файловые структуры - Страница 22
- 1.6 Процессы - Страница 31
- 1.7 Переменные - Страница 35
- 1.8 Конвейер - Страница 38
- 1.9 Элементы обработки текста - Страница 40
- 1.10 Элементы программирования оболочки - Страница 45
- 1.11 Справочник по наиболее употребительным стандартным командам ОС - Страница 50
- 1.12 Перечень стандартных команд ОС - Страница 56
- Глава 2. Графический пользовательский интерфейс - Страница 60
- 2.1 Оконная система «Икс» и XFree86 - Страница 61
- 2.2 Цветной сэндвич - Страница 62
- 2.3 «Чистая» «Икс» - Страница 63
- 2.4 Окноводы - Страница 64
- 2.5 Столоначальники - Страница 65
- 2.6 Триумф интерфейса над пользователем? - Страница 66
- 2.7 От какого наследства нам не стоит отказываться? - Страница 67
- 2.8 Зачем нужны «легкие» среды? - Страница 68
- 2.9 Базовая функциональность оконного менеджера - Страница 69
- 2.10 «Виджеты» - Страница 70
- 2.11 Расширенная функциональность оконного менеджера - Страница 71
- 2.12 Оконные менеджеры «BlackBox» и «FluxBox» - Страница 72
- 2.13 Оконный менеджер «WindowMaker» - Страница 73
- 2.14 Оконный менеджер «IceWM» - Страница 74
- 2.15 Интегрированные графические среды - Страница 75
- 2.16 Плюсы и минусы интегрированных сред - Страница 76
- 2.17 Общие черты интегрированных сред - Страница 77
- 2.18 «Гном» (Модельная среда сетевых объектов GNU) - Страница 78
- 2.19 «КДЕ» (Настольная среда K) - Страница 80
- Глава 3. Пакет «Мозилла» - Страница 81
- 3.1 Базовая функциональность «Мозилла»66 - Страница 82
- 3.2 «Мозилла»: как это сделано - Страница 84
- Глава 4. «Открытый Офис» - Страница 85
- 4.1 Словарный процессор «OpenWriter» - Страница 86
- 4.2 Редактор электронных таблиц «OpenCalc» - Страница 90
- 4.3 Редактор векторной графики «OpenDraw» - Страница 93
- Глава 5. Редактор растровой графики «ГИМП» - Страница 97
- 5.2 Источники и параметры и форматы представления растровой графики - Страница 98
- 5.3 Общие сведения о «ГИМП» - Страница 99
- 5.4 «ГИМП» – программируемый графический редактор - Страница 100
- 5.5 Фильтрация и синтез изображений - Страница 102
В действительности, различие это скорее идеологическое, чем прагматическое: в современных версиях «vi» в большинстве случаев также можно осуществить привязку часто употребляемых команд к клавиатурным комбинациям и выполнять их из режима редактирования, а в «Emacs» можно достаточно точно (если кому-то это потребуется) имитировать командный режим, характерный для многорежимных редакторов.
Дидактика редакторов
Реальное очень значимое отличие заключается в том, что по своей архитектуре «vi» – более или менее монолитная программа (с вытекающей отсюда компактностью), а «Emacs» – на самом деле, расширяемая (программируемая) коллекция макрокоманд редактирования, написанных на «Emasc Lisp» (диалекте известного языка функционального программирования). Лишь интерпретатор самого «Emacs Lisp» и небольшое количество часто выполняемых (и требовательных к ресурсам) команд встроены в саму программу и написаны на компилируемом C, большинство же команд написаны на «Lisp» и могут изменяться или дополняться пользователями (или профессиональными программистами по заказу пользователей).
За четверть века существования «Emacs», благодаря свободной модели лицензирования и открытой модели разработки, «оброс» невероятным количеством макрокоманд, «затачивающих» его под синтакcические особенности различных формальных языков (включая, но не ограничиваясь языками программирования и языками разметки), а также реализующих приложения, традиционно слабо ассоциируемые с «просто редакторами». Например, не выходя из «Emacs», можно работать с электронной почтой и службами новостей USENET (а также с гипертекстом со страничек WWW).
Или – что не менее интересно – не выходя из Emacs, можно прогнать текст программы через компилятор и подсветить синтаксические ошибки или предупреждения, воспользоваться символьным отладчиком или профилировщиком (реально, «Emacs» образует оболочку интегрированной среды разработки программ, и в этом качестве является вдохновителем и предшественником всех прочих интегрированных сред разработки (IDE)). И это лишь пара примеров.
Фактически, регулярно используемый «Emacs» позволяет реализовать (чисто в текстовом режиме, даже в системах, вообще не поддерживающих графику) метафору «рабочего стола», более известную по позднейшим графическим пакетам. Он реализует множественность окон (неперекрывающихся) на одном экране («фрейме»), а в графической среде способен работать со многими «фреймами» (окнами в терминах менеджера окон). Пакет «Emacspeak» добавляет к функциональности «Emacs» речевой вывод, предоставляя мощную поддержку для незрячих и слабовидящих пользователей59.
Все это (доступность, расширяемость, интегрируемость) делает его серьезным претендентом на организацию «учебного» рабочего пространства программиста (и, на самом деле, есть университетские курсы, так и построенные). Можно ли это использовать в сегодняшней школе?
Однозначного ответа на этот вопрос у нас нет. Дело в том, что нам неизвестны такие (ориентированные на среду на основе «Emacs») курсы для школ вообще. А что касается России (и русскоязычного сообщества), то нам неизвестны примеры школьных курсов, вводящих на достаточно раннем этапе идеи функционального программирования. А без последнего – увы – расширяемость «Emacs» остается чисто теоретической.
Однако в качестве интегрированной среды именно для программирования (в том числе, на обычно изучаемых в школе директивных языках, например, Pascal) «Emacs» использовать, безусловно, можно. Следует только учесть, что пресловутая «кривая обучения» для него гораздо более вогнутая, чем для более простых (но и менее мощных) средств редактирования, обычно используемых в подобного рода средах. Грубо говоря, может потребоваться пара занятий до того, как учащийся будет чувствовать себя уверенно при наборе и редактировании программ, зато потом эти задачи будут решаться гораздо эффективнее. (Кривую обучения можно сгладить, создав дополнительный набор макрокоманд под конкретный курс и, наверное, это правильный способ, но он потребует от методиста незаурядного знания не только «Emacs», но и «Emacs Lisp».)
В обычных учебных курсах «vi» изучается раньше «Emacs». Такая структура заимствуется из традиционного курса подготовки администраторов и продвинутых пользователей открытых систем. Дело в том, что «vi», во-первых, стандартизован (и доступен во всех без исключения открытых системах), а во-вторых, компактен. Администратор системы может оказаться (например, при восстановлении после сбоя) в среде, где ему из экранных редакторов доступен только «vi». Поэтому для сисадминов базовые навыки работы с ним обязательны (вне зависимости от личных предпочтений).