.RU

2.3 Vi и Emacs - Свободное программное обеспечение в школе.


^ 2.3 Vi и Emacs
Интересно, что два, по-видимому, первых экранных редактора, созданных в начале семидесятых, и явились родоначальниками "семейств" таких программ, до сих пор наиболее популярных в профессиональной среде. Это vi Билла Джоя (тогда аспиранта Университета Калифорнии в Беркли, а затем основателя Sun Microsystems) и Emacs Ричарда Столлмена (тогда сотрудника Лаборатории искусственного интеллекта Массачуссетского технологического института, а ныне --- президента Фонда свободного программного обеспечения и лидера проекта GNU). Оба они, по сути, происходят от экранных режимов работы популярных тогда редакторов ed и TECO, соответственно.

Редактор vi

Первый ныне стандартизован и, в той или иной реализации (наиболее популярна, видимо, vim Брама Мооленаара) доступен в составе любой стандартной операционной системы (в том числе, свободных). Второй под названием GNU Emacs поддерживается Фондом свободного ПО (www.fsf.org) и выдержал с тех пор более двадцати изданий (релизов).

Исходная идеология и эргономическая модель этих двух выдающихся разработок серьезно различается, что служит поводом для шутливой "священной войны" между их приверженцами. Vi(m) относится к так называемым "многорежимным" редакторам. В режиме редактирования оператор вводит и исправляет текст. Перемещение по тексту, контекстный поиск и замена, более сложные операции выполняются в командном режиме. Между этими режимами (а также, унаследованным от ed и редко применяющимся режимом построчного редактирования) нужно явное переключение нажатием клавиатурной комбинации. Зато большинство команд привязаны к нажатиям одной клавиши, и даже перемещаться по тексту в командном режиме можно, не сбрасывая кисть на дополнительную клавиатуру со стрелками, а нажимая алфавитные клавиши в центре клавиатуры. Адепты vi --- программисты и системные администраторы --- очень серьезно относятся к экономии времени и энергии за счет минимизации движения пальцев.

Emacs --- пример "безрежимного" или, если угодно, "однорежимного" редактора: пользователь всегда находится в режиме непосредственного редактирования текста в точке курсора, а команды издает, нажимая сложные сочетания клавиш и, при необходимости, вводя параметры команд в отдельном окне. Из-за стремления обеспечить прямую клавиатурную привязку как можно большему количеству команд и следующей из нее сложности используемых клавиатурных сочетаний был даже пущен слух о том, что Emacs расшифровывается как "Esc-Meta-Alt-Ctrl-Shift" (хотя на деле, конечно, клавиатурные аккорды все же не так сложны, а Emacs --- это просто Editing MACroS, т.е. "макрокоманды редактирования").

В действительности, различие это скорее идеологическое, чем прагматическое: в современных версиях vi в большинстве случаев также можно осуществить привязку часто употребляемых команд к клавиатурным комбинациям и выполнять их из режима редактирования, а в Emacs можно достаточно точно (если кому-то это потребуется) сымитировать командный режим, характерный для многорежимных редакторов.
^ 2.4 Дидактика редакторов
Реальное очень значимое отличие заключается в том, что по своей архитектуре vi --- более или менее монолитная программа (с вытекающей отсюда компактностью), а Emacs --- на самом деле, расширяемая (программируемая) коллекция макрокоманд редактирования, написанных на Emasc Lisp (диалекте известного языка функционального программирования). Лишь небольшое количество часто выполняемых и требовательных к ресурсам команд встроены в саму программу и написаны на компилируемом C, большинство же команд написаны на Lisp и могут изменяться или дополняться пользователями (или профессиональными программистами по заказу пользователей).

За четверть века существования Emacs, благодаря свободной модели лицензирования и открытой модели разработки, "оброс" невероятным количеством макрокоманд, "затачивающих" его под синтакcические особенности различных формальных языков (включая, но не ограничиваясь языками программирования и языками разметки), а также реализующих приложения, традиционно слабо ассоциируемые с "просто редакторами". Например, не выходя из Emacs, можно работать с электронной почтой и службами новостей USENET (а также с гипертекстом со страничек WWW).

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

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

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

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

