Pull to refresh
  • by relevance
  • by date
  • by rating

ScalaConf — первая профессиональная конференция по Scala в России

Конференции Олега Бунина (Онтико) corporate blog Scala *Functional Programming *Conferences
Русскоязычное Scala-сообщество давно переросло чатик для сочувствующих. Писать на Scala — больше не хипстерство. Посему 26 ноября собираем всю Scala-тусовку на подходящей площадке!

Различные стили, подходы, десятки способов решений для одной и той же задачи — это не только признаки постоянно развивающейся экосистемы, но и огромное количество нераскрытых тем и вопросов. Нюансы использования старых и проверенных подходов, практика функционального программирования, теория радикальной функциональной космонавтики — нам есть что обсудить и чем поделиться.



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

Основные темы первой ScalaConf.

  • Опыт использования определенных подходов, библиотек, фреймворков.
  • Детали и подводные камни использования в бэкенде, фронтенде и BigData.
  • Тулинг: особенности языка, компиляторов, билд-тулы, IDE.
Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Views 2K
Comments 1

Scala 2.13 станет последней версией… Scala2, после нее будет Scala3

Scala *Functional Programming *
В декабре Scala-комьюнити опубликовало пресс-релиз о том, что Scala 2.14 никогда не выйдет. Мартин Одерски и Ко приняли решение, что необходимо сконцентрироваться на работе над Dotty/Scala3.

Сообщество Scala программистов (в моем лице в том числе) безмерно этому радо, т.к., честно говоря, давно пора было. Scala застыло в прорывном развитии на несколько лет, что на фоне стремительного роста популярности better-java-kotlin приводило к оттоку разработчиков и даже целых компаний.

Scala3 должна стать тем самым большим скачком вперед, который вернет интерес нынешним и будущим энтузиастам ФП на JVM.

Мы получим больше всего того, что мы так любим: еще больше типобезопасности и метапрограммирования на стероидахбазе полностью нового компилятора с инкрементальным режимом. Еще более краткий синтаксис.

Статус прогресса в списке вкусностей застыл в неизменном состоянии на долгое время, что должно измениться в ближайшее время, если команда Scala3 выполнит свое обещание, данное в пресс-релизе. Пока же они нам советуют рассчитывать на…
Читать дальше →
Total votes 17: ↑17 and ↓0 +17
Views 6.4K
Comments 22

Dice и Hired опубликовали ежегодную статистику самых высоких зарплат программистов в США

IT career Finance in IT

Сайты Hired и Vettery опубликовали совместный ежегодный отчет о зарплатах программистов в США. Платформы пришли к выводу, что в 2020 году технологическая отрасль оказалась очень устойчивой. Несмотря на экономический спад, зарплаты программистов в стране выросли. Отчет компаний составлен на основе данных от 10 тысяч компаний и 245 тысяч соискателей. Похожую статистику опубликовал портал Dice, основав свои выводы на опросе около 9 тыс. технических сотрудников.Миннеаполис.

Читать далее
Total votes 14: ↑13 and ↓1 +12
Views 6.4K
Comments 7

SAP on Twitter — социальный эксперимент уровня предприятия

Social networks and communities IT-companies


Проект ESME представляет собой корпоративный аналог Twitter на платформе SAP, мировом лидере среди ERP-систем. Он был создан, чтобы вывести бизнес-коммуникации на новый уровень. В основе его лежит Scala/Lift веб-фреймворк с клиентом на Adobe Flex/Air. Проект создаётся при активном участии SAP, Adobe & Siemens(где проходит его тестирование). Одним из консультантов проекта является Девид Поллак, который так же работает с парнями из Twitter по вопросам связанными со Scala.
Total votes 12: ↑9 and ↓3 +6
Views 646
Comments 6

Java.next: Общие принципы языков нового поколения

Website development *
Translation

Java.next: Общие принципы языков нового поколения


Это первая часть серии статей насчёт Java.next. В первой части я собираюсь рассмотреть общие принципы, которые разделяют языки Java.next.

