В апреле компании e-Legion и JetBrains провели очередную конференцию для Scala-разработчиков в Санкт-Петербурге — Scaladev. Ранее мы уже выкладывали записи докладов:
Метка «scala» - 3
Введение в Lightweight modular staging и Scala virtualized
2013-06-26 в 9:47, admin, рубрики: scala, Блог компании e-Legion Ltd., Программирование, метки: scalaScala WAT: Коллекции
2013-06-25 в 17:02, admin, рубрики: collections, inspections, scala, WAT, Блог компании Тинькофф Кредитные Системы, метки: collections, inspections, scala, WATВ прошлый раз мы разбирались с обработкой опциональных значений, выяснилось, что неправильно воспользовавшись элегантными средствами библиотеки Scala, можно продолжать стрелять себе по ногам.
В этот раз перейдём к коллекциям. Стандартная библиотека для коллекций в Scala настолько богата, что может предложить готовые методы даже для самых требовательных разработчиков. В каких случая применять какие методы обычно не описывается и всё познаётся на опыте. Обычно, в начале все узнают filter
и map
, на этом дело может ограничиться, ведь с определённой фантазией можно реализовать множество алгоритмов только на этих функциях. Однако, эти способы могут быть неоптимальны или рождать невозможные для предметной области результаты, которые, однако же, придётся обработать.
Ниже мы обсудим, какие функции стандартной библиотеки часто используются неправильно и что можно улучшить.
Читать полностью »
Использование Scala в enterprise-проектах
2013-06-19 в 15:27, admin, рубрики: enterprise, scala, scaladev, Блог компании e-Legion Ltd., Программирование, метки: enterprise, scala, scaladev2 месяца назад e-Legion и JetBrains провели очередную конференцию для Scala-разработчиков в Санкт-Петербурге — Scaladev.
На мероприятии выступили представители из e-Legion, Jetbrains, Huawei Research, Grid Dynamics и GridGain. Выступление Павла Фатина (JetBrains) «Поддержка компиляции в Scala Plugin с использованием Zinc» уже выкладывали в блоге Jetbrains, кто пропустил — вот ссылка.
В этом же посте будет доклад и презентация Рафаэля bugzmanov Багманова из компании Grid Dynamics. В своем докладе он рассказал о своем опыте реализации типичного веб-приложения для enterprise-проекта на Scala.Читать полностью »
Scala rule-based inference engine
2013-05-24 в 21:16, admin, рубрики: java, scala, разработка, метки: scala Всем привет! Хочу показать общественности свой открытый движек вывода правил (forward chaining) с поддержкой нечеткой логики, под рабочим названием Scala inference engine (sie) (код).
Читать полностью »
Видео со ScalaDev 2013. #1
2013-05-07 в 13:55, admin, рубрики: scala, scaladev, Блог компании JetBrains, метки: scala, scaladevПока идут майские праздники, а у кого-то они превратились в длительный отпуск, мы решили порадовать наших хаброчитателей видеозаписями с недавней конференции Scala разработчиков ScalaDev. Конференция третья по счету организуется компанией e-legion, при поддержке JetBrains.
В этот раз количество докладов было весьма внушительным, интерес к языку со стороны джавистов растет, как и число квалифицированных Scala-программистов. В первой видеозаписи Павел Фатин, разработчик Scala плагина для IntelliJ IDEA, рассказывает про особенности нового способа компиляции Scala проектов в IntelliJ IDEA 12.
Язык в языке или встраиваем XPath в Scala
2013-04-11 в 9:20, admin, рубрики: macro, macros, scala, xpath, метки: macro, macros, scala, xpathScala — великолепный язык. В него можно влюбиться. Код может быть лаконичным, но понятным; гибким, но строго типизированным. Продуманные до мелочей инструменты позволяют не бороться с языком, а выражать на нем свои идеи.
Но эти же инструменты позволяют писать крайне сложный код.
Использование интеллектуальной эквилибристики в стиле scalaz или вычислений на системе типов в духе shapeless — гарантия того, что ваш код поймут единицы.
В этой статье я расскажу о том, чего делать, скорее всего, не стоит.
Я расскажу как встроить в scala другой язык.
Читать полностью »
Третья конференция для Scala-разработчиков в Петербурге
2013-04-02 в 8:56, admin, рубрики: intellij idea, mobile development, scala, scaladev, Блог компании e-Legion Ltd., разработка под iOS, метки: intellij idea, scala, scaladev 11 апреля в 19:00 в центре «ПетроКонгресс» состоится третья конференция для Scala-разработчиков — ScalaDev #3.
Организаторами выступают компании e-Legion и JetBrains.
В программе:
- Илья Ключников (Huawei Research), «Введение в lightweight modular staging и scala virtualized»
- Павел Фатин (JetBrains), «Поддержка компиляции в Scala Plugin с использованием Zinc»
- Дмитрий Медвинский (e-Legion), «О вариации типов»
- Алексей Злобин (GridGain), «Легкое распределённое программирование со Scala и GridGain»
- Рафаэль БагмановЧитать полностью »
Переход с Java (C++, ..) на Scala (Clojure, Haskell, Erlang ..) как повышение абстракции программирования
2013-02-05 в 21:32, admin, рубрики: java, scala, абстракция, коллекции, функциональное программирование, метки: java, scala, абстракция, коллекции, функциональное программированиеА что такого можно написать на Scala, чего нельзя на Java?
(из разговора с одним моим знакомым другом, человеком и программистом)
The best reason to learn a new programming language is to learn to think differently.
Chad Fowler
Хочу рассказать не о простоте конструкций Scala по сравнению с Java и не о том, что в 1 строчку Scala я могу уместить 20 строк Java. А наоборот, копнуть поглубже, уронить устои ООП и посмотреть на реакцию благородной публики.
Читать полностью »
Scala WAT: Обработка опциональных значений
2013-01-17 в 15:48, admin, рубрики: inspections, scala, WAT, Блог компании Тинькофф Кредитные Системы, метки: inspections, scala, WATВ сети и на Хабре уже довольно много статей вводного уровня про то, как начать писать на Scala, и раскрывающих особенности функционального подхода.
Какое-то время назад мы полностью перевели на Scala один из основных для веба проектов. За это время я наблюдал эволюцию разработчиков, включая свою собственную, и у меня скопился объёмный список конструкций, которые тянет написать, если вы раньше писали на Java, и для которых правильное решение на Scala может не быть сходу очевидным. Данные рекомендации могут быть не очень понятны тем, кто до сих пор пишет на Java и не видел до этого код на Scala. Я не буду разъяснять работу стандартных функций и функциональных концепций, всё ищется по ключевым словам в сети.
Читать полностью »
Quipu — эзотерический язык программирования на основе узелковой письменности Инков
2013-01-13 в 15:53, admin, рубрики: java, scala, Компиляторы, ненормальное программирование, Программирование, метки: java, scalaОдин мой друг, историк по профессии, подкинул мне замечательную идею об использовании древней мнемонической и счетной систем в современной криптографии. В процессе его рассказов об узелковой письменности Инков, я начал соображать, что все новое — хорошо забытое старое и было бы не плохо как-то применить древний опыт в современном мире. Первое, что пришло в голову — криптография. Это самое очевидное — просто сконвертировать узлы с ниток в байты и шифр готов. С одной стороны все казалось понятным, но потом я вспомнил про криптостойкость и другие параметры шифров и понял, что не обладаю достаточным опытом и знаниями в области криптографии, чтобы в одиночку разработать новый шифр.
Дальше я решил попытаться представить некий эзотерический язык программирования, конструкции которого могут быть записаны с помощью узелковой письменности Кипу. Поначалу казалось, что это невозможно: я придумывал язык и пытался написать на нем программу вычисления факториала. Первые три черновика спецификаций ушли в урну: языки никуда не годились. Они выглядели как полагалось для эзотерических языков, но не помогали мне решать поставленную задачу, т.к. не были полными по Тьюрингу. Энтузиазм потихоньку угасал и эта задача казалась мне не по-плечу. Собравшись с силами, я решил, что если смогу написать программу вычисления факториала — то язык работает.
Четвертая версия языка оказалось удачной: я написал факториал, затем генерацию последовательности Фибоначи и дюжину простых примерчиков аля “сумма чисел от 0 до 99”. Язык получился что надо: необычный, крайне эзотерический, с простой и понятной идеей. Главное — язык может решить любую (ну или почти любую) задачу которую можно выразить в виде вычислимой функции.