Изначально у меня всё было написано на Go, с общим объёмом около 20 микросервисов, включая роутеры с использованием ZMQ. Я фанат Go, и этот язык действительно очень хорош для облачных платформ и микросервисов. Однако он не подходит для создания продвинутых технологий и масштабных децентрализованных систем. На Go нельзя написать модули ядра, файловые системы или загрузчики ОС. Существует множество костылей для Go, которые лучше не использовать, например, cgo или wasm, поскольку в Go отсутствует контроль над памятью. Я писал CLI на Go и добавил множество сложных функций, в результате чего размер приложения достиг 100 мегабайт. На Zig + QuickJS то же самое будет весить всего 1 мегабайт. Rust я пробовал много раз, но мне не нравится, как он работает: он перекладывает все сложности на разработчика, а размер бинарников просто неадекватный. Для примера: минимальный wasm на Rust - 3 мегабайта, на Zig - 300 байт, а на C - 200 байт.
@@solenopsys-ru пардон я совсем понял что вы имеете в виду "на основе витруальной машины"... по идее Nim это transpiler ... как бакенд можно c,c++,js использовать.
@@solenopsys-ru все упирается в еко-систему того или иного языка... Zig,Nim,Crystal,V это community driven projects. т.е. Fun написан с большой буквы. в долгосрочную перспективу это использовать весьма рискованная зартея. большой плюс при этом эти языки имеют хорошую подержку для биндинга с библиотек, с++ уже сложнее.
Спасибо за обзор 👍
Не понимаю, что вы там такого хорошего в Zig увидели, есть Rust, Golang, C#
Изначально у меня всё было написано на Go, с общим объёмом около 20 микросервисов, включая роутеры с использованием ZMQ. Я фанат Go, и этот язык действительно очень хорош для облачных платформ и микросервисов. Однако он не подходит для создания продвинутых технологий и масштабных децентрализованных систем.
На Go нельзя написать модули ядра, файловые системы или загрузчики ОС. Существует множество костылей для Go, которые лучше не использовать, например, cgo или wasm, поскольку в Go отсутствует контроль над памятью. Я писал CLI на Go и добавил множество сложных функций, в результате чего размер приложения достиг 100 мегабайт. На Zig + QuickJS то же самое будет весить всего 1 мегабайт.
Rust я пробовал много раз, но мне не нравится, как он работает: он перекладывает все сложности на разработчика, а размер бинарников просто неадекватный. Для примера: минимальный wasm на Rust - 3 мегабайта, на Zig - 300 байт, а на C - 200 байт.
одно другое не исключает... есть еше Nim ... :)
@@faix2000 А я смотрел и его в частности есть еще v. Nim на основе виртуальной машины как и go, так что он не подходит.
@@solenopsys-ru пардон я совсем понял что вы имеете в виду "на основе витруальной машины"... по идее Nim это transpiler ... как бакенд можно c,c++,js использовать.
@@solenopsys-ru все упирается в еко-систему того или иного языка... Zig,Nim,Crystal,V это community driven projects. т.е. Fun написан с большой буквы. в долгосрочную перспективу это использовать весьма рискованная зартея. большой плюс при этом эти языки имеют хорошую подержку для биндинга с библиотек, с++ уже сложнее.
Пакет менеджер? make, CMake не говоря о Bazel
У зига свои менеджеры пакетов и все неофициальные. Там идея как у go.mod