
Andrey
29.11.2016
12:56:33
по-моему самое то для понимания того, что происходит
можно форкнуть и разбить на модули, как такой более приближенный к жизненным требованиям вариант
давайте заведем на гитхабе организацию имени этого чата

KrivdaTheTriewe
29.11.2016
13:00:05
SRUG

Google

aeon
29.11.2016
13:00:52
сурово звучит

Aleksey
29.11.2016
13:11:56

Andrey
29.11.2016
13:13:44
будем контрибутить все вместе и выполнять завет Одерски из его видеопривета российскому сообществу

Vadim
29.11.2016
13:14:15
что за видеопривет?)

Andrey
29.11.2016
13:14:52
где-то на соцстраницах датамонстров есть

Aleksey
29.11.2016
13:15:12
https://www.youtube.com/watch?v=NylOlbScTdo

Vadim
29.11.2016
13:15:39
ну несмотря на то, что непонятно зачем - ты всегда ведь можешь сам сделать организацию и контрибутить

Andrey
29.11.2016
13:15:52
?
1. сделать организацию
2. не пускать в нее сомневающихся
...

Aleksei
29.11.2016
13:17:39
профит да

Andrey
29.11.2016
13:17:53
где-то там, ну

KrivdaTheTriewe
29.11.2016
13:17:55
Martin Oder sky is nyasha, проблемз в том, что были бы проекты, а организацию под них создать можно

Andrey
29.11.2016
13:18:16
дело говоришь

Google

Valera
29.11.2016
13:21:36
Ребята, меня спросил коллега и я даже не знаю, что ответить
Вопрос звучал примерно так, есть ли Scala-компиляторы создающие код не для JVM
и есть ли какие-либо ограничения спецификации языка для создания компилятора Scala, который без сборщика мусора и существуют ли подобные реализации

Dmitry
29.11.2016
13:22:02
Js :-)

Daniel
29.11.2016
13:22:09
https://github.com/scala-native/scala-native
https://www.scala-js.org/

KrivdaTheTriewe
29.11.2016
13:24:26
Ребят, вопрос есть , как задачку идиоматически на скале решить. Есть сгенерированные автоматически классы, у каждого есть метод getId , но у их общего предка этого метода нет. Нужно цеплять у каждого из инстансов только эту функцию, Как идиоматически такую задачу на скале решить, не занимаясь копипейстом кода с заменой типа в двух местах?

Oleksandr
29.11.2016
13:25:49
foo : { def getId ... }
structural typing
но эт рефлексия и в будущем может исчезнуть

Daniel
29.11.2016
13:26:37
или, если перфоманс важен, с помощью shapeless
там без рефлексии, но НЕ ПРОСТО

Denis
29.11.2016
13:27:31
написать тайпкласс GetId[A] { def getId(a: A): Id }
если просто
без шейплесс
и идиоматично

Oleksandr
29.11.2016
13:27:58
поправить генерилку -- самое простое

Vadim
29.11.2016
13:28:07
а бойлер плейтить тайпклассы чем?

Denis
29.11.2016
13:28:25
ну вопрос был как сделать идиоматично )

Oleksandr
29.11.2016
13:28:26
так-то инстансы тайпклассов тоже надо генерить

Denis
29.11.2016
13:29:10
если стоит вопрос учить шейплесс или объявить несколько инстансов тайпкласса и нужно вот прям завтра

Aleksey
29.11.2016
13:29:25
если генерилку можно поправить и при этом нельзя делать наследование, то инстансы некоего тайпкласса можно сгенерить.

Google

Aleksey
29.11.2016
13:30:15
ну или ручками, да.
можно макросом инстанс тайпкласса генерить еще.

Daniel
29.11.2016
13:31:03
вопрос в том, много ли вообще объектов, может структурный тип и подойдёт)

Oleksandr
29.11.2016
13:31:50
а как шейплесс такое без рефлексии разрулит?
что-то я сомневаюсь
(и без генерации инстансов тайпклассов, конечно)

Denis
29.11.2016
13:33:19
Лучше через структурный тип

Valera
29.11.2016
13:33:23
scala-native использует сборщик мусора, если судить по https://github.com/scala-native/scala-native/issues/128 а есть ли проекты вообще без сборщика? И если нет, то посдскажите почему

Denis
29.11.2016
13:33:39
да ну забудьте про structural typing в скале
тема крутая если бы была compile-time

Daniel
29.11.2016
13:34:23

Artem
29.11.2016
13:35:10
и усложнять

Mikhail
29.11.2016
13:35:19
а если точнее, то за счет чего в плюсах достигается отсутствие сборщика мусора)
учитывая, что в скале как в языке подобных ограничений нет, то без ведения учета в рантайме - удаление не нужного невозможно.

Oleksandr
29.11.2016
13:37:19

Denis
29.11.2016
13:37:42

Valera
29.11.2016
13:43:58
Я также сначала ответил, но в Rust же нет сборщика как и оператора delete, конечно языки разные

Google

Artem
29.11.2016
13:46:13
но там же есть понятие ownership
если такое ввести в скалу - это уже будет другой язык

Vladimir
29.11.2016
13:52:37
с тайпклассами и борровингом: не менее 10 лет опыта в индустрии, чтобы запилить helloworld

Artem
29.11.2016
13:53:05
:)
вот это будет по настоящему интересно
коалгебры и их аллокаторы

Vadim
29.11.2016
13:55:32
есть тут кто на акке slfj-logger юзает?
не сталкивались с проблемой что при terminate логи могут выпадать в StandardOutLogger?

Daniel
29.11.2016
13:56:49
юзаю, но вроде не было такого

Mikhail
29.11.2016
14:09:54
Я также сначала ответил, но в Rust же нет сборщика как и оператора delete, конечно языки разные
в расте жестко чистится все после выхода из функции. оставляется только в случае мува дальше за пределы функции, но насколько я понял тоже исключительно в рамках другой функции - также почистится после нее. как только ты выйдешь из call tree ты гарантированно будешь чист как целка. исключение составляют статики - но они создаются вне контекста функции и существуют на протяжении всего рантайма, при замене значения предыдущее чистится просто. но это после беглого прочтения доков. там еще наверное какие-то нюансы есть)

Admin
ERROR: S client not available

Oleksandr
29.11.2016
14:10:00
есть poс прототипы
но, подозреваю, на серьезном использовании получится та же херня, что и с шейплесом

Mikhail
29.11.2016
14:14:10
исходя из растовских ограничений появляются забавные сайд-эффекты) https://doc.rust-lang.org/book/ownership.html fn main() {
let v = vec![1, 2, 3];
let v2 = v;
println!("v[0] is: {}", v[0]);
} error[E0382]: use of moved value: v и тоже самое при вызове функций. переменная от тебя утекает) там конечно есть другие способы передачи, но все же)

Foo
29.11.2016
14:16:44
ну тут-то все логично.
= - то move
взял один кусок памяти и перенес в другой
если хочешь из двух переменных доступ к одному куску памяти получить - во вторую нужно было сделать borrow

Mikhail
29.11.2016
14:17:40
я и не говорю, что не логично. просто забавно и многие программисты будут очень долго спотыкаться об это
яваскрипт тоже постоянно все ругают, но если знать его немного лучше чем остальные - то тоже все логично и просто)

Alex
29.11.2016
14:20:23
им надо было =`на `<- поменять
шоб визуально было видно куда чё утекает :)

Mikhail
29.11.2016
14:23:39

Google

Alex
29.11.2016
14:26:40
ну о том и речь, надо менять систему типов, вводить affine kind

KrivdaTheTriewe
29.11.2016
15:20:42
Structural typing не оч конечно :(
Это все в стриминге крутится

Aleksei
29.11.2016
16:37:42
так, а вдруг, ни у кого случайно инвайта нет на audionews.org?

Andrey
29.11.2016
16:49:51
так сказать, на правах админа чатика

Ilya
29.11.2016
17:31:39
/stat@combot

Combot
29.11.2016
17:31:39
combot.org/chat/-1001034178083

Artem
29.11.2016
21:44:12
Посмотрите, о чем твитнул(а) @lambda_conf: https://twitter.com/lambda_conf/status/803695008100466688?s=09

Vadim
29.11.2016
21:53:59
http://lambdaconf.us/#about
забавно что все организаторы - де гоесы)

Alexander
29.11.2016
21:56:46
CHIEF PROPHET OF FUNCTIONAL PROGRAMMING

Vadim
29.11.2016
22:01:36
ну у него каждый второй твит как проповедь)

Alex
29.11.2016
22:19:45
правда у самого джона жена анестезиолог

Foo
30.11.2016
07:50:17
там свежий Li Haoyi http://www.lihaoyi.com/post/OldDesignPatternsinScala.html

Юрий
30.11.2016
07:50:55
Годная статья, еще вчера прочитал
Когда только начинал со скалой как раз такие же мысли у меня и были

Nikolay
30.11.2016
07:51:31
Ещё про scala platform http://scala-lang.org/blog/2016/11/28/spp.html
Кстати lightbend обещали планы на 2.13 рассказать. Ещё не было ведь?

Юрий
30.11.2016
07:53:13
так одердски же уже рассказывал
или нужны подробности?