Данная статья является продолжением темы использования свободного программного обеспечения в информационных образовательных средах, отдельные вопросы которой были затронуты в статьях [1,2,3]. В них были рассмотрены программы аутлайнеры, которые выполняют роль вики-движков путем реализации гипертекста, используя специфическую вики разметку. Все эти программы написаны на языке Python. Язык Python является кросс-платформенным и поэтому наряду с переносимым исходным кодом для каждой операционной системы ему необходима соответствующая среда исполнения (runtime environment), которая не является переносимой и специфична. Эта среда, как правило, включает интерпретатор, который исполняет исходный код, и различные утилиты, необходимые для сопровождения приложений. Таким образом, для нормальной работы программного продукта созданного на базе языка Python на любом рабочем месте необходимо либо иметь среду исполнения, либо формировать портабельный (переносимый) комплекс, включающий наряду с учебной программой среду исполнения.
Обозначенная проблема не является чрезвычайно сложной, однако её можно избежать в случае использования информационных технологий, базирующихся на языке JavaScript, в качестве платформы для создания электронных образовательных ресурсов. Это объясняется тем, что данный язык используется для работы с сетевыми информационными ресурсами, и на сегодняшний день среда исполнения javascript-кода присутствует в любом компьютере, а также почти во всех мобильных средствах (устройствах) (таких как планшеты, смартфоны и т.п.). Всё это делает необязательной установку среды исполнения.
JavaScript является диалектом стандартизированного языка программирования ECMAScript, используемого в качестве основы для построения других скриптовых языков. Возможности языка JavaScript позволяют динамически управлять отображением и содержимым HTML-документов. JavaScript позволяет контролировать работу браузера, выводить на экран всплывающие диалоговые окна, создавать, открывать и закрывать новые окна браузера, задавать режимы прокрутки и размеры окон и т.д [4].
Важным свойством языка JavaScript является возможность обеспечивать взаимодействие с пользователем, а также реализованная в нем возможность определять обработчики событий — произвольные порции кода, которые выполняются при наступлении конкретных событий (обычно действий пользователя). JavaScript позволяет использовать в качестве обработчиков событий любые новые предварительно заданные функции, например, вывод в строке состояния сообщения, если пользователь установит указатель «мыши» на определенный элемент в поле документа, вывод на экран диалогового окна с запросом на подтверждение выполнения определенного действия и т.д.
JavaScript предоставляет возможность выполнять произвольные математические вычисления. Кроме того, этот язык имеет развитые средства работы со значениями даты и времени [4].
Указанные возможности позволяют реализовывать довольно сложные интерактивные среды на основе языка JavaScript в среде HTML. В частности, на его основе реализованы два вики-движка, позволяющие создавать персональные вики.
Одним из таких движков является WoaS (Wiki on a Stick), который работает также как вики-сайты: мгновенное редактирование страниц, упрощенный синтаксис форматирования, перекрестные ссылки в статьях, и т.д. Эту идею WoaS реализует с помощью одного HTML-файла. Пользователь загружаете его в любой браузер и получает полностью сконфигурированную Wiki. На рисунке 1 приведен скриншот вики в окне браузера FireFox.

Данный вики-движок позволяет производить поиск, шифрование информации, организацию пространства имен, вставку изображений, печать документа. Все изменения сохраняются в этом же файле. Однако следует отметить, что работа вики движка и внешний вид интерфейса может изменятся в зависимости от версии вики-движка, а также типа и версии браузера.
На рисунке 2 приведен скриншот вики в окне браузера Internet Explorer

На рисунке 3 приведен скриншот вики в режиме редактирования (браузер Opera)