Однако в качестве интегрированной среды именно для программирования (в том числе, на обычно изучаемых в школе директивных (сентенциональных) языках, например, Pascal) Emacs использовать, безусловно, можно. Следует только учесть, что пресловутая "кривая обучения" для него гораздо более вогнутая, чем для более простых (но и менее мощных) средств редактирования, обычно используемых в подобного рода средах. Грубо говоря, может потребоваться пара занятий до того, как учащийся будет чувствовать себя уверенно при наборе и редактировании программ, зато потом эти задачи будут решаться гораздо эффективнее. (Кривую обучения можно сгладить, создав дополнительный набор макрокоманд под конкретный курс и, наверное, это правильный способ, но он потребует от методиста незаурядного знания не только Emacs, но и Emacs Lisp.)

Почему в обычных учебных курсах vi изучается раньше Emacs? Такая структура заимствуется из традиционного курса подготовки администраторов и продвинутых пользователей открытых систем. Дело в том, что vi, во-первых, стандартизован (и доступен во всех без исключения открытых системах), а во-вторых, компактен. Администратор системы может оказаться (например, при восстановлении после сбоя) в среде, где ему из экранных редакторов доступен только vi. Поэтому для сисадминов базовые навыки работы с ним обязательны (вне зависимости от личных предпочтений).

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

