встроенный Scala против встроенного Groovy - PullRequest
4 голосов
/ 08 февраля 2011

Я ищу встроенный язык для моего приложения. Приложение написано в чистом скале. Я хочу добавить некоторые функции во время выполнения. и у меня есть вопрос, встраивается ли scala быстрее, чем встроенный в Groovy?

Ответы [ 2 ]

4 голосов
/ 08 февраля 2011

я бы не стал добавлять другой язык, scala отлично подходит для написания сценариев. По скорости я думаю, что scala обычно быстрее, чем groovy (на shootout.alioth.debian.org есть старые тесты, но как-то Groovy выпал из текущих тестов?). однако скорость отклика неоптимальна, то есть, как вы знаете, запуск «интерпретатора», используемого для scala REPL, является компилятором, который компилируется на лету. это идет с небольшой задержкой для фактической компиляции, но тогда скорость выполнения такая же, как и у скомпилированной scala. на современных компьютерах вы больше не заметите эту задержку.

есть несколько маленьких инструментов, построенных поверх scala REPL. Еще одно преимущество использования одного языка может заключаться в том, что, вероятно, становится проще привязывать символы к интерпретатору, поскольку все специфичные для scala вещи (такие как синтетические методы, сопутствующие объекты и т. д.) прозрачно видны.

редактировать: хотя исходное сообщение было написано в 2009 году, в комментариях есть тесты из недавнего scala 2.8 и groovy 1.7, показывающие разницу в величине: http://stronglytypedblog.blogspot.com/2009/07/java-vs-scala-vs-groovy-performance.html

1 голос
/ 08 февраля 2011

Насколько я знаю, были предприняты некоторые усилия для реализации Java API (поддержка языка сценариев, JSR 223), который необходим для использования языков "в качестве языков сценариев", но я не уверен, насколько хорошо это сработало.

Scala в целом быстрее, чем Groovy, потому что он более близок к идиомам, которые JVM может выполнить быстро.

Но Groovy действительно один из языков сценариев дляJVM.Также должна быть некоторая поддержка для создания файлов Java / Scala / Groovy вместе, чтобы не создавать проблем.

...