Как стать автором
Поиск
Написать публикацию
Обновить
16.87

Scala *

Мультипарадигмальный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Обзор фреймворка Lift на Scala

Время на прочтение4 мин
Количество просмотров15K

Введение


Lift считается одним из самых сложных и в тоже время мощных web-фреймворков существующих на данный момент (хоть и мало-известным), во многом потому что активно использует функциональные возможности языка Scala. Что бы его изучить нужно приложить не мало усилий. Но это того стоит, хотя бы потому что он сильно отличается от стандартных MVC фреймворков и знание альтернативных технологий расширит ваш кругозор.

В этой статье я расскажу об основных особенностях этого фреймворка.
Читать дальше →

Реализуем RESTful Web Service на Scala

Время на прочтение7 мин
Количество просмотров16K
На прошлой неделе на Хабре было целых две статьи о реализации RESTful web-сервисов на Java. Что ж, не будем отставать и напишем свой вариант на Scala, с монадами и аппликативными функторами. Матёрые разработчики на Scala вряд ли найдут в этой статье что-то новое, а любители Django вообще скажут что у них эта функциональность есть «из-коробки», но я надеюсь что Java-разработчикам и просто любопытствующим будет интересно почитать.

Подготовка


За основу возьмём задачу из предыдущей статьи, но постараемся решить её так, что бы код решения умещался на экран. Хотя бы на 40-дюймовый и пятым шрифтом. В конце концов, в XXI веке должна быть возможность решать простые задачи без мегабайтов xml-конфигов и десятков абстрактных фабрик.

Для тех, кто не хочет ходить по ссылкам уточню: мы собираемся реализовать простейший RESTful сервис для доступа к базе данных клиентов. Из необходимой функциональности — создание и удаление объектов в базе, а также постраничная выдача списка всех клиентов с возможностью сортировки по разным полям.

В качестве кирпичиков, из которых мы будем строить дом, возьмём:
  • Scala — даже не кирпичик, а скорее фундамент,
  • Unfiltered — отличная библиотека для обработки HTTP-запросов,
  • Squeryl — библиотека для запросов к базе данных,
  • Jackson — библиотека для работы с JSON, изначально написанная для Java, но на ура справляющаяся и со Scala-типами,
  • Scalaz — библиотека, позволяющая писать в коде разные забавные символы типа ⊛, ↦ или ∃, а заодно реализующая такие полезные абстракции, как аппликативные функторы, моноиды, полугруппы и стрелки Клейсли. Последние, правда, мне пока не приходилось использовать, но скорее всего это объясняется тем, что я ещё не достиг нужной степени функционального просветления.

По ходу статьи я постараюсь давать достаточно пояснений, что бы код был понятен людям не знакомым со Scala, но не обещаю что у меня получится.
В бой!

Type classes в Scala

Время на прочтение4 мин
Количество просмотров25K

В последнее время в сообществе Scala-разработчиков стали уделять всё большее внимание шаблону проектирования Type classes. Он помогает бороться с лишними зависимостями и в то же время делать код чище. Ниже на примерах я покажу, как его применять и какие у такого подхода есть преимущества.

Статься расчитана не только на программистов, пишущих на Scala, но и на Java — возможно, они получат для себя ответ, как, хотя бы в теории, выглядит решение для многих прикладных задач, в котором компоненты не связаны между собой и расширяемы уже после написания. Также это может быть интересно разработчикам и проектировщикам на любых других языках.
Читать дальше →

Видео с конференции ScalaDev

Время на прочтение1 мин
Количество просмотров7.7K
19 мая в офисе JetBrains прошла наша вторая встреча Scala-разработчиков в Санкт-Петербурге — ScalaDev.

image

Под катом вас ждут видео и презентации докладов:

«scala.reflect», Евгений Бурмако (EPFL)
«Курс молодого подрывника», Василий Ременюк (Viaden)
«Магия Scala изнутри», Александр Подхалюзин (JetBrains)
«Язык Kotlin», Светлана Исакова (JetBrains)

Читать дальше →

Scala-конференция в Петербурге через 4 дня

Время на прочтение1 мин
Количество просмотров2.3K
Уже в субботу 19 мая пройдет вторая конференция для Scala-разработчиков в Санкт-Петербурге — ScalaDev.



В программе конференции гостей ждет доклады о новых возможностях Scala 2.10, байткоде, создании эффективной и асинхронной системы, используя модель актеров и Akka2.0, а также новом языке Kotlin.

