Здравствуйте, novitk, Вы писали:
N>Язык без батареек никому нужен, а большинство батареек у питона на C/C++. Варианты решения твоей проблемы:
N>а) Пишем валидатор на JS, на питоне подключаем через https://github.com/sqreen/PyMiniRacer или что-то похожее
N>б) https://github.com/pyodide/pyodide, но тяжелая артиллерия
Вы, как и прочие участники треда, не понимаете задачу. А она достаточно частая и не требует "батареек". Допустим, у нас есть большая форма с 30 полями, и они между собой разумеется связаны. Там что-то рассчитывается, пересчитывается и проверяется. Это задача чисто алгоритмическая, и не требует ни рефлексии, ни наличия HashСode у каждого возможного типа, ни локализации строк, ни локалей для decimal'ов, ни горутин с async/await. Это может быть написано на паскале, на том самом, древнем процедурном.
Ну и чего ради надо писать обвес вокруг валидации и перерасчёта два раза? На бэке и на фронте. А ведь писать-то придётся, причём со страданиями, потому что подобные формы, например ипотечные или страховые, пишутся по указаниям специалистов по предметной области.
Есть язык Ada, а к нему ограниченное подмножество SPARK. Сама по себе Ада большая и может многое, вплоть до обработки прерываний и встроенной многозадачности в разных вида, а SPARK всего этого не умеет, зато программы на нём можно верифицировать.
Подобную чисто расчётную (без IO) часть будет легко протестировать и затем использовать во всех нужных местах.