Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 01:51

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Статья (мини): кофе в сахар или наоборот?
СообщениеДобавлено: Пт июл 08, 2022 01:10 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Это не совсем статья, а скорее мини-очерк.

В последнее время обнаруживается довольно много вариантов Форта. Пишется или "внезапно" находится поиском - неважно. Главное то, что у этих вариантов очень похожее последействие - близкое к нулю. Вроде бы можно подергать за ниточки проектов, документации, примеров и прочего "продвижения", но на практике это все приводит к стабильно никаким результатам. И что характерно - у автора-то работает! И что же со всем этим делать?

Процесс написание и представления таких Фортов напоминает опрокидывание чашечки кофе в сахарницу. Вроде бы получается кофе с сахаром, но что-то здесь не так. Пить такое можно только в рамках большого упрямства. Вопрос в том, что "сахар" (форт-машина с каким-то набором слов) существенно преобладает над "кофе" - собственно программным приложением. В итоге это все можно скачать, может быть даже повозиться с установкой, а потом.... набрать 2 2 + и порадоваться появившейся цифре 4. А дальше? И вот тут начинается интересная подмена реальности фантазиями. Прибегут последователи и напишут. Ну да, последователям-то вот именно этого консольного приложения для счастья и не хватало. Видимо, сидят в глухом лесу, не видят вообще никаких систем разработки и ждут, пока им дадут консоль с десятками слов, большинство из которых решает внутренние задачи Форта.

Более того, практика показывает, что многие программисты вполне интересуются основными концепциями языков программирования. Стековая машина - не такая уж незаметная вещь. Поэтому удивить кого-то лозунгом "смотрите, смотрите, у меня КОМПИЛЯТОР!" уже несколько наивно. Собственно, а чего еще можно было ожидать после десятилетий пропаганды Форта как простого в разработке языка? Ну вот, люди прочитали и поверили, даже пишут свои реализации. Или кто-то ожидал, что у него под дверью будут биться в истерике "мейнстримные программисты", плачущие о том, что не понимают стек, но очень-очень хотят? А он будет годами их "консультировать" (то есть уговаривать не бояться и объяснять, как работает DUP)?

Таким образом, стоит посмотреть на ситуацию с точки зрения уже состоявшейся эволюции представлений о Форте. Зачем-то ведь его пишут? Да и, если разобраться, концептуально отличающиеся языки программирования вряд ли совсем пропадут. Стек и словарь - это просто разновидности приемов программирования, а Форт как язык показал их практическую применимость. Положим рядом с ними FIFO и деревья и окинем взглядом получившуюся картину. Это приемы программирования.

И вот теперь начинаем "пить кофе культурно" - берем чашку и добавляем сахар по вкусу. Что у нас по сути есть? У нас есть конкретные задачи, решение которых нам хотелось бы упорядочить, улучшить, упростить и т.д. Где-то приемы Форта будут бесполезны. Где-то - вполне пригодятся. Посмотрим, где конкретно.

Можно привести примеры, когда Форт выглядит странновато. Например, что-то крутится, выдает цифры, принимает пачки данных с UART.... возникает вопрос "а Форт-то тут зачем?". Можно долго-долго переписывать имеющийся код на Форте, а результатом будет только заявление "уфф, я долго-долго работал и вот наконец оно на Форте". Ну да, добавлены ошибки, стало медленнее (шитый код же, или хотя бы отсутствие мощной оптимизации от готовых компиляторов). "Зато на Форте" - слабое утешение.

Чего же там не хватает? А в первую очередь - консоли. И интерактивности в широком смысле слова. Например, с платы на базе Arduino после отсылки туда кода 42 идут 1000 данных int16. Здорово! Нравится! Теперь 1024... нет, давайте 512. Что будет делать программист? Правильно, откроет код Ардуино и будет его переписывать и перезаливать. Там же 1000 где-то сидит, будем надеяться, что в define, а не рассыпано по коду в буквальном виде. А числа int16, или int32? Опять редактор, компиляция, заодно обновление программы на ПК... Повторить N раз.

Что даст Форт? Понятно, что консоль Форта позволит послать "1024 get-data" и ничего не переписывать. В итоге в распоряжении Форт-разработчика оказывается мощный аргумент "я буду разрабатывать и вносить изменения быстрее". А это действительно мощный, важный и понятный аргумент. Это не уровень "а тут быстрее на 2 миллисекунды, но это конечно если брать v5.02, и там еще патч, и не все МК поддерживаются..." - это и слушать не будут.

Соответственно, в качестве чего можно рассматривать Форт? В качестве "сахара". Он должен оттенять вкус основного продукта, а не являться базой для раскрутки всего с нуля. Если Форт написан в виде консольного приложения - это просто консольное приложение. То, что у него там какие-то слова и 2 2 + дает 4 - это уже неинтересно. Это все равно черный экран с белыми символами, и за эти пределы он не выйдет. Искать нужно готовые архитектуры, которые благоприятно отнесутся к встраиванию простой интерактивной машины. В этом случае получится именно улучшение характеристик и так неплохой системы, а не попытка подпрыгнуть с места на огромную высоту.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Статья (мини): кофе в сахар или наоборот?
СообщениеДобавлено: Сб июл 09, 2022 00:04 
Не в сети

Зарегистрирован: Пн окт 05, 2009 18:21
Сообщения: 405
Откуда: Минск SotnikSTO@mail.ru
Благодарил (а): 48 раз.
Поблагодарили: 3 раз.
Ссылка по теме.

_________________
Сотник. SotnikSTO@mail.ru


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB