Я потратил много времени на поиски функционального языка, который мог бы беспрепятственно обращаться к устаревшему коду Java (код Weka). Автозаполнение импортированных методов класса Java было бы превосходным. Я поделюсь своими впечатлениями, поправьте меня, если я ошибаюсь.
Yeti мне очень нравится, потому что он прост и похож на ML , но я не смог установить хорошую IDE для этого. Я также не знаю, можно ли уже использовать этот язык в реальной жизни.
Groovy , JRuby и Jython кажутся очень зрелыми, но на самом деле не работают. Scala является зрелым, но также является объектно-ориентированным и, по крайней мере, на Netbeans (и Eclipse, если я хорошо помню), в нем есть ошибки.
« OCaML-Java » также является объектно-ориентированным и не является ' Готовы к использованию (3 или 4 отдельных проекта). Я полагаю, что в IDE он был бы еще менее готов к использованию.
Jaskell кажется мертвым.
Clojure кажется зрелым и действительно хорошо работает в Intellij IDEA (плагин La Clojure), но я Я не уверен, что хочу писать больше двух скобок в строке при кодировании.
SISC и ABCL Я не пробовал. Я думаю, что нет поддержки IDE.
Язык CAL (или Quark ... Бла ...) ведет на сайт SAP, и после этого мое терпение в поисках функциональных языков JVM закончилось.
Есть похожие вопросы, но не исчерпывающие. Например: Какой функциональный язык программирования предлагает лучшую поддержку в Eclipse?
Отсутствует ли какой-либо функциональный язык JVM, способный напрямую вызывать классы Java? Если бы Yeti имел поддержку IDE, как Clojure (в IDEA), это было бы идеально для меня.
Спасибо
EDIT ---------- -------------------------
Я мог бы использовать Clojure + Scala в Intellij IDEA. Пример взаимодействия:
Код Scala
package a
class ScalaMain {
def test = {
"testing!"
}
}
Код Clojure
(import '(a ScalaMain)) ;'
(def scalainstance (new ScalaMain))
(print "printing: " (. scalainstance test))
Spectacular!