Регистрация и подробная информация о конференции по адресу: scaladev.ru.

Пишем простейший REST web-сервис на Scala

Время на прочтение5 мин
Количество просмотров18K
У меня есть сайт, написанный на Node.js, и иногда там требуется сделать что-то, для чего Node.js не предназначен: например, произвести какие-нибудь математические вычисления.

В этом примере мы будем вычислять «хеш» пароля.
Читать дальше →

Вторая Scala-конференция в Петербурге

Время на прочтение1 мин
Количество просмотров3.9K
19 мая в офисе JetBrains состоится вторая встреча Scala-разработчиков в Санкт-Петербурге. Первая встреча прошла 1 октября, отчет с видео можно посмотреть по ссылке.

image

Подробнее о докладах на странице мероприятия или под катом.

Мероприятие бесплатное, для посещения необходимо зарегистрироваться.

Читать дальше →

(Перевод) Перегрузка операторов в Scala

Время на прочтение3 мин
Количество просмотров4.7K
image

Можно долго спорить, является ли возможность перегружать операторы сильной или слабой стороной конкретного языка. Но факт остается фактом — в Scala такая возможность есть. Так почему бы её не использовать?

Материал статьи рассчитан в основном на начинающих Scala-разработчиков.
Читать дальше →

Измерение производительности Play Framework 2.0

Время на прочтение6 мин
Количество просмотров7.1K

Измерение производительности Play Framework 2.0


Я уже рассказывал о программной платформе Typesafe Stack 2.0. В том посте шла речь об одном из компонентов платформы — фрэймворке Akka 2.0, реализующем модель акторов на JVM. Сегодня я хочу написать о возможностях другой составляющей Typesafe Stack — фрэймворке Play 2.0. Хотя о функциональности данного компонента уже рассказывали здесь и здесь, тема производительности решений под управлением Play 2.0 по-моему осталась не раскрытой.

Тестирование фрэймворка будет проводиться с помощью простейшего приложения разработанного на его основе. В результате выполнения тестов необходимо ответить на следующие вопросы. Какое максимально возможное количество одновременных подключений? Сколько оперативной памяти потребляют эти подключения? Сколько запросов в единицу времени может обработать тестируемое приложение?
Читать дальше →

Пишем первый проект на Play Framework 2.0

Время на прочтение6 мин
Количество просмотров39K
13 марта состоялся релиз второй версии scala/java-фреймворка Play. На хабре уже был обзор новых фич Play 2.0. В этой же статье я хочу восполнить пробел в отсутствии мануалов на русском языке по этому интересному фреймворку на примере создания простого приложения на Java, состоящего из списка категорий и привязанных к ним вакансий.

Статья рассчитана на тех, кто совсем не знаком с Play и хотел бы его «пощупать», не тратя много времени.
Читать дальше →

Обзор новых возможностей в playframework v2

Время на прочтение4 мин
Количество просмотров5.7K
Доброго времени суток всем. Хотел бы представить вашему вниманию небольшое описание новых возможностей Play 2. Речь в данной статье пойдет о play2 scala.
Читать дальше →

Обзор Typesafe Stack 2.0 и введение в модель акторов на примере Akka 2.0

Время на прочтение7 мин
Количество просмотров13K
image

Typesafe Stack — современная программная платформа, которая обеспечивает возможность создания легко масштабируемых программных систем на Java и Scala. Стек функционирует на JVM, включает в себя фрэймворки Akka 2.0 и Playframework 2.0. Ядром платформы, которое обеспечивает практически неограниченную масштабируемость разрабатываемой системы, является библиотека Akka, реализующая многозадачность на основе модели акторов.
Читать дальше →

Рекурсивные функции — создание собственной математики (Scala)

Время на прочтение10 мин
Количество просмотров17K
Добрый день, Хабр!

Столь претензионным заголовком я хочу начать статью про одну из многих моделей исчисления (Computational model) — рекурсивные функции. В первой части этого поста мы разберем (в кратце, ибо подробно все расписано на Википедии) теоретическую составляющую этой модели (примитивная рекурсия), во второй же половине мы попробуем претворить данную модель в жизнь (частично) с помощью языка Scala.

1. Рекурсивные функции — что это?


Читать дальше →

Ближайшие события

Проблемы сложности Scala

Время на прочтение1 мин
Количество просмотров3.2K
Во-первых этот тред [имеется в виду вот этот] кажется мне уж слишком пессимистичным. Scala используется в огромном и всё возрастающем числе коммерческих компаний, во многих из них работает более 100 разработчиков. Все эти люди просто делают своё дело (и в основном любят его); они не находят сложность Scala слишком пугающей.
Читать дальше →

