31 августа 2017 года в офисе компании КРОК прошла встреча московского сообщества Java-разработчиков с участием Андрея Ершова, рассказавшего об эволюции базового примитива асинхронной разработки Future и его реализации в языках программирования Java и Scala.
Рубрика «scala» - 11
Андрей Ершов об эволюции Future в Java и Scala на jug.msk.ru
2017-09-04 в 19:58, admin, рубрики: dins, java, JUG, jug.msk.ru, scala, Блог компании JUG.ru GroupПростой Java-код, ломающий систему вывода типов Scala
2017-08-21 в 6:15, admin, рубрики: dependent type, generics, java, jvm, scala, type erasure, ПрограммированиеПростой код на Java: generic интерфейс, класс который его реализует, и метод, принимающий его экземпляр:
//Gen.java:
public interface Gen<A> {
A value();
}
//GenInt.java:
public class GenInt implements Gen<Integer> {
private final int i;
public GenInt(int i) {
this.i = i;
}
@Override
public Integer value() {
return i;
}
}
//GenTest.java:
public class GenTest {
public static <A extends Gen<T>, T> T test(A a) {
return a.value();
}
public static void main(String[] argv) {
GenInt g = new GenInt(42);
Integer i = test(g);
}
}
Он компилируется и даже запускается. Как вы думаете, что будет, если вам захочется вызывать метод test
из Scala?
object TestFail extends App {
val genInt = new GenInt(42)
val i = GenTest.test(genInt)
}
Три закона конфигодинамики
2017-08-08 в 6:00, admin, рубрики: CM, configuration files, configuration management, devops, scala, twelve factor, Блог компании Southbridge, Программирование, Разработка веб-сайтов, метки: configuration files
В статье под катом мы поговорим о том, как бороться с энтропией в конфигурационных файлах.
Обзор возможностей библиотеки Apache Curator для Apache Zookeeper
2017-08-02 в 6:30, admin, рубрики: curator, distributed computing, distributed lock manager, IPC, java, open source, scala, zookeeper, высокая производительность, параллельное программирование, распределённые вычисления, распределенные системыПо долгу работы мне приходится сталкиваться с проектированием и разработкой распределенных приложений. Такие приложения часто используют различные средства межпроцессного взаимодействия для организации взаимодействия компонентов. Особые сложности возникают в процессе реализации алгоритмов, обрабатывающих связанные данные распределенно. Для поддержки таких задач используются специализированные системы распределенной координации. Самым популярным и широко используемым продуктом является Apache Zookeeper.Читать полностью »
Dotty – будущее языка Scala
2017-07-26 в 10:15, admin, рубрики: dotty, java, scala, Блог компании ГК ЛАНИТ, Ланит, ПрограммированиеВ конце мая я оказался среди слушателей конференции Scala Days в Копенгагене. Одним из ключевых спикеров был создатель языка Scala Мартин Одерский. Он рассказал о развитии языка и, в частности, о разработке компилятора, названного Dotty. Планируется, что на основе Dotty будет разработан новый компилятор для версии 3.0.
Мартин не раз выступал на эту тему, и я бы хотел собрать здесь всю актуальную информацию о Dotty – новые ключевые возможности и элементы, удаленные за ненадобностью.
Мартин Одерский. План развития Scala на ближайшие несколько лет
Этот пост будет полезен и знатокам, и совсем новичкам, для которых разговор о Dotty я предваряю рассказом об особенностях Scala, а также о том, что лежит в его математической основе.
Читать полностью »
Scala коллекции: секреты и трюки
2017-07-14 в 16:28, admin, рубрики: scala, Алгоритмы, коллекции, Программирование, функциональное программированиеПредставляю вашему вниманию перевод статьи Павла Фатина Scala Collections Tips and Tricks. Павел работает в JetBrains и занимается разработкой Scala плагина для IntelliJ IDEA. Далее, повествование идет от лица автора.
В этой статье вы найдете упрощения и оптимизации, характерные для повседневного использования API Scala коллекций.
Некоторые советы основаны на тонкостях реализации библиотеки коллекций, однако большинство рецептов — это разумные преобразования, которые на практике часто упускаются из виду.
Этот список вдохновлен моими попытками разработать практичные инспекции для Scala коллекций, для Scala плагина IntelliJ. Сейчас мы внедряем эти инспекции, так что, используя Scala плагин в IDEA, вы автоматически выигрываете от статического анализа кода.
Тем не менее, эти рецепты ценны сами по себе. Они могут помочь вам углубить понимание стандартной библиотеки коллекций Scala и сделать ваш код быстрее и выразительнее.
Обновление:
Если вы испытываете тягу к приключениям,
вы можете узнать, как помочь в развитии IntelliJ плагина для Scala и попробовать свои силы в реализации, подобрав подходящую инспекцию.
RAML-роутинг в Play Framework
2017-07-07 в 15:12, admin, рубрики: github, java, play framework, RAML, RAML 1.0, scala, Блог компании Райффайзенбанк
Play framework — очень гибкий инструмент, но информации о том, как изменить формат route-файла, на просторах интернета мало. Я расскажу о том, как можно заменить стандартный язык описания маршрутов на основе route-файла на описание в формате RAML. А для этого нам придется создать свой SBT-плагин.
Читать полностью »
Анонс Moscow Spark #2
2017-07-06 в 11:34, admin, рубрики: big data, ml, python, scala, spark, Блог компании Rambler&Co, машинное обучение
Как мы и обещали, наше мероприятие становится регулярным – 27 июля состоится Moscow Spark #2! Moscow Spark #1, организованный группой компаний Rambler&Co, собрал больше 200 участников, и мы надеемся, что жаркая погода, которая когда-нибудь установится в московском регионе, не помешает нам собрать столько же (и даже больше) участников в этот раз. Тем более, что мы нашли новых, интересных докладчиков.
Читать полностью »
Зачем мне твои неизменяемые коллекции? Они же медленные
2017-07-05 в 8:26, admin, рубрики: benchmark, gradle, immutable, java, jmh, kotlin, scala, Блог компании ИНФОРИОН, больше тегов богу тегов, графики, иммутабельность, коллекцииБывает так, что когда человек начинает писать на Kotlin, Scala или %language_name%
, он делает манипуляции с коллекциями так, как привык, как “удобно”, как “понятнее” или даже “как быстрее”. При этом, разумеется, используются циклы и изменяемые коллекции вместо функций высшего порядка (таких как filter
, map
, fold
и др.) и неизменяемых коллекций.
Эта статья — попытка убедить ортодоксов, что использование “этой вашей функциональщины” не влияет существенно на производительность. В качестве примеров использованы куски кода на Java, Scala и Kotlin, а для измерения скорости был выбран фреймворк для микробенчмаркинга JMH.
Читать полностью »
Как использовать implicit’ы в Scala и сохранить рассудок
2017-07-04 в 6:31, admin, рубрики: functional programming, implicit, scala, type level programming, функциональное программирование
Scala богата выразительными средствами, за что ее и не любят опытные программисты на классических ООП-языках. Неявные параметры и преобразования — одна из самых спорных фич языка. Слово "неявные", уже как-бы намекает на что-то неочевидное и сбивающее с толку. Тем не менее, если с ними подружиться, implicit'ы открывают широкие возможности: от сокращения объема кода до возможности многие проверки делать в compile-time.
Хочу поделиться своим опытом по работе с ними и рассказать о том, о чем пока умалчивает официальная документация и блоги разработчиков. Если вы уже знакомы со Scala, пробовали использовать неявные параметры, но все еще испытываете некоторые сложности при работе с ними, либо хотя-бы о них слышали, то этот пост может оказаться вам интересен.