С Clojure вы можете получить скорость Java (с подсказками типов, конечно) и вы не можете получить скорость быстрее Java (за исключением некоторых очень редких случаев).Я не знаю, как обстоят дела с другими сообщениями, которые, возможно, имеют ту же скорость, но не быстрее.
Так, что сказано о стандартной скорости вызовов и т. Д.
Clojure имеет структуры данных невсегда настолько быстро, насколько это возможно, но на самом деле это компенсируется другими свойствами, такими как безопасность потоков, неизменяемость и быстрое чтение.
Чтобы сделать структуры данных быстрее, Рич придумал переходные процессы, чтобы сделать их изменяемыми таким образом, чтобы онивсе еще работоспособен (и он работает НАМНОГО быстрее), и он уже работает над следующей большой вещью (читайте о разговоре о богатых в лагере Emerging Languages).
Гораздо проще писать параллельный код с clojure, так чтодействительно импортированы для создания быстрых программ.
Итак, следующая вещь - математика.На JVM есть три уровня скорости.Математика с упакованными типами, примитив Типы с проверкой переполнения или без проверки переполнения.Clojure предоставляет все эти возможности, поэтому нет никаких ограничений.
Итак, следующая вещь - это как быстро вы можете работать с Java, если вам нужно использовать обертки, которые вы не будете выполнять хорошо, а вызовы Java часто используются в большинстве языков JVM,Чтобы реализовать clojure в clojure, clojure необходимо добавить низкоуровневую конструкцию, чтобы вы могли взаимодействовать с Java без каких-либо накладных расходов.
Таким образом, clojure работает так же быстро, как на JVM.
PS
Протоколы похожи на очень быстрые мультиметоды, которые не настолько универсальны, но отправляют их достаточно быстро, чтобы использовать их в ядре clojure (и поэтому больше не зависят от java).Посмотри на них, они крутые.