Здравствуйте, Lazytech, Вы писали:
L>Собственно, вопрос содержится в названии темы. Я еще могу понять разработчиков коммерческого софта, но Форт и среди приверженцев открытого исходного кода не слишком-то популярен.
Для системного программиста, которому надо вылизывать производительность — это в принципе не может быть сделано достаточно эффективно (как на C), хотя бы из-за стековой машины, через которую надо всё пропускать.
Для прикладного — отсутствие высокоуровневых концепций. А если они есть, как в объектных диалектах Форта — то это уже совсем другой язык.
И отсутствие контроля ошибок на компиляции, ошибиться можно в огромном количестве моментов и заметить это будет крайне сложно.
В итоге Форту осталась очень специфическая ниша — например, загрузчики, где полноценного окружения ещё нет, компилятора ещё быть не может, но хочется что-то делать на уровне повыше ассемблера, и есть готовые к этому люди. Соответственно имеем FreeBSD bootloader, Sparc Openboot и аналогичные средства.
L>Простота идеи, заложенной в Форт, позволяют написать ядро Форт-системы за день.
Верно. Но дальше с такой системой ничего существенно полезного делать уже не получится.
L>Размер кода Форта для 16-разрядных систем, при грамотном написании программы, иногда в 10-20 раз меньше кода, скомпилированного из программы на Си. Для 32-разрядных систем этот разрыв ещё больше.
Не верю. Может, это было на старых компиляторах. Но сейчас такой разницы не достигнуть. Особенно на задачах, которые хоть чуть-чуть выходят за пределы ниши Форта. А уж что будет твориться с производительностью... при непосредственном шитом коде программа на Форте чуть более чем полностью это машинные команды CALL. И как современные процессоры будут это обрабатывать? Постоянно сбрасывать конвейер разбора?
А какая производительность у машины, у которой по сути два регистра, и оба — указатели стека?
L> В операционных системах общий выигрыш может составлять уже сотни, а то и тысячи крат.
Врут.
L> Причина очень простая — готовая задача на Форте имеет размер несколько байт, все вспомогательные подпрограммы реализованы в виде определений, доступных всем.
int main() { work(); }
это я написал программу, которая имеет размер несколько байт, все вспомогательные подпрограммы реализованы в виде определений, доступных всем.
L> Система на Форте вместится в процессор, в который другие системы влезть в принципе не способны.
Только за счёт фактической эмуляции компилятора своими средствами.
L>В начале 1980-x на основе языка Форт Джон Уорнок и Чак Гешке из Adobe Systems создали язык PostScript, широко используемый для управления устройствами печати и послуживший основой для создания формата PDF.
L>Известные в узких кругах программы для ОС Windows, написанные на языке Форт:
L>blat — консольная программа для отправки сообщений по электронной почте
Я видел её код и даже допиливал его. Чистый C.