Я выбрал четыре языка, которые вместе и назвал «Java.next»: Clojure, Groovy, JRuby, and Scala. На первый взгляд, эти языки совершенно разные. Clojure — это Lisp. Groovy — это «почти Java». JRuby обладает красотой Ruby, и использует мощь Rails. Scala, в отличие от других языков, настаивает на том, что нам нужна статическая типизация.
Читать дальше →
Total votes 60: ↑53.5 and ↓6.5 +47
Views 9K
Comments 133

Happy birthday Lift! Hello Lift 1.0!

Lumber room
Вчера исполнилось ровно два года вэб фреймворку Lift.

К этому событию автор, Дэвид Поллак, приурочил обновление сайта проекта и, самое главное, выход релиза Lift 1.0.

Lift — это высокопроизводительный вэб фреймворк нового поколения, написанный на языке Scala и вобравший в себя лучшее из существующих популярных фреймворков, таких как:
  • Rails: высокая скорость разработки
  • Django: стандартные модели (i.e. User)
  • Wicket: designer-friendly шаблоны
Кроме того, так как Lift-приложения написаны на Scala, они получают возможнось использовать огромное количество существующих Java-библиотек.

Demo-application

Сайт проекта: http://liftweb.net/
Total votes 7: ↑6 and ↓1 +5
Views 306
Comments 1

Обслуживание тысяч запросов в секунду на примере XBT Tracker

Server optimization *
Недавно проводили тест, результаты которого показали, что одно приложение обрабатывает 2000 запросов в секунду на скромном сервере, где это было не единственной нагрузкой. При этом результат каждого запроса записывается в 3-5 таблиц в MySQL. Честно говоря, меня такой результат удивил, поэтому решил поделиться с хабрасообществом описанием архитектуры этого приложения. Подобный подход применим от баннерных показов до чатов и микроблогов, надеюсь кому-нибудь покажется интересным.

Во-первых, это приложение однопоточное. Всё делается одним процессом, работа с сокетами — неблокирующими epoll/select, никаких ожидающих ввода/вывода потоков (threads). С развитием HTTP, сначала появлением Keep-Alive, затем AJAX и набирающим популярность COMET, количество постоянных соединений с веб-сервером растёт, на нагруженных проектах измеряется тысячами и даже десятками тысяч, и если для каждого создавать свой поток (thread) со своим стеком и постоянно переключаться между ними — ресурсов сервера очень быстро не хватит.

Второй ключевой момент — что один SELECT… WHERE pk in (k1, k2, ..., kN) выполняется быстрее, чем несколько SELECT… WHERE pk=… Выполняя работу с базой данных большими пачками можно уменьшить не только число запросов в секунду, но и общую нагрузку.
Читать дальше →
Total votes 69: ↑67 and ↓2 +65
Views 7K
Comments 41

Dependency injection для Scala: Cake Pattern

Website development *
Я совсем недавно начал изучать Scala. Для тех, кто еще не в курсе, что это за язык, небольшая выдержка с официального сайта:

Scala — лаконичный, элегантный и статически типизированный язык программирования, который сочитает в себе возможности обьектно-ориентированного и функционального языка. Scala полностью совместима с Java.

Сегодня я хотел бы показать вам, как, используя богатые выразительные способности этого языка, решить проблему, актуальную для любого более-менее крупного проекта, а именно работу с зависимостями компонентов или dependency injection. Последние несколько лет я использовал spring ioc для решения этой проблемы, однако у этого фрэймворка есть несколько недостатков, самый очевидный из которых это сборка приложения из компонент в runtime и наличие xml-дескрипторов (да, конечно можно использовать и autowiring и аннотации, но и у этих возможностей есть свои серьезные проблемы).
Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Views 13K
Comments 2

Scala: Кэширование результатов исполнения методов

Scala *
Иногда возникает необходимость кэширования результатов исполнения методов. Одно из возможных решений для java описано здесь. Всё, в принципе, тривиально: EHCache, Spring AOP для перехвата вызовов, немножко кода.

Рассмотрим, как мне кажется, более элегантное решение на scala.
Читать дальше →
Total votes 2: ↑2 and ↓0 +2
Views 2.1K
Comments 2

