Музей TEA

Typewriter 2.2 beta - редактор, разрабатываемый мною в 2000-2001 годах, предшественник первой версии TEA под Windows, а точнее, переименованный осенью 2001 в TEA. Редактор жил на сайте typewriter.narod.ru. Написан был в среде разработки, которая тогда мне, да и многим другим, нравилась больше всего - Delphi.

В Typerwriter, помимо функций обработки текста, был встроен звуковой "синхронизатор мозговых волн" - штука, которая на меня никогда впрочем не действовала. Редактор поддерживает три русские кодировки - Cp1251, DOS 866 и KOI8-R. Подсветки синтаксиса нет, зато есть палитры оформления. Калькулятор, обычный календарь, лунный календарь, некоторые утилиты для Фидонета. Меню "Функции", знакомое пользователям всех версий TEA, существовало еще со времен Typewriter, причем сохранило свою структуру, хотя и разрослось.

Интерфейс Typewriter - еще не "табовый", а MDI, когда окна документов плавают внутри общего окна. В качестве браузеров для запуска HTML-документов на просмотр предлагались жестко вбитые IE, Opera да Netscape.

Средства веб-разработки включали в себя окошко Web Assistant со списком тэгов для быстрого их ввода, выбор цвета из палитры, и вставка картинки. Всё это позже раскидалось по разным пунктам меню TEA.

Руководство к программе - в формате HLP, там нахожу задумки на будущее, например что начал работу над УНИТАЗом, Универсальным Текстовым Анализатором. В качестве текстового движка в Typewriter 2.2 использовался MemoEx Алексея Колесниченко.

В документации того времени я вспоминаю историю создания редактора так:

***

Идея написать свой редактор возникла по одной магической причине. Я начал писать рассказ "Детские рисунки выбрасывать запрещается!", и пока я писал его, Word 2000 вылетел с ошибкой где-то в kernel'е. Да, я сохранил написанный фрагмент - успел. Правда, две строки все же пропали. Я начал вновь писать, и снова Ворд вылетел. И опять, и опять. Ни на одном файле он не глючил, только на "Детских рисунках!". Тогда я скопировал текст в Clipboard, и продолжил писать в обычном текстовом редакторе BRED'е, где благополучно и завершил рассказ.

И когда я увидел, как выглядит текст в этом Baikal, я снова не вдохновился, и озарение посетило меня - надо писать свой собственный редактор. Нет, я не буду делать его с нуля - я не программист-маньяк, я литератор и философ. Незачем изобретать велосипед. Windows предоставляет отличный движок текстового редактора Richedit, и каждый, кому не лень, его использует в той или иной степени успешно. Я не исключение, я тоже взял его, и начал навешивать всякие прибамбасы, ощущая потребность сделать... Ээээ... Бээээ... Мээээ... Короче, в итоге вышел довольно милый редактор. Я уже создал его дистрибутив с инсталлятором, но засыпая ранним утром в глубоких раздумьях, ясно осознал, что очередной Rich-text редактор никому нафиг не нужен!

***

Но кроме этого, я помню иное - что работу над исходником начал 4 октября 2000 года. Ко мне в гости пришла подруга Нина, я пошел ее провожать, и пока шел, в голове сложился этот - как его назвать? зародыш программы, так всегда бывает, вне зависимости от меня, просто возникает образ, понимание и задача - это надо делать. Я вернулся домой, создал в Delphi новый проект, поставил в начале главного файла REMain.pas дату - 4 октября 2000 года. Это и было рождение TEA, хотя вначале редактор именовался Typewriter.

Осенью 2001 года, в сентябре, с новым выпуском редактора я переименовал Typewriter в более короткое TEA. Название Typewriter перестало мне нравиться, кроме того, я чувствовал, что с развитием редактора старое имя отжило, более не подходило к новой ипостаси программы.

TEA 11.0.0.607 (Split) - тот самый легендарный вындовый TEA начала века, новая ипостась Typewriter. Разрабатывался по 2003 год включительно, когда я объявил версию TEA 11.0.0.607 последней для Windows, ибо основной моей системой стал Linux и я начал там писать с нуля TEA на языке Си с использованием тулкита GTK+2.

Приведу выдержку из документации 2003 года (TEA всегда был документирован более, чем требовалось), где я рассказываю об истории создания редактора:

---

В исходнике TEA, в самом начале первого юнита, есть строка: //created at 4 oct 2000 by Roxton. Я помню, что начал писать редактор вечером, аккурат после того, как проводил подругу, которая взяла у меня почитать книжку Стивена Кинга и до сих пор не вернула. Довольно мерзкий поступок.

Сначала редактор назывался Typewriter. Через месяц после начала разработки я выложил его дистрибутив (даже с инсталлятором) на своем сайте, но его скачивали единицы. Я совсем не помню, как выглядел тогда Typewriter. Это был многооконный редактор (но без табов), с поддержкой популярных кодировок, звуковым синхронизатором мозговых волн, и некоторыми другими штуками, которых сейчас в TEA нет - например, было окно WebAssistant с разными тулзами для веб-дизайна.

В Typewriter 3.0 были: CodeInsight, закладки своего формата, простой файловый менеджер (еще не Нептуно), цветовые стили, уйма разных функций обработки текста - короче говоря, это был уже прототип современного TEA. Но Typewriter 3 так и не был зарелижен. В сентябре 2001 я переименовал проект в TEA, потому что решил раскручивать его, и нужно было короткое, звучное имя.

Но вернусь к истории. Хотя, вы можете задолбаться это всё читать. Не нравится - закройте окно браузера. А я сейчас настроен на словоизлияние. Словоизлияние в мозг. Продолжу об истории TEA. Весной 2002 года к разработке подключился Lemon, который делал дизайн сайта, документации и рисовал кнопки. А также создал справочник по HTML и внес некоторые идеи в концепцию программы. Вклад Lemon'а был велик. Затем, из-за непреодолимых разногласий в плане дизайна, я снова взял проект целиком в свои руки. Ибо мне нравится простая, читабельная документация. Простой, читабельный сайт. Я простой человек. (используйте это как цитату)

[...]

1. Никакой лажи вроде OCX-компонентов, швыряния кучи dll'ок в системные папки, самовольного переиначивания файловых ассоциаций и других прелестей. Чем меньше программа компостирует системе мозги, тем лучше для обеих.

3. Нормальная документация. То бишь, где написано понятно и четко, и не нудно. Писать документацию занятие само по себе напрягающее. Выпуск новых версий TEA часто тормозится именно потому, что лень дополнять вот эту документацию. Это ж надо сесть, уделить время, рассказать понятным языком, как и что использовать. В любом случае, старался описывать самые важные вещи.

5. Чего никогда не будет в TEA: автостарт (эт те не плейер), вот эти вот встроенные калькуляторы, плейеры и прочее из серии "все в одном". Редактор должен быть функционален и освобожден от всего лишнего. Это редактор, ничего больше. Не надо превращать Tea в отхожее место.

В TEA 11 было пожалуй столько же функций, чем в TEA-QT образца 2016 года. Шаблоны, сниппеты, закладки, палитры оформления - это всё оттуда, из старого TEA. Чем еще он мог похвастаться? Встроенный веб-браузер Retro, файловый приказчик Нептуно, озвучка клавиш - сэмплы пишмашинки либо настоящий синтезатор (у каждой клавиши - свой тон).

Но интерес мой к развитию вындового TEA угасал. Во-первых, сам я стал "жить" больше в Линуксе. Во-вторых, я сделал в TEA всё, что мне было нужно от редактора, и даже сверх того. Архитектурой я был доволен и редактор мог бы развиваться дальше на основе существующего кода. В последних версиях по TEA 11 я ввел в действие движок "виртуального редактора", который позволял мне пристегивать к основному коду любой движок редактирования. И когда TEA открывал текстовые и RTF-файлы, запускались разные движки. Другой движок запускался и при открытии файла в HEX-режиме.

TEA Win32 (установщик, исходник)

Новая ипостась вындового TEA, выкладываемая при жизни (2006-2007 годы) в общественное достояние. От кода старого TEA в этом не осталось, кажется, ничего, а основан он был на Scintilla, JVCL, JCL и некоторых других библиотеках. В то время я уже вовсю разрабатывал линуксовый TEA, на Си, под GTK+2, и некоторые идеи оттуда перетаскивал в этот вындовый. Насколько я помню, до использования Scintilla в качестве движка редактирования, были какие-то ранние версии TEA Win32 с движком из JVCL. Остановка разработки TEA Win32 была вызвана началом разработки многоплатформенного TEA Qt.