
Vadim
17.05.2018
10:37:41

Aleksander
17.05.2018
10:38:44

Vadim
17.05.2018
10:39:03
https://twitter.com/lightbend/status/996764559053647873

Nikita
17.05.2018
10:39:35

Google

Александр
17.05.2018
10:54:59

M
17.05.2018
10:55:33
)))))

Vadim
17.05.2018
10:56:16
скала для хадуп/спарк и хорошей бывает

Bulat
17.05.2018
10:56:19

Henadz
17.05.2018
10:56:45
"S for Scala"

Bulat
17.05.2018
10:57:14
call

Grigory
17.05.2018
11:01:30
прост обычно жависты хадуповые орудуют и думают что скала это петон
а потом у них окнечно же проблемы ~ почему python diod.scala не запускается

Daniel
17.05.2018
11:03:59

Vadim
17.05.2018
11:14:43
скалди как бы есть
algebird

Dmitry
17.05.2018
11:16:47
ваат?

Oleg
17.05.2018
11:18:57
А также линия

Google

Grigory
17.05.2018
11:20:00
чистая линия

Vadim
17.05.2018
11:21:57
Про говно скалу в бигдатах

Grigory
17.05.2018
11:23:05
говноскала есть не только в биг датах

Vadim
17.05.2018
11:27:05
но ситуация такова что правильнее говорить "в биг датах есть и неговняная скала"))
а че за линия - я не понял

Oleg
17.05.2018
11:29:41

Dmitry
17.05.2018
11:31:13

Nikita
17.05.2018
11:35:42

Vadim
17.05.2018
11:35:58
все так - это наоброт нормальные примеры

Grigory
17.05.2018
11:36:38
оч амибгуйный пример

Oleg
17.05.2018
11:40:23
А если я кидану тебе кусок кода, сможешь глянуть, можно ли его субститутнуть алгебёрдовыми типами?

KrivdaAllStars
17.05.2018
11:42:05

Vadim
17.05.2018
11:42:30
неа, я бигдатой вертеть ваще не умею

Grigory
17.05.2018
11:42:43
погадаем на кофейной гуще
я думаю не должно быть сильно отлично от скалдинга

Oleg
17.05.2018
11:45:32
https://gist.github.com/Odomontois/cf5fd8a493389fc3af5b035caf50b803

Grigory
17.05.2018
11:47:38
думаю можно я не набрасаю сейчас потому что хз чо просиходит тут

Google

Grigory
17.05.2018
11:47:46
но тебе придется залезть в typelevel/algebra
вопервых там точно есть DistributiveLattice

Oleg
17.05.2018
11:48:16
у меня юзается algebra

Grigory
17.05.2018
11:48:17
а остальное разберешься
над поэкперментировать прост

Oleg
17.05.2018
11:48:27
а зачем мне Lattice?
У меня нет в общем случае решётки, только полурешётка с границей

Grigory
17.05.2018
11:49:06
ммм надо поковырять
должно быть возможно - там один и тотж разраб
я юзлес советчик
ну будет время посмотрю чуть чуть

Oleg
17.05.2018
11:49:44
Давайте в понв

Nikita
17.05.2018
11:58:43

Nick
17.05.2018
12:39:10

Nikita
17.05.2018
12:41:17

Nick
17.05.2018
12:46:16
выпили акку

Сергей
17.05.2018
13:50:33
Хотел узнать, что вы думаете по поводу именования пакетов в camel-case? Ну т.е. понятно, что стандарт - всё маленькими буквами, но никаких реальных проблем из-за camel-case'а не возникает даже под виндой, а читабельность улучшается.

Vladimir
17.05.2018
13:51:02
можно
делаем

Alexey
17.05.2018
13:53:39
А в чем проблема писать через точку?

Vladimir
17.05.2018
13:54:31
точка вроде как разделитель сущности, а если у сущности несколько слов, то все сложнее

Google

Mikhail
17.05.2018
13:55:19

Vladimir
17.05.2018
13:55:24
ну т.е. productPlan & product.plan разное

Alexey
17.05.2018
13:55:44

Vladimir
17.05.2018
13:56:32
не могу ответить на этот вопрос)

Mikhail
17.05.2018
13:58:23

Admin
ERROR: S client not available

Mikhail
17.05.2018
13:59:45

λoλcat
17.05.2018
14:00:07
https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html

Mikhail
17.05.2018
14:05:48

Сергей
17.05.2018
14:12:19
lower_snake_case
вот вроде по стандарту получается, но как-то выбивается из всего остального. А сам что используешь?

λoλcat
17.05.2018
14:17:12

Alexander
17.05.2018
14:41:39
тоже
camelCase в пакетах дичь, но может это последствия Java в прошлом

Сергей
17.05.2018
14:45:30
Это скорее последствия поддерки винды. И когда-то это действительно могло вызывать проблемы. А сейчас вроде всё корректно работает.

folex
17.05.2018
15:50:56
задачка
trait Traitor {
private[this] val two = 2
}
class Test extends Traitor
есть код
Compiled from "wtf.scala"
public class Test implements Traitor {
public int Traitor$$two();
public final void Traitor$_setter_$Traitor$$two_$eq(int);
public Test();
}
Compiled from "wtf.scala"
public interface Traitor {
public abstract void Traitor$_setter_$Traitor$$two_$eq(int);
public abstract int Traitor$$two();
public static void $init$(Traitor);
}
есть байткод
вопрос: что такое Traitor$_setter_$Traitor$$two_$eq(int);?

Google

folex
17.05.2018
15:51:44
это ведь не может быть публичный сеттер на private[this] val, верно? %)

Friedrich
17.05.2018
15:52:12
Возьми да вызови!

folex
17.05.2018
15:52:16
Scala compiler version 2.12.5 -- Copyright 2002-2018, LAMP/EPFL and Lightbend, Inc.

Александр
17.05.2018
15:52:25
А где байт-код метода? Что он делпет

Friedrich
17.05.2018
15:52:31
Ну и байткот почитай, само собой.

folex
17.05.2018
15:54:51
public final void Traitor$_setter_$Traitor$$two_$eq(int);
descriptor: (I)V
flags: ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: iload_1
2: putfield #15 // Field Traitor$$two:I
5: return
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this LTest;
0 6 1 x$1 I
LineNumberTable:
line 5: 0
MethodParameters:
Name Flags
x$1 final
> Field Traitor$$two:I
I?
public static void $init$(Traitor);
descriptor: (LTraitor;)V
flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
0: aload_0
1: iconst_2
2: invokeinterface #18, 2 // InterfaceMethod Traitor$_setter_$Traitor$$two_$eq:(I)V
7: return
LocalVariableTable:
Start Length Slot Name Signature
0 8 0 $this LTraitor;
LineNumberTable:
line 2: 0
line 1: 7
MethodParameters:
Name Flags
$this final synthetic
видать это сеттер для дефолтного значения -_-

Henadz
17.05.2018
16:00:04

folex
17.05.2018
16:02:10
если вместо trait сделать abstract class, то его нету -_- аргахраг

Sergey
17.05.2018
17:57:21
eq в названии что-то должно означать

Oleg
17.05.2018
18:08:38
конечно же блоки инициализации в трейтах складываются в специальные методы
Чтобы вызвать эти методы в правильном порядке при линеаризации
а в абстрактном классе этого не нужно, потому что будет просто работать конструктор родителя
а вот у интерфейсов в жавке конструкторов нет...

Sergey
17.05.2018
18:12:14
понятно