Макросы в Scala, Евгений Бурмако. Скринкаст, слайды и фото со scalaby#6

Время на прочтение2 мин
Количество просмотров3.2K

На 6-ой встрече коммьюнити #scalaby выступал Евгений Бурмако — докторант EPFL, и член команды Мартина Одерски, занимающейся разработкой Scala. Темой презенатции был «Проект Кеплер» — пропозал по добавлению макросов в Scala, над которым Евгений работает в течение последнего месяца.

Фото и скринкаст под катом

Материалы митапа scala.by #5 — Pragmatic Erlang

Время на прочтение2 мин
Количество просмотров1.3K
15 октября в Минске, в главном офисе EPAM Systems состоялась очередная встреча беларуских энтузиастов языка Scala и функционального программирования (коммьюнити scala.by).

Встреча была посвящена продолжающему набирать популярность языку, Erlang, послужившему вдохновителем для библиотеки актеров в Scala, и фреймворку для создания распределенных, высконадежных систем, OTP, идеи из которого также все больше и больше просачиваются в мир Scala (см. популярная библиотека Akka, которая в скором времени должна стать часть стандартной поставки Scala).

В качестве приглашенного докладчика и эксперта в области выступал Юрий Жлоба — известная личность в беларуском программерском коммьюнити, специалист в Flash/Flex, Java и Erlang. В своем почти 5-часовом (!) докладе (воистину, марафонская дистанция), Юрий затронул как концептуальные задачи современной разработки масштабируемого программного обеспечения (и пути их решения с помощью Erlang и OTP), так практические вопросы реализации систем с демонстрацией мощи Erlang/OTP во время live-coding сессии.
На встрече велась видеозапись и во время live-coding’a записывался скринкаст — ниже представлены все материалы. В качестве бонуса, Юрий опубликовал текстовую версию первой части выступления, которую вы можете найти в его блоге.

Читать дальше →

Да, Вирджиния, Scala сложна!

Время на прочтение5 мин
Количество просмотров18K
Для начала, позвольте уточнить, что я являюсь большим любителем и сторонником Scala вот уже 5 лет. Мною были написаны книги и статьи о Scala. Также я работал со множеством компаний, начавших использование Scala и Lift и проводил code review огромного количества Scala — проектов. Раньше я думал, что Scala — это просто. Она была и продолжает быть лекарством от многих проблем Java. С точки зрения “сложные или вообще невыполнимые вещи в Java довольно просты в Scala”, Scala — довольно простой язык. Работа с коллекциями очень проста. Изоляция бизнес-логики делает программы гораздо более поддерживаемыми и невероятно простыми, чем если бы они писались на Java.
Так почему же Scala сложна? Вот лучшее, что я смог придумать:
Читать дальше →

Lift: простой пример AJAX-загрузки данных

Время на прочтение4 мин
Количество просмотров2.9K
Lift — современный фреймворк на языке Scala, предназначенный для создания веб-приложений и предлагающий нестандартные подходы для решения некоторых задач. В данной заметке будет рассмотрен простейший пример (до)загрузки данных с сервера при помощи AJAX-запросов. Пост написан в надежде, что он может быть кому-то полезен и сократить время поиска решения на часик-другой, да и просто в качестве демонстрации возможностей отличного современного, но пока не очень популярного фреймворка. Но я предполагаю, что у читателя уже есть некоторые базовые представления о Lift и о некоторых концепциях, в нем применяемых.

Немного кода и разметки

Lift: самый мощный и безопасный веб фреймворк из всех?

Время на прочтение4 мин
Количество просмотров8.7K
Весьма амбициозное утверждение можно увидеть на официальном сайте проекта. Там же предлагается в этом убедиться на примерах. Лично мне судить сложно, я пользовался только Java веб фреймворками, и то далеко не всеми. Поэтому я попробую рассказать об этом подробнее, а выводы пусть каждый сделает сам.



Самое важное, что нужно отметить — это отсутствие утверждения «лучший из всех». И это понятно, хотя бы потому, что Lift — сложнее большинства фреймворков. Во-первых, потому что он активно использует функциональную сторону Scala, во-вторых, потому что Scala — язык с сильной статической типизацией. Но, для тех, кто готов учиться, Lift — инструмент действительно адски мощный (знаю по опыту, последние несколько месяцев использую его в работе).
Читать дальше →