CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только

1,370 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,370
On SlideShare
0
From Embeds
0
Number of Embeds
562
Actions
Shares
0
Downloads
8
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только

  1. 1. О Scala и Lift Для тех, кому мало Java , и не только Галако Олег, Джар Софт
  2. 2. Кому и зачем? <ul><li>Удобнее, мощнее, «правильнее» Java </li></ul><ul><li>case class Person ( name : String, age : Int ) // = 20+ строк на Java: </li></ul><ul><li>//factory method, getters, equals, hashCode, toString, serialization и др. </li></ul><ul><li>List (1 ,  2 ,  3 ,  4, 5) . filter ( _   %   2   ==   1) . map ( _   *   2) . mkString ( &quot;,&quot; )   // 2,6,10 </li></ul><ul><li>Грамотная статическая типизация </li></ul><ul><li>Надёжнее динамических языков </li></ul><ul><li>Обуздать многоядерность </li></ul>
  3. 3. Популярные языки на JVM groovy jython scala clojure, jruby fantom Кол-во вакансий как показатель популярности
  4. 4. : основные факты <ul><li>2001, Швейцария, профессор Мартин Одерски </li></ul><ul><li>ScaLa = Scalable Language </li></ul><ul><li>Статическая типизация + OO П + ФП </li></ul><ul><li>Свободно смешивается с Java </li></ul>
  5. 5. <ul><ul><li>: основные факты </li></ul></ul><ul><li>Начат в 2007, первая версия - 2009 </li></ul><ul><li>Использован опыт Rails, Wicket, Django и др. </li></ul><ul><li>Активно использует функциональную сторону Scala </li></ul><ul><li>< button   name = &quot;b&quot; > Push me < / button > </li></ul><ul><li>&quot;@b [onclick]&quot;   #>  ajaxInvoke (()   =>   { println ( &quot;server&quot; ) ;  Alert ( &quot;client&quot; )}) </li></ul><ul><li>Изменения кода - в браузере через секунды </li></ul>
  6. 6. С чего мы начинали? Самостоятельное изучение Энтузиазм, общение, интерес Демонстрация в прототипе для небольшого проекта Семинары в компании C крипты Полноценное самостоятельное веб приложение
  7. 7. Первый проект <ul><li>Прототип за выходные </li></ul><ul><li>Мощная типизация для объединения метаданных и функционала (traits) </li></ul><ul><li>val  activationDate  =   new  PersistentSimpleField ( this , DayType,  &quot;Date of the first registered impression&quot; ) with  Required  with  Indexed </li></ul><ul><li>new  DeleteEntityResource ( new  Category )   with  SingleIdRequired  with  AdminSessionRequired  with  DBLogging </li></ul><ul><li>Встроенная поддержка XML </li></ul><ul><li>Lift для обработки REST и JSON </li></ul>Самодокументирующийся REST + JSON веб сервис
  8. 8. Удобные скрипты на JVM <ul><li>Скрипты на Java ? Вряд ли. </li></ul><ul><li>Привычные Java- библиотеки, переносимость </li></ul><ul><li>Компактный, читаемый код </li></ul><ul><li>Мощные средства для стандартных задач: парсинг, анализ данных, HTTP клиент и т.д. </li></ul>
  9. 9. Текущий проект <ul><li>Лучшая реализация Comet и AJAX </li></ul><ul><li>Удобная интеграция с Facebook Graph API </li></ul><ul><li>Интеграция с Hibernate, Hibernate Search (Lucene) </li></ul><ul><li>Функциональный код легче модифицируется </li></ul><ul><li>Дизайнер может редактировать шаблоны сам </li></ul>Интерактивное Facebook приложение на Lift
  10. 10. Планы <ul><li>3500+ Java классов, с 2000 года </li></ul><ul><li>Включение Scala в сборку заняло 2 часа </li></ul><ul><li>SOAP & Struts => JSON REST & Lift </li></ul><ul><li>Ядро ротатора на Akka </li></ul>Scala в старом большом Java проекте на 1500 запросов/с
  11. 11. Сложности <ul><li>Меньше готовых ответов </li></ul><ul><li>Многолетние Java- привычки </li></ul><ul><li>Много возможностей, но за всем сразу не угнаться </li></ul><ul><li>Средства разработки: Eclipse сильно отстал </li></ul>
  12. 12. Profit Повышение квалификации + Сокращение объёмов, повышение читаемости кода + Новые удобные и интересные решения = Эффективность
  13. 13. Вопросы? Галако Олег, Джар Софт twitter.com/ojowoo

×