Очевидно, что данный вики-движок можно использовать для создания электронных образовательных ресурсов. Однако следует отметить, что в настоящее время этот проект не очень активен. Версия 0.12.0 была выпущена 27.08.2012, а версии 0.13.0 — 15.02.2014.
Значительно активнее развивается проект TiddlyWiki (TW). На наш взгляд, особое внимание следует обратить именно на TW, поскольку этот движок обладает уникальными, выделяющими его среди других, особенностями. Во-первых, этот программный продукт совмещает в себе и хранилище данных, и средства редактирования, и представляет собой отдельный html (htm) файл. Для работы с ним достаточно наличия в программном обеспечении компьютера браузера. Возможность подключения к текстовому контенту графических изображений, звуковой и видео-информации посредством гиперссылок позволяет реализовывать электронные образовательные среды любой сложности. Формат файла TW обеспечивает практическую кроссплатформенность дидактических сред. Кроме того вид лицензии, под которой распространяется данный программный продукт (BSD), позволяет на базе основного ядра TW создавать собственные версии, расширяющие функциональные возможности исходной программы. Данный вики-движок был разработан Джереми Растоном (Рустоном) (Jeremy Ruston) — сотрудником компании Osmosoft и передан некоммерческой ассоциации UnaMesa, занимающейся распространением свободного программного обеспечения.
Первый вариант TW был опубликован в сентябре 2004 года. Размер файла составлял 48 кБ. Интерфейс вики-движка приведен на рисунке 4.

С этого момента начали периодически выпускаться версии так называемой «классической» TW. Выпуски классической TW версии под руководством Джереми Растона продолжались до 2011 года и закончились версией 2.8.1. Однако почти все они до сих пор доступны на сайте classic.tiddlywiki.com.
Начиная с 2011 года Джереми Растон начал работать над версиями TW, использующими возможности языка HTML5. В декабре 2013 работа была завершена, а в 2014 году была выпущена стабильная версия TiddlyWiki5 (TW5) 5.1.0. Последняя доступная стабильная версия TiddlyWiki на момент написания статьи — 5.1.13. Готовится к выпуску версия 5.1.14.
Интерфейс последней стабильной версии TW 5 приведен на рисунке 5.

Исходная программа в виде так называемого «пустого» (empty.html) файла может быть свободно скачана с официального сайта tiddlywiki.com (который сам реализован на движке TiddlyWiki), либо с сайта любого разработчика программных продуктов на базе TiddlyWiki.
Несмотря на то, что исходный файл интерфейса — англоязычный, программа легко поддаётся локализации за счет использования подключаемых модулей.
Возможность изменения программного продукта, предоставляемая лицензией BSD, позволяет любому разработчику (преподавателю, студенту, курсанту и т.п.) создавать авторские электронные образовательные ресурсы. Причем не только содержание, но и структура вики-движка, интерфейс, функциональность может меняться разработчиком или даже пользователем.
На рисунках 6 и 7 представлена версия TiddlyWiki, оптимизированная для создания текстовых материалов; особенностью данной версии является возможность изменения интерфейса «на лету», причем и элементов управления, и цветовой палитры.


Материалы дидактических сред, представленные на рисунках 2-5 были реализованы на базе «стандартных» версий TiddlyWiki.
На рисунке 8 представлен интерфейс вики-движка, оптимизированного для целей образовательного процесса — TiddlyWiki–SE (Student Edition), выполненного на базе TW версии 1.2.39 и находящегося в Сети по адресу
http://checkettsweb.com/tw/tiddlywikise.htm.

Наш личный опыт создания и использования в учебном процессе дидактических сред на базе TiddlyWiki, а также данные пилотного эксперимента Э. Листера [5, 6], позволяют заключить, что данный вики-движок может быть использован в качестве эффективного инструмента для реализации проектов как в рамках «традиционного» аудиторного, так и дистанционного обучения. Использование TiddlyWiki облегчает доступ к образовательным ресурсам для тех категорий обучающихся, которые не всегда имеют доступ к сети Интернет. Кроме того, данное программное обеспечение может стать основой создания среды, способствующей сотрудничеству и общению между обучающимися и преподавателями.