
Vadim
26.02.2017
17:53:23
ты чтоли манагеру скалу хочешь продать7)

Wystan
26.02.2017
17:53:55

Daniel
26.02.2017
17:54:32
> это то что скала функциональна (то есть более читабельный код меньше багов)
я че-то проспал

Grigory
26.02.2017
17:54:57
я думаю если хочешь продать манагеру то важно мб в некоторых случаях смещение рисков в компайл тайм из рантайма, в случаях когда на проихводительность импактанет или это не важно ну и всякое такое в таком духе

Google

Wystan
26.02.2017
17:55:14

Grigory
26.02.2017
17:55:15
ну и при всем при том совемтимость с джавой есть так что пробелм в отсутвии либ нету и тыры пыры

Sergey
26.02.2017
17:55:16
и чем это лучше джавы?

Grigory
26.02.2017
17:55:28
чем компайл тайм лучше рантайма?

Vitaly
26.02.2017
17:55:40
ты чтоли манагеру скалу хочешь продать7)
не , там не в этом дело
скорее мой пм сказал чтобы я придумал как пояснить заказчику почему мы сделали именно так. точнее даже не это, а почему то, что мы сделали круто по определению
тем более что тому заказчику когда то делали на ноде, и типа его все устроило, вот ему и интересна разница и тд

Daniel
26.02.2017
17:56:26
ну в этом ключе, имхо, стоит референсы в презентахах лайтбенда поискать))

Sergey
26.02.2017
17:56:29

Grigory
26.02.2017
17:56:42
бл*ть о рисках
о чем я
об ошибках

Vitaly
26.02.2017
17:56:56
и в том то и соль, что если я скажу заказчику - ну там функционалка, кода меньше пишем и тд
и будет что то типа "и чо? "

Vadim
26.02.2017
17:57:13
мне кажется тут ничего вообще придумывать не надо - если это работает, соответвует прдъявляемым требованиям и не на говне мамонта - какие вопросы у меня как у заказчика могут быть?)

Google

Ivan
26.02.2017
17:57:19
а зачем вам там скала?

Sergey
26.02.2017
17:57:40

Ivan
26.02.2017
17:57:50
вот как себе ответишь на эти вопросы так и заказчику сможешь ответить только еще и приукрасишь немного

Daniel
26.02.2017
17:57:54
вопрос какой поинт со стека заказчику
если это праздный интерес, то и ответ такой же

Sergey
26.02.2017
17:58:01

Grigory
26.02.2017
17:58:27

Wystan
26.02.2017
17:58:42
заказчику нужен кластер из коробки? если нет, то берите го или ноду
на ноде правда шлак легко писать

Vitaly
26.02.2017
17:58:50
лол
ладно парни, я вас понял )))
значит будем реально делать по принципу - уровень ответа зависит от уровня вопроса

Grigory
26.02.2017
17:59:12
фактически фп код это формула и компилируя ты доказываешь правльность формулы; зачем еще придумали сложные типы?) навренео для понтов

Ivan
26.02.2017
17:59:17

Daniel
26.02.2017
17:59:19
ты иди, а мы тут с попкорном за срачиком посмотрим))
набросил чутка

Grigory
26.02.2017
17:59:48
прост тип математики корочи угарали вот и придумали форумлы там типы и всякий бред ток потому что процедуркалка зло.

Wystan
26.02.2017
17:59:59

Sergey
26.02.2017
18:00:55

Grigory
26.02.2017
18:00:57
и я не псиал защищает - а риски в компайл тайм частично сдвигает в некоторых случаях

Sergey
26.02.2017
18:01:21
есть реальный пример?

Vitaly
26.02.2017
18:01:21
пока гуглил - нашел такое, есть парочка предложений подходящая моему вопросу)
https://dev.by/lenta/main/mneniya-pochemu-scala-vdrug-stala-takoy-populyarnoy

Google

Grigory
26.02.2017
18:01:52
пример что богатая система типов свдигает риски в компиляцию?

Sergey
26.02.2017
18:01:59
да

Grigory
26.02.2017
18:02:04
да любой код высокороувневый

Ivan
26.02.2017
18:02:15

Grigory
26.02.2017
18:02:27
гуглани блджа
почему нужнабогаатя сиетема типов
если сферический простой пример - это списки с длиной в типе

Daniel
26.02.2017
18:03:57
пойду выпью что ль, чтоб забыться

Sergey
26.02.2017
18:04:35

Ivan
26.02.2017
18:04:42
и не паришься что там в переменной null/undefined/""/0 или еще чего
пустой масси какой нибудь

Sergey
26.02.2017
18:05:15
js гавно, тут даже никто не спорит)

Grigory
26.02.2017
18:05:15
так ты можешь хоть на спп что угодно сделать
или на пхп...
а мы все идиоты пишем на скале ведь есть джава а все типы это лишь красивости чтоб выебнуться и не решают фактически никаких проблем)

Daniel
26.02.2017
18:07:08
мы пишем на скале, потому что еще акку на идрис не портировали

Grigory
26.02.2017
18:07:14
монопенисуальные языки отличаются ток синтаксисом (джава и скала)

