Я думаю, что вы действуете по недоразумению: эти исполняемые файлы не такие большие, потому что они просто смешивают интерпретатор, они огромны, потому что вся среда выполнения находится там.
В Windows большая часть времени выполнения уже установлена, поэтому вам не нужно его отправлять. Вы думаете, ваша программа небольшая, но быстрый просмотр отображений виртуальной памяти скажет вам, что даже небольшая программа типа "hello-world", написанная на C, имеет размер в пару мегабайт.
Вот как много полезного времени выполнения.
Если вы действительно хотите, чтобы размер вашего корабля был небольшим, ваш единственный выбор - использовать уже имеющиеся среды выполнения, а , что означает C / C ++ и (недавно) точка-сеть.
Если вы действительно не можете проглотить время выполнения, Forth настолько мал, насколько это возможно.
Лучшими, наиболее агрессивными динамическими языками с лучшими компиляторами для Windows являются коммерческие Lisps. Они производят много вставок и сокращений при создании исполняемых файлов, так что в итоге вы отправляете только то, что используете. Они по-прежнему в 1,5–5 раз больше, чем программы на C / C ++.
Что касается языков, которые вы знаете: Perl настолько толстый, насколько они получают. ActiveState имеет perlapp , который, я уверен, вы уже знаете, но вы уволены из-за его размера. Пересмотрите его, если можете.
Теперь, чтобы ответить на ваш вопрос (есть) есть какая-то техническая причина, ограничивающая доступность такой лучшей в мире функции? : Да .
Perl не может быть подвергнут статическому анализу ( proof ), что означает, что компилятор Perl не может сказать, что можно отбросить. Это означает, что каждая часть времени выполнения Perl должна быть доступна для вашей программы, потому что у вашей программы нет возможности указать, какие части могут быть отброшены.
Это означает, что означает, что получение меньшего исполняемого файла равносильно получению меньшего времени выполнения, и вам должно быть удобно, если разработчики Perl знают, как уменьшить время выполнения Perl, не отказываясь от каких-либо функций, они ' Я бы, наверное, сделал это.
Если вы хотите писать в строгом подмножестве Python или PHP, эти языки могут быть проанализированы. Shed Skin и HipHop-php довольно хороши, но они все еще довольно велики, и они не поддерживают все функции Pythons и PHP, что означает, что некоторые модули просто не будут Работа. Насколько мне известно, никто не реализовал сокращение для любого из этих языков (основное внимание в этих компиляторах уделяется повышению их невысокой производительности), и может пройти еще десятилетие или даже больше, прежде чем кто-то потрудится, однако это все равно будет ограничения, которые вы должны принять при выполнении подобных действий.