Язык Scala, сложности поддержки Scala в IDE и Play Framework 2.0
Курс Хит- Computer Science
В силу различных причин, Java, как язык программирования, развивалась не очень динамично. Постепенно возникла необходимость в языке для JVM, в котором в первую очередь были бы поддержаны функции высших порядков, а также были бы устранены некоторые неудобства, с которыми Java-программисты сталкиваются ежедневно. Было предпринято несколько попыток реализации подобного языка, самой успешной из которых, пожалуй, стал язык Scala.
Scala, в силу своей академической направленности, имеет недостатки, которые зачастую останавливают компании и отдельных программистов от использования Scala в своих проектах.
В первой части, Павел Фатин рассказывает о своем опыте разработки на Scala и о том, когда стоит использовать этот язык.
Во второй части доклада, Александр Подхалюзин рассматривет различные подводные камни, с которыми может столкнуться Scala-программист. Также рассмотрены некоторые высокоуровневые языковые конструкции, внутреннее устройство которых может быть интересно (например, как они транслируются в байт-код). Кроме того, рассмотрена такая прикладная задача, как бинарная совместимость Scala-программ.
Кроме того, Александр Подхалюзин рассказывает о своём опыте разработки Scala plugin для IntelliJ IDEA и в частности:
- компилятор как спецификация: cложности поддержки языка;
- почему практически невозможно повторить анализатор Scala, а можно лишь написать его адекватное приближение;
- почему в компиляторе не проходят некоторые implicits конверсии, которые, вроде как, должны бы проходить;
- когда должен отрабатывать local type inference (вывод generic параметров по вызову), а когда нет;
- можно ли обойти отсутствие в языке понятия функции второго порядка с переменным числом параметров.
Многое из того, что рассмотрено в отношении языка Scala, с небольшими изменениями может быть перенесено и на другие языки для JVM. Доклад полезен не только Scala-разработчикам, но и всем, кто пишет код на языках для JVM.
В третьей части, Дмитрий Найданов рассказывает о поддержке Play Framework 2.0 в IntelliJ IDEA.