Scala – первые впечатления

Written by elwood

Несколько дней ковыряю Scala. Делюсь первыми соображениями по этому поводу.

Отмеченные удобства Scala:

  • Лаконичный синтаксис: свойства, очень краткие определения бинов, вывод типов
  • Кортежи – и опять же в замечательном лаконичном синтаксисе
  • Анонимные функции, замыкания, вложенные функции
  • Immutable коллекции из коробки
  • Хороший плагин для IDEA (я использую IDEA 14 EAP)

Неудобства:

  • Медленная компиляция (хотя у меня классики-то микромаленькие ещё)
  • Хоть и хорошая, но всё-таки неидеальная поддержка в IDEA (подсказки включают в себя private методы/конструкторы, часто нет сообщения анализатора кода об ошибках, которые присутствуют, нельзя подсмотреть выведенный тип val/var. иногда кавардак в watches)
  • Нет break/continue (есть кривая эмуляция через бросание исключения)
  • Нет try-with-resources (есть кривая эмуляция, не включённая в стандартную библиотеку)
  • Mutable HashMap и Immutable HashMap – одинаковые имена классов. Неудобно
  • Нельзя сделать return в анонимной функции
  • Не поддерживается старый добрый цикл for со счётчиком
  • Нет операции инкремента и декремента
  • Конструкции вида while ((readed = inputStream.read(buffer)) != -1) не поддерживаются

В целом довольно быстро втянулся, но пока с коллекциями мрак, всё время тыкаюсь. Некоторую боль доставило отсутствие привычных конструкций в циклах. Но несмотря на все проблемы, оптимизм не угас, что очень радует. Так что продолжаю тестить.