Насколько хорошо Java и Scala работают вместе? - PullRequest
7 голосов
/ 04 марта 2010

Я изучал Scala последние пару месяцев, и теперь я чувствую, что могу начать использовать в реальной работе, помимо решения некоторых простых задач. Мой вопрос здесь, насколько хорошо эти два работают вместе?

У меня есть пара Java-проектов, над которыми я сейчас работаю. Насколько легко будет начать использовать в них scala? Есть ли какие-нибудь ошибки, о которых нужно знать? Есть ли какие-либо учебные пособия или что-то вроде того, что можно сделать? Если я хочу использовать Scala в веб-проектах, как это сделать (кроме лифта)? Все идеи и предложения приветствуются.

Ответы [ 2 ]

14 голосов
/ 04 марта 2010

В целом, использование библиотек Java из кода Scala проще, чем использование Scala из Java. Обычно это происходит потому, что в Scala имеются расширенные функции, которые технически доступны в Java, но реализованы компилятором scala путем создания всевозможных дополнительных классов с искаженными именами.

Если ваша «основная» программа будет написана на java, но вы хотите реализовать некоторые функции или модули в scala, вам, вероятно, следует определить свои модули в терминах интерфейсов Java. Затем сделайте так, чтобы ваш код Scala улучшил эти интерфейсы.

Надеюсь, вы скоро обнаружите, что вам так нравится scala, что вы переключаетесь на scala как основной язык, обращаясь к своему старому java-коду.

1 голос
/ 05 марта 2010

В общем, я не понимаю предпосылку смешанных языков, за исключением крайне специализированных случаев. Scala способен (как язык) выражать все, что может Java, и даже больше. Так зачем же "внедрять Scala в проект Java"? Почему бы просто не написать pure-Scala проект?

Когда я говорю pure Scala , я воспринимаю это как прочитанное, что вы можете сослаться на файл JAR, который был написан на Java. Но в подавляющем большинстве случаев я не вижу необходимости писать Java-код в проекте Scala.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...