Sergey
26.02.2017
18:07:36

Google

Grigory
26.02.2017
18:08:48
смари пример простой зачем нужны типы; если ты конечно не толстый троль
вот у тя есть json сообщения; предположим ты можешь делать массивы этих сообщений; программа иъх жрет (как тсроки чет там кастуует и выпоняет)
фактически джсон это только строки
но ты на любйо языке можешь реализовать дсл, в которой будут типы; да она разрушит их при конвертации в джсон; но ты рсики перенесешь в компайл тайм тех ошибок которые будут попадаться в проге которая жрет джейсон
ну и чем сложнее ты такие конструкции и проверки типов делать можешь; тем больше рисков в компиляцию ты переносишь
ну я хз как еще обяснит ьзачем нужны типы

Max
26.02.2017
18:10:47
Предлагаю новый токсичный-функционально-высоколобый ответ: "иди почитай TaPL"

Grigory
26.02.2017
18:10:48
гугланите зачем нужны типы и зачем нужны сложные системы типов
и кто придумал типы

Admin
ERROR: S client not available

Wystan
26.02.2017
18:11:49
strong types for weak minds!

Grigory
26.02.2017
18:11:58
ну идеально кончено прога должна быть формулой
и ты типа пиешшь формулу

Daniel
26.02.2017
18:13:09

Sergey
26.02.2017
18:13:20

Vitaly
26.02.2017
18:13:37

Daniel
26.02.2017
18:13:59
не, не советую
заказчики такое не оч любят)

Oleksandr
26.02.2017
18:14:19
есть реальный пример?
вынос абстракций на более высокий уровень, труднодостижимый обычным наследованием (некоторые вещи из http://eed3si9n.com/herding-cats, вроде функтора или полугруппы)

Max
26.02.2017
18:14:24

Sergey
26.02.2017
18:15:18

Max
26.02.2017
18:16:50
Ошибку типа в рантайме получишь при невалидных данных, вот и все

Google

Sergey
26.02.2017
18:18:08
так за анализ и парсинг отвечает GSON/Jackson

Oleksandr
26.02.2017
18:19:16

Max
26.02.2017
18:22:06
так за анализ и парсинг отвечает GSON/Jackson
Ну ты можешь и на питоне его парсить сразу. Смысл типов в том, что они грубо говоря не дают писать непроверяемый бред по всему коду. Если кусок системы работает без них — они бесполезны в этой части, да

Artem
26.02.2017
18:24:13
https://github.com/derive4j/hkt )
все есть же )

Sergey
26.02.2017
18:24:20

Max
26.02.2017
18:29:48
Если она как в жаве — нет.

Wystan
26.02.2017
18:30:10

Oleksandr
26.02.2017
18:31:12
надо короче книжку по скале почитать. а то я в упор не вижу проблем, которые оно решает)
ну на пальцах:
вот у тебя есть список и есть мапа
у них можно определить некое общее поведение, для примера, пусть это будет ассоциативность операции
то есть combine(x, combine(y, z)) = combine(combine(x, y), z)
это свойство есть у многих вещей, так почему бы не вынести его в отдельный интерфейс?
собственно, это и делается, с той разницей, что с обычными интерфейсам тебе придется много копипастить, а тайпклассы + HKT позволяют иногда это красиво обойти
herding cats написан для хаскелистов, там надо уже разбираться в теме, чтобы понять /=
я посоветовал бы "functional programming in scala" ака "красная книжка"

Grigory
26.02.2017
18:33:15
да что угодно по типам почитать; это интересно (мне кажется)
историчесикй момент изобретения типов тоже весьма нагляден

Oleksandr
26.02.2017
18:38:43
другими словами:
есть некие кирпичики — "структуры" из алгебры, которые задают некоторые законы
если выполняется закон, то можно давать некоторые гарантии по поведению => проще reasoning (хз как перевести, что-то типа "анализ кода") => меньше думаешь, когда пишешь код
пример для абзаца выше — вот есть monad chain (for), для него ты можешь быть уверен, что операции выполнятся с каким-то порядком
если тебе не нужен порядок (можешь ослабить гарантии), то можно получить профит в производительности, для примера с монадами это переход от них к аппликативному функтору

Grigory
26.02.2017
18:40:47

Oleksandr
26.02.2017
18:40:48
самое главное — не надо всей этой фигней слишком увлекаться, пытаться этими законами все-все обосновать, это путь к оверинжинирингу
а причем тут скала — она позволяется выбирать уровень абстракции, от HKT до лобовой императивщины

Grigory
26.02.2017
18:42:08

Oleksandr
26.02.2017
18:42:51

Grigory
26.02.2017
18:42:58
прагматичный путь к го

Oleksandr
26.02.2017
18:44:04
в какой-то степени
если пофилософствовать, то Го — "жадная" стратегия

Sergey
26.02.2017
18:44:23
для каких задач это вообще нужно? ну скажем если мне нужно написать скрейпер для сайтов или что-то по типу как для Megogo писали тут тестовое(опрашивать апи, с учетом лимитов, ретраев и тд). как мне все эти типы помогут в этом всем?