Мои начинания в Scala или учим Scala после Java

Lumber room
Много слышал об этом языке, да вот руки никак не доходили.Вот начал его изучать, и решил поделится с вами.
Scala — мультипарадигмальный язык программирования, спроектированный кратким и типобезопасным для простого и быстрого программирования. В нем органично сочетаются возможности функционального и объектно ориентированного программирования.Подробнее читайте тут http://ru.wikipedia.org/wiki/Scala
Хочу подчеркнуть что Scala язык на виртуальной машине JAVA, что дает ему возможность использовать джава библиотеки, также есть возможность использовать эти два языка в одном проекте и еще много чего…

Scala впитала значительное число концепций и синтаксических соглашений Java и C#. Способ выражения свойств во многом заимствован из Sather. Из Smalltalk взята концепция унифицированной объектной модели.

Думаю хватит слов.Вы и сами поняли что за язык Scala.Перейдем собственно к коду.Так выглядет простейший ХелоуВорлд:
object HelloWorld {
def main(args: Array[String])={
System.out.println("Hello World")
}
}


Очень напоминает Java код, объясню разницу ключевое слово object изначально указывает, что это класс является сингелтоном.Очень удобно не правда ли? Объявление методов тут как в Python делается с помощью ключевого слова def.В скобках указаны параметры передаваемые в метод args: Array[String]
Объявление переменных выглядит так имя: Тип.В джаве метод main принимает массив строк, в Scala массивы являются коллекциями типа Array, а внутри символов [] указывается Тип хранящийся в коллекции, это как List в джаве.Scala язык не только ОО но и Функциональный, то есть функции(методы) в нем являются переменными которым можно присвоить значение, что мы и делаем def main(args: Array[String])={.Scala может использовать стандартную джава библиотеку классов, которую дополняет своя Scala библиотека, в примере мы используем Java класс System для вывода, как видите Scala и Джава спокойно используют друг друга.

Ссылки на язык www.scala-lang.org
Читать дальше →
Total votes 11: ↑8 and ↓3 +5
Views 1K
Comments 3

Scala. Введение

Programming *
Привет хабралюди.

Не так давно я заинтересовался одним из многочисленных ныне языков под JVM — Scala. Причин тому много, основная — всё нарастающее со временем чувство неудобства при работе с cpp-подобными языками. Взгляд мой попеременно падал на Ruby, Groovy, Python, но все они оставляли впечатление инструментов, не совсем подходящих для моего обычного круга рабочих задач (Python-таки хорош, но у нетипизированных языков есть свои ограничения). Scala же, напротив, показалась вполне годным языком. Так как поиск по хабру никаких статей о ней не выловил (было несколько, но мягко говоря не вводных), я решил написать маленький обзор и поделиться им с массами.
По возможности коротко о кажется главном
Total votes 65: ↑56 and ↓9 +47
Views 75K
Comments 106

О Scala для тех, кому мало Java, и не только

Scala *
Прогресс не стоит на месте, люди ищут новые решения, и на JVM появляется всё больше интересных языков. Но «ядро» JVM сообщества — народ суровый, привыкший к серьёзным стандартам, и с высокими требованиями. Поэтому большинство новых языков так и висят «на периферии».

От других языков на JVM Scala отличается действительно основательным подходом — над языком работает лаборатория мощнейшего европейского института EPFL во главе с профессором Мартином Одерски, который также известен как дизайнер системы generic-ов из Java 1.5. Конечно, это не сравнить по объёму поддержки с серьёзными коммерческими конторами в роде Sun или Microsoft, поэтому язык развивался медленно и «пошёл в дело» совсем недавно:
scala Job Trends graph

Что в нём интересного?
Читать дальше →
Total votes 64: ↑62 and ↓2 +60
Views 16K
Comments 29

Разработчики Scala выиграли грант Евросоюза

Scala *
Скоро создатель Scala Мартин Одерский (Martin Odersky) сможет удвоить численность своей группы разработчиков, сказано в официальном блоге. Команда Scala, которая базируется в EPFL (Федеральная политехническая школа Лозанны), в ближайшие пять лет получит 2,3 млн евро финансирования от Европейского исследовательского совета. Им удалось выиграть пятилетний грант в рамках конкурса «Popular Parallel Programming». Таким образом, Scala обзавелась надёжным источником финансирования на ближайшие годы.
Читать дальше →
Total votes 53: ↑44 and ↓9 +35
Views 1.4K
Comments 41

Простейшее web-приложение на LiftWeb

Website development *
Прочитал недавно один топик, немного поискал в интернете утилиту, которая бы выводила расшифровку флагов процессора, не нашел, а потому взял и написал свою. Используя LiftWeb.

Процессом написания я и хочу поделиться. Сразу предупреждаю, внутри много текста, но можно перейти непосредственно к практике, пропустив теоретическую часть.
Читать дальше →
Total votes 21: ↑18 and ↓3 +15
Views 2.6K
Comments 16

Немного мыслей о будущем платформы Java

Java *
Захотелось попробовать развить здесь одну любопытную дискуссию, которая была начала тема в комментах к будущему подкасту Радио-Т (кстати сами подкасты бывают иногда интересны), но тут же заглохла из-за отсутствия кворума.

Дискуссия о, собственно, будущем Java как языка, и как платформы.
Если вкратце — что могут сделать те, кто направляет развитие Java, чтобы удержать ее на плаву в течении долгого времени. По ссылке выше обсуждение пошло было в сторону того, почему в лабораториях Microsoft Research более или менее активно разрабатываются альтернативные языки для платформы .NET (такие, например, как F#), а вот Sun/Oracle с такой поддержкой альтернативным языкам отстают.
Читать дальше →
Total votes 55: ↑37 and ↓18 +19
Views 10K
Comments 123

Scala + Processing – интересный способ выучить новый язык

Scala *Processing *
Недавно мне довелось на собственном опыте убедиться: чтобы научиться применять какие-то новые технологии, недостаточно прочитать пару книг по теме, потому что без практики теория мгновенно улетучивается из головы.

Но что можно сделать такого интересного на Scala? На самом деле, выбор не слишком большой. Я как-то придумал небольшую тулзу, неспешно написал ее, и «забил». А через несколько месяцев, к своему стыду, гуглил синтаксис «for loop»…

Я решил, что дальше так дело не пойдет, и нужно найти какие-то небольшие проектики на основные возможности языка. Тут мне и пригодился Processing. Скучные учебные проекты он любому новичку (вроде меня) поможет превратить в визуальные инсталляции. А дальше можно выбрать, что покопать углубленно — например, генерацию фракталов, рендеринг частиц или визуализацию данных.

Я переписал на Scala и выложил на GitHub парочку примеров. На скрине как раз один из них — MSA Fluids. Заинтересовавшихся прошу под кат.

Читать дальше →
Total votes 56: ↑54 and ↓2 +52
Views 9.9K
Comments 16

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

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



Самое важное, что нужно отметить — это отсутствие утверждения «лучший из всех». И это понятно, хотя бы потому, что Lift — сложнее большинства фреймворков. Во-первых, потому что он активно использует функциональную сторону Scala, во-вторых, потому что Scala — язык с сильной статической типизацией. Но, для тех, кто готов учиться, Lift — инструмент действительно адски мощный (знаю по опыту, последние несколько месяцев использую его в работе).
Читать дальше →
Total votes 67: ↑61 and ↓6 +55
Views 8.2K
Comments 67

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

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

Немного кода и разметки
Total votes 33: ↑32 and ↓1 +31
Views 2.6K
Comments 13

10 «однострочников», которые произведут впечатление на ваших друзей

Programming *F# *
За последнюю неделю появилось несколько топиков с названием «10 однострочников на <MY_LANGUAGE>, которые произведут впечатление на ваших друзей», которые содержат однострочное решение нескольких простых задач, демонстрирующее достоинства и «крутость» любимого языка программирования автора. Я решил перевести их и для сравнения собрать в одном топике. Вся волна началась (вроде как) со Scala.
Итак, поехали!
Читать дальше →
Total votes 181: ↑154 and ↓27 +127
Views 39K
Comments 147