Мне интересно, есть ли языки, позволяющие добавлять / удалять / обновлять любой класс на лету без перезагрузки всего приложения?(При условии, что я могу принять некоторые неудобства, например, убедиться, что на данный момент нет методов, запущенных + дополнительные усилия по «миграции» членов данных класса).
Веб-приложения, в которых вы заменяете 1 файл, и он используетсяна следующий запрос клиента не то, что мне нужно (как Perl, PHP).Приложение должно работать постоянно, и оно имеет некоторое внутреннее состояние.
Другие требования:
- Нет GIL или аналогичных проблем, препятствующих использованию SMP
- Предпочтительно - наличиеJIT-подобная VM (т. Е. Где производительность близка к нативному коду).Идеальным решением было бы иметь возможность перезагрузить модуль на CLang или любом другом языке, основанном на LLVM.Это было бы просто идеально.
Об уже сделанных ответах:
- .NET / Java не подходит - у них обоих слишком громоздкие виртуальные машины и значительная часть приложениябудет работать в Linux.
- Эрланг - похоже, это возможно, но это ужасно для моего невооруженного глаза, я просто не могу смотреть спокойно, если это, дела и строки.Кроме того, я бы предпочел не передавать чистые исходные коды клиентам, скомпилированный байт-код был бы намного лучше.