Какой язык может быть так же удобен как JavaScript/Ruby/Python но компилируемый и по скорости на уровне C++?

Разрабатываю приложения на Node.js и Python, но производительность недостаточная.
На чём компилируемом можно писать так же быстро и удобно? Rust, Nim, Haskell, OCaml? Go как-то не понравился. Не чужд ФП, не против строгой статической типизации, правда, долбиться в TypeScript не понравилось — очень требовательный к декларациям. Все предложения интересны.
  • Вопрос задан
  • 793 просмотра
Решения вопроса 3
bingo347
@bingo347
Бородатый программер
по скорости на уровне C++
дайте подумать... C++?
А вообще, Вы явно что-то делаете не так, если упираетесь в производительность языка на современном железе. Вот честно, даже на тормознутой 8 битной атмеге, что в ардуинах идет, при нормальном составлении алгоритмов разница между C и JS измеряется в наносекундах, при том что движки JS там как правило не очень навороченные, без кучи оптимизаций.
А вот еще интересный момент: если бездумно скопировать код из ответов одного из местных кураторов JS, обожающего алгоритмы с квадратичной сложностью, в бенчмарк под последнюю ноду, а в противовес ему поставить бенчмарк из алгоритма 1 в 1 переписанного на C, то нода неожиданно окажется быстрее, просто потому, что v8 лучше умеет в оптимизации чем -o3 компилятор из gcc.
Ну и если сравнивать все эти наносекунды вычислений с микросекундами чтения с NVMe SSD или вообще с миллисекундами работы с сетью - первые окажутся временем, которым можно принебречь.

А если по сабжу, берите Rust, универсальный язык с soundness типизацией и с автоматическим управлением памятью в compile-time на базе этой самой типизации, ну а главное с хорошо продуманным дизайном, что делает его по настоящему удобным, особенно в перспективе поддержки продукта более полугода разными людьми.
Ответ написан
@xxxzsx Автор вопроса
Cython, Nim.

Так же очень крутая статья-сравнение языков на примере реального кода: https://m.habr.com/ru/post/456638/
Ответ написан
wiz
@wiz
Ортодоксальный хаскелит
Из перечисленных четырёх наиболее интересен на замену питону Haskell.

Rust интересный, но слишком низкоуровневый. После питона вся эта мутотень с памятью будет грустна.
Nim и OCaml ничего особенно нового не привносят. Да, они компилируются и работают быстрее, но про скорость там уже ответили.
Хаскель в этом отношении позволяет писать лютый говнокод с динамическими типами в неважных местах и сосредоточиться только на важных. Можно слепить несколько прототипов, а потом выбрать один приличный и его зарефачить в нужную сторону. При этом доступ к указателям и прочим байтам остаётся, на случай если захочется ещё быстрее.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@mayton2019
Ent. Software engineer. Oracle. SQL. BigData.
Технически, Rust достигает похожего перформанса по сравнению с С++ но более читабелен. В нем нет еще тяжелого засилья шаблонных процессоров и нет 19 способов инициализации переменной. Тоесть он еще девственно чист по сравнению с С++20.

Но Rust на сегодняшний день еще не production-ready. Тоесть если вы захотите найти под него драйверы к вашему любимому Ораклу или Db2 то вас может поджидать большая печаль. Или драйверы - сырые или их нет вообще.

Java технически приближается. Но я даю 80% от перформанса С++ если брать чистые алгоритмы в вакууме.
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
java же?
байткод у нее во многих случаях приближается к с++ вплотную
Ответ написан
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
@MaksSmag
Какой язык может быть так же удобен как JavaScript/Ruby/Python но компилируемый и по скорости на уровне C++?

Для меня самым удобным был C++. Строгий синтаксис - с JS у меня проблемы бывают, когда название какой либо функции неверно написал (например length вместо lenght), и компиляторам всё ровно, в C++ программа тупо не запустится. Много фирм его используют в качестве ЯП фреймворков (я использую Qt, очень доволен функционалом больше двух лет).
Да, допускаю, что у C++ могут быть ошибки выделения памяти, но внимательный и знающий программист (как минимум который не учится методом тыка) не будет косячить.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы