Monday, January 16, 2012

Мои размышления о Scala for Android

Приветствую.

Собственно я веду и пишу проект, не маленький, 50% уже написано на Java, теперь пишу остальные 50%, эти две части независимые, будут пересекаться разве что через систему intent'ов. Собственно использовал я Scala IDE fro Eclipse (2.8 version) + TreeShacker. Все заводиться с двух кликов. Падает скорость сборки - это да, можно как то подправить, но пока никак не соберусь и не сяду чтобы это сделать. Все идет быстро и красиво, хоть параллельно и учу Scala.

Вопрос мой больше "не вопрос", а подталкивание к обсуждению. Хотел бы поинтерисоваться, может кто уже использует Scala для Android, без разницы, будь то личные проекты ради фана или production.

Много читал и читаю, основной плюс Scala - productivity, что очень хорошо, из минусов это - complexity и performance. Это то что поднимается всегда как плюсы и минусы во всех статьях о Scala/Java. Но вот вопрос, если я (мы) разработчик(и) под Android, нужна ли нам performance? Когда операция заберает время, это обычно и так (на Java) делается в том же ThreadPool/Executors, Thread/AsyncTask, т.е. проигрывая секунду (с потолка взял) когда используем Scala пользователь не заметит. Значит performance - это не минус для Android. Complexity - да, язык сложен, но дело в том, кто заставляет использовать implicity with parameterized types и другие вещи? (Я даже не уверен что правильно выразил что хотел сказать) В конце концов (не знаю кто на такое пойдет) можно писать на Scala как на Java, ну в смысле все держать в состояниях и делать mutable переменные/поля, ну это так отступлении о complexity. Ну и раз мы уже на Android platform + Java JVM, то вся мощь классы уже даны нам для использования из коробки. Т.е. минусы как бы и не минусы в принципе. Конечно на счет complexity - тут вопрос, нужно понимать что пишешь на Scala, хотя с другой стороны, нужно понимать что ты пишешь на любом другом языке так или иначе. И теперь явный факт - functional programmin, все есть объект - функция тоже объект и другие прекрасные вещи типа implicity для расширения функционала существующих классов, infired types, в общем долго перечислять того чего я и не мог вообразить на Java, тут собственно просто подтверждение о плюсе Scala - productivity.

Что думаете Вы? Спасибо.

No comments:

Post a Comment