-programma-socialnoj-pomoshi-v-dejstvii-informacionnij-byulleten-mestnogo-samoupravleniya-izdaetsya-asdg-po-soglasheniyu.html
-programmirovanie-parolej-programma-upravleniya-centralyami-omn.html
-prokuratura-priznala-bila-ne-prava-informacionnij-byulleten-mestnogo-samoupravleniya-izdaetsya-asdg-po-soglasheniyu.html
-proshaj-nachalnaya-shkola-kalendarnij-plan-raboti-shkoli-na-maj-2011-goda-klyuchevie-dela.html
-protokol-313606042010g-bitovo-fekalni-otpadchni-vodi-godishen-doklad-po-okolna-sreda-po-izdadeno-kompleksno.html
-psihologiya-k-526-klyagin-nikolaj-vasilevichsovremennaya-nauchnaya-kartina-mira-ucheb-posobie-dlya-stud-vuzov.html
  • essay.bystrickaya.ru/chastyu-bili-zahvacheni-a-chastyu-bezhali-za-granicu-polnij-kurs-lekcij-po-russkoj-istorii-petrograd-5-avgusta-1917-g.html
  • testyi.bystrickaya.ru/7-trebovaniya-k-specialnomu-oborudovaniyu-pravila-bezopasnosti-pri-stroitelstve-podzemnih-sooruzhenij.html
  • lektsiya.bystrickaya.ru/professionalnie-bolezni.html
  • university.bystrickaya.ru/godovoj-plan-gosudarstvennih-zakupok-tovarov-rabot-i-uslug-na-2010-god-institut-mikrobiologii-i-virusologii-komiteta-nauki-mon-rk-stranica-11.html
  • lektsiya.bystrickaya.ru/programma-disciplini-dpp-f-08-zoologiya-celi-i-zadachi-disciplini.html
  • studies.bystrickaya.ru/kino-kak-novij-eliment-kulturi-xx-veka-chast-4.html
  • lektsiya.bystrickaya.ru/primernaya-programma-professionalnogo-modulya-izgotovlenie-chelyustno-licevih-apparatov-2012-g.html
  • zanyatie.bystrickaya.ru/o-rajonnoj-celevoj-programme-razvitie-zemelnih-otnoshenij-v-mogojtujskom-rajone.html
  • school.bystrickaya.ru/konspekt-lekcij-sistemnoe-programmirovanie-semestr-2-vozle-nazvaniya-kazhdoj-lekcii-napisano-chislo-par-v-techenie-kotorih-ona-budet-chitatsya-sr-oboznachaet-stranica-14.html
  • teacher.bystrickaya.ru/glava-h-kniga-pervaya-.html
  • learn.bystrickaya.ru/glava-3-mozhno-li-s-pomoshyu-ekonomiki-uluchshit-socialnij-stroj-makarenko-v-p-problema-obshego-zla-rasplata.html
  • report.bystrickaya.ru/ierarhiya-oektov-excel-uchebnoe-posobie-dlya-studentov-ekonomicheskih-specialnostej-izdatelstvo-nizhegorodskogo.html
  • exchangerate.bystrickaya.ru/l-ekciya-10-elementi-teorii-prinyatiya-reshenij-obshaya-shema.html
  • desk.bystrickaya.ru/okno-v-evropu-provincialnij-vzglyad-yu-m-romanenko-s-peterb-gos-un-t-dokt-filos-nauk-prof.html
  • knigi.bystrickaya.ru/soderzhanie-rabot-po-razrabotke-i-realizacii-edinichnih-proektov-tema-proekta.html
  • uchebnik.bystrickaya.ru/valdman-leonid-dolgi-idollar1-.html
  • institute.bystrickaya.ru/fiziko-matematicheskie-nauki.html
  • textbook.bystrickaya.ru/iz-rasskazov-shturmbanfyurera-stranica-9.html
  • obrazovanie.bystrickaya.ru/poryadok-podgotovki-i-provedeniya-kandidatskogo-ekzamena-po-inostrannomu-yaziku.html
  • credit.bystrickaya.ru/plan-raboti-metodicheskogo-obedineniya-uchitelej-matematiki-informatiki-i-fiziki-mif-na-2010-2011-uchebnij-god.html
  • kontrolnaya.bystrickaya.ru/proklyatie-roda-maknejl-tihie-shagi-uzhasa-stranica-19.html
  • pisat.bystrickaya.ru/tematicheskij-plan-izdaniya-uchebnoj-metodicheskoj-i-nauchnoj-literaturi-nacionalnogo-issledovatelskogo-yadernogo-universiteta-mifi-na-2010-god-pp-stranica-12.html
  • turn.bystrickaya.ru/party-obshestvo-priglashennoe-na-chaj-coffee-stanovlenie-i-razvitie-anglijskoj-turistskoj-terminologii-i-ih-ekstralingvisticheskoj.html
  • gramota.bystrickaya.ru/yanush-vishnevskij-odinochestvo-v-seti-stranica-6.html
  • literatura.bystrickaya.ru/spisok-otechestvennih-knig-poluchennih-bibliotekoj-stranica-6.html
  • institut.bystrickaya.ru/titulnij-list-lico-deklaracii.html
  • crib.bystrickaya.ru/iii-predmetnie-interpretacii-simvolov-tablici-form-stranica-11.html
  • uchit.bystrickaya.ru/struktura-poznaniya-ego-vidi-i-formi-b-v-markov-voprosi-k-ekzamenu-po-specialnosti-literaturovedenie.html
  • literature.bystrickaya.ru/byudzhetnij-deficit-g-orla-i-metodi-ego-pokritiya.html
  • thesis.bystrickaya.ru/programma-disciplini-utverzhdena-na-zasedanii-kafedri-sd-protokol-uchebno-metodicheskij-kompleks-disciplini-dpp.html
  • uchenik.bystrickaya.ru/federalnij-gosudarstvennij-obrazovatelnij-standart-visshego-professionalnogo-obrazovaniya-preemstvennost-i-novizna.html
  • paragraf.bystrickaya.ru/zadachi-praktiki-napisanie-referata-na-predstavlennuyu-kafedroj-temu-mesto-provedeniya-praktiki.html
  • books.bystrickaya.ru/dante-aligeri-bozhestvennaya-komediya-stranica-9.html
  • testyi.bystrickaya.ru/5-ocenka-aposteriornoj-pogreshnosti-metodicheskoe-posobie-petrozavodsk-2004-vsyakij-specialist-stremitsya-dostich.html
  • esse.bystrickaya.ru/raschet-i-konstruirovanie-mashin-i-apparatov-avtomatizaciya-pishevih-proizvodstv.html
  • © bystrickaya.ru
    Мобильный рефератник - для мобильных людей.