Встреча сообщества Java-разработчиков с ведущими инженерами Oracle

tisnotij

В четверг, 13 декабря, в московском офисе компании КРОК пройдет первая встреча московского сообщества Java-разработчиков с ведущими инженерами компании Oracle Сергеем Куксенко и Алексеем Шипилёвым и ведущим инженером компании КРОК Геннадием Кругловым. Встреча пройдет в формате семинара, живые обсуждения и вопросы к докладчикам приветствуются.
Подробности и регистрация тут:
http://jugmsk.timepad.ru/event/51780/
P.S. Мопед не мой, в том смысле, что не располагаю какой-либо информацией помимо изложенной на сайте.

forenius

Крок заманивает молодые неокрепшие умы, зомбирует их и заставляет работать бесплатно целую вечность.... Уаааахахаха!

schipuchka1

1-го доклада не было, был доклад по лямбдам и вступительное слово от организатора о традициях такой продолжительностью, что я искренне надеюсь, что это не будет традицией.
Зато рассказали об особых уличных java-way лямбдах.
Lambda1 l1 =  -> system.out.println("lambda");
Lambda2 l2 = -> system.out.println("lambda");
//Ok

Lambda1 l1 =  -> system.out.println("lambda");
Lambda2 l2 = l1;
//COMPILE ERROR

Или вот так
Lambda1 l1 = i -> "" + i; //int -> String
Lambda2 l2 = Double::parseDouble //String -> double
Lambda3 l3 = l1 -> l2 //int -> double
///COMPILE ERROR

А надо делать как-то так:
list.asStream.map(l1).map(l2).insert(new ArrayList

ну и вообще

ну или по теме лекции
I want use lambda in Java.
Now I have a LambdaMetaFactory to create LambdaFactory to create Lambda
пруфпик:

yroslavasako

I want use lambda in Java.
Now I have a LambdaMetaFactory to create LambdaFactory to create Lambda
ппц. Если хочешь много-много лямбд в Java - юзай clojure

Dasar

Now I have a LambdaMetaFactory to create LambdaFactory to create Lambda
это же деталь реализации.
В целом, какая разница как оно устроено внутри?

schipuchka1

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

apl13

ппц. Если хочешь много-много лямбд в Java - юзай Scheme

luna89

Зачем они вообще нужны? Польза КРАЙНЕ сомнительна, а вред очевиден. Какое-то время назад Шурик тут постил код, обильно уснащенный лямбдами. При всем уважении к Шурику, я бы с таким кодом встретиться не хотел.

schipuchka1

Пример из семинара:
lambda = "True"::compateToIgnoreCase;
Assert.assertEquals(0, lambda.apply("TRue";
Assert.assertEquals(-1, lambda.apply("fALSe";
Скоро у всех индусов мира!

Papazyan

Зачем они вообще нужны? Польза КРАЙНЕ сомнительна, а вред очевиден.
Чего именно польза сомнительна? Лямбд? Так не надо знакомиться с ними через идиотские реализации.

apl13

Зачем они вообще нужны?
... строго спросили у Хаскеля Курри в деканате. — Занялись бы лучше чем-нибудь стоящим, практичным!
Он курил и вспоминал, как тридцать лет назад на этот же самый вопрос отвечал Тьюринг.

Dasar

Какое-то время назад Шурик тут постил код, обильно уснащенный лямбдами.
У него в коде уже не лямбды, у него expression-ы. И код у него страшно выглядит, потому что в C# expression можно записать только через лямбду.
ps
так-то обычно лямбды используются, чтобы удобно записать операции над коллекциями


var enemyTanks = world.Tanks.Where(_tank => !_tank.IsTeammate)
.Where(_tank => _tank.HullDurability > 0 && _tank.CrewHealth > 0)
.ToArray;

var tank = enemyTanks
.OrderByDescending(_tank => Math.Abs(self.GetTurretAngleTo(_tank < self.TurretTurnSpeed * self.RemainingReloadingTime)
.ThenBy(_tank => self.GetDistanceTo(_tank
.FirstOrDefault;

без лямбд тоже самое записывается много грустнее.

luna89

без лямбд тоже самое записывается много грустнее.

У грустного варианта есть свои преимущества:
1)Сразу видно, где создаются временные коллекции, а где все делается на лету. В твоем примере не очень понятно, то ли там на каждый элемент в цепочке энергично вычисляется коллекция, то ли какие-то ленивые обертки генерятся. Если генерятся ленивые обертки, то не очень ясно, что произойдет при попытке сериализовать какой-нибудь объект, в котором вместо реального списка обертка.
2)Непонятно как вставить отладочную печать, особенно с учетом возможной ленивости.
Оставить комментарий
Имя или ник:
Комментарий: