@jvmchat

Страница 779 из 2890
Oleksandr
07.12.2016
19:21:07
она тебе не нужна

а либописателям нужна

Интероп и маленький размер стдлиб
макросы вообще никак не связаны размером стдлибы

Pavel ?
07.12.2016
19:22:01
Видимо ты один из них

Google
Oleksandr
07.12.2016
19:22:06
кстати, как в котлине сделать такое: case class Board(length: Int, height: Int) { case class Coordinate(x: Int, y: Int) { require(0 <= x && x < length && 0 <= y && y < height) } val occupied = scala.collection.mutable.Set[Coordinate]() } val b1 = Board(20, 20) val b2 = Board(30, 30) val c1 = b1.Coordinate(15, 15) val c2 = b2.Coordinate(25, 25) b1.occupied += c1 b2.occupied += c2 // Next line doesn't compile b1.occupied += c2

case class читать как data class (ну или наоборот, хехе)

Руслан
07.12.2016
19:22:56
ты объясни словами что тут происходит

а про либы, это смешно) mylib_2.11)

Pavel ?
07.12.2016
19:23:17
Вово)))

Oleksandr
07.12.2016
19:25:11
ты объясни словами что тут происходит
у тебя может быть зависимость не на абстрактный класс Foo, а на то, какое у него значение

то есть шаг в сторону dependent types, если проще

а про либы, это смешно) mylib_2.11)
с дотти такого уже не будет

Руслан
07.12.2016
19:26:33
Эмм. Т.е. в компайле тайме оно проверяет значения у объектов?

Типо поле x должно быть меньше 15

Oleksandr
07.12.2016
19:27:21
что-то вроде

ну кусок кода выше делает совсем не это, конечно

Руслан
07.12.2016
19:27:40
Круто, но я могу пожертвовать этой фичей ради скорости компиляции

Google
Руслан
07.12.2016
19:28:27
И все равно это очень маленький процент ошибок, т.к. в основном все данные приходят извне в рантайме

а как насчет

Oleksandr
07.12.2016
19:30:02
И все равно это очень маленький процент ошибок, т.к. в основном все данные приходят извне в рантайме
вопрос не в этом а в том, что такого рода фичи значительно повышают устойчивость крупных проектов к текучке кадров и вообще снижают значимость тупости человека

я согласен, что все-все пытаться считать в компайлтайме не надо, это фанатизм

но есть определенный предел (для каждого проекта свой), где это дает максимальный профит

скала дает возможность двигать эту границу

Руслан
07.12.2016
19:31:10
Вот куда более полезная фича. val map = getMap() map["test"].foo() // compile error, map[] returns nullable type

Которая будет все время работать

И без райнтайм пеналти

Oleksandr
07.12.2016
19:32:05
оо, любимый срач, опшны против наллабл типов

оно, или я не так понял?

Руслан
07.12.2016
19:32:27
Ну это реально плюс котлина

Конечно

Oleksandr
07.12.2016
19:33:01
плюс в том, что он как-то анализирует внешние сорцы и добавляет этот ?

так-то опшны строго круче

Руслан
07.12.2016
19:33:56
Как лишняя обертка может быть лучше :)

Oleksandr
07.12.2016
19:34:31
не, сугубо с точки зрения теории

аллокация вполне себе удаляется компилятором

Руслан
07.12.2016
19:35:04
Компилятором - вообще никак

Oleksandr
07.12.2016
19:35:09
скалы

Google
Руслан
07.12.2016
19:35:14
jit - в некоторых случаях сможет

Oleksandr
07.12.2016
19:35:32
мм, что ему мешает взять и заменить кусок аст на ту же портянку с наллами, что и в котлине?

Руслан
07.12.2016
19:36:58
Ему нужно просто выкосить оптионалы тогда

А не на что-то заменить

Если тип не наллабл

Только вот откуда у скалы такое знание?

Pavel ?
07.12.2016
19:37:44
У скалы обвес вокруг ждк

Нет прямого интеропа

Oleksandr
07.12.2016
19:38:17
что конкретно ты имеешь в виду?

интероп шикарный

Руслан
07.12.2016
19:40:01
напиши класс с имплиситом и дерни из джавы

Руслан
07.12.2016
19:40:29
Или уже второй раз за день: дерни gatling из джавы

Pavel ?
07.12.2016
19:40:59
что конкретно ты имеешь в виду?
Инт у тебя во что компилится?

Oleksandr
07.12.2016
19:41:27
напиши класс с имплиситом и дерни из джавы
class Foo(s1: String)(implicit s2: String) вызвется как new Foo(s1, s2)

Руслан
07.12.2016
19:42:11
А почему тогда у гатлинга

Gatling.fromArgs(gatlingCLArgs, scala.Option.apply(simulation), Gatling.fromArgs$default$3());

Вот так убого всё

Oleksandr
07.12.2016
19:42:47
то есть в гатлинге есть херовый код, а виновата скала?

Руслан
07.12.2016
19:43:08
Ну да

Google
Oleksandr
07.12.2016
19:43:09
в всяких акках, плеях и спарках почему-то живут нормально

Руслан
07.12.2016
19:43:24
Найди либу с котлином которая предоставляет такой говно API

Там это невозможно

Pavel ?
07.12.2016
19:43:55
Так во что инт то компилится

Oleksandr
07.12.2016
19:44:01
Инт у тебя во что компилится?
надо явно создавать scala.Int, если ты об этом

Там это невозможно
потому что их нет?)

Руслан
07.12.2016
19:44:22
https://kotlin.link/

Pavel ?
07.12.2016
19:44:30
Во что компилится явно или неявно созданный инт

Oleksandr
07.12.2016
19:44:36
я могу сейчас написать говнолибу на котлине как он мне помешает

Admin
ERROR: S client not available

Pavel ?
07.12.2016
19:44:50
Байт код скинь

Херню ты ответил какую то

Руслан
07.12.2016
19:45:58
я могу сейчас написать говнолибу на котлине как он мне помешает
Ну напиши так, чтобы котлин такой байткод неудобный сгенерил

Я посмотрю

Nikolay
07.12.2016
19:46:18
я смотрю у вас серьезный замес. лямбды -> Option/nullable -> Int-ы -> байткод, какой следующий шаг?

Pavel ?
07.12.2016
19:46:31
Ты все надоедать начинаешь назойливой попыткой фалометрии

Так как будто есть комплексы

Oleksandr
07.12.2016
19:47:23
выражайся культурнее, во-первых

я не надоедаю, а поддерживаю дискуссию

Google
Pavel ?
07.12.2016
19:48:23
Так я еще ничего и не сказал бестактного)

Руслан
07.12.2016
19:48:51
Не нужно поддерживать дисскусию ради дисскусии

Oleksandr
07.12.2016
19:49:02
Байт код скинь
байткод конкретно чего? scala.Int часто и в обычный int мапится, на уровне байткода

Не нужно поддерживать дисскусию ради дисскусии
а как же "из дискуссии приходит знание", или что-то такое?

Pavel ?
07.12.2016
19:49:45
Пнимаешь Олександр)

Руслан
07.12.2016
19:49:54
Из документации быстрее)

Pavel ?
07.12.2016
19:50:00
Тут разговор слепого с немым)

Один пытается показать мощность и говорит что это круто)) а второму эта мощность как шило в заднице, потомучто понимает к чему она может привести)

Чуешь ситуэйшн?)

Pavel ?
07.12.2016
19:53:41
У скалы на весах язык ради языка, 100500 вариантов написания одного и того же как в руби, в котлине все наоборот, язык строгих кейсов, необходимых рынку для решения продакшен задач)

Что тут еще можно написать

Oleksandr
07.12.2016
19:54:02
весь вопрос в возможности выбора, какая именно мощность тебе надо

Митко Соловец?
07.12.2016
19:54:24
рынку иногда необходимы крутые проекты с крутым бэкендом

что-то тут котлин ничего дать не может

а скала - это акторы, это акка

Pavel ?
07.12.2016
19:54:41
Ну епть...давай поговорим о том как мапятся инты у обоих языках, вот только смысл какой

Митко Соловец?
07.12.2016
19:54:42
это особая парадигма параллелизма

Oleksandr
07.12.2016
19:54:45
можно диктатурно заявить "дженерики не нужны", и в этом есть свой резон

Nikolay
07.12.2016
19:55:15
а скала - это акторы, это акка
акку можно использовать не только в scala

Страница 779 из 2890