Scala – первые впечатления
Несколько дней ковыряю 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)
не поддерживаются
В целом довольно быстро втянулся, но пока с коллекциями мрак, всё время тыкаюсь. Некоторую боль доставило отсутствие привычных конструкций в циклах. Но несмотря на все проблемы, оптимизм не угас, что очень радует. Так что продолжаю тестить.
0