Дневник начинающего фортера
1 января. Сегодня гуглил про Форт-Нокс, вылезла какая-то левая ссылка. Древний язык программирования, судя по названию — усеченный Фортран. Сейчас скачаю.
10 января. Во смеху-то! Оно еще, судя по всему, с перфокартами работает, потому что рассчитано на блоки по одному килобайту. Готично, буду хвалиться раритетом.
15 января. Оказывается, есть и версии, работающие с файлами. Обидно, думал, что это стопроцентная древность. Ну и ладно, пробую примеры.
16 января. Что за черт! Оказывается, примеры от одной версии не подходят к другой! Апдейты не качаются, хотфиксы тоже. Такое впечатление, что компании-разработчики давно разорились или перестали поддерживать сайты.
20 января. Попробовал написать свою программу. Глаза в кучу, мозги набекрень. Кто придумал эту постфиксную запись?
1 февраля. Полный финиш! Структуры управления тоже постфиксные. Хуже того, ELSE и THEN, кажется, перепутаны местами, причем на редкость одинаково по всем версиям. Странновато.
20 февраля. Три недели на эту дрянь смотреть не мог! Файлы открываются и читаются через пень-колоду, совсем почти забросил. Просто Visual Studio уже в печенках сидит, надоел. Файлы подключил, обратившись напрямую к функциям ОС, так в этом Форте тоже можно. Я — системный программист!
25 февраля. Yesss! Создал окно кучей вызовов API. Оказывается, так писали до появления Delphi. В принципе, Форт такой же, как остальные языки, по крайней мере, названия функций как были, так и остались. Главное, помнить, что сначала пишутся параметры, а потом вызов. Необходимость постоянно подсматривать константы напрягает, и сильно.
7 марта. Сделал консольное приложение, выводящее на экран букет символами. Разослал знакомым женщинам на работе. Сначала был шквал возмущенных воплей — маленький exe-шник приняли за вирус. Об этом я не подумал. Потом говорили «ой». Приятно! Я — крутой программер!!!
10 марта. Вот это да! В Форте, оказывается, можно писать названия слов русскими буквами! Быстренько все переделываю.
15 марта. Поцапался с программистами из соседнего отдела. Они в качестве якобы аргументов бросали на форму базы данных и интернет-браузеры, никак не желая понять, что дело совсем не в этом. Придя домой, сам задумался — а в чем же?
20 марта. Нашел книгу «Язык Форт и его реализации». Доволен по уши. То, чего не хватало.
23 марта. Так вот почему так странно сделаны ELSE и THEN!
25 марта. Глава по шитому коду какая-то мутная. А в версии, которой я пользуюсь, какой, интересно?
30 марта. Броудиииииии!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2 мая. Вот черт! А ведь и правда, если называть слова, похожими по синтаксису на конструкции привычных языков, отлаживать потом удобнее. А я сколько напутал переменных, массивов и обрабатывающих слов...
3 мая. Хех! «По-римски»...
10 мая. Да ни черта он не write-only! Писать надо уметь! И называть нормально. Только ради русских названий стоит им пользоваться.
15 мая. Страна непуганых идиотов! Надо же, набрали студентов-недоучек, которые теперь по всем форумам ни о чем, кроме Си, и говорить не хотят. Полстраницы нормального текста им выдал, ссылки дал — нафлудили столько, что не раскидать!
18 мая. На кой черт нужно вообще это ООП? Я им про красивый код и русские названия — нет, ничего слушать не хотят!
19 мая. Блин! Вылез какой-то умник с контролем типов. После него вылез один из старожилов форума с каким-то ФП. Я думал, это форт-программирование, оказалось, функциональное. Сдуру ляпнул ему, что в Форте нет функций, только слова. Дважды блин!
20 мая. Хаскелль — муть неимоверная. Хорошо хоть примеры пускаются. Но кроме примеров, не пускается ничего.
21 мая. Настроение ни к черту. Правда, после обеда понадобилось быстренько сосчитать формулу. Оформил через → запись в переменные, сложил задание параметров в отдельный файл, сами вычисления в другом файле. Коллеги на удивление проглотили как миленькие! Через пять минут пользования ей по внутренней почте пришла мегабайтная программка на Visual Studio. Хехе! Интересно, сказать им, что они на самом деле на Форте писали?
24 мая. Нашел баг в компиляторе Форта. Техподдержка молчит.
26 мая. Я в шоке! Это один человек писал!!!!!
27 мая. Я. Исправил. Баг. Сам!!!! Мало того, мне ответил автор этого компилятора!!! И сказал спасибо за исправление!!!!
29 мая. Мда. Ему уже неинтересен Форт. Неудачник какой-то. У человека, можно сказать, редкий талант — языки программирования писать, так нет, забросил.
3 июня. Кстати, xor eax, eax быстрее, чем mov eax, 0. Поправил в исходниках.
10 июня. Скачал еще один компилятор. На первый взгляд, неудобно, но в среднем на 20% быстрее. Перейду на него, пожалуй.
20 июня. Теряюсь. Из десятка компиляторов самый быстрый — не самый безглючный. И вообще, сборная солянка. Подозрения подтвердились — каждый писался одним-двумя людьми. Нашел taygeta.com, хоть на том спасибо.
21 июня. Скачал нормальный зарубежный транслятор – класс!
22 июня. Только обрадовался графике — оказалось, что это все мгновенно стирается с экрана. При этом ту же картинку можно набросать вызовами API. Мало того, он еще и платный! Буржуи.
29 июня. Дописал свою библиотеку, которая позволяет рисовать линии и выводить текст в графическом окне. Маловато возможностей, но писать быстро надоело. Выложил в сеть.
1 июля. Уехал в отпуск с нетбуком. Девелоперский софт на флеш-диск все равно не лезет, а Форт взял!
3 июля. Весь день лил дождь, пасьянс раскладывать лень, решил нарисовать море и корабль в своей библиотеке. Втянулся!
5 июля. Оказывается, выделение слов из входного потока — это просто.
6 июля. Трижды блин. Сегодня весь день солнце, море теплое, а я парсер дописывал.
10 июля. Четырежды блин. Провалялся весь день на пляже, а циклы со счетчиком так и не компилируются нормально.
25 июля. Гыыыыы............. Польутылеи коньякаконечн даром не прошли. А у меня свой Форт!!!!!!!!!!!!!!!!11111111111!!1!1!1 Вот
27 июля. Работает!
28 июля. Он работает!!
30 июля. По совокупности тестов (моих) он работает в среднем на уровне. А если еще поставить нормально весовые коэффициенты значимости тестов, то на 3,2% быстрее, чем то, что я видел!!!
3 августа. Ради смеха написал на Си интерпретатор, просто показать народу, насколько это просто. Кстати, функции Си вполне можно сопоставить с именами из входного потока.
4 августа. Баранов — классика! Глава по шитому коду, конечно, не для средних умов, но это и правильно. Во я чайник был — теперь, по крайней мере, ясно, что такое шитый код.
5 августа. Свернутый ШК — рулез. Понаписал быстренько аналогов слов Форта на Си, каждому приписал номер. Один большой switch, и оно почти как Форт. Это, кстати, свернутый или косвенный правильно называется?
7 августа. Ну и чего? Оказывается, только числа еще обрабатывать, и все, Форт на Си.
8 августа. Окончательно понял, что такое шитый код. Более того, понял, зачем он вообще нужен. Оказывается, обработка слов и чисел — это еще не все, компилировать-то тоже как-то надо. И в этой связи прямой ШК эффективнее, можно сразу адреса писать, а не номера функций.
9 августа. Нет, для серьезной Форт-системы косвенный ШК все же лучше. Это и не такой смех, как свернутый код с индексами в один байт, но и не такой монстр, как прямой ШК с его лошадиными адресами. Кому нужны 4 гигабайта? 64 кб за глаза, тем более что это таблица адресов только.
12 августа. Вот черт! Подпрограммный ШК делает даже низкоуровневые слова в хвост и в гриву. Вообще, это оптимальный вариант на сегодняшний день, потому что память давно измеряется гигабайтами, а лишняя возня с адресным интерпретатором никому не нужна.
15 августа. Я умница! Я гений! Если словарь отделить от памяти данных, то шитый код и адресный интерпретатор не нужны. ВООБЩЕ! Производительность взлетает до небес, а если еще какую-нибудь оптимизацию навернуть, оно в силу своей компактности будет рвать все компиляторы!!!
20 августа. Мелкие глюки, но вроде заработало. Теперь код кладется отдельно, а ALLOT работает совсем в отдельном месте. Данные не путаются в коде, ничего обходить не надо, никаких тебе CFA-PFA, код и только код. По ходу компиляции можно выделить хоть мегабайт, он сидит совершенно в другом месте, и компиляция остальных слов продолжается точно там, где закончилась компиляция предыдущих.
22 августа. 4,01%!!!!!!!
24 августа. На форум лазил, но не писал. Терпение меня и спасло. Мелкие тесты, конечно, быстры, но компиляторы С++ почему-то быстрее в нужных мне задачах. Еще бы, зная свой код, можно под него напридумывать фиктивных задачек, только это все самообман! Ничего, зато у меня все равно свой компилятор, а этот С++ писали корпорации-монстры, вложив туда кучу денег.
15 сентября. Долго уже ничего не писал на Форте, на работе завалили задачами.
16 сентября. Поймал себя на том, что пишу кучу вызовов функций на Си, работающих с глобальными переменными. У всех прототип void() - ну чем не слова Форта? Все-таки есть фундаментальные понятия в программировании, которые вечны...
23 сентября. Нашел, где компилятор С++ рвет мой транслятор на лоскуты. Жулики они — выравнивают массивы в памяти и натравливают на них SSE2.
24 сентября. Натравил на свои фортовские массивы SSE2. А вот вам всем! Форт — рулез! Хотя и руками приходится ставить вызов «секретного слова».
25 сентября. А если вершину стека кэшировать в регистре? А регистров-то четыре... Таак.
30 сентября. Нет, не стоит оно того. Поймал себя на том, что и так решаю на Форте кучу мелких вспомогательных задач. А глюков куча появляется, регистры все равно нужны, и они так или иначе постоянно сбрасываются в память и восстанавливаются обратно. И какая разница, какая у него производительность?
3 октября. Написал генератор компиляторов на разные типы ШК. Хочешь так, а хочешь эдак.
4 октября. Выложил на сайт. Посмотрел на счетчик закачек своих прошлых продуктов. Что за??? Все заснули, что ли? Так уже октябрь, давно пора из отпусков выходить...
5 октября. Я в шоке. Такой классный язык, а им никто не пользуется! Надо срочно исправлять ситуацию, тем более что у меня есть универсальный генератор шитых кодов. Теперь ведь каждый может сконфигурировать себе Форт. Не хочу казаться нескромным, но ведь благодаря моим работам!
12 октября. На 15 писем фортерам два ответа! Неделю ждал!!! Засилье С++ и им подобных — это путь в никуда.
14 октября. Все-таки редкость Форта заставляет старых фортеров быть снобами! Ну что там могло у него быть 10 лет назад? Во-первых, это было под ДОС, а сейчас уже современные графические приложения, требования совсем другие. К тому же он не чувствует тонкостей различных вариантов шитого кода.
16 октября. Что вообще о себе возомнил этот старый пень?? Вот где он был, когда Форт переживал свои худшие времена? Почему только я взялся за его восстановление и возврат этому замечательному языку достойного места в мировом программировании? Только спокойно, хамить не надо, сейчас кофейку выпью и напишу нормальный аргументированный ответ.
17 октября. Фортеры есть, но они попрятались по углам. Очевидно, многие так или иначе писали на Форте, но забыли, или из-за малой инициативности боятся открывающихся перспектив. Надо упорядочить библиотеки и выработать единый интерфейс.
24 октября. Работа по созданию оконного интерфейса очень сложна, но тут главное правильно выбрать направление. Не следует копировать Windows, Форт в силу скрытых в нем возможностей может существенно больше. Идея — это все!
25 октября. Выложил статью себе на сайт.
26 октября. Развелось школьников! Он, видите ли, меня в свой проект приглашает!
27 октября. Стократно блин!!!! Пока я со статьей возился, он уже выложил. И всего на два дня раньше. И что теперь, он хочет сказать, что я не имею права координировать этот проект? Это значит, он высосал из пальца, а я целых два дня обдумывал, и создал хороший, мощный фундамент, но на руководство претендует он?
28 октября. Тысячекратно блин!! Хорошо еще, что не ответил ему. На год-то я не посмотрел. Оказывается, его материалы висят там уже три года. Утешает только то, что я иду в правильном направлении, если эти идеи приходят в голову самым разным людям, незнакомым друг с другом. В любом случае, это еще ничего не доказывает. В конце концов, у меня обширный опыт и глубокий системный подход. Вот начну работу, потом сам прибежит. А нет, так останется в одиночестве.
30 октября. Собственно, почему только графический интерфейс? А вот такой вопрос — а что является основой современных ОС? Правильно, именно графический интерфейс! И если мы его напишем на Форте, тоооо.... Улавливается мыслишка? Какой там следующий, маааленький такой шажок получается?
5 ноября. Yesss!!!!! Пока черный экран в VMWare, но первый шаг — это главное.
10 ноября. Файловая система, ускорение графики, USB и сеть — собственно, минимум задач, на которые надо пригласить участников проекта.
12 ноября. Да пошли они все! Впрочем, могу сказать только, что зависть — плохое чувство. А ФортОС я все же напишу!
14 ноября. Собственно, с ФортОС хорошая идея, но неправильная целевая платформа. Есть же целый мир микроконтроллеров, где ресурсов очень мало. Вот как раз и шитый код пригодится, он же неимоверно переносим.
15 ноября. За битого двух небитых дают! Сразу посмотрел в инете, что там с Фортом для микроконтроллеров. Соглашусь, есть интересные идейки, есть даже переносимые трансляторы, но кое-что у меня есть в запасе.
20 ноября. Выложил демку!
21 ноября. Вот откуда берутся такие умники? Спрашивается, если у тебя уже есть подобное, почему оно не в сети?
28 ноября. YESSS!!! Первое по-настоящему коммерческое применение моего Форт-продукта! Вчера у сишников памяти на таблицы не хватило, правда, там и контроллер совсем мелкий был, но его из-за цены и взяли. А я на Форте то же самое быстренько сварганил, правда, пришлось таблицу сверток ужать до неприличия.
1 декабря. Зависть — очень плохое чувство. Радует то, что эта зависть подвигла сишников поколдовать с галочками их монструозного компилятора, в итоге они таки влезли в память. Потом еще доказывали мне, что есть все-таки какой-то минимальный объем вычислений, без которого никуда. Впрочем, я уже понял, что таблица сверток в памяти контроллера — это дикость, надо было сбрасывать туда только исполняемый код, тем более что мне даже интерпрератор там не нужен. В итоге в партию пошла все-таки их прошивка. Хотя это нечестно, они у производителя аппнот скачали, а я руками писал алгоритм, потому у меня и неэффективно получилось.
4 декабря. Оказывается, когда-то люди делали процессоры, ориентированные на Форт. Вот были времена! Тогда еще можно было наравне спорить с Интелом, поскольку частоты максимум десятки мегагерц. Впрочем, и сегодня можно было бы поспорить с производителями контроллеров. Жалко, что Форт держится на одиночках. Вдвойне жалко, что одиночки сидят в своих углах и так и не отреагировали на мои усилия. И совсем жалко, что корпорации-монстры из-за непонятной приверженности Си задавили такие перспективные проекты.
6 декабря. Здраааавствуйте, уважаемый! Проснулся? А где ж ты раньше-то был? Я тебе еще когда писал. Что, почитал, кто я и чем занимаюсь? Небось когда я в мире Форта был неизвестен, я тебе был не нужен, а сейчас что, почувствовал, как почва понемногу уходит из-под ног? Теперь будешь оправдываться старым почтовым ящиком, в который редко заглядываешь?
8 декабря. Жалко, конечно, что отечественная электроника в упадке. Форт-процессоры были бы для нее спасением. И куда смотрит правительство?
10 декабря. Форт-идеи все-таки потихоньку пробивают себе дорогу! За рубежом в студенческих работах медленно, но верно приходят к идее стековых вычислений. Только делают это, видимо, будущие специалисты по электронике, потому что на сайте фотография какого-то чипа. Жалко, что им не придется сталкиваться с насущными потребностями программистов.
12 декабря. От нервов хлопнул 50 грамм коньяка. Я в шоке. То ли хорошо, то ли плохо — не знаю. Оказывается, чипы можно клепать буквально на коленке! И это и был Форт-процессор!!! Правда, какая-то специальная макетная микросхема, но факт остается фактом. У них там намеки на аппаратное выполнение стековых команд. Конечно, перспективы просто впечатляющие. Но уже понятно, что они от этого задерут нос, и меня слушать не будут. Что уж говорить о том, чтобы они стали пускать в производство процессор, созданный по моим трудам в этом направлении. Политика, как ни крути. И снобизм в отношении бывшего СССР. Конечно, ясно, что по-настоящему качественного продукта у них не будет.
15 декабря. Шок не проходит. Это называется «программируемая логическая интегральная схема». Софт качается бесплатно. Конечно, надо за это серьезно браться, только руки трясутся — это ведь может быть прорывом, на всю жизнь!
20 декабря. Спокойно, серьезно и размеренно. Почитать литературу, поискать, нет ли уже такого. Конечно, настолько проработанного нет, Форт все-таки редкий язык. Но с учетом того, что ПЛИС — ультрасовременная технология, ну не могли же и это все успеть сделать? Надо попробовать замахнуться на суперпроект, объединяющий идеи специализированного форт-процессора, динамически перенастраиваемого под конкретные требования. Выглядит сложно, это да. Но в конце концов, кто, если не я?
23 декабря. Да, глупо было бы думать, что оно лежит в сети. С другой стороны, это признак того, что какие-то большие компании могли начать исследования и засекретить их. Ищу дальше, по косвенным признакам.
28 декабря. А что такое fforum.winglion.ru ?
|