[Ответить в тред] Ответить в тред



<<
Назад | Вниз | Обновить тред | Автообновление
540 | 24 | 150

Scala /scala/ Scala-kun 12/02/18 Пнд 10:04:03  1137321  
Очередной тред про самый лучший язык для JVM.

Лучшая книга по Скале: http://www.ozon.ru/context/detail/id/31921731/
Учебник по Скале на русском: http://twitter.github.io/scala_school/ru/index.html
Второй учебник по Скале на русском: http://twitter.github.io/effectivescala/index-ru.html
Курс по fp на Скале для слоупоков: https://www.coursera.org/course/progfun
Список годноты: https://github.com/lauris/awesome-scala
Презентации летнего ScalaDays: https://www.parleys.com/channel/53a7d269e4b0543940d9e535/presentations?sort=views&state=public
Два недавних форка компилятора, один от тайплевела и второй от баттхертнутого:
https://github.com/typelevel/scala (https://github.com/typelevel/scala/wiki/Differences)
https://github.com/paulp/policy

Завтра ищешь в интернете книжку Programming in Scala. Похуй если ничего не поймешь. Затем идешь на scala-lang.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию скала кода - от EPFL естественно, чтобы от зубов отскакивало. Когда напишешь свой первый клон Twittera, по пути изучив основы дискретного и лямбда исчисления, скачиваешь и изучаешь любой асинхронный скала вебсервер, рекомендую Play!. Как переделаешь твиттер клон, чтобы выдавал по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop и Spark, сверхбыстрые асинхронные key-value хранилища, NoSQL и прочие мира открытого исходного кода приблуды. Отсос хиккующих питонистов / просто неудачников типа годаунов или рубифанбоев, сосут по жизни, не заставит себя ждать и уже через пол года ты будешь подворачивать штаны, есть маффины, запивая смузи и любая баба будет течь от упоминания твоей зарплаты.
Scala-kun 12/02/18 Пнд 10:07:33  1137326
Я утверждаю, что простые и средние задачи на Scala решать существенно проще, чем на большенстве других языков.
Конечно, зависит от задачи. Очень многое на Haskell делается красиво и тривиально. Но когда начинается ввод/вывод и обработка ошибок Haskell почти ни чего не дает, по сравнению с распространенными языками.
Аноним 12/02/18 Пнд 10:09:11  1137328
Какие вопросы спрашивают на собеседовании?
Аноним 12/02/18 Пнд 10:10:49  1137329
На scala days кто-нибудь собирается? Думаю поехать на берлинскии scala days в мае, годное мероприятие?
Аноним 12/02/18 Пнд 10:27:07  1137336
>>1137328
лямбды
Аноним 12/02/18 Пнд 10:28:08  1137338
>>1137329
Вообще думаю все митапы по умолчанию говно.
Аноним 12/02/18 Пнд 10:34:09  1137340
>>1137321 (OP)
Говорят Хаскель на порядок проще из-за отсутствия ебучего наследования и костылей JVM это так?
Аноним 12/02/18 Пнд 10:42:33  1137344
>>1137336
Лямда исчисления?
Аноним 12/02/18 Пнд 11:17:14  1137363
>>1137344
Оно самое а вообще хороше уже то что ты под себя не ходишь
Аноним 12/02/18 Пнд 11:33:24  1137370
>>1137363
Так а ещё что спрашивают? Хочу сразу как минимум на мидла перакится, на скале ток много для спарка писал.
Аноним 12/02/18 Пнд 11:45:11  1137379
>>1137370
Akka / Akka Persistence / Akka HTTP / Akka Streams, Scala, Play, Slick,Kafka
Аноним 12/02/18 Пнд 11:48:13  1137383
>>1137370
skillset 1 = Scala, Spark, Cassandra
skillset 2 = Scala, Solr/Elasticsearch, Akka
Аноним 12/02/18 Пнд 12:28:20  1137400
>>1137379
>>1137383
Спасибо
Аноним 12/02/18 Пнд 13:20:44  1137425
>>1137321 (OP)
Часто ли тащат в прод cats/scalaz ? Можно ли жить без них
Аноним 12/02/18 Пнд 13:33:03  1137436
>>1137425
А какой смысл писать на Scala без ScalaZ?
Аноним 12/02/18 Пнд 13:37:04  1137438
>>1137436
Ну ахуеть это что получается язык не состоятельный без сторонней билиотеки?
Аноним 12/02/18 Пнд 13:37:08  1137439
>>1137340
- Нормальная хвостовая рекурсия
- Нормальный вывод типов
- Нормальный синтаксис вызова функций
- Нет разделения на функции/методы
- ???
- Сотни их
Аноним 12/02/18 Пнд 13:39:56  1137443
>>1137340
только работы на нем нет
Аноним 12/02/18 Пнд 14:32:59  1137517
>>1137443
Согласен
Аноним 12/02/18 Пнд 16:29:53  1137623
>>1137439
ну хуй знает
Аноним 12/02/18 Пнд 19:19:21  1137734
>>1137321 (OP)
scala
Аноним 12/02/18 Пнд 20:24:37  1137767
15122556102390.jpg (12Кб, 240x240)
Поссал на скалапетухов.
мимо жс лорд
Аноним 13/02/18 Втр 05:35:11  1137971
>>1137767
>2018
>js
Аноним 13/02/18 Втр 17:17:42  1138290
>>1137321 (OP)
Хочу вкатиться с чего начинать?
Аноним 13/02/18 Втр 17:23:19  1138296
>>1138290
С Haskell
Аноним 13/02/18 Втр 18:30:41  1138333
>>1138296
Толсто
Аноним 14/02/18 Срд 03:45:52  1138539
Там java 10 вышла, добавили var в сахарок, скоро Скала будет ненужна-ненужна
Аноним 14/02/18 Срд 03:53:05  1138542
>>1138539
Представляю баттхёрт олдскульных джавапидоров. Если даже шарпоёбы воняли про ненужность на весь интернет при добавлении подобной фичи.
Аноним 15/02/18 Чтв 09:33:26  1139144
>>1138539
За сахарком это в котлин. А тут любители хорошей типизации сидят.
Аноним 15/02/18 Чтв 10:13:32  1139157
>>1139144
За хорошей типизацией это в Coq. А тут корпоративные вонаби-ФП-шники сидят.
Аноним 01/03/18 Чтв 21:34:20  1148186
НАКАНЕЦТА
тред о лучшем языке программирования, мимоподписался
работаю скала-трейни-почтиджун
учу акку, слик, скалатест, всем доволен
Аноним 01/03/18 Чтв 22:53:19  1148235
>>1137321 (OP)
https://www.youtube.com/watch?v=4jh94gowim0
Аноним 05/03/18 Пнд 16:43:28  1150105
>>1137329
В NYC в Июне еду
Аноним 06/03/18 Втр 13:37:52  1150602
Как сейчас ситуация с вакансиями?
Аноним 06/03/18 Втр 18:21:18  1150818
>>1150602

когда искал на фрилансе, то их оказалось таки есть. Причем больше чем я думал. Но в итоге ушел в стартап и теперь пишу на ноде (
Аноним 07/03/18 Срд 01:17:00  1150976
>>1148186
можешь вкратце описать зачем нужна акка?
Аноним 07/03/18 Срд 10:55:00  1151042
>>1150976
Я юзал akka-http, довольно удобно для написания контроллера. Ну и конечно же akka-actors для написания многопоточных программ
Скала и обучение машин Аноним 07/03/18 Срд 20:36:17  1151296
Двач, а скала используется для обучения машин? Насколько реально использовать скалу для МЛ (либы вроде нужные присутствуют и в большом количестве, но используются ли на практике, встречаются ли такие вакансии)?
Аноним 07/03/18 Срд 20:52:08  1151300
>>1151296

для проверки гипотез все равно быстрее python юзать и либы там заебись. Иногда уже проверенную гипотезу реализуют на Java, чтобы быстрее работало. А так в Scala для ML большого смысла нету
Аноним 07/03/18 Срд 21:38:39  1151313
>>1151300
Спасибо, анон, я примерно это и предполагал. Тогда вопрос #2:
со всей этой бигдатой, хадупами, спарками и прочим можно работать как на джаве, так и на скале. Ощутим ли выигрыш по времени при работе на скале, или если знаешь джаву то смысла вкатываться в скалу (для МЛ/ЕТЛ) нет?
Аноним 07/03/18 Срд 22:11:44  1151325
>>1151313

Scala хороша чтобы свой Spark написать, а так смысла нету. Опять же хоть Python юзай.
Аноним 08/03/18 Чтв 12:47:06  1151466
>>1151042
я просто быдлоджавер, пишущий e-commerce. Конечно понимаю о существовании различных распределенных нагруженных приложений. Но супер-примеров использования реальных асинхронных штук, кроме мб чата, представить не могу)
Аноним 08/03/18 Чтв 13:52:47  1151499
А в дс есть какие-нибудь магистратуры, где я смогу изучать фп, теорию типов, мат логику? Мне интересно понять пэйпер dependent object types и свободно читать спеку языка, но пока что мне знаний не хватает. Еще было бы интересно позаниматься пруф асистантами. Начинал ковырять Coq - почти ничего не понял. Начал читать dragon book про компиляторы и потом планирую прочитать benjamin pierce: types and programming languages. Есть магистратуры, куда стоит поступать с таким полем интересов?
Аноним 08/03/18 Чтв 14:00:00  1151505
>>1151499
Вот такие курсы, например, хотел бы прослушать:
http://mit.spbau.ru/courses/IntroductionToProgrammingLanguages
http://mit.spbau.ru/courses/fp
http://mit.spbau.ru/courses/modelchecking
Аноним 08/03/18 Чтв 18:44:10  1151705
>>1137321 (OP)
А матрёшку кто-нить юзает, а?
Аноним 09/03/18 Птн 09:30:21  1152031
Есть вообще какая-то работа в ДС кроме Тинькова для выпускника-скалоеба (без опыта работы)?
Аноним 09/03/18 Птн 12:27:32  1152096
Подскажите ньюфагу, как сделать так, чтобы IDEA видела либы подргуженные через SBT. Проект у меня собирается, но автокомплит по загруженным зависимостям не работает
Аноним 09/03/18 Птн 12:31:55  1152100
>>1152096
* Собирается через SBT
Аноним 09/03/18 Птн 12:38:27  1152107
>>1152096
Делаешь в идее поиск по действиям (у меня ctrl+shift+a), пишешь sbt, в открывшейся панели жмешь кнопочку с двумя синими стрелочками. Еще когда build.sbt меняешь, вверху файла должна появляться желтая полоса с опциями refresh project, enable auto-import и еще че-то.
Аноним 09/03/18 Птн 12:49:59  1152122
>>1152107
Помогло, благодарствую
Аноним 09/03/18 Птн 12:51:33  1152125
Есть ли смысл студентоте без опыта в продакшене вкатываться в Скалу? Или лучше скакать от Джавы.
Аноним 09/03/18 Птн 12:54:47  1152130
>>1151499
В EPFL иди. https://docs.google.com/document/d/1FvShq1XS0DsTouKYeYbcUe0Ual4no4UiSQyTG7YUFNs/edit
Аноним 09/03/18 Птн 14:14:58  1152176
>>1152125
Не особо важно, главное - че за работа. Большинство джава-вакансий - это какое-нибудь нудное говно типа интернет-магазинов, крудошлепства в банках и т д, но если сможешь найти приличную работу на джаве (например, будет варик в бигдату вкатиться), то устраивайся.
Аноним 09/03/18 Птн 14:22:29  1152184
>>1152176
Я имею в виду реально найти джуниорскую вакансию на Скале?
Аноним 09/03/18 Птн 14:25:49  1152186
>>1152130
Как-то слишком круто. Наукой я интересуюсь, но боюсь я для нее туповат. Я как-то в бакалавриате пытался придумать новый численный метод для вычисления одной фигни и ничего придумать не смог. Публикаций у меня нет и не предвидится, работаю на обычной энтерпрайз-работе (ну не совсем обычной, конечно, все-таки на скале немного особенные люди пишут). Я хотел поступать в магистратуру, чтобы за 2 года у меня либо появились научные интересы, либо чтоб я понял, что мне это не надо.
Аноним 09/03/18 Птн 14:34:27  1152196
>>1152184
Если в дс живешь, то реально. Скала-джуны бывают, хоть это и редкость.
Аноним 09/03/18 Птн 15:23:57  1152220
>>1152130
Автор доки в 22 года закончил мфти и уже тимлидом работал. Не представляю, чтобы люди аналогичного уровня успешности на дваче сидели.
Аноним 09/03/18 Птн 16:03:15  1152250
>>1152220
Еще автор писал, что хватает людей, которые пришли после работы в сфере и есть даже те, кому за 35
>>1152186
Публикации не обязательны. Как я понял - главное в красках в резюме рассписать чем занимался и написать хорошее мотивационное письмо, зачем тебе все это надо. Так же, по словам автора, перед поступлением можно и не знать тему своей будущей диссертации и определится в первый год
Аноним 09/03/18 Птн 18:27:54  1152386
>>1152220
На дваче сидят очень успешные люди, но ридонли, это факт. Жалко, что они не пишут.
Аноним 10/03/18 Суб 21:32:34  1153137
Вкатываюсь в скалу, лень смотреть/бенчить самому, может анон поможет:

1) Неоднократно натыкался на заявление что у Scala меньше memory footprint по сравнению с джава, но никто не поясняет за счёт чего это достигается. JVM как я понимаю одна и та же, gc тоже наверное работает одинаково, откуда улучшение? За счёт использования lazy?

2) Моё джавовское мировоззрение напрягает работа с коллекциями и сам факт того, что коллекции иммутабельны, вопрос такой, когда я делаю так:
result :+= el
на случай если проябался с синтаксисом -- хотел показать добавление элемента в конец коллекции
происходит ли полное копирование коллекции? Сложность такой операции по времени и памяти какая будет?
Аноним 10/03/18 Суб 22:04:30  1153159
>>1153137

2) списки там связанные, поэтому элемент просто добавляется в конец. да создается новый объект список, но перекопирования старых элементов не происходит
Аноним 10/03/18 Суб 22:26:20  1153171
>>1153137
Нет, не происходит. Так как коллекции иммутабельны, общая часть может быть расшарена между всеми "версиями" это коллекции. Представь, например, что у тебя есть иммутабельный список А из 100 элементов, и ты делаешь на его основе 10 новых списков Б_1..Б_10, каждый из которых добавляет один новый элемент к первоначальному списку. У тебя будет 10 списков длины 101, но память будет использована не для 101*10 элементов, а только для 10 новых элементов (по одному от каждого списка Б_1..Б_10), в то время как сто общих элементов будут расшарены между всеми списками: каждый из списков Б_n будет содержать новый элемент и ссылку на список А. Поскольку данные иммутабельны, все эти операции гарантированно корректны.

В реальных структурах данных конкретная стратегия расшаривания зависит от реализации. Обычно структура делится на небольшие чанки, внутри которых изменения копируются (ибо так быстрее), и шарятся уже эти чанки. Сложность по времени обычно логарифмическая, но что-то вроде log_32(n), то есть "effectively constant time". Подробнее о реализации и расшаривании можешь гуглить по запросу "persistent data structures".
Аноним 11/03/18 Вск 00:32:19  1153241
>>1153137
>> 1) Неоднократно натыкался на заявление что у Scala меньше memory footprint по сравнению с джава, но никто не поясняет за счёт чего это достигается. JVM как я понимаю одна и та же, gc тоже наверное работает одинаково, откуда улучшение? За счёт использования lazy?
Возможно из-за lazy (если его аквтивно используют) он и меньше, но как по мне, у Scala должен быть больше memory footprint. Во-первых, она не самый эффективный Bytecode даёт, так как мы в нём натягиваем сову на глобус, пытаясь выразить сложные scala концепции в терминах java классов и объектов. Плюс функциональщина достаточно активно срёт в память. Недавно как раз смотрел запись конференции, где чувак показывал как типичный код с фолдом списка на скалке умудряется срать в память со скоростью полгигабайта в секунду. В следствии этого во время фолда просыпается GC и код работает раза в три медленнее, чем его итеративный аналог. А всё сраный боксинг/анбоксинг
Аноним 11/03/18 Вск 16:07:17  1153583
Screen-Shot-201[...].png (139Кб, 527x394)
>>1153241
>код с фолдом списка на скалке умудряется срать в память со скоростью полгигабайта в секунду
>А всё сраный боксинг/анбоксинг
Пикрелейтед. Открой свое сердце свету трансдьюсеров, брат!
Аноним 11/03/18 Вск 16:24:23  1153605
>>1151466
Я тоже в прошлом быдлоджавер. А про многопоточность могу в сказать, что не обязательно руками выделять отдельный поток на обработку каких данных, можно просто засовывать отельные части процессов в фьючи (например дейстия с бд), которые будут рабтать асинхронно, что ОЧЕНЬ актуально, если принимать во внимание, что в современных пк упор делаться на многопроцессорность
Аноним 11/03/18 Вск 17:22:04  1153647
>>1153605
>можно просто засовывать отельные части процессов в фьючи

ИЧСХ, для этого даже Скала не нужна, лол.
CompletableFuture, конечно

И акку можно и из джавы юзать, что многие и делают.
Аноним 12/03/18 Пнд 00:15:30  1154073
>>1153647
>не нужна
нужна, поверь нужна
щас поясю почему
- неизменяемость (иммьютбл переменные и коллекции), очень помогает при работе в многопоточности, легче писать тесты и да и вообще читать код легче
- паттерн матчинг. Ну это просто охуенно, это даже не свитч на максималках, это намного круче
- краткость. Вот за что ругают яву, за то хвалят скалу
- полная поддержка фп. тут даже рассписывать не буду
- строягая типизация при той же краткости, и да типы дженекиков при компиляции не стираются, как в яве)
- охуенные стандартные либы
да и вообще жаба ОЧЕНЬ много потеряла в погоне за совместимостю, после скалы будешь смотреть на неё как на ассеблер после плюсов
Аноним 12/03/18 Пнд 00:24:15  1154079
>>1154073
> вообще жаба ОЧЕНЬ много потеряла в погоне за совместимостю
Люто удваиваю.

миможабокотлиносэр
Аноним 12/03/18 Пнд 00:27:10  1154084
>>1153647
>>1154073
пока курил, понял что не расписал и половины перимуществ, если заинтересуешься, то я тебе на почту книжку скину "скала для джавистов"
>>1154079
котлин уважаю, котлин крута но скала круче)
Аноним 12/03/18 Пнд 00:41:50  1154100
>>1154084
> скала круче
А еще Солнце, кстати, желтое, а небо синее (серое в России), кэп.
Аноним 12/03/18 Пнд 01:16:38  1154127
>>1154084
>понял что не расписал и половины перимуществ

Я, как-бы, в курсе, лол.
И насчёт минусов тоже.

Я не имел в виду, "скала не нужна", я имел в виду, "скала не нужна, чтобы ...".

Ты, кстати, на работе на чём пишешь, и какого рода проекты? Это я к тому, что скала - вещь в себе, и с джавой (на деле) интегрируется не особо.

Аноним 12/03/18 Пнд 06:52:22  1154342
>>1154073
>полная поддержка фп. тут даже рассписывать не буду
Всё-таки стоило бы расписать.
Аноним 12/03/18 Пнд 10:51:49  1154375
>>1154127
Работаю в геймдеве, проект на акке + кэтс, для бд - слик. Также работаю удалённо над проектом-сайтиком, там плей + бутстрап
>>1154342
- монады
- неизменяемость
- функции как переменные
- функции высшего порядка
- алгоритмические структуры данных
- нормальная поддержка рекурсии
хотя дать определение фп достаточно сложно, в отличии от ооп
Аноним 12/03/18 Пнд 13:26:09  1154434
>>1154375
>в отличии от ооп
Так все-таки ооп - это смолток или кресты?
Аноним 12/03/18 Пнд 13:36:11  1154439
>>1154434
Кресты но это не точно.
Я где-то слышал, что ООП - то что в крестах (из Симулы). В смолтолке - не ООП, а объектное программирование (объектная система в смысле позднего связывния, вот ото вот всё).
Аноним 12/03/18 Пнд 14:14:11  1154461
15176706166710.gif (891Кб, 250x197)
>>1154439
>не ООП, а объектное программирование
>не объектно-ориентированное программирование, а объектное программирование


>хотя дать определение фп достаточно сложно, в отличии от ооп
Аноним 12/03/18 Пнд 14:50:02  1154508
>>1154375
>алгоритмические структуры данных
Алгебраические типы данных.

>неизменяемость
Иммутабельность.
Оттенок смысла немножко другой.
Вообще, не надо ничего переводить на русский.
Нужно использовать терминологию как есть, по возможности.

Читал ли ты книжку Functional Programming in Scala (изд. Manning)?
Это одна из лучших книг по фп вообще, я бы советовал. И задания обязательно прорешать.
Ответы есть, репозиторий на гитхабе.

Есть ещё Functional Programming in Java, тоже Manning.
Тоже охуенная вещь.
Написана в совершенно другом стиле - более практическом.
Автор (намеренно) не употребляет слово "монада" в основной части книги, например, и в послесловии объясняет, почему.
Аноним 12/03/18 Пнд 15:54:53  1154549
>>1154508
>Алгебраические типы данных.
да, спс за фикс
>>1154439
>>1154461
>>1154434
ооп - это полиморфизм, инхеритенс не знаю как норм перевести, инкапсуляция и абстракция, а дальше понимайте как хотите
Аноним 12/03/18 Пнд 16:09:51  1154558
>>1154549
> инхеритенс
Лол.
Наследование.
Это как раз тот случай, когда надо переводить

Насчёт ООП - он тебя просто троллит.

Аноним 12/03/18 Пнд 16:43:27  1154577
>>1154558
>Это как раз тот случай, когда надо переводить
та да, просто русский мне не родной
>>1154508
>Читал ли ты книжку Functional Programming in Scala (изд. Manning)?
к сожелению ещё не читал, уже скачана, но не читал
да и только 3 месяца, как на скале, прочитал только ессеншиал скала, скала для нетерпеливых (на русском) и 200 страниц програминг ин скала одерского
Аноним 12/03/18 Пнд 17:03:31  1154601
>>1154577
В FP in Scala самой скалы по минимуму.
Т.е. предварительное знание языка желательно, но не обязательно. Ну, это авторы так пишут. На самом деле, конечно, просто с нуля ловить там нечего. Но, в дебри языка они не лезут, только в типы, разве что.

Книга небольшая, язык (английский) - простой. Но, времени на чтение (с решением задач) надо много, может быть, даже и год (судя по тому, что народ пишет). Т.е. надо делать это вдумчиво и не спеша.

"Скала для нетерпеливых" - очень годная книга, перевод я, правда, не видел.
Одерского можно читать вечно, лол.
Народ на форумах пишет, что терпения не хватает.
Аноним 12/03/18 Пнд 17:39:56  1154629
>>1154601

Одерского 5 раз перечитал, прежде чем более или менее стал понимать скалу.
Аноним 12/03/18 Пнд 19:04:59  1154655
>>1154549
>ооп - это полиморфизм
Сильное заявление. То есть тайпклассы - это ооп?

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

>инкапсуляция и абстракция
Точно, анон, ведь без ооп абстракций не бывает! Ой, подожди. Нет, что-то не сходится.
Аноним 12/03/18 Пнд 19:50:46  1154679
>>1154655
ты зелёный?
ну ок, скажи что для тебя ооп, вот мне реально интересно
>>1154601
>>1154629
да у меня вообще уже книжек 5 накопилось, котрые хочу прочитать
Аноним 12/03/18 Пнд 20:01:09  1154685
>>1154679
Для объектно-ориентированное программирование - это, внезапно, программирование, ориентированное на объекты. А объекты - это такие штуки, у которых есть внутреннее состояние, которое можно шатать сообщениями.

Но к "ООП" это не имеет никакого отношения. ООП - это просто маркетинговый буллшит без строгих\инженерных оснований, под которым каждый понимает то, что ему хочется.

Если что, это все к
>хотя дать определение фп достаточно сложно, в отличии от ооп
Аноним 12/03/18 Пнд 20:42:35  1154703
>>1154073
> типы дженекиков при компиляции не стираются, как в яве)
шта?
Аноним 12/03/18 Пнд 22:49:58  1154751
>>1154073
>и да типы дженекиков при компиляции не стираются, как в яве)
Ты что-то попутал. У тебя код собирается в байткод jvm, который о типе дженериков вообще представления не имеет. Ну нет на его уровне такой концепции. Не веришь - javap в помощь

А вообще я это за тебя сделаю, возьмём примитивный дженерик
class S[A](opt: A) {
def get:A = opt
}

Компиляем, юзаем javap -c -v и получаем

public A get();
descriptor: ()Ljava/lang/Object;
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: getfield #16 // Field opt:Ljava/lang/Object;
4: areturn
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this LS;
LineNumberTable:
line 2: 0
Signature: #28 // ()TA;

public S(A);
descriptor: (Ljava/lang/Object;)V
flags: ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: putfield #16 // Field opt:Ljava/lang/Object; <- внимание
5: aload_0
6: invokespecial #23 // Method java/lang/Object."<init>":()V
9: return
LocalVariableTable:
Start Length Slot Name Signature
0 10 0 this LS;
0 10 1 opt Ljava/lang/Object; <- описание нашего поля
LineNumberTable:
line 1: 0
line 5: 5
line 1: 9
Signature: #29 // (TA;)V
MethodParameters:
Name Flags
opt final

Как бы можно заметить, что класс компилируется единожды и вся работа с полем идёт как с Ljava/lang/Object;

Дальше пишем:

val s = new S[Int](3)
val a = s.get
println(a + 3)

Снова javap -c -v и получаем

0: aload_0
1: new #75 // class S
4: dup
5: iconst_3
6: invokestatic #81 // Method scala/runtime/BoxesRunTime.boxToInteger:(I)Ljava/lang/Integer;
9: invokespecial #84 // Method S."<init>":(Ljava/lang/Object;)V
12: putfield #69 // Field s:LS;
15: aload_0
16: aload_0
17: invokevirtual #86 // Method s:()LS;
20: invokevirtual #90 // Method S.get:()Ljava/lang/Object;
23: invokestatic #94 // Method scala/runtime/BoxesRunTime.unboxToInt:(Ljava/lang/Object;)I
26: putfield #72 // Field a:I
29: getstatic #99 // Field scala/Predef$.MODULE$:Lscala/Predef$;
32: aload_0
33: invokevirtual #101 // Method a:()I
36: iconst_3
37: iadd
38: invokestatic #81 // Method scala/runtime/BoxesRunTime.boxToInteger:(I)Ljava/lang/Integer;
41: invokevirtual #104 // Method scala/Predef$.println:(Ljava/lang/Object;)V
44: return

И снова видим, что в байткоде у нас опять сначала int боксится (6:) и засовывается в дженерик как Object(9), а затем из дженерика выдёргивается именно Object (20:) а уже потом анбоксится в int (23:). Как можешь заметить, отдельной реализации дженерика, заточеного под Int тут не генерируется.

Тоже самое и со String

val s = new S[String]("3")
val a = s.get
println(a.length)

0: aload_0
1: new #75 // class S
4: dup
5: ldc #77 // String 3
7: invokespecial #80 // Method S."<init>":(Ljava/lang/Object;)V
10: putfield #69 // Field s:LS;
13: aload_0
14: aload_0
15: invokevirtual #82 // Method s:()LS;
18: invokevirtual #86 // Method S.get:()Ljava/lang/Object;
21: checkcast #88 // class java/lang/String
24: putfield #72 // Field a:Ljava/lang/String;
27: getstatic #93 // Field scala/Predef$.MODULE$:Lscala/Predef$;
30: aload_0
31: invokevirtual #95 // Method a:()Ljava/lang/String;
34: invokevirtual #99 // Method java/lang/String.length:()I
37: invokestatic #105 // Method scala/runtime/BoxesRunTime.boxToInteger:(I)Ljava/lang/Integer;
40: invokevirtual #108 // Method scala/Predef$.println:(Ljava/lang/Object;)V
43: return
Опять суём String как Object, как Object же достаём (18:), потом чекаем, String ли это (21:) и только затем уже работает с этим объектом как со строкой

То есть на уровне байткода, как можно убедиться дженерики в Scala аналогичные дженерикам из Java, тот есть нихуя их там нет, есть лишь объекты оперирующие рефами на Object.
Аноним 13/03/18 Втр 00:46:24  1154826
>>1154751
Ну и зачем ты это высрал сюда?
Ты, блять, кончай тут умничать.
Здесь тебе не тут.

В скале используется специальный костыль, который сохраняет информацию о типах, только и всего.
Там целое кино с рефлексией в скале, заебёшься делать.
Но, тем не менее, информация о типах - сохраняется.

Ещё раз, для особо одарённых - она не "не стирается",
она специально сохраняется, в специальном объекте, и обеспечивает это компилятор скалы, если его хорошо попросить

Аноним 13/03/18 Втр 00:48:59  1154828
>>1154826
ПОЛОЖНЯК ТРЕДА Аноним 13/03/18 Втр 07:53:41  1154901
>Scala
Ненужное говно без задач, язык для быдла, пародия на ФП.
>Haskell
Топовый язык для элиты, подходит для абсолютно любых задач, тру ФП.
Аноним 13/03/18 Втр 08:08:19  1154906
>>1154901
Что то говно, что то говно.
мимо кложа лорд
Аноним 13/03/18 Втр 08:33:53  1154908
>>1154826
>>В скале используется специальный костыль, который сохраняет информацию о типах, только и всего.
>>Там целое кино с рефлексией в скале, заебёшься делать. Но, тем не менее, информация о типах - сохраняется.

Как бы фича ради фичи. В рантайме это никак не помогает, так как JVM похуй. JITу она не поможет сгенерировать более эффективный код (а она могла бы помочь, банально со старта девиртуализовать некоторые вызовы, да удалить лишние кастчеки). Да блин, даже сама scalac всё равно генерирует код с кастчеками и прочим дерьмом. При разбработке же нормальные IDE сами прекрасно могут вывести все типы и проверить их соответствие.
>>Там целое кино с рефлексией в скале, заебёшься делать.
Как бы этим в нормальной разработке особо никто заниматься не будет. Нужно это всё трём с половиной теоретикам. Да кукаретикам, чтобы список "достоинств" скалы раздувать.
Аноним 13/03/18 Втр 09:30:51  1154917
>>1154826
Информацию о дженериках в полях, аргументах и результатов методов можно и в джава коде достать. А вот имея на руках объект класса с дженериком узнать его дженерик нельзя. Покажи мне код, который сделает это на скале, хотя бы с костылями.
Аноним 13/03/18 Втр 12:48:24  1154969
>>1154908
>При разбработке же нормальные IDE сами прекрасно могут вывести все типы и проверить их соответствие.
Это делает компилятор.
То, что мы тут обсуждаем нужно _только_ для рефлексии.

>>1154917
Можно.
https://medium.com/@sinisalouc/overcoming-type-erasure-in-scala-8f2422070d20
https://docs.scala-lang.org/overviews/reflection/typetags-manifests.html
Аноним 13/03/18 Втр 12:50:13  1154970
>>1154906
Ох, лол.
Кложура - язык не для всех, это точно.
Но не по тем причинам, по каким ты думаешь.
Аноним 13/03/18 Втр 15:02:32  1155041
>>1154969
Перечитай там ещё раз. Написать метод, который принимает List[Any] и возвращает то, что там на самом деле - нельзя. А дженерики классов, полей, аргументов и результатов функций так же доступны в джаве.
Аноним 13/03/18 Втр 15:28:08  1155058
>>1155041
>List[Any]
>то, что там на самом деле

Там Any, блядь, или ты чего-то другого хотел?
Ты вообще как-то не так всё это понимаешь (судя по твоему пассажу про IDE).
Извини, у меня сегодня нет настроения нести свет просвещения в массы.
Аноним 13/03/18 Втр 15:55:40  1155089
>>1154970
А по каким?

*мимо?
Аноним 13/03/18 Втр 15:57:16  1155090
>>1155058
Погоди, а если я в метод передал List[Huita], он тоже внезапно Any?
Аноним 13/03/18 Втр 15:57:57  1155092
>>1155089
Блядь, мимо. Другой анон в смысле.

>>1154970
Просто как бы скала тоже язык не для всех, и х-ль - язык не для всех, и на жаваскрипе микроконтроллеры не попишешь. То есть это самоочевидное утверждение, но ты, разумеется, имел в виду что-то другое.
Аноним 13/03/18 Втр 16:50:14  1155120
>>1155092
Я имел в виду, что лисп вообще и кложура в частности, не подходит на роль промышленного языка общего назначения.
Нормальному человеку просто тяжело писать на голом AST.
И, особенно, читать.

Плюс вот эти вот тучи функций на каждый пук - их заебёшься запоминать. Плюс динамика ещё. И макросы.
Ну и так далее. Очень большой оверхед с очень скромным результатом.
Короче - это просто нишевый DSL.

Скала - тоже та ещё хуета, из говна и палок, между нами говоря.
Я выучил её уже давно, и до вполне приличного уровня.
Но, в реале так и не применил ни разу.
Это вещь в себе. А у меня нет таких проектов.

И это очень сложный язык - слишком много языка в языке.
Это плохо для промышленной разработки.
Умственные способности разработчиков тут ни при чём,
это другое.


Вот, просто навскидку:
https://stackoverflow.com/questions/8000903/what-are-all-the-uses-of-an-underscore-in-scala
https://www.slideshare.net/normation/scala-dreaded
И это ещё довольно простая тема, с которой у меня лично нет никаких проблем.

Такие дела.


Аноним 13/03/18 Втр 16:58:44  1155124
>>1155120
Анон, извини конечно, но ты совершенно не разбираешься в вещах, о которых пытаешься рассуждать. В частности, ты либо не понимаешь значения, либо просто некорректно используешь слова "AST" и "DSL". Ну, то есть продолжать обсуждение этой темы на данный момент смысла явно нет.
Аноним 13/03/18 Втр 17:13:50  1155129
>>1155124
Юноша, если вам хочется приключений - это нормально.
Пользуйтесь кложурой и скалой, хуже вам не станет.
Не догоните, так согреетесь.

Я же говорил о промышленной разработке. Когда программа живёт в несколько раз дольше железа, например.

Ну, и полезно помнить, что по этому поводу сказал Дейкстра:
The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague.

Это именно то, что никак не может взять в толк модная хипстота, хлебающая смузи в кофешопах.
Аноним 13/03/18 Втр 17:16:33  1155130
gg
Аноним 13/03/18 Втр 17:26:39  1155134
>>1155129
Анон, повторю еще раз, что из описанных выше высказываний следует твоя некомпетентность в обсуждаемых вопросах, а потому я не вижу смысла продолжать о чем-то говорить - мне это неинтересно. Твой пост ко мне не имеет никакого отношения, а "юношами" ты лучше пацанов у себя во дворе называй.
Аноним 13/03/18 Втр 18:38:32  1155155
>>1155134
Дружище, расслабься, всё нормально.

И всё в порядке с Clojure, на самом деле.
Я довольно давно ею занимаюсь (для развлечения). И довольно неплохо знаю.
Но, применить в реальных проектах (за деньги) так и не получилось. И это меня огорчает.
Аноним 13/03/18 Втр 20:29:00  1155228
>>1155120
> Я выучил её уже давно, и до вполне приличного уровня.
> Но, в реале так и не применил ни разу.
Чет проиграл. Не взяли на работу на скале и теперь рассказываешь, что скала не нужна, найс.

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

>>1155129
> he avoids clever tricks like the plague
Напомню, что тайпклассы, монады, зависимые типы и другие концепции, которые используются в скале, но которых нет во многих других языках - это не tricks, а общепринятые концепции, описанные в куче книг и статей. Если для тебя это tricks, то я тебе советую в универе отучиться, а потом постить в треде для нормальных людей.
Аноним 13/03/18 Втр 20:57:39  1155247
>>1155228
>Не взяли на работу на скале

Всё немножко не так.
В данный момент я сам обеспечиваю себя работой.
И сам решаю, что и на чём будет написано.
В процессе принятия решений - принимаю в расчёт соображения типа тех, которые высказывал старина Эджер.
Как показывает практика - не зря.

На самом деле, довольно много людей получает удовольствие от программирования на скале, но, при этом, не использует её в продакшн.

И да, я бы хотел, чтобы меня "взяли на работу" писать на скале.
Но, не представляю, кто бы это мог быть.
Аноним 13/03/18 Втр 21:06:37  1155254
>>1155247
> И да, я бы хотел, чтобы меня "взяли на работу" писать на скале.
> Но, не представляю, кто бы это мог быть.
В дс переезжай.
Аноним 13/03/18 Втр 22:33:09  1155309
>>1155254
И идти в тинькофф писать крудодрисню для сайта? Охуенное предложение.
Аноним 14/03/18 Срд 15:39:46  1155607
>>1155155
Ну ладно. Просто тогда странно слышать от тебя (factually incorrect) фразы вроде "кложа - это дсл", ну а как выглядит аст можно посмотреть, например, тут: https://github.com/clojure/tools.analyzer

Вдвойне странно слышать рассуждения о синтаксисе в контексте "промышленной разработки". На срок завершения проекта и на количество багов никак не влияет то, пишешь ты f x, f(x) или (f x). Это как раз и есть то самое хипстерство и смузихлебство - "нинравица!1". Подобные вещи нужно оценивать прагматично (объективные профиты дает? дает), а не с точки зрения нравится\не нравится. Да и привыкает к любому из этих вариантов человек максимум за 2 вечера.

Далее, что там было... Тучи функций - опять же, это какая-то хипстота. Если человек собирается писать на языкнейм, то он должен не изобретать велосипеды на каждый чих, а разобраться в стандартной библиотеке. В случае кложи это означает, что ему нужно выучить все функции в core. Просто берешь и учишь, тут нет ничего сложного (на худой конец - под рукой всегда есть читшит). В случае с джавой или скалой ему пришлось бы делать ровно то же самое - только эти функции были бы раскиданы по множеству условных "неймспейсов".

Нытье про динамику в 2018 году вообще странно слышать. Статическая типизация необходима в проектах-монолитах хотя тот же линукс вон как-то пишут на void* - и ничего; но там хуман ресоурсы, конечно, специфические, а у нас тут, типа, облака, сети, микросервисы, привет.

Ну и не лишним, наверное, будет упомянуть, что "лисп вообще" как бы и был в течение некоторого немаленького промежутка времени одним из основных языков "промышленного программирования общего назначения".

Короче, я полностью согласен с утверждением "Кложура - язык не для всех".

Но не по тем причинам, по каким ты думаешь.
Аноним 14/03/18 Срд 18:24:57  1155735
>>1155607
>factually incorrect
Не нужно всё понимать тупо буквально.
Есть метафоры, гиперболы, аллегории и прочая хуйня.

>AST
Ну, концептуально, синтаксис лиспа - это и есть голое AST. Потому, что синтаксиса, как такового, просто нет.
То, что на самом деле это не совсем так, это ничего не меняет в том смысле, в каком я употребил это сравнение.

>DSL
Написание любой программы на лиспе сводится, по сути, к написанию DSL для конкретной задачи.
Или ты будешь с этим спорить?
Ну так вот, лисп - homoiconic.
DSL для написания DSL, лол.
Аноним 14/03/18 Срд 18:34:41  1155744
>>1155735
>метафоры, гиперболы, аллегории
>концептуально
>на самом деле это не совсем так
Угумс.

>синтаксис лиспа - это и есть голое AST.
То есть (f (g x) (h y)) - аст, а f(g(x) h(y)) - уже не аст? Занятненько.

>Потому, что синтаксиса, как такового, просто нет.
Есть. Бнф тебе написать или сам напишешь? Про ридер макросы дать почитать? Вообще, весьма надоела уже эта байка, которую бездумно повторяют, совершенно не задумываясь о значении того, что говорят. К вопросу о хипстерах-смузихлебах, угу.

>То, что на самом деле это не совсем так, это ничего не меняет
Так может тогда попросту не стоит употреблять такие хуевые сравнения, тем более на техническом хоть и для аниме-девочек форуме?

>Написание любой программы на лиспе сводится, по сути, к написанию DSL для конкретной задачи.
Ерунда. Даже хуже: это утверждение не несет вообще никакого смысла. Опять же, на язык просятся хипстеры-смузихлебы.

>DSL для написания DSL
A.k.a. "язык программирования общего назначения".

Все-таки зря ответил.
Аноним 15/03/18 Чтв 18:35:38  1156165
>>1139157
Кстати, подтверждаю. После Идриса впечатления от Скалы - полная инфернальная дрисня. если это кого-то здесь вообще интересует
Аноним 16/03/18 Птн 17:03:15  1156785
Есть смысл вкатываться в скалу? Руби околомидл
В России есть по ней работа? А фриланс?
Аноним 17/03/18 Суб 11:15:07  1157164
>>1156785
> В России есть по ней работа?
Да.
> А фриланс?
хз
Аноним 17/03/18 Суб 16:30:38  1157378
>>1156785
что натолкнуло перейти с руби на скалу?
Мимоджавер, очень сожалею, что пишу веб на компилирцемом языке
Аноним 17/03/18 Суб 16:38:30  1157387
Так-то да, с рубей на кложу вроде логичнее перекатываться. Зато на скалке работу проще найти.
Аноним 18/03/18 Вск 15:23:16  1158264
>>1157378
Ты и тут уже со своими фантазиями отметился, лол.
Может ты как-то не так компилируешь?

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

Если мне нужна динамика - использую Groovy. Раньше использовал JRuby, но отказался от него разлюбил, лол.
Аноним 18/03/18 Вск 15:30:33  1158272
>>1156785
Если _суровая_ статическая типизация тебя не пугает, то давай.
Скала - это статический язык, годно имитирующий динамику.
Но, чтобы понимать, как это всё работает, а не просто тупо писать магический код, придётся постараться.

>>1157387
>с рубей на кложу вроде логичнее перекатываться
Если ты хипстер, то да.
Задрочив руби до потери пульса, они перекинулись на кложуру.

А так - руби и скала - довольно похожи (на уровне запаха кода или типа того).

И некоторые серьёзные руби-бобры таки перекатились на скалу.
Например, Дэвид Поллак, автор книги Beginning Scala.
Он в начале книги очень живописно описывает свой баттхёрт в начале изучения скалы.
Аноним 18/03/18 Вск 15:47:22  1158280
>>1158272
> Если ты хипстер, то да.
> Задрочив руби до потери пульса, они перекинулись на кложуру.
Свят-свят, все бородатые смузипидоры на гироскутерах съебали в ноду, в кложе они нахуй даром никому не нужны.
Аноним 18/03/18 Вск 15:51:23  1158284
>>1158272
>Если ты хипстер, то да.
Как там в 2012?

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

>И некоторые серьёзные руби-бобры таки перекатились на скалу.
Я и не спорю. Скала - тоже хорошо. Но СЛОЖНА и НЕНУЖНА!!1
Аноним 18/03/18 Вск 15:51:27  1158285
>>1157378
Да ну не то чтобы я конкретно перекатываюсь, даже наоборот. Просто решил пополнить слегка коллекцию скиллов чтобы потом на собесах выебоны кидать
Аноним 18/03/18 Вск 15:55:13  1158291
>>1158284
>руби - это лишп без скобочек
По мне, скорее Perl
Аноним 18/03/18 Вск 16:32:57  1158307
И да, я забыл сказать, что Дэвид Поллак, перекатившийся с руби на скалу, это тот самый чел, который потом придумал лифт.
Так благотворно на него подействовал живительный скала-баттхёрт.
Аноним 18/03/18 Вск 16:33:09  1158308
>>1158291
>Matz: Ruby is a language designed in the following steps: take a simple lisp language (like one prior to CL). remove macros, s-expression. add simple object system (much simpler than CLOS). add blocks, inspired by higher order functions. * add methods found in Smalltalk.
Аноним 18/03/18 Вск 18:42:27  1158409
>>1158308
> remove macros
и сразу в помойку такого калеку.
Аноним 18/03/18 Вск 18:53:58  1158425
>>1158409
Ну, это уже к Матцу, не ко мне.
Аноним 19/03/18 Пнд 00:26:49  1158642
cbbvc
Аноним 20/03/18 Втр 00:47:15  1159328
>>1158264
я и еще парочка таких же дебилов хотя бы джава тред расшевелили, а то последние месяца три он в тотальном упадке
Аноним 23/03/18 Птн 14:53:28  1161286
Собираюсь вкатиться в Scala и Clojure, раньше писал только на C/C++ и Python. Посоветуйте какой-нибудь курс по Java, чтобы после него было ясно, что происходит с JVM в этих ваших скалах, желательно с сертификатами чтобы на фрилансе индусировать в случае чего
Аноним 23/03/18 Птн 15:28:28  1161299
>>1161286
+1
Аноним 23/03/18 Птн 16:37:17  1161327
>>1161286
>Собираюсь вкатиться в Scala и Clojure
>Посоветуйте какой-нибудь курс по Java
Ну охуеть.

Я так и не понял: тебе нужно про устройство jvm что-то? Или ты хочешь сначала вкатиться в тырпрайс на джаве? Или тебе просто сертификаты нужны?

Сертификаты у оракла, гугли. В джаву через thinking in java и доки можно вкатываться.
Аноним 23/03/18 Птн 16:59:54  1161346
>>1161327
> Я так и не понял: тебе нужно про устройство jvm что-то
Ну смотри, я на жабе сейчас даже хелло ворлд не смогу написать, но хочу писать на скале. Мне же ведь нужно хотя бы примерно понимать, на чём скала построена, как в случае чего тюнить jvm, чё у неё вообще внутри и так далее.

> Или ты хочешь сначала вкатиться в тырпрайс на джаве? Или тебе просто сертификаты нужны?
тырпрайс и сертификаты (а я имел в виду что-то вроде курсеровских) - это на крайний случай, чтобы можно было на апвёрке с раджешами конкурировать.

> В джаву через thinking in java и доки можно вкатываться.
Ок заебись, уже хорошо, но хотелось бы именно курс с заданиями.
Аноним 23/03/18 Птн 17:13:06  1161359
>>1161346
>курс с заданиями.
Ну, на курсере вроде алгоритмы от принстона на джаве, но это курс про алгоритмы, а не про джаву, разумеется. Но тащем-то почему бы и нет. Там же проходи интро ту фанкшнл програмин от одерски.
Аноним 23/03/18 Птн 17:18:19  1161363
>>1161359
> Ну, на курсере вроде алгоритмы от принстона на джаве, но это курс про алгоритмы, а не про джаву, разумеется.
Ок, а чисто про джаву и её экосистему есть?
Аноним 23/03/18 Птн 19:32:20  1161435
>>1161363
Я не уверен, что среди джавистов особенно популярны видосики. Читай документацию.
Аноним 24/03/18 Суб 10:07:39  1161653
>>1161346
> Мне же ведь нужно хотя бы примерно понимать, на чём скала построена, как в случае чего тюнить jvm, чё у неё вообще внутри и так далее.
Можно почитать jvm specifiсation, еще на всяких хабрах и реддитах периодически постят что-нибудь про то, как тюнить жвм, на чем писать бенчмарки и т. д.

Вообще начинай сразу со скалы, джаву выучишь в процессе, там учить нехуй (если говорить о самом языке, а не о jvm).
Аноним 24/03/18 Суб 10:11:22  1161654
>>1161363
В экосистеме джавы очень много древнего индусского говна типа сервлетов, спрингов, и т д, где у авторов библиотек вместо мозга AbstractSingletonProxyFactoryBean. Тебя из экосистемы джавы должны интересовать только java se и jvm. Туторилы по классам из java se есть на сайте оракла + сорцы этих классов читай, полезное занятие.
Аноним 24/03/18 Суб 11:07:02  1161669
>>1161346
>> Мне же ведь нужно хотя бы примерно понимать, на чём скала построена, как в случае чего тюнить jvm, чё у неё вообще внутри и так далее.

Если любишь видосики то:
https://www.youtube.com/watch?v=1XV88X3ugiM
https://www.youtube.com/watch?v=-fcj6EL9rc4
https://www.youtube.com/watch?v=iGRfyhE02lA
https://www.youtube.com/watch?v=iB2N8aqwtxc
https://www.youtube.com/watch?v=oYu3HuIYDhI

Если сразу хочется чего по-жёстче, то
https://docs.oracle.com/javase/specs/jvms/se10/jvms10.pdf
Аноним 24/03/18 Суб 12:08:16  1161712
YakovFajnProgra[...].jpg (22Кб, 200x260)
>>1161346
Ага, вот пикрил. Там и задания тебе, как вы любите.
Аноним 24/03/18 Суб 12:44:52  1161724
>>1161653
>>1161654
>>1161669
Спасибо.
Аноним 24/03/18 Суб 12:45:09  1161725
>>1161712
> Ок заебись, уже хорошо, но хотелось бы именно курс с заданиями.
hexlet.io (я лично не пробовал но вдруг тебе надо НА РУССКОМ)
udacity
да там платно, но более эффективное обучние. ты гораздо больше денег-времени потратишь читая книжки.
Аноним 24/03/18 Суб 13:36:07  1161747
>>1161725
> вдруг тебе надо НА РУССКОМ
Не, мне как раз-таки надо наоборот.

> да там платно, но более эффективное обучние. ты гораздо больше денег-времени потратишь читая книжки.
Согласен. Скажи, какой конкретно курс по яве порекомендуешь для продолжающего? Как-то странно мне будет после нескольких лет зарабатывания денег питоном снова слушать объяснения того, что такое условия и for лупы.
Аноним 24/03/18 Суб 19:50:21  1161970
>>1138542
Съеби. Выразил одобрямс ораклам.
мимоджаваёб
Аноним 24/03/18 Суб 22:35:12  1162070
Кто знает этого функционального петушка, это трап что ли???

https://www.youtube.com/watch?v=fLsTPHDWoF0
Аноним 24/03/18 Суб 22:47:31  1162079
>>1162070
Нет, просто дородная рязанская бабища. Видел ее в видосиках с кложетусовок.

Там же написано:
>Born into an aristocratic Russian-German family
>aristocratic Russian-German family
Аноним 24/03/18 Суб 22:52:46  1162084
>>1162079

И что? Гермашка же гейропа.
Аноним 24/03/18 Суб 23:03:09  1162089
Блять, чего-то у меня хуй встал на этого Bodil.
Аноним 24/03/18 Суб 23:19:42  1162101
>>1162084
А Рязань - нет.
Аноним 24/03/18 Суб 23:30:24  1162107
>>1162079

Там дальше написано, что он шарлатан

> derided as a fraudulent charlatan by critics
Аноним 25/03/18 Вск 02:06:59  1162140
>>1162107
autism intensifies
Аноним 08/04/18 Вск 14:00:26  1170111
Програмач, как на скале правильно сделать следующее:

загрузить инфу с нескольких тысяч пронумерованных АПИ эндпоинтов (api/page/1; api/page/2 и т.д) и положить в файл в порядке нумерации, при этом (по возмжности) не держа в памяти все ответы АПИ.

Основная проблема, заключается в том, что мне нужно загружать данные параллельно, но обрабатывать их я хочу последовательно.

Я создаю стек с Future и потом по мере готовности заливаю резалты в файл, т.е как только future result оказывается в файле, future убирается со стека и может быть очищено gc. Тем не менее, меня не покидает мысль что это какой-то не Scala-way, как минимум потому что я использую mutable data structures. Я пытался приладить к этой задаче стримы, но что-то каждый раз получается немного не то. Как бы решал эту задачу функциональщик, в какую сторону смотреть?
Аноним 08/04/18 Вск 14:43:17  1170128
>>1170111
А как ты собираешься эффективно класть в файл твои респонсы в порядке нумерации, если в память они не влазят, а очередность их прихода не определена?
Аноним 08/04/18 Вск 19:54:51  1170289
>>1170128
Да, пожалуй я хочу невозможного, буду думать что поменять концептуально.
Аноним 08/04/18 Вск 20:05:42  1170297
>>1170111
Параллельно запрашивай ендпоинты и сри данные в отдельную БД, которая нормально дружит с конкурентностью (то есть всякие sqlite мимо). Обязательно индексируй номер страницы api или по какому порядку ты захочешь записывать данные, чтобы при селектах не делать фулл скан каждый раз.

Как закончишь выгрузку в БД - выгружай оттуда данные в нужном тебе порядке и записывай куда надо хоть последовательно, хоть на голове.
Аноним 08/04/18 Вск 20:06:14  1170299
>>1170289
Складывай в какую-нибудь легкую базу, а оттуда по крону сливай в упорядоченный файлик, например. У тебя же нет жестких ограничений по времени?
Аноним 08/04/18 Вск 20:14:07  1170309
>>1170299
Можно загружать данные батчами - паралелльно делать 50 запросов, по заполнению батча, сортировать его в памяти, писать в файл и поехали со следующим батчем.
Аноним 08/04/18 Вск 20:29:36  1170330
>>1170309
Ну тебе же все равно придется потом джойнить и сортировать батчи в отдельном процессе.
Аноним 08/04/18 Вск 20:41:43  1170342
>>1170330
Зачем? То, что я предложил - работа для одного функционального чейна.
> джойнить и сортировать батчи в отдельном процессе
Конкурентно заполняется буфер энного размера. По заполнению буффера, буфер сортируется и высирается в файл. Повторить до окончания.
Аноним 08/04/18 Вск 22:31:13  1170410
>>1170342
Допустим, тебе пришли данные: 42, 0, 1, в таком порядке. В какое место в итоговом файле ты запишешь 42, когда получишь его?

Возможно, я овергенерализирую задачу, и тебе на самом деле параллелизация нужна только внутри чанков, а сами чанки линейные - так?
Аноним 09/04/18 Пнд 01:08:52  1170501
>>1170410
>Допустим, тебе пришли данные: 42, 0, 1, в таком порядке. В какое место в итоговом файле ты запишешь 42, когда получишь его?
Сяду на хуи, мать на колени посажу.
Аноним 13/05/18 Вск 11:54:05  1189034
Как найти работу на скале, если везде просят коммерческий опыт 1-3 года? Сейчас работаю джавером. Если у меня будет коммерческий опыт 1-3 года джавы, а скала чисто для себя. Есть шансы устроиться? Или нужно валить из джавы и изо всех сил пытаться найти хоть какую работу на скале?
Аноним 13/05/18 Вск 12:39:09  1189059
>>1170410
> Конкурентно заполняется буфер энного размера. По заполнению буффера, буфер сортируется и высирается в файл.
Аноним 13/05/18 Вск 20:21:30  1189338
>>1189034
Обычно просят опыт и на других языках, если не получается, то просись на скалишный проект на работе, только будь готов, что твой прежний опыт работы на других языках мало чего значит
Аноним 13/05/18 Вск 22:00:19  1189413
>>1189338
>олучается, то просись на скалишный проект на работе, только будь готов, что твой прежний опыт работы на других языках мало чего значит
Я бы с радостью попросился на скалишный проект на работе, да только у нас скала не используется вообще, за ненадобностью
Аноним 14/05/18 Пнд 01:02:48  1189462
>>1189034

Я хз как там у вас принято, но в Минске практически все вакансии требуют 1-3 года опыта и отличное знание огромного стека технологий, вот только на проверку оказывается что готовы и собаку взять. Рассылай просто резюме туда-сюда да и всё. Валить вникуда не очень идея с точки зрения карьеры, коммерческого опыта от сидения на жопе дома точно не появится.

>>1137321 (OP)
Вопрос по скале к мудрым анонам:

Осваиваю play framework (2) с ebeans, в попытках избежать тонн боилерплейта хочу написать единственный CRUD контроллер, который будет работать со всеми моими моделями:

> class GeneralCRUDController[T <: Model with HasId]

Дальше делаю вот так:

> def delete(id: Long) = Action {implicit request: Request[AnyContent] =>
> val c = Ebean.delete(classOf[T], id)
> Ok("success")
> }

и получаю
> class type required but T found.
да, я не оч понимаю дженерики

нагуглил что это можно обойти через ClassTag и runtimeClass,
но тогда используется рефлекшен и теряется смысл типизации, возрастает сложность дебага, скорее всего снижается скорость работы, да и просто я не люблю рефлекшен

Как мне выходить из этой ситуации? Может мой подход изначально неверен?
Доп. вопрос, как я понимаю в play framework 1 был коробочный CRUD. Во втором коробочного CRUD-а нету. Есть ли какая-нибудь адекватная замена, чтобы прямо прописал 2-3 конфига по мануалу и всё работает как по-волшебству?




Аноним 14/05/18 Пнд 01:26:11  1189468
>>1189462
Не понял, а как ты без рефлекшна собрался диспатчиться по неизвестному типу объекта? Или как этот Ebean.delete(classOf[T] ...) должен работать?

мимо
Аноним 14/05/18 Пнд 09:01:36  1189517
>>1189034
Пилишь что-то на скале для себя, в резюме пишешь, что использовал скалу на работе, что ты как маленький?
Аноним 14/05/18 Пнд 19:15:33  1189790
>>1189462
>classOf[T]
>class type required but T found.
Добро пожаловать в JVM, братишка)
type erasure
Аноним 14/05/18 Пнд 20:49:22  1189858
>>1189790
F-bound polymorphism спасает, ебанько. Не надо кукарекать тут про type erasure
Аноним 19/05/18 Суб 17:42:42  1192781
SergeiKorolevat[...].jpg (60Кб, 305x500)
Почаны, что скажите про korolev? Хочу вкатиться в скалу ради этого дерьма. Какие подводные камни?
Аноним 19/05/18 Суб 18:12:14  1192789
>>1192781
gwt\vaadin reinvented again
Аноним 19/05/18 Суб 18:14:20  1192791
>>1192781
Алсо, их сайт документации (я так понимаю, он на этом фреймворке и сделан) у меня безбожно тормозит. Каждый клик по любому линку вызывает раздражающее мигание всей страницы.
Аноним 19/05/18 Суб 18:29:14  1192802
>>1137321 (OP)
>>Лучший язык для JVM
Groovy
Аноним 19/05/18 Суб 18:39:50  1192810
>>1192802
Нет.
Аноним 19/05/18 Суб 19:35:25  1192845
>>1192802
У тебя в слове Kotlin 5 ошибок.
Аноним 19/05/18 Суб 21:55:44  1192933
>>1192845
Котлиномакаки даже считать не умеют, лол.
Аноним 19/05/18 Суб 22:59:50  1192957
>>1192789
>reinvented
на самом деле нет, там значительные отличия. гвт\ваадин\зкос это генерелки жс кода.
королев же отправляет на сервер только дифы(то что изменилось) и жс он не генерит из-за чего клиент получается очень маленьким по объему + т.к. нет никаких скрытых полей мы получаем безопасность из коробки(никто не выгрузит в жсоне твои данные просто потому что лень править дто)
Аноним 19/05/18 Суб 23:04:35  1192963
>>1192791
https://fomkin.org/ этот? у меня он хорошо работает, но из-за специфики работы этой либы такое может быть, попробуй померить пинг до него, думаю если не больше 100 должно быть ок всё.
Аноним 20/05/18 Вск 00:11:15  1193000
>>1192963
Стоп, я был неправ и полную хуйню сказал, извиняюсь.

Я кликнул на их апидоки и даже не посмотрел, что они на жавадок.ио, так что disregard that. Алсо, если это не очередной гвт, тогда интересно. Завтра читну их пдфку, если не лень - распиши пока вкратце, как именно оно работает. Ты имеешь в виду, что жс-код у них фиксированный, с сервера прилетает только наполнение, по которому он генерит страницу? Я подобный подход видел у кложурцов, там один чувак именно так генерил спа из описания на edn edn - это более лучший жсон, если что и хуков в логику. Но у него эта шняга была внутренней и не опенсорсной, как я понял. Если тут та же идея - это прикольно.
Аноним 20/05/18 Вск 00:14:18  1193001
Хотя, блядь, посмотрел сейчас первый попавшийся пример - пиздец, нет, там обычный темплейтинг на сервере, причем еще и адовый говнокод: https://github.com/fomkin/korolev/blob/master/examples/simple/src/main/scala/SimpleExample.scala - пиздец
Аноним 20/05/18 Вск 00:39:35  1193008
>>1193000
>>1193001
ну да там своя либа для генрации хтмл из скала-кода + при каком либо запросе изменений с фронта от сервера уходит не вся страничка, а только то, что поменялось. Всё это общается через вебсокеты.
Незнаю почему ты так категоричен, там в эту простыню достаточно много функционала запихано(и никто не мешает делать универсальными и переиспользывать компоненты).
Попробуй представить каким был бы код если делать все это классическим крудапи + вебпетушение с жсом.
Аноним 20/05/18 Вск 13:45:44  1193251
>>1192933
Дебил неспособен даже o в словах находить.
Аноним 20/05/18 Вск 15:24:52  1193368
>>1189468
Ну вот пример из доков (на Java):
> Ebean.delete(Order.class, 12);

Т.е передаётся класс и айдишник. Я пытаюсь сделать тоже самое, но на скале и с дженериком, т.к не хочу писать много бойлерплейта. Моя попытка:
> class A[T] ....
> def foo(id: Int) = { ...
> Ebean.delete(classOf[T], id)

Рефлекшен разумеется есть, но он, как я понимаю, спрятан внутри Ebean, что меня целиком устраивает. В своём коде я рефлекшена иметь не хочу, а в библиотечном не против.

>>1189462
И всё же, как правильно крудошлёпить в этой вашей скале (желательно на Play 2)?
Чтобы создать подобие админки мне нужно на каждую таблицу из БД делать по дао и контроллеру? Это выглядит как-то очень уж монструозно.
Аноним 20/05/18 Вск 15:35:41  1193376
>>1193368
https://github.com/pauljamescleary/scala-pet-store

Как правильно крудошлепить
Аноним 20/05/18 Вск 16:00:55  1193399
>>1193368
Если тебе нужно где-то взять класс, чтобы засунуть в такую либу, ты уже так и так связался с рефлекшном, расслабься. Чем тебя не устраивают тайптеги или что там у вас в вашей скале? Такой дженерик можно и на обычной джаве разрулить, через подклассы с указанием конкретного типа.

мимоджавист
Аноним 20/05/18 Вск 18:28:43  1193494
>>1193251
Во-во, да еще и считать не умеет.
Аноним 07/06/18 Чтв 09:59:44  1204468
Бампану тред по лучшему языку программирования в мире

Расскажите аноны, как вкатывались? Что читали, что кодили?
Аноним 07/06/18 Чтв 13:18:25  1204612
>>1204468
Я вкатывался с жабы, читал хортсмана, но чтобы норм кодить очень желательно прочитать essential scala + programming in scala одерского. Ну а так мне немного повезло, нашёл вакансию, где брали без опыта работы на скале. На работе можно сказать и научился
Аноним 10/06/18 Вск 02:04:00  1206852
Анон с пятью годами опыта работы на скале в треде. Плюс полтора года на C#. Спрашивайте свои ответы.
Аноним 10/06/18 Вск 02:05:15  1206856
>>1206852
Хуи сосешь?
Аноним 12/06/18 Втр 13:31:47  1208298
Скалисты, я Джава прогер. Хочу Скале поучиться. Но с математикой не очень дружу (лямбды в джава знаю). Ну так вот на курсах во всяких курсерах, юдасити по скале и в книжках математическая часть объясняется или по умолчанию считается что я ее знаю?
Аноним 12/06/18 Втр 14:59:29  1208340
>>1208298
Не рекомендую с курсов начинать. Пиши как на better java первое время, а дальше само зайдёт

Ну и https://gist.github.com/d1egoaz/2180cbbf7d373a0c5575f9a62466e5e1
Аноним 12/06/18 Втр 15:17:10  1208349
>>1208340
Но better java это котлин.
Аноним 12/06/18 Втр 15:17:43  1208351
>>1208340
под better java ты имеешь в виду без функциональщины?

>https://gist.github.com/d1egoaz/2180cbbf7d373a0c5575f9a62466e5e1
Хорош, спасибо
Аноним 12/06/18 Втр 15:43:45  1208386
>>1208351
Да, все так. В фп успеешь в катиться ещё

>>1208349
Уходи
Аноним 13/06/18 Срд 13:29:06  1208947
>>1206852
за 5 лет хоть раз юзал return/while/var?
Аноним 13/06/18 Срд 22:00:08  1209373
>>1208947
Нахуя?
Аноним 17/06/18 Вск 18:33:32  1211891
>>1208947
Отвечаю не за 5 лет, а за 5 месяцев:
return -- да, удобно использовать как выход из функции если функция дохера большая.
while -- нет, но он и в других языках на которых доводилось писать не очень уж часто используется, гораздо реже for var -- да, иногда удобнее сделать мутабельную переменную (что возможно связано с тем, что у меня на скале небольшой опыт, может со временем пройдёт), а ещё сталкивался с Ebean ORM, которая требует объявлять поля как var.

Более интересный вопрос подобного плана: зачем нужна конструкция for (seq) yield {action} ? Разве её нельзя во всех случаях заменить на seq.map(action), или seq.filter(...).map(action)?

Перехватывая эстафетную палочку, задаю свой вопрос:
Кто-нибудь пробовал Scala.js? Как ощущения?
Пилю свой прожект, очень не хочу писать фронт на жабаскрипте, поковырял Scala.js, выглядит вроде норм, но в туториале они предлагают складывать html файлы в корневую папку и делать в них дебильные пути к скриптам, вроде: ../target/scala/... Класть html в target тоже по смыслу не подходит. Эта ситуация мне совсем не нравится. Как потом эту чушь двигать на продакшен? Руками копировать файлы куда-то? Запихивать выборочно директории в докер контейнер?
Аноним 17/06/18 Вск 18:49:12  1211913
>>1211891
Не слышал, чтобы кто-то вообще использовал scala.js в продакшне. Если хочешь нормальный язык на клиенте - бери кложескрипт (или ризон, если хочется чуть больше приключений).

>складывать html файлы в корневую папку и делать в них дебильные пути к скриптам, вроде: ../target/scala/...
А чо, ты в сбт не можешь прописать какой тебе нужно путь для жс-выхлопа компайлера? Не вижу ничего криминального в том, чтобы хуярить дев-билды в public/js (на прод-билде оно все подтирается). Ну то есть типа КОНЦЕПТУАЛЬНО более лучше было бы держать в public только условный app.js, в который в зависимости от билда либо вхуяриваются пути к дев-коду в ../target/, либо пихается минимизированный прод-код, но на практике-то никакой разницы нет, так что не вижу смысла об этом задумываться вообще.

мимо
Аноним 17/06/18 Вск 21:51:28  1212036
>>1208947
Очень редко.
var - пару раз в тестах для инициализации состояния, иногда в акторах и в итерторе-адапторе для какой-то джавовой структуры.
while - тоже для интеропа с джавой, стрим там прочитать и все такое.
return - раньше использовал как guard, то есть для кода вида if (cond) return value в начале функции, сейчас перешел на if/else if - проще скаластайлом проверять.
>>1211891
>зачем нужна конструкция for (seq) yield {action} ? Разве её нельзя во всех случаях заменить на seq.map(action), или seq.filter(...).map(action)?
Заменить можно, но for-comprehensions нужны в основном для соединения двух и более монадических операций (без них пришлось бы писть портянки вложенных flatMap-ов) и было бы странно не иметь for для одной операции имея его для нескольких. Я сам всегда использую map/filter/foreach вместо for если получается и всегда for нужно писaть flatMap два раза.
>Кто-нибудь пробовал Scala.js? Как ощущения?
Пробовал, написал на scalajs-react простой UI для системы мониторинга. До этого (и после) никогда не работал с фронтендом, так что сравнивать мне не с чем. Могу только сказать что на Scala.js можно писать сложные приложения и есть даже какая-никакая экосистема.
Проблемы с путями наверняка можно пофиксить правильными настройками sbt.
Аноним 18/06/18 Пнд 15:32:25  1212466
>>1211891
>return -- да, удобно использовать как выход из функции если функция дохера большая.
я хоть на скале всего полгода, но если тебе нужен return, значит ты неправильно построил свою ф-цию
У меня лично на работе строго функциональный стиль, ни одного вара, вайла, ретёрна за всю работу
Аноним 18/06/18 Пнд 17:05:14  1212587
>>1212466
на java же платят больше, а гемора меньше, да.
Аноним 18/06/18 Пнд 19:27:18  1212670
>>1212466
> но если тебе нужен return
Мимокрокодил
Вы что ли аргументы по ссылку передаете или как? Почему return нельзя?
Аноним 18/06/18 Пнд 20:13:22  1212707
>>1212670
Он наверное имел в виду, что ретурн прерывает исполнение функции, из-за чего у нее возникает больше одного execution path'а или как это правильно назвать, что не очень-то функционально и обычно использовалось в языках с разделением на statements и expressions.
Аноним 18/06/18 Пнд 20:16:40  1212711
>>1212707
Мне кажется, функциональщики страдают фанатизмом, как, например, рьяные фанаты ООП. Усложнять код ради концепции - гиболое дело.
Аноним 18/06/18 Пнд 20:56:21  1212751
>>1212711
Эм, так суть описанного как раз в том, чтобы НЕ усложнять код множественными точками возврата.
Аноним 18/06/18 Пнд 21:25:56  1212776
>>1212751
Блять, я подумал, а вы правы.
Аноним 19/06/18 Втр 02:10:04  1212999
Реально ли найти работу на Scala без бэка в Java?
Аноним 19/06/18 Втр 07:28:02  1213021
>>1212999
Лучше учить Spring и Hibernate. Зачем тебе эта Scala?
Аноним 19/06/18 Втр 10:30:03  1213058
>>1212999
Да, я перекатился в джавку с нулём опыта на яве и вообще ничего не зная про. JVM
Аноним 19/06/18 Втр 10:30:26  1213059
>>1213058
Тьфу ты, в скалку
Аноним 19/06/18 Втр 10:32:04  1213060
>>1212999
>>1213021
Не слушай его. Джаву сейчас любая макака знает и спрос соответствующе обратный. Учи Скалу, анончик. И работу найти реально.
Аноним 19/06/18 Втр 10:48:31  1213067
>>1213060
Ну подожди. Как это "любая макака знает"? Нужно хорошо учить, как в Яндексе.
Аноним 19/06/18 Втр 13:04:39  1213140
В чем преимущество скалы? Она что ли быстрее явы или что?
Аноним 19/06/18 Втр 13:45:21  1213160
>>1213140
После того как вышлел Kotlin - ни в чем.
Аноним 19/06/18 Втр 13:45:59  1213161
>>1213160
Ты про это сахарное говнище? Хз, даже ява лучше.
Аноним 19/06/18 Втр 14:15:02  1213175
>>1137321 (OP)
Но ведь гоудауны просто унизят и обоссут скалиста, как дело коснётся конкаренси и распределённых систем. Он будет забитый, сидя в углу обосссаный, дрожащими ручонками ковырят свою Акку, рыдая кричать "а... аа.. а увас генериков нет даже! у... у нас продвинутая система типо...". Но не успеет закончить, так как поймает смачный пендаль в ебальник, и будет наблюдать как его любимую Акку ебет божетсвенный CSP гошечки, не оставляя ей никаких шансов.
Аноним 19/06/18 Втр 14:28:42  1213178
>>1213175
Тем более можно писать и на goвне в функциональном стиле, просто без таких изъебов как в скуле.
Аноним 19/06/18 Втр 14:28:46  1213179
go.jpg (76Кб, 738x625)
>>1213175
Аноним 19/06/18 Втр 14:34:06  1213181
>>1213179
Ну не надо этого... ну серьёзно, скалоёб взгляни правде в лицо, твое поделие работает поверх JVM, а это дно. У вас, блядь, даже либы по работе с БД блокирующие (привет jdbc) о чём тут говорить вообще.
Аноним 19/06/18 Втр 14:37:45  1213183
>>1213181
А ПОЧЕМУ ТВИТТЕР ПЕРЕВЕЛ НА СКАЛУ?????????????????????77777777777777
Аноним 19/06/18 Втр 14:41:56  1213185
>>1211913
>Если хочешь нормальный язык на клиенте
Все равно остальное лишь обертка над ним.
Аноним 19/06/18 Втр 16:25:18  1213211
>>1213175
В тред заходит эарланго-господин и запускает 10к процессов по обоссыванию го-дебила.
Аноним 19/06/18 Втр 16:52:41  1213230
mj-laughing.gif (4256Кб, 320x240)
200.gif (203Кб, 341x200)
tumblrinlinentj[...].gif (916Кб, 245x183)
>>1213175
>Но ведь гоудауны просто унизят и обоссут скалиста
Аноним 19/06/18 Втр 17:19:31  1213253
>>1213211
Эликсиро-господин поглаживает бороду, сидя в антикафе, и респектует.
Аноним 19/06/18 Втр 17:21:22  1213254
>>1213230
На второй гифке в конце противно выливается пивас.
Аноним 20/06/18 Срд 02:02:16  1213498
>>1212999
Однозначно да. Джава-бэкграунд является плюсом из-за твоей потенциальной возможности поковыряться в кишках какого-нибудь легаси проекта. Но сейчас скала ― это полностью самостоятельный язык со своей экосистемой. Знание джавы уже несколько лет не обязательно для скалистов.
Аноним 20/06/18 Срд 11:10:05  1213576
>>1213211
потом 10к раз отсасывает на реальных задачах, где действительно нужен большой конкаренси и распределённая структура. потому-что эликсиром пользуется толлько руби-хипсторы. ладно дадим шанс эликсиро-господам вынуть хуй из рта:
даже у жвм-старья есть hazelcast, kafka, ignite. Годауны размахивают consul, etcd, nsq, groupcache, NATS (пытается ссать на кафку, но пока мимом). Что есть у эликсиродебилов? нихуя, только рэббит, но он на эрланге, так так нормальный челвоек такой хуйнеё как эликсир обмазываться не будет.
Аноним 20/06/18 Срд 13:24:03  1213629
>>1213576
Нихуя у тебя манямирок, бротишь)) Земля тебе пухом)))
Аноним 20/06/18 Срд 13:46:18  1213645
>>1213629
Это реальность, назови примеры известных решений в области распределённых систем на эликсире.
Аноним 20/06/18 Срд 13:51:47  1213651
>>1213576
>даже у жвм-старья
Братишка ну ты долбоеб сравнивать устоявшуюся популярную платформу, которая старше тебя и язык, который появился 7 лет назад.
Аноним 20/06/18 Срд 14:41:17  1213682
>>1213058
>>1213060
>>1213498
Спасибо аноны, попробую поковыряться.
Аноним 20/06/18 Срд 14:50:35  1213688
>>1213682
Усложню вопрос. Есть вообще реальный шанс найти работу на Scala без опыта в промышленной разработке? Или лучше всё-таки начать с какого-нибудь Python или Java?
Аноним 20/06/18 Срд 15:25:32  1213702
>>1213576
Ты в курсе, что еликсир - это нескучный синтаксис для ерланга, да?
Аноним 20/06/18 Срд 15:31:36  1213708
>>1213702
>Ты в курсе, что еликсир - это нескучный синтаксис для ерланга, да?

В курсе. И что в эриксоне эрланг за сраные сервисные сообщения железок отвечал и весь хайлоуд там был только в мифах и головах нонешних некрохипстушков - тоже.
Аноним 20/06/18 Срд 15:33:12  1213711
>>1213708

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


Весь хуйлоуд эрланга - это выдумки хипстопетушков.
Аноним 20/06/18 Срд 15:42:44  1213719
>>1213651
Ты ебанулся? Если жвм старше тебя, то ты школьник ебаный (в любом случае еще опарыш), оно 1995 года.
Аноним 20/06/18 Срд 16:02:12  1213735
>>1213719
Школьникам 95 года уже по 23 года, они уже помидорками работают.
Аноним 20/06/18 Срд 16:03:04  1213736
>>1213711
Про WhatsApp который целиком на эрланге и у которого овердохуя серверов ты не слышал?
Аноним 20/06/18 Срд 16:10:51  1213740
>>1213711
У LoL мессейджинг на ерланге. Jabberd на ерланге. Алсо, https://en.wikipedia.org/wiki/Erlang_(programming_language)#Usage
Аноним 20/06/18 Срд 16:33:19  1213751
>>1213736
Хорошь соскакивать, так про любую закрытую херню можно сказать, а мол в корпорации X это работает на Y. Это всё хуйня и не имеет возможности верификации. Давай рассуждать логически, если язык/платформа збс для чего либо, то на ней будут достойные открытые проекты, на эрланге нет нихуя кроме кролика. Это наводит на мысль, что анон прав по поводу "хуйлоуд эрланга - это выдумки хипстопетушков".
Аноним 20/06/18 Срд 18:34:17  1213898
>>1213576
>consul, etcd, nsq, groupcache, NATS
Я правильно понимаю, что главное достижение годебилов это написание распределенного key-value хранилища и message broker?
Аноним 20/06/18 Срд 18:57:36  1213926
>>1213751
>то на ней будут достойные открытые проекты, на эрланге нет нихуя кроме кролика
Про OTP слышал?
Аноним 20/06/18 Срд 22:35:38  1214127
Прочитал Programming in Scala Одерски, Functional Programming Principles in Scala и множество всяких мелких статей и блогов.
Чтобы ещё навернуть? Про SICP и Кормена даже не упоминаю.
И как попрактиковаться?
Аноним 20/06/18 Срд 23:28:16  1214180
>>1213926

>ряяяя а у нас есть фреймворк, ряяяяя сажу вьебу

И где проекты на нем, м, уеба?
Аноним 20/06/18 Срд 23:42:14  1214197
>>1213688
На собственном опыте проверено, что есть.

Но тут важный момент, где ты живёшь. Если ДС или ДС2, то куча компаний хайрит джуниоров. Причём джунов рассматривают как с минимальным опытом в других областях, так и без. Если в мухосрани, то извините.

Мониторь hh, линкедин, сообщества скалистов в телеграме (там вся движуха).
Аноним 20/06/18 Срд 23:52:37  1214210
>>1214127
Scala with Cats, Effective Akka, Scala High Performance Programming.

Для практики можешь решать задачки с exercism.io. А можешь написать движок для блога. А можешь поконтрибьютить простенькие таски в проекты на гитхабе.
Аноним 21/06/18 Чтв 01:37:26  1214298
facepalm.jpg (25Кб, 530x309)
>>1214180
>ряя нет нихуя фреймворков опенсорса
>>есть
>ряяя а где проекты на этих ваших фреймворках опенсорсных
>>вот
>ряяяяя а откуда ты знаешь что он именно на нем а ты код видел
>>пикрелейтед
Аноним 21/06/18 Чтв 02:05:57  1214318
Paddington-2.jpg (786Кб, 2880x1800)
>>1214197
Спасибо тебе анон! Ты меня убедил попробовать. Я сам из мухосрани, но морально готов перебраться в ДСы джуном ради нормальной интересной работы, да и небольшая денежная подушка безопасности есть на первое время, чтоб с голодухи не помереть.
Аноним 21/06/18 Чтв 02:24:44  1214328
>>1214298
Куколд, плиз. Докажи, что там именно этот фреймворк используется.
Аноним 21/06/18 Чтв 07:46:09  1214368
>>1213645
Discord
Аноним 21/06/18 Чтв 08:15:06  1214374
>>1214368
У них львиная для профита благодаря кассандре вместо бд. Т.е. все эти ваши хайлоады на себя берёт банальная жаба. А писать в неё можешь хоть на js.
Аноним 21/06/18 Чтв 08:35:23  1214385
>>1214374
>>1214328

Вы хоть понимаете, что ведете себя ровно как секта свидетелей плоской земли?

Но они хотя бы просто жирно траллят, а вы на полном серьезе такие мудаки.
Аноним 21/06/18 Чтв 08:42:37  1214390
>>1214385
Не, я вообще мимо проходил и ничего против ерланга не имею (вообще никакого мнения о нём не имею). Но конкретно у дискорда дела именно так.
Аноним 21/06/18 Чтв 16:41:00  1214596
>>1214390
Вот только почему-то в статье самого дискорда о том, как они заскейлились на 5 млн онлайна, нет ни слова о кассандре (зато много слов о переписывании сишных библиотек на эликсире, вообще охуеть). Даже не знаю, кому верить: анону с зекача или команде discord.

мимо
Аноним 21/06/18 Чтв 17:20:23  1214616
>>1214596
https://blog.discordapp.com/how-discord-stores-billions-of-messages-7fa6ec7ee4c7
Вот про хранение, например.
Аноним 21/06/18 Чтв 18:00:30  1214641
>>1214616
Круто, но где тут тезис "Т.е. все эти ваши хайлоады на себя берёт банальная жаба. А писать в неё можешь хоть на js."?
Я, в свою очередь, про эту статью говорил, если что: https://blog.discordapp.com/scaling-elixir-f9b8e1e7c29b
Аноним 21/06/18 Чтв 18:33:42  1214673
>>1214197
Что тебя спрашивали когда устраивался?
Что вообще требуют от джунов (или как там начинающий называется) по скале?
Аноним 21/06/18 Чтв 18:36:08  1214678
>>1214616
Вот, например реальное положение дел в дискорде
https://discordapp.com/jobs?team=engineering

в явном виде ищут только крестовиков, а этот ваш уеликсир только упоминается среди остальных языков для бека на равне с пистоном, гошкой и скалой. Таки ерланг/еликсир не нужен.
Аноним 21/06/18 Чтв 19:45:27  1214715
>>1214641
Хороший у них блог, бтв. Приятно почитать.
Аноним 21/06/18 Чтв 21:23:01  1214796
>>1214678
>Working with a modern tech stack built on GCE with Elixir/Erlang, Python, Go, Cassandra, Redis, Elasticsearch, and a hint of C++ where appropriate.

Я понял: ты сектант, тебе бесполезно пытаться приводить рациональные аргументы. Давай закончим, тем более что это оффтоп.
Аноним 21/06/18 Чтв 23:39:26  1214905
>>1214673
У меня почти все собеседования (и самое первое, и последующие на более высокие грейды) быстро переходили в неформальное общение о том, кто я такой, откуда взялся, как пришёл в скала-мирок.

Молодым и зелёным если и будут давать задачки, то, скорее всего, примерно такого уровня: scastie.scala-lang.org/MvUJjYaZQm202EIGNath0A.

Но помимо понимания синтаксиса и стандартной библиотеки, тебе понадобится ещё и представление об экосистеме. В итоге джуну надо знать:
синтаксис
асинхронная модель (как пользоваться scala.concurrent.Future)
библиотека коллекций (map, filter, foldLeft и прочие базовые методы)
инструментарий (IDEA, sbt, git)
что-нибудь про базы данных (хотя бы в чём отличие SQL от NoSQL)
крайне желательна акка (что такое акторы, и зачем они нужны. что такое стримы, и зачем они нужны)

Лучший способ получить эти знания ― написать небольшой CRUD в качестве пет-прожекта. Например, движок для блога или примитивную CRM для воображаемой кафешки.

>>1214318
А ты рисковый. Учти, что цены на жильё в ДС очень быстро сожрут твою подушку безопасности.
Аноним 21/06/18 Чтв 23:42:05  1214909
20416-full.png (109Кб, 430x405)
>>1214905
Разметка поехала
Аноним 22/06/18 Птн 06:00:34  1215005
>>1214905
Спасибо за такой развёрнутый ответ.
>кто я такой, откуда взялся
Вот тут я обосрусь 100%, ведь мягко говоря не студентик уже...
>задачки, то, скорее всего, примерно такого уровня
Функцию написать, я правильно понял? Сколько времени даётся на такое? Интернетами можно пользоваться?
>scala.concurrent.Future
Нагуглил. Пойду читать.
>IDEA, sbt, git
IntelliJ? Я накатил эклипс, хз что там знать то можно, всё понятно по контексту. Что-то уровня "знания ворда", лол.
>что-нибудь про базы данных
>акка
Есть что почитать про это? Всё что я гуглил это либо поверхностное, либо бесконечная кроличья нора, от которой можно словить шизу.
Аноним 22/06/18 Птн 12:18:13  1215130
>>1215005
Да, написать реализацию. Интернеты для такого не нужны, достаточно ноутбука с IDE, и никто не будет стоять над тобой с таймером. Время выполнения этих задачек джуном, которое устроит меня: nestedMap — 3 минуты, traverse — 10 минут, partition — 15 минут. Если человек тупит дольше, поинтересуюсь, как у него дела, и дальше будем уже вслух обсуждать задачу.

> Я накатил эклипс
Откуда же вы лезете? Даже на официальном сайте скалы предлагают IDEA поставить.

Про акторы и асинхронщину читай https://github.com/anton-k/ru-neophyte-guide-to-scala. Про БД — просто начни с ними работать и подгугливай документацию в процессе. Потом уже придёт понимание, что изучать полноценно.
Аноним 22/06/18 Птн 12:55:15  1215168
>>1215130
>https://github.com/anton-k/ru-neophyte-guide-to-scala
Слушай, а почему бы не взять Spring Boot, к нему добавить Spring data и прочее. Получится же быстрее и понятнее. Зачем тебе эта Scala, ммм?
Аноним 22/06/18 Птн 17:12:17  1215326
>>1215130
>Даже на официальном сайте скалы предлагают IDEA поставить.
Много ли среди скалистов вимо\имаксоебов?
Аноним 22/06/18 Птн 17:49:16  1215338
>>1215130
Ясно.
>Откуда же вы лезете?
Ну не стукай, выбрал первое что выдал гугл.
>Про БД — просто начни с ними работать
>работать
Тригернулся.
Я просто малость аутист, мне не хватает фантазии придумать что с этими бд вообще делать. Создать, добавить элемент, убрать... Всё нахуй. Лан надо будет накатить SQL и подрочиться.
Ещё раз спасибо.
Аноним 23/06/18 Суб 02:13:10  1215570
>>1215130
>Откуда же вы лезете? Даже на официальном сайте скалы предлагают IDEA поставить.
А я тебе скажу откуда. На курсере Одерски демонстрирует всё в Eclipse. Я попробовал пойти против системы и поставил себе чистую sbt. С наскока нихрена не разобрался в ней и решил, чтоб время не терять, качнуть голый компилятор. Где можно вменяемые доки найти по sbt, а не эту херню с хеллоуворлдом вместо создания проекта?
Аноним 23/06/18 Суб 21:41:34  1215985
Есть возможность сменить работу на scala разраба.
Сейчас занят в java ee.
Какие подводные и стоит ли?
Послезавтра собедесование - к чему готовится? кроме анального порева
Аноним 24/06/18 Вск 00:50:00  1216096
>>1215570
Есть книжка SBT in Action.
Вполне годная.

>чистую sbt
И почему в женском роде? Это же "инструмент".

Аноним 24/06/18 Вск 00:54:20  1216098
>>1215570
>На курсере Одерски демонстрирует всё в Eclipse.

Это курс по фп?
Ему лет триста уже, тренд поменялся давно.
Эклипс заебал уже даже самых упоротых ебанатов, лол.
Нормальные же люди им и вовсе никогда не пользовались, ибо просто невозможно же.
Аноним 24/06/18 Вск 01:04:26  1216102
>>1214905
>scastie.scala-lang.org/MvUJjYaZQm202EIGNath0A
Это ты писал?

Что ещё за nestedMap, лол?
Лифтинг отменили уже?
Аноним 24/06/18 Вск 03:21:21  1216138
>>1216096
Спасибо за наводку на книжку! SBT хоть и tool, но система сборки. А вообще, не знаю. Оно само так получилось.

>>1216098
Ага, он самый. А сам то курс стоит потраченного времени?
Аноним 24/06/18 Вск 13:43:37  1216298
>>1216138
Этот курс - пространное введение в Скалу с лёгким уклоном в ФП.
Там и про ООП куча, и т.п.
А по ФП - не так и много.

Например, чтение книжки Functional Programming in Scala (и решение задач, обязательно) будет гораздо более полезно.
Есть гитхаб с задачам, хинтами и ответами.

Это вообще одно из лучших введений в ФП как таковое.
При этом знание Скалы требуется на самом начальном уровне.
Авторы пишут, что можно вообще с нуля, но это, конечно, перебор.
Аноним 24/06/18 Вск 14:26:09  1216337
>>1216298
Я представляю как будет тормозить приложение написанное на Scala, когда GC будет работать нонстоп.
Аноним 24/06/18 Вск 14:29:20  1216343
>>1216337
Анус свой лучше представляй.
Аноним 24/06/18 Вск 14:48:14  1216368
>>1216298
Для полных нубасов без промышленного опыта курс будет полезным? Скажем, сначала накатить его, а потом Functional Programming in Scala?
Аноним 24/06/18 Вск 14:57:32  1216375
>>1216343
Ну что ты нервичаешь? Мы же с тобой понимаем, что для скорости нужна Java, а не Scala.
Аноним 24/06/18 Вск 14:59:19  1216376
>>1216368
Да, будет.

Есть ещё книжка фолиант Одерского - Programming in Scala. Надо искать 3-е издание, где версия 2.12.

Ну и другой литературы полно.

Вообще, я бы посоветовал Scala For The Impatient (2-е издание).
Минимум воды, широкий охват тем, читается легко.
А за тонкими подробностями - к фолианту Одерского.

Даже на русском есть (Scala для нетерпеливых, перевод 1-го издания), но сам я перевод не видел, по качеству ничего сказать не могу.
Аноним 24/06/18 Вск 15:02:13  1216378
>>1216375
Скала - для души, лол.
Аноним 24/06/18 Вск 16:39:28  1216434
>>1215985
>Какие подводные
Имплиситы.

>стоит ли?
Конечно стоит - кругозор шире, зарплата больше, молодежней-современней.

>Послезавтра собедесование - к чему готовится?
Ну ты скалу-то уже знаешь? Деревья повращал? Мы ж не телепаты, хуй знает, что у тебя за вакансия и какой у тебя уровень.
Аноним 24/06/18 Вск 16:40:43  1216435
>>1216375
>для скорости нужна Java
Томми, ты?
Аноним 24/06/18 Вск 16:46:39  1216443
>>1216434
>Ну ты скалу-то уже знаешь?
Нет, нихуя не знаю.
Для меня это пафосное название как и все околоджавное больше ассоциируется с чем-то промышленным и даже с ML.
>Конечно стоит - кругозор шире, зарплата больше, молодежней-современней.
А это точно не гавно на палках/попытка сделать на жвм хоть что то стоящее?
Аноним 24/06/18 Вск 17:20:12  1216468
>>1216443
>попытка сделать на жвм хоть что то стоящее?
Ты, сынок, потроллить сюда пришёл?
Аноним 24/06/18 Вск 17:56:26  1216504
>>1216378
То ли дело взять Spring 5, а там Netty и такой-то перформанс. Это тебе не Finagle какой-нибудь или Akka Http, да.
Аноним 24/06/18 Вск 18:00:10  1216508
>>1216504
Сейчас бы пытаться сделать вид, что netty - медленный энтерпрайз, а вот в акке сила.
Аноним 24/06/18 Вск 18:15:48  1216536
>>1216468
бля, нет.
но, в новой конторе обещали научить скале(они с джавы все переносят)
Аноним 24/06/18 Вск 18:29:36  1216547
>>1216508
Наоборот же! Netty быстр, а вот Akka Http не очень.
Аноним 24/06/18 Вск 21:33:07  1216689
>>1216504
Вообще-то, сетевая часть в акке сделана на netty.

Это, если отвлечься от того факта, что спринг не нужен, например.
Аноним 25/06/18 Пнд 00:06:39  1216828
560.jpg (149Кб, 470x560)
Я вам покушать принёс.

It’s that time of year! Pride 2018. In honor of all of us Scalamaris that are advocates of or identify with the LGBT community–we have a little bit of Scala love for you.
Аноним 25/06/18 Пнд 04:25:59  1216937
>>1216689
Ну Netty из Akka давно уже выпилили. Сам понимаешь, что это черевато добавлять в зависимости библиотеку, которую по сути поддерживает один человек.
А Spring можно и к Scala прикрутить. Как ты без IoC будешь жить, а?
Аноним 25/06/18 Пнд 09:11:51  1217015
>>1216937
Стоит заметить, что спринг давно уже не только IoC, его корфичами являются и weblux/mvv, и aop, и всякие integration-security, да и без бута/клауда его используют всё меньше (что на понимании макаками-кодерами сказывается крайне негативно).
Про нетти сказал как отрезал. А ещё у него новые мажорные версии не выходили десять лет, а пятую ветку забросили после второй альфы.
Аноним 25/06/18 Пнд 09:24:23  1217024
>>1217015
Согласен. Spring - это такой уанстопшоп, где есть все необходимое для разработки приложения. Если взять Scala, то можно долго куковать в поисках альтернативных библиотек и фреймворков.
Аноним 25/06/18 Пнд 13:39:32  1217131
>>1217015
>Топит за спринг
>Называя несогласных "макаками"
>в Scala-треде
Содомит, ты же два раза на ноль поделил.

>>1216937
>IoC
С давних пор использую.
А причём тут спринг, лол?
Аноним 25/06/18 Пнд 14:19:07  1217160
>>1217131
Очевидно макаками-кодерами я называю нерадивых пользователей Spring Boot, у тебя wishful thinking сработал.

>при чём тут спринг
Думаю он подразумевал что-то вроде "можно хоть спринг использовать", но это мои домыслы.
Аноним 25/06/18 Пнд 15:01:41  1217191
>>1217160
Как причем? Берешь Java + Spring и ваяешь свой стартуп. А Scala не нужна по сути.
Аноним 25/06/18 Пнд 21:58:46  1217377
> Scala ни нужна
Анончики, а можно простыми словами и без троллирования, какие у Scala преимущества по сравнению с Java? Чтоб вот можно было, например, другану-профану за пивасом пояснить, почему я решил упороться Scala. Ведь сейчас под JVM есть и Kotlin, и Clojure и, даже, Groovy.
Аноним 25/06/18 Пнд 22:07:24  1217385
>>1217377
Скала по отношению к джаве - это как сиплюсплюс по отношению к си. Можно наворотить такого, что голову себе сломаешь, но если использовать как "си с классами", то преимущества очевидны.
Аноним 25/06/18 Пнд 22:07:47  1217386
>>1217377
Ебать Акку под спарком збс.

Для всего остального котлин лучше, иначе есть шанс быть неявно выебанным неявным хуем невяного пидора в неявных обстоятельства.
Аноним 25/06/18 Пнд 22:08:56  1217387
>>1217385
> Можно наворотить такого, что голову себе сломаешь
Вот это, между прочим, объективный минус с точки зрения языка - любой в меру своей испорченности может нахуячить так, что хуй проссышь нормально даже сам спустя пару месяцев.
Аноним 25/06/18 Пнд 22:12:23  1217390
>>1217387
Но как бы и на джаве, и на любойязыкнейм можно наворотить в меру своей испорченности. Тут суть не в этом, а в том, что скалу можно использовать просто как более лучшую джаву. Мне кажется для объяснений под пивас это самое то.
Аноним 25/06/18 Пнд 22:29:21  1217401
>>1217377
>едь сейчас под JVM есть и Kotlin, и Clojure и, даже, Groovy.
А ещё jRuby, Jython, и до ебеней матери всякого разного прочего.

Какие преимущества?
Никаких.
Это просто другой язык.
Какие могут быть преимущества у тёплого перед мягким?

Можно делать фп, например.
Акка там, хуякка, вот это вот всё.
Это преимущества?

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

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

Аноним 25/06/18 Пнд 22:43:09  1217414
>>1217401
>Плюс - несовместимая развесистая иерархия коллекций и т.п.
Так стд коллекции один хуй говно же.
Аноним 25/06/18 Пнд 23:29:11  1217442
>>1217390
Нет. Джава сильно ограничивает. Котлин меньше. Скала вообще нет.
Аноним 25/06/18 Пнд 23:31:00  1217444
>>1217414
>Так стд коллекции один хуй говно же.
В скале или в джаве?

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

Если покопаться в интернетах (англоязычных), то можно увидеть, что про скалу как беттер-джаву пишут, в основном, ньюфаги, которые скалу только вчера увидели.
Опытные бобры пишут совсем другое, уже не такое интересное, лол.
Аноним 26/06/18 Втр 00:44:18  1217510
>>1216102

Да, я.

В чём проблема с нестедмапом? Это задача, которую можно реализовать через лифтинг f в общем случае, и через xs.map(_.map(f)) в частном. Если кандидат начнёт рассказывать про lift, это ему только в плюс пойдёт.

Но вообще, это задумывалось как элементарная задачка для джуна на знание самых простых операций над стандартными коллекциями. Условно, чтобы понять, что человек не путает map и flatMap.
Аноним 26/06/18 Втр 01:01:03  1217513
>>1217444
>В скале или в джаве?
Второе.

>И, в итоге, на каждый пук надо юзать встроенные конверторы
А вот в кложе такой проблемы нет, кстати. ^_^

>Опытные бобры пишут совсем другое, уже не такое интересное, лол.
Тут не буду возражать, я не бобер.

А ты сам из личного опыта говоришь? Ну, конкретно по части того, что "никаких" преимуществ. Тот факт, что это разные языки, нам ведь не мешает их сравнивать и оценивать целесообразность их применения для какой-то данной задачи. Ты согласишься с тем, что скала в целом более высокоуровневая и более типобезопасная, чем джава?
Аноним 26/06/18 Втр 02:47:40  1217529
>>1217513
Я не говорил, что нет преимуществ.
Я сказал, что не нужно сравнивать разные вещи.
И там и там недостатки (в большинстве случаев) являются продолжением достоинств. А за достоинства приходится платить определённую цену.
Закон сохранения никто не отменял.

>Ты согласишься с тем, что скала в целом более высокоуровневая и более типобезопасная, чем джава?

Да. Есть куча ценных фишек, свяаных с типизацией, которых нет в джаве.
Но, это не бесплатно.
Язык значительно сложнее. Порог вхождения в разы выше.
Код трудно воспринимать при беглом просмотре. И т.д.
Кто не понимает, о чём я - почитайте исходники библиотеки коллекций, например.

И можно (иногда) нахуевертить такого, что будет компилироваться, но не будет работать (я имею в виду ошибки применения типов). В джаве такое невозможно, например.

Инструментальная поддержка, опять же, несравнимая совершенно. Хотя, за последние годы поддержка скалы улучшилась в разы.

Вообще, это сложная тема, которая далеко выходит за границы обсуждения на аиб.

Стоит ли скала того, чтобы её изучить до приличного уровня?
Будет ли это полезно для профессиональног роста, даже если ты не будешь писать на ней фуллтайм?
- Однозначно.

Ну не котлин же, в самом деле, лол.

Значит ли это, что джава не нужна, и все чёткие пацаны должны перекатиться на скалу?
- Ни в коем случае.
Аноним 26/06/18 Втр 20:30:47  1217836
>>1217529
Я в целом со всем согласен, про ненужность скалы я и не говорил, и все остальное ты написал по делу.

Разве что
>И можно (иногда) нахуевертить такого, что будет компилироваться, но не будет работать (я имею в виду ошибки применения типов). В джаве такое невозможно, например.
- https://hackernoon.com/java-is-unsound-28c84cb2b3f

А в целом - да, анон, все так, я с тобой согласен.
Аноним 27/06/18 Срд 04:48:21  1218092
>>1217510
>xs.map(_.map(f))
Я примерно так и сделал
def nestedMap[A, B](xs: List[Option[A]])(f: A => B): List[Option] =
{
def wew (x: Option[A]) = x match
{case None => None
case Some(s) => Some (f(s))
}
xs.map(wew)
}

А потом пошёл читать про футуры.
Теперь ещё и про лифт читать буду.
Аноним 27/06/18 Срд 14:00:41  1218270
>>1218092
Проверка на None делается внутри map(). В это и смысл.

Футуры - это хорошо.

Лифт - хули про него читать?
Это функция, которая "поднимает" другую функцию, работающую со значением типа A, чтобы она работала а с определённым контейнером, содержащим значение типа A.

Т.е. (A => A) => ([A] => [A])
Т.е. лифтованная функция внутри себя вызывает map(f).

Вот тут можно потрогать пример:
https://scastie.scala-lang.org/mrYmm1ZiRZaNMeVVlClAQw
Аноним 27/06/18 Срд 14:25:30  1218282
Есть ли где-нибудь нормальный бесплатный туториал о связке kafka + spark с кодом на скале? Пока что нашел толькотплатный
Аноним 27/06/18 Срд 14:26:43  1218284
>>1218270
> (A => A) => ([A] => [A])

Ну, или (A => B) => ([A] => )
Аноним 27/06/18 Срд 14:29:02  1218285
>>1218282
>kafka
Только sorokin.
С кодом на php.
Аноним 27/06/18 Срд 15:07:44  1218301
>>1218285
хуя ты шутканул ,
а по делу есть что сказать?
Аноним 27/06/18 Срд 15:25:37  1218309
>>1218301
Деньги вперед.
Аноним 27/06/18 Срд 17:09:48  1218383
index.png (2Кб, 151x67)
>>1218270
>Лифт - хули про него читать?
А, так вот какой лифт имелся ввиду.
Аноним 28/06/18 Чтв 09:56:11  1218722
>>1218270
ну тащемта можно показать и более общий пример через функторы:
https://scastie.scala-lang.org/dSj8uomlReeSpliZyLeg2A

Аноним 28/06/18 Чтв 13:15:24  1218799
Как написать функцию, аналогичной этой,
def transformInt(x: Int, f: Int => Int) : Int = {
f(x)
}

Но что бы вместо единственного входного параметра x: Int
были, например 2 строки s1:String, s2:String,
и к ним двоим тоже применялась какая-нибудь функция
Аноним 28/06/18 Чтв 14:21:01  1218831
sui.jpg (37Кб, 225x350)
>>1137326
>Но когда начинается ввод/вывод и обработка ошибок Haskell почти ни чего не дает, по сравнению с распространенными языками.

Я утверждаю, что ты просто не знаешь, как в современном ФП делается ввод/вывод и обработка ошибок. Показывать тебе как это делается на Хаскеле, конечно, бесполезно, но хоть Скалу попробуй осилить http://degoes.net/articles/modern-fp вроде специально для брейндамагнутых джавой язык делался.
Аноним 28/06/18 Чтв 14:38:59  1218841
>>1218799
лол, ну держи:
def transformStrings(s1: String, s2: String, f: (String, String) => String): String = f(s1, s2)
Аноним 28/06/18 Чтв 14:40:00  1218842
>>1218799
Это же map получается, или reduce?
Не понятно из твоего поста.
"и к ним двоим тоже применялась какая-нибудь функция" - это несколько расплывчато, лол.

На вход надо подавать 1 аргумент - коллекцию.
Можно сделать доп. вариант для Option (который, сука, не коллекция, почему-то).
Аноним 28/06/18 Чтв 14:40:58  1218843
>>1137340
Да, это так. И дело не только в наследовании, а в том, что в Хаскеле мухи таки отделены от котлет.

Например, в Хаскеле есть "обычные" алгебраические типы данных и есть генерализованные АДТ. В Скале нет ни того, ни другого это делается через ебучие костыли вроде sealed trait .. и это вроде как АДТ, но одновременно при паттерн-матчинге может эмулировать некоторые свойства ГАДТ, но с некоторыми ограничениями. В чем конкретно заключаются "некоторые ограничения" - хуй проссышь, просто в какой-то момент ты на них внезапно натыкаешься и у тебя начинается жопаболь.

Type-level programming, higher-kinded types, type-level macros - всё это в Скале эмулируется, но с кучей бойлерплейта, без macro paradise практически ни одна функциональная библиотека на Скале не обходится. Да что уж там, даже тайпкласс или фукнцию с экзистенциальным типом на Скале написать - это проблема, тот же cats использует simulacrum и kind-projector для этого.

Вывод типов - ебанутейший, вплоть до того, что функциоальных либах меняют порядок аргументов в функциях, чтобы типы выводились (охуеть дизайнерское решение - выводилка типов тебе диктует в каком порядке должны быть аргументы).

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

В общем, чтобы писать программы в функциональном стиле на Скале, надо её обвесить тоннами костылей, за которыми сути не видно. Надо знать, как все эти костыли работают, там макросы, плугины компилятора, надо знать зачем они все нужны. Поэтому в целом Хаскель гораздо проще и понятнее. На Скале всё это говно можно использовать когда ты уже всё знаешь из Хаскеля и еще знаешь специфичные заёбы Скалы. На Хаскеле можно учиться программировать.
Аноним 28/06/18 Чтв 14:49:44  1218849
Подитоживая эпопею со Скалой вспоминается анектод про Вовочку, который натягивал себе на голову презерватив со словами "Все равно на Новый год писькой буду!". Вот так и программирование на Скале - это постоянное натягивание презерватива на голову с целью превратить её в функциональный язык.
Аноним 28/06/18 Чтв 15:05:25  1218855
>>1218849
То, что в Скале - это элементы фп.
Которые местами весьма полезны.

А попытки _использовать_ Скалу как функциональный язык (scalaz и прочая хуйня) - это именно попытки натянуть сову на глобус и подрочить вприсядку.
И за использование такой хуйни в продакшн надо пожизненно разжаловать в сторожа.
Аноним 28/06/18 Чтв 15:32:18  1218872
Capture.PNG (8Кб, 973x162)
>>1218841
>>1218842
вот что я хотел сделать
Аноним 28/06/18 Чтв 15:36:53  1218873
>>1218855
Лучше уж Kotlin использовать. Зачем эти сложности?
Аноним 28/06/18 Чтв 15:47:31  1218877
>>1218855
Дело в том, что современный "продакшн" - это и есть дрочба вприсядку толп полуграмотных ОО-дебилов. Поэтому соверменные программы - это самое ненадёжное из когда-либо созданного человечеством, при этом по самым неэффективным технологиям. Единственное, что в Скале есть хорошего, это те самые "элементы фп.", но они там настолько убогие, что для написания полноценных функциональных программ приходится тащить с собой кучу костылей.

Что же касается применения фп "местами", так тут можно выделить три стадии развития кодописца:

0. ОО-макак. Считает, что ФП не нужно, лямбды - сложная непонятная хуйня, пишет на Джаве, хотя когда в Джаву 8 завозят таки лямбды начинает делать вид, что про ненужность говорил кто-то другой и переходит на 1-ю сдадию.

1. Недофпшник. Нахватался по верхам на сайтах типа хабра, знает, что такое лямбда, умеет пользоваться функцией map. На этом его знание фп заканчивается, никаких декомпозиционных паттернов поциент не знает, про монады читал только в скалаблогах, там же прочитал про scalaz, но не знает, зачем это нужно. Пишет на мультипарадигменном говне обычные императивные программы с функцией map и лямбдами, с умным видом говоря, что использует фп "по месту".

3. Программист. Полностью знаком с парадигмой ФП, пишет на Скале в таком https://github.com/slamdata/quasar стиле, охуевает с полудурков на дваче, которые рассказывают, что на Хаскеле сложно работать с сайдэффектами, что cats или scalaz нельзя использовать в продакшене и прочих охуенных историй, которые тут генерирует недообразованная студентота, чтобы как-то оправдать свою недообразованность.
Аноним 28/06/18 Чтв 17:12:19  1218938
>>1218877
ФП-блядь носится по треду с разорванной сракой, спешите видеть.
Аноним 28/06/18 Чтв 18:13:30  1218996
>>1218877
Ты уж выбери, что ты хочешь. Денежки получать или фп своё.
Аноним 28/06/18 Чтв 18:19:24  1219005
>>1218872
Это reduce.
Точнее - foldLeft() для списка строк.
Это если тебе нужно общее решение для любого к-ва элементов.

https://stackoverflow.com/questions/1446419/how-do-you-know-when-to-use-fold-left-and-when-to-use-fold-right

https://en.wikipedia.org/wiki/Fold_(higher-order_function)

Аноним 28/06/18 Чтв 18:31:31  1219014
>>1218996
Зачем мне выбирать, если мне и так платят за ФП, причем существенно больше, чем всяким быдлокодерам которые кукарекают про ненужность ФП.
Аноним 28/06/18 Чтв 18:33:19  1219017
>>1218872
>>1219005
Посмотрел внимательно, лол.
Это будет:

myStrings.map(toUppercase).foldLeft("")(concat)

Как-то так.
Аноним 28/06/18 Чтв 18:36:57  1219020
Блядь, сажа откуда-то приклеилась.

>>1219014
Так ты радостью зашёл поделиться?
Это правильно.
И мы за тебя рады.
Аноним 28/06/18 Чтв 20:39:57  1219091
laugh-tom-cruise.jpg (41Кб, 600x400)
>>1218843
>что функциоальных либах меняют порядок аргументов в функциях, чтобы типы выводились

мимо-динамикодрисня-господин
Аноним 28/06/18 Чтв 20:41:34  1219093
>>1218877
А вот этот пост уже поддвачну.

тот-же-господин
Аноним 28/06/18 Чтв 21:48:52  1219156
>>1219093
Сам себя не поддвачнёшь - весь день как оплёванный ходишь.
Аноним 28/06/18 Чтв 22:29:07  1219185
>>1219156
Сочувствую тебе, братан.
Аноним 29/06/18 Птн 19:05:19  1219731
image.png (679Кб, 1200x1160)
Набросьте говна на вентилятор, плиз, SJW хуеют.
https://users.scala-lang.org/t/scala-pride-t-shirts-for-charity-fundraiser-1-week-left/2928
Аноним 29/06/18 Птн 19:57:33  1219771
>>1219731
Похоже на провокацию котлинопидоров ребят из Jet Brains.
Аноним 30/06/18 Суб 17:29:35  1220140
Пацаны, эрланг или скала?
Вакансий в России больше на скале. Но там часто идет как дополнение к джаве. Неотъемлемо ли одно от другого?
Хотелось бы ответов от тех, кто работает или работал с обоими языками.
Аноним 30/06/18 Суб 19:04:09  1220180
>>1220140
На скале ты можешь писать что угодно.
А не эрланге?

>java
Нравится это тебе или нет, но это - промышленный стандарт. И так будет ещё много-много лет. До твоей пенсии, как минимум.
Аноним 30/06/18 Суб 21:03:51  1220313
>>1220180
>На скале ты можешь писать что угодно.
...кроме десктопа, фронтенда и легких серверов.

>Нравится это тебе или нет, но это - промышленный стандарт. И так будет ещё много-много лет.
Ага, особенно вон с такими-то новостями https://www.oracle.com/corporate/pressrelease/java-se-subscription-offering-062118.html


>До твоей пенсии, как минимум.
так пенсии ж отменили yoba.png
Аноним 01/07/18 Вск 23:03:00  1221033
>>1220313

Но ведь и десктоп, и фронтенд на скале пишут (в том числе в РФ). Не сказал бы, что мне это нравится, но это имеет место быть. Что ты под лёгкими серверами подразумеваешь, мне непонятно. Круды что ли?

>>1220140
Скала не дополнение к джаве. В вакансиях их обычно пишут рядом, если уже есть большой кусок джава-энтерпрайза, а новые проекты пишутся на скале. В легаси-код программистам тоже иногда приходится залезать, поэтому в требованиях упомянают джяву.
Аноним 06/07/18 Птн 00:14:04  1223339
Скалоблядки, можете рассказать про реальные коммерческие проекты на Акке?
Желательно энтерпрайз.
Желательно в Росии.
Аноним 09/07/18 Пнд 00:59:27  1224824
Аноны,
я постигаю акку, читаю туториал с офф сайта и не могу понять такую базовую вещь:
в нормальном коде, дерево акторов создаётся в начале работы программы и остаётся более-менее неизменным, или же некоторые акторы-дети постоянно создаются и удаляются в результате обработки сообщений родителем?

Более конкретный пример: я хочу обрабатывать запросы к СУБД, конечно же параллельно. У меня есть актор А который принимает запрос и:
1) Создаёт актора Б, который выполняет запрос, обрабатывает и возвращает результат. Затем удаляет актора Б.
2) Имеет готовый пул акторов Б, и просто роутит задачу одному из них (я видел, есть класс Роутера и несколько стратегий роутинга сообщений).

Какая из этих стратегий лучше? Если вторая, то как правильно выбрать размер пула? Если таких пулов несколько, каждый раз думать, насколько велик должен быть пул?

Дополнительный вопрос:
давеча ГО-анон писал что jdbc не асинхронно, и поэтому скала говно. Насколько правомерно это умозаключение? Я нашёл вот это:
https://github.com/mauricio/postgresql-async
(хотя в README: This is not supposed to be a JDBC replacement)
Получится ли использовать эту либу в связке с АККА ?

Аноним 09/07/18 Пнд 01:02:46  1224825
>>1223339
В райфе на митапе недавно какой-то насквозь матановый доклад рассказывали, который 95% нормальных людей вообще не поняло. Но сам доклад родился из использования Акки, так что вероятно используется.
Аноним 09/07/18 Пнд 02:16:39  1224851
>>1224824
>jdbc не асинхронно
В смысле, требует поддержания соединения?
Так это не JDBC.
Точнее - да, JDBC, но потому, что это абстракция для _любой_ БД, большинство из которых не асинхронны.

Хочешь асинхронности - вводи лишний слой (поближе к физической БД), который будет обслуживать твои запросы асинхронно, а с БД работать через пул соединений.

Собственно, на Акке его и можно сделать (наверное, я не большой спец по ней).
Аноним 09/07/18 Пнд 02:17:51  1224852
>>1224825
Свежо предание, лол.

Понятно, что где-то всё это используется (или может использоваться) ирл, только интернеты об этом молчат, в основном.
Аноним 09/07/18 Пнд 06:02:12  1224887
>>1224824
http://slick.lightbend.com/ ?
Аноним 09/07/18 Пнд 14:18:00  1225039
>>1223339
Я вот на проекте на акке в энтерпрайзе, юзает акка-акторс + акка хттп
Аноним 09/07/18 Пнд 14:25:23  1225043
>>1225039
Какого рода проект или энтерпрайз?
В общих чертах?
Аноним 09/07/18 Пнд 14:33:04  1225047
>>1225043
Делаем сервис для отображения рекламы в играх (в том числе AR, VR), на скале пишется сервер для фиксирования просмотра, статистики, операции с баблом, непосредственно отображения рекламы на юнити на шарпах, работаем на шведов
Аноним 09/07/18 Пнд 14:58:54  1225058
>>1225039
В базу как ходишь, м? Как общие впечатления?
Аноним 09/07/18 Пнд 15:12:43  1225062
>>1225047
Это охуенно, но "энтерпрайз" - это немножко другое - торговля, промышленность, банки, государственные системы.

Но, в принципе, понятно, зачем вам Акка.

А БД какая?
В Akka in Action рекомендуют вообще всё в памяти держать, при остановке системы сливать в хранилище, при старте - загружать.
Вы как делаете?
Аноним 09/07/18 Пнд 15:27:19  1225069
>>1225058
С помощью Слика, но мы ещё юзаем ДинамоДБ
>>1225062
>но "энтерпрайз" - это немножко другое - торговля, промышленность, банки, государственные системы
ок, значит я неправильно понимал
>А БД какая?
основная Постргрес, для статистики ДинамоДБ
>В Akka in Action рекомендуют вообще всё в памяти держать
у нас с-ма всего раз запускается, а данных супердохуя
>Вы как делаете
Держим в бд, но конечно же есть и кэшированные данные, но их немного
Аноним 09/07/18 Пнд 16:52:51  1225120
>>1223339

Странный вопрос. Акка почти везде в ынтырпрайзе. У нас вот тоже. Хотя плюёмся от неё очень сильно. Вот например akka-streams потихоньку на fs2 меняем
Аноним 09/07/18 Пнд 17:17:08  1225128
>>1225120
Какого рода энтерпрайз?
Какого рода проекты?
Зачем Акка?
Почему плюётесь?
Аноним 09/07/18 Пнд 17:24:52  1225130
>>1225120
>fs2
Ну подожди. В Акка тиме же Конрад Малавски!
Аноним 09/07/18 Пнд 17:59:54  1225147
>>1225128

> Какого рода энтерпрайз?
> Какого рода проекты?
Биллинг. Больше сказать не могу, коллеги тоже сидят, не хочу задеанониться, лол

> Зачем Акка?
Event Sourcing. Взяли Akka-Cluster, получилось неплохо. Сейчас ещё лучше, ибо код на сырых акторах я уже не помню когда писал в последний раз.

> Почему плюётесь?
Future. Но тащемто уже скрыли всё что можно за семи слоями абстракций и везде (почти) Monix
Аноним 09/07/18 Пнд 18:14:10  1225149
>>1225147
Сергей?
Аноним 09/07/18 Пнд 18:43:15  1225167
>>1225147
А почему не взяли JGroups для кластеризации?
Аноним 09/07/18 Пнд 23:39:16  1225338
>>1225167
Потому что писали на скале.

А если серьёзно, то хз. Это прям как-то даже странно. Да и не только же кластер нужен нам был -- стримы и персистенс тоже.
Аноним 10/07/18 Втр 01:31:53  1225382
Ребят, Одерски то не видит!
Аноним 10/07/18 Втр 01:34:47  1225383
>>1225382
Это потому, что ночь уже.
Аноним 10/07/18 Втр 10:03:04  1225462
>>1225338
Выбрасываешь скалу, берешь джаву, спринг, базу там какую-нибудь, инмеймори дата грид, хазелкаст там, инфиниспан там вот и все.
Аноним 10/07/18 Втр 10:18:18  1225466
>>1225462
А потом долбишься в зад

ты кстати, что вечером делаешь?
Аноним 10/07/18 Втр 11:09:53  1225481
>>1225466
Ты это, давай переходи на джаву, а там посмотрим.
Аноним 10/07/18 Втр 18:22:22  1225658
>>1225481
Лучше ты на скалу.
Уже и майки для вас завезли: >>1219731
Аноним 12/07/18 Чтв 05:13:27  1226490
Господа, а есть какая-нибудь IDE полегче IDEA?
Аноним 12/07/18 Чтв 09:22:42  1226527
>>1226490
Emacs + ensime или VSCode
Аноним 12/07/18 Чтв 13:28:09  1226607
>>1226527
> VSCode
А разве там есть нормальная поддержка? Синтаксис подсвечивает и на этом всё.
Аноним 12/07/18 Чтв 14:45:46  1226653
>>1226607
плагин какой-то был
Аноним 12/07/18 Чтв 15:23:32  1226668
>>1226490
Ну у меня на немощном ноуте IDEA +- работала, но на линухе; а на винде, да, тормоза неебические.
Попробуй убунту + идеа, мб заканает, потому что я лично не представляю, как кодить на скале не в идее; поиск юзеджов (для акторов вещь просто необходимая), подсветка передачи имплиситов.
Если не идея, то не могу ничего посоветовать, сори
Аноним 12/07/18 Чтв 17:57:28  1226751
>>1226490
Вроде для Eclipse что-то было.
Аноним 12/07/18 Чтв 18:40:11  1226773
>>1226527
>ensime
Для джавы норм? Лучше eclim'а?
Аноним 12/07/18 Чтв 19:15:15  1226795
>>1226773
Не знаю. Использую IDEA.
Аноним 12/07/18 Чтв 21:35:47  1226903
>>1226795
Блин, придется попердолить, деваться некуда. Выглядит вкусно.
Аноним 15/07/18 Вск 01:48:52  1228444
148233570111775[...].jpg (59Кб, 600x337)
Господа, я тут пытаюсь осилить Functional Programming Principles in Scala на курсере и у меня начинают возникать трудности. Как реализовать тот или иной метод в императивном стиле я представляю, а вот с функциональной реализацией проблемы. Посоветуйте, как развить в себе это самое функциональное мышление.
Аноним 15/07/18 Вск 04:39:30  1228471
>>1228444
Я параллельно с курсом читал SICP. Одерски оттуда все задачи подергал. Порой объяснение материала в SICP изложено намного лучше чем в курсе.
Есть же всякие entry-level книжки для тех кто решил освоить функциональную парадигму.
Я бы не сказал, что конкретно данный курс является лучшим источником информации по теме.
Если тебе охота именно Scala освоить для каких-то своих проектов, то лучше взгляни на этот гайд - https://gist.github.com/d1egoaz/2180cbbf7d373a0c5575f9a62466e5e1. А курсы оставь на потом. Их польза крайне сомнительна, к сожалению. Лучше пролистать пару книг и начать писать небольшой проект используя полученные знания.
А проходя данный курс ты будешь неделю думать как решить задачу с разменом монет или полиномы высчитывать ФУНКЦИОНАЛЬНО!
Аноним 15/07/18 Вск 16:36:50  1228733
>>1228444
Решай больше задачек. Смотри чужие решения после того, как написал свое.

У скалы кстати есть свой аналог http://www.4clojure.com/problems ?

>>1228471
Двачую кроме последней части. Перед тем, как писать петпроект, тебе все равно надо научиться составлять алгоритмы. Кому-то нравится видео, кому-то - книжки. Без разницы в принципе, но курс тебя еще будет подгонять сроками, плюс там есть форум, где можно задавать ответы.
Аноним 15/07/18 Вск 18:36:18  1228803
>>1228471
>>1228733
Спасибо!
Аноним 15/07/18 Вск 20:52:40  1228856
>>1228444
Я кстати помнится вот такую хуйню нашёл когда-то
http://www.otstavnov.com/Odersky_Scala_lecture-notes.html
Может тебе пригодится.
Аноним 15/07/18 Вск 20:55:51  1228859
Я снова выхожу на связь. Возник вопрос по литературе. Книг по Scala не сказать, что много, но и не одна. Что лучше новичку читать? Есть ли смысл читать Essential Scala от Underscore если потом читать Scala for the Impatient? И что по поводу толстой книги Одерского?

Я понимаю, скорее всего вопрос платиновый. Но я так уже попадал с Питоном. Все советуют The Byte of Python, но это полное говно, а не книга, и я лишь потратил время. Более менее полезной была Think Python, и то, только из-за наличия упражнений. В итоге, всё перешло в изучение Лутца, где много воды, но расписано всё обстоятельно. Правда, один хер, работу джуном я на Питоне найти не могу. Похоже, я слишком старый для этого дерьма. Вот такой вот я вкатывальщик-неудачник, да. В общем, проще - не всегда лучше, потому что остается много непонятной магии в работе. А я так не могу. Меня это раздражает сильно.
Аноним 15/07/18 Вск 21:07:53  1228863
>>1228859
Impatient + FP in Scala (скала там почти с нуля).
Можно параллельно.
Фолиант - для тонких подробностей.
Аноним 15/07/18 Вск 21:11:35  1228865
>>1228859
>Scala for the Impatient?
Я дропнул. Не помню почему. Хоть и на русском было, но что-то мне не зашло. Очень много воды.
>по поводу толстой книги Одерского?
Вот этой?
https://www.artima.com/pins1ed/index.html
Мне нормас зашло.
В любом случае придётся прочитать всё тоже самое, но в разных вариантах.
С задачками я вот это читал
http://aperiodic.net/phil/scala/s-99/
>работу джуном я на Питоне найти не могу
На скале тем более не найдёшь. Открой хх, там требуются только сеньёры на 200 тысяч, ньюфаги никому не нужны.
Аноним 15/07/18 Вск 21:15:12  1228868
>>1228865
>Хоть и на русском было, но что-то мне не зашло
Лол.
Не читайте до обеда советских газет.

Читать надо по английски.
И второе издание.

Фолиант - третье.

Всё есть в интернетах.

Аноним 15/07/18 Вск 21:18:24  1228873
>>1228865
И хуй знает, где ты там воду нашёл.
Книга очень плотно написана.

Русский перевод, правда, не видел.
Не удивлюсь, если насрали, как обычно.
Аноним 15/07/18 Вск 21:35:06  1228891
>>1228873
Дело не в русике, а в постоянных авторских "а вот в крестах вот так, в яве так...". Да мне похуй как там, пиши по делу. И ебанутая подача, то расписывает простейшую хуйню, а через страницу даёт пример, чтобы понять который надо ещё пару страниц гуглить.
Русик я упомянул, чтобы подчеркнуть, что даже учитывая разницу в языках (русик то родной, пинг от глаз до мозга меньше) книга на английском зашла легче.
Аноним 15/07/18 Вск 21:44:20  1228896
>>1228891
>"а вот в крестах вот так, в яве так...". Да мне похуй как там

Скала - очень сложный язык.
Не понимая, почему нечто сделано именно так, а не иначе - можно просто не понять вообще ничего.

Книга написана очень хорошо и лишнего там нет ничего, всё строго по делу.

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

И да, эта книга для тех, кто уже умеет программировать. Т.е. это не учебник по программированию.
И скала - очень плохой кандидат на роль первого языка.
Аноним 15/07/18 Вск 21:58:12  1228902
>>1228896
>Скала - очень сложный язык.
Почему?
Аноним 15/07/18 Вск 23:01:14  1228954
>>1228856
>http://www.otstavnov.com/Odersky_Scala_lecture-notes.html
Спасибо!

>>1228865
>На скале тем более не найдёшь. Открой хх, там требуются только сеньёры на 200 тысяч, ньюфаги никому не нужны.
Ньюфаги в принципе никому не нужны. Интересно, откуда при такой политике сеньоры берутся. А мне уже без разницы на каком языке я не смогу работу найти. Мне недавно отказали в интервью на трейни-вакансию, в которой требовали знание хоть какого-то языка. Скалу хотя бы интересно учить.

>>1228896
>Скала - очень сложный язык.
Скала - интересный язык. Он создан для людей, которые сначала думают, а потом делают. Если с думалкой слабо, то есть JS, Python, Ruby и PHP. Там можно говнокодить даже с дырой в голове.
Аноним 15/07/18 Вск 23:20:58  1228962
>>1228954
>Скала - интересный язык
Вот вот.
Только поэтому и учу, а то бы дальше маняме смотрел, б листал и лес фармил.
Аноним 16/07/18 Пнд 01:06:56  1228985
>>1228954
>Скала - очень сложный язык.
>Скала - интересный язык.
>Если с думалкой слабо то есть JS, Python, Ruby и PHP

Ты, вообще, понял, по какому поводу я это написал (про "сложный")?
И кому?
Попробуй, перечитай.

Или ты привык слушать себя, в основном?
Возможно, в этом причина твоих проблем с поиском работы.

Алсо, с каких пор питон и руби стали языками для слабоумных, лол?
Многие рубисты, например, люто надрачивают на скалу, тот же Поллак (разработчик Lift).

>>1228902
>Почему?
В смысле?
Спроси у Одерского.

Или ты имеешь в виду, с чего я это взял?
Потом поймёшь, если продолжишь учить.

Чисто для примера - почитай исходники библиотеки коллекций.
Если хоть что-то там поймёшь - отпишись обязательно, лол.
Аноним 16/07/18 Пнд 01:22:15  1228989
>>1228985
>Или ты привык слушать себя, в основном?
>Возможно, в этом причина твоих проблем с поиском работы.
Ты чего злой такой? Основные причины - отсутствие профильного опыта и возраст. Причем, вторая причина ключевая, насколько я могу судить.

>Алсо, с каких пор питон и руби стали языками для слабоумных, лол?
Я написал, что даже имея дырку в голове, на них можно успешно говнокодить. То есть язык не так требователен к квалификации пользователя.
Аноним 16/07/18 Пнд 01:41:12  1228991
>>1228985
>В смысле?
Уже который раз слышу, что сложна, но так и не могу понять почему.
Такое чувство, что это какой-то налёт элитарности, чтобы отпугнуть ньюфагов.
Ну матан, вся хуйня. Но погромирование само по себе подразумевает матан, разве нет?
Аноним 16/07/18 Пнд 01:50:08  1228994
>>1228991
Я не спец в этом вашем программировании, но мне что-то подсказывает, что для клепания форм, например, матан не нужен.
Аноним 16/07/18 Пнд 03:00:48  1229002
>>1228991
Нет там никакого матана.
Просто язык сложный, потому, что очень много всего в нём.

Просто для примера:
https://stackoverflow.com/questions/8000903/what-are-all-the-uses-of-an-underscore-in-scala

>чтобы отпугнуть ньюфагов
Чтобы предупредить, лол.
И чтобы человек не думал, что это он тупой, например.
Аноним 16/07/18 Пнд 03:03:17  1229004
>>1228989
> возраст
И сколько же вам стукнуло, почтеннейший?
Аноним 16/07/18 Пнд 03:26:01  1229012
>>1229002
>очень много всего в нём
Это ж плюс, разве нет? Широкий выбор инструментов это здорово.
К тому же никто не заставляет всем этим пользоваться. Я вот читал про всю эту ковариативность, и прочую еботню с типами, например, но что-то мне подсказывает используется это очень редко.
Про подчёркивание - это наоборот упрощение, когда не нужно переменные лишний раз создавать, ебанул _ да и всё. Как символ, который подразумевает что-то очевидное, типо местоимения.
Очень во многом вижу вот этот подход, хз как выразиться, для ленивого человека. Может поначалу это и кажется сложным и нихуя непонятным, но когда один раз поймёшь, то уже не захочешь возвращаться обратно.
Огромный простор для того, чтобы лишний раз не писать новый код, а переиспользовать уже имеющийся.
Аноним 16/07/18 Пнд 04:46:40  1229022
>>1229012
Правда в продакшене это никому не нужно. Проще и дешевле взять Java или Kotlin и в случае необходимости использовать какую-нибудь Akka (хотя реализация акторов на Java вроде имелась).
Пока найдешь программиста на Scala, который не фигачит одни монады - контора успеет обанкротиться.
Аноним 16/07/18 Пнд 05:21:21  1229023
>>1229022
>Проще и дешевле взять Java или Kotlin
Есть и обратный момент. Если взяли всё таки Scala, то там вероятно не просто и не дёшево.
>который не фигачит одни монады
Как что-то плохое. Неужели формошлёп, который потеет услышав что-то про лямбды, будет предпочтительней?
Аноним 16/07/18 Пнд 05:22:56  1229024
>>1229023
Зачем такие сложности, когда можно взять стандартный спринговый стек и не обосраться в продкшене?
Аноним 16/07/18 Пнд 07:02:45  1229034
>>1229024
Раз не взяли, значит на то были причины.
Аноним 16/07/18 Пнд 08:39:00  1229055
>>1229034
Да ладно! Вон, SEMRush переходит со скалы на джаву.
Аноним 16/07/18 Пнд 11:35:10  1229129
>>1229055
Да, скала хайп немножко поутих в последние пару лет.

Причина, видимо, в том, что сложность языка "не окупается". И параллельный успех (блядского) котлина свидетельствует о том же.
Аноним 16/07/18 Пнд 12:13:05  1229141
>>1229129
> скала хайп немножко поутих
И заебись, меньше вкатывальщиков-джунов, готовых работать за 300 баксов, которые демпингуют зп. А работа будет и так.
Аноним 16/07/18 Пнд 14:09:55  1229177
>>1229004
Мне далеко за тридцать. И я ощутил в полной мере, как "никогда не поздно вкатываться". Честно говоря, не ожидал такого. Думал, айтишники - ребята прогрессивные.

Отсутствие опыта, конечно, тоже оказывает влияние. Но я ж и не претендую на синьорскую позицию. Я настроился на среднюю джунскую зарплату уже... В общем, немного у меня энтузиазм подисчерпался. Решил вот посмотреть на Скалу.
Аноним 16/07/18 Пнд 14:53:48  1229194
>>1229177
Я смотрю, олдфагов тут несколько больше, чем принято считать, лол.

Российские айтишники - не прогрессивные.
Угадай почему.

Да, никогда не поздно.
Просто чем позже, тем сложнее.
Уже считаешь себя умным, и это сильно мешает умнеть на самом деле.

Скала - интересный язык.
Но, если ты хочешь найти работу, и ты уже не мальчик - учи джаву. Изучение скалы может в этом сильно помочь, но потом.

Варианты - 1С, PHP.
Это не подъёбка.
JS - слишком молодёжно, мне кажется. Но, тоже вариант.

Вообще, ориентируйся на то, что тебе хотелось бы _создавать_.
Потому, что язык (языки) - это просто инструмент.
И без мотивации на создание конкретных вещей он бесполезен.
Аноним 16/07/18 Пнд 16:40:28  1229254
>>1229177
Не все так плохо, братунь. На прошлой работе, примерно год назад, взяли двух вкатывальщиков-джунов рубистами, одному было 33, другому 36. Оба прошли испытательный и остались.
Аноним 17/07/18 Втр 00:36:52  1229578
Как понять, что ты уже не джун а хотя бы лоу-мидл, и стоит просить прибавки кроме того, что код-ревью почти все без замечаний
Аноним 17/07/18 Втр 02:34:13  1229624
>>1229194
>>1229254
Спасибо за совет и поддержку. Думаю, допройду вводный курс Одерского - жаль бросать, осталось две недели всего. И снова погружусь в Python. Может курсы какие на той же курсере пройду, чтоб сертификатик был в резюме.
Аноним 17/07/18 Втр 10:09:10  1229715
>>1229578
в чем проблема просто попросить прибавки?
Аноним 17/07/18 Втр 10:46:48  1229727
>>1229715
выгонят же!
Аноним 17/07/18 Втр 11:02:14  1229737
>>1229715
Не то что бы >>1229727, но сорт оф ведь я джун и без понятия особо в этом плане, поэтому и спрашиваю
Аноним 17/07/18 Втр 11:13:05  1229742
>>1229737

не ссы. Просто приходи и говори: "Даров, я тут сделал то и то, научился тому и закрываю вот это. Накиньте двадцатку."

Если посылают -- спрашивай, что тебе необходимо сделать, чтобы получить прибавку, ведь ты хочешь получать больше.

Всё это на личном опыте, если работодатель адекватный -- накинет, или скажет что подкачать. Если нет, то беги нахуй. Скалист без работы не останется долго.
Аноним 17/07/18 Втр 11:14:15  1229743
>>1229742
скалист уровня джун - лоу-мидл? Везде же сеньеры нужны дс
Аноним 17/07/18 Втр 11:20:56  1229751
>>1229742
Как часто по-твоему должны делать повышения?
Аноним 17/07/18 Втр 11:23:40  1229755
>>1229751

Хз, я раз в полгода просил, когда устроился на первую работку, тогда буст у меня сильный был, потом уже реже.

>>1229743

Да хуйня эйчарская. Хотят superstar, но сойдет и обезьяна, которая функтор от моноида отличить в силах
Аноним 17/07/18 Втр 11:26:38  1229758
>>1229755
А если 1.5 года не повышают. Мне еще потерпеть или лучше искать новую работу?
Аноним 17/07/18 Втр 11:30:05  1229763
>>1229758
я рили хз, я всё на личном опыте говорю. У меня был супер ахуенный манагер и говорил он так: "С компании надо забирать всё" и постоянно давал мне прибавку, когда я просил.

Не будь терпилой -- требуй, проси, доказывай, что ты заслуживаешь больше. Если нет, то сваливай.

Но быть мудаком, который приходит и говорит: "У меня тут оффер, делайте прибавку или я сваливаю" не стоит.
Аноним 17/07/18 Втр 11:30:45  1229764
>>1229755
>Да хуйня эйчарская. Хотят superstar, но сойдет и обезьяна, которая функтор от моноида отличить в силах
Ну не знаю. В Тинькове сильно по скале гоняют, ууух!
Аноним 17/07/18 Втр 11:32:30  1229765
>>1229763
Дело в том, что контроффера у меня нет. Да и это как-то на саботаж очень похоже.
Наверное я просто не очень ценный сотрудник и нужно довольствоваться тем что имеешь.
Аноним 17/07/18 Втр 11:37:24  1229767
>>1229763
Повезло тебе с менеджером. Мой менеджер только спрашивает "Ну че, сколько там еще осталось?!".
Аноним 17/07/18 Втр 11:40:02  1229769
>>1229763
я другой анон который и начал спраишвать про это вот все, ситуация - месяцев 8 назад устроился джуном, при этом до этого на скале не прогая вообще. И, если в начале я бывало тупил и тд в плане делания всего как на каком-нибудь питоне, а не в фп стиле и все такое, то постепенно стал намного лучше, делаю все сам и с минимумом незначительных замечаний. Но как-то все равно хз, мб я многого хочу и все такое
Аноним 17/07/18 Втр 11:45:25  1229777
>>1229769
не ссы анончик, подойти сегодня к манагеру и поговори с ним, потом отпишись здесь. Что плохого то случиться может? Да нихуя, ровным счётом.
Аноним 17/07/18 Втр 11:48:20  1229780
>>1229777
просто выгонят и наймут более лояльного сотрудника!
Аноним 17/07/18 Втр 11:59:50  1229788
>>1229780
И правильно сделают, мелкобуквенное быдло не нужно.
Аноним 17/07/18 Втр 12:14:53  1229798
>>1229769
Что хоть пишете на скале?
Аноним 17/07/18 Втр 12:58:35  1229820
>>1229788
но мне предложили потерпеть с повышением!
в компании проблемы, нужно перетерпеть!
Аноним 17/07/18 Втр 14:10:30  1229847
>>1229755
>сойдет и обезьяна, которая функтор от моноида отличить в силах
И часто в работе нужны понятие функтора и моноида?
Аноним 17/07/18 Втр 14:37:03  1229854
>>1229847
Да
Аноним 17/07/18 Втр 22:39:48  1230162
>>1229847
Это совсем не сложные понятия, на самом деле.

Функтор, например, это любая хуйня, которая реализует map().
Аноним 18/07/18 Срд 00:32:31  1230204
Кто-нибудь вкатывался в скалу с нуля? Или всё таки это не первый язык у большинства?
Гуглю хх, там даже джунов нет, не то что стажёров. Всем подавай сразу сеньёров с опытом и стаком на страницу.
В то же время на Java вакансии есть, берут вообще всех, буквально "основы ооп" в требованиях. Может стоит влезть в джаву, а потом уже перекатываться?
Хотя с другой стороны, откуда то ведь берутся эти сеньоры...
Аноним 18/07/18 Срд 00:58:47  1230211
>>1230204
Олдфаг-кун, это опять ты?

Ну вот смотри.
Есть такая книжка Functional Programming In Scala.
https://scanlibs.com/functional-programming-in-scala/

Знания скалы там почти не требуется.
Всё, что нужно, объясняют в процессе.
Используется ограниченное подмножество языка, без заморочек, которых в скале полно.

Попробуй, прочитай и _прорешай_ задания в этой книге. Там есть хинты, и даже есть ответы.

Если ты поймёшь, о чём эта книга, зачем вообще всё это нужно, если сможешь решать 1 главу за 7-10 дней (в среднем) и решить все - ты молодец. И смело можешь претендовать на работу, почёт и уважение.

Но, я что-то сомневаюсь.
Поэтому, я бы предложил тебе выбрать джаву, а к скале вернуться попозже.

Аноним 18/07/18 Срд 01:36:42  1230220
>>1230211
Нет, я не тот питонист.
Дело не в книжках. А в последующем устройстве.
Прочту я её, не прочту, что-то мне подсказывает работодателю похуй.
Хуй с горы без опыта работы? Мы вам перезвоним.
Аноним 18/07/18 Срд 01:39:11  1230221
>>1230211
>Олдфаг-кун, это опять ты?
Неа. Это другой анон. Я вот писал >>1229624

Но за наводку на книгу спасибо. Вообще, мне дико доставило именно решение заданий в курсе Одерского. Так что книжечку буду читать для собственного развития.

А вообще, мне сегодня ВНЕЗАПНО позвонили и пригласили на собеседование. Что-то там с Питоном и данными я как раз собирался удариться в ML библиотеки. Завтра пойду побеседую.
Аноним 18/07/18 Срд 01:45:18  1230225
>>1230204
>>1230220
Я задавал аналогичный вопрос в треде и мне неплохо на него ответили здесь >>1229194

Могу предположить, что в России-матушке не так много компаний, которые используют Scala вообще, и как основной язык разработки в частности. Это такое экспериментальное направление скорее. Да и Scala завязана на JVM и интегрируется с Java. Поэтому последнюю желательно таки знать.
Аноним 18/07/18 Срд 01:50:29  1230226
>>1230220
Чувак, если ты можешь читать такие книги (и понимать прочитанное), твоему работодателю не будет похуй, поверь мне.

Другое дело, что чтобы смочь, надо уже иметь изрядно этого самого опыта, лол.

Или быть гением, но гении сюда не пишут.
Аноним 18/07/18 Срд 01:53:31  1230228
>>1230221
>для собственного развития
Это одна из лучших книг по ФП для начинающих.
Независимо от языка.

Плюс, в отличие от хаскеля, например, тут используется практичный jvm-язык. И весьма многое можно с минимальными изменениями реализовать на джаве.
Аноним 18/07/18 Срд 02:06:11  1230233
>>1230226
>твоему работодателю не будет похуй
Вот хз, хз.
>>1230225
>в России-матушке не так много компаний, которые используют Scala вообще
Внезапно, они есть.
Но нужны серьёзные ребятки с опытом в 2-3 года на 300 тысяч в секунду.

А, похуй, буду читать этот толмуд и мониторить периодически хх. Не взлетит так в джаву вкачусь. Нет.
Аноним 18/07/18 Срд 06:04:01  1230261
>>1230221
Ох лол, так это ты? Ну ок, ждем на собеседование...
Аноним 18/07/18 Срд 10:18:01  1230288
>>1216536

> они с джавы все переносят

Лол, нахера?)
Аноним 18/07/18 Срд 12:54:24  1230322
>>1230204
Я вкатывался. Не имел вообще никакого опыта на JVM, кроме немного кложуры. В прошлом гавнокодил на питоне.
Аноним 18/07/18 Срд 14:08:24  1230368
>>1230204
работал стажёром, имея опыт стажировки на яве + пет проджект на спринге (мвс + дата), но это вроде как не просилось; требовали знаний ооп + фп + бд
Аноним 18/07/18 Срд 15:04:13  1230390
>>1230368
Ну и как, интересней чем на Java?
Аноним 18/07/18 Срд 15:42:00  1230405
>>1230390
Ясен пень, я вообще скалу учил без особой надежды на работу, чисто для себя, потому что реально интересно.
Ну а с вакансией реально повезло, не буду отрицать, работается заебись
>>1225047 -кун
Аноним 18/07/18 Срд 16:28:08  1230433
>>1230261
Ну как, взяли?
Аноним 18/07/18 Срд 17:26:44  1230497
>>1230433
Разнесли как дворовую шпану.
Аноним 19/07/18 Чтв 11:11:45  1230869
>>1151705
Я юзаю, что интересует?
Аноним 19/07/18 Чтв 11:12:10  1230870
>>1152031
Сбертех, но тинькофф получше
Аноним 19/07/18 Чтв 11:14:41  1230871
>>1152031
Exante, Revolut.
Аноним 20/07/18 Птн 01:57:38  1231383
>>1230261
>>1230433
Контора хоть и крупная, но мутная какая-то. Вообще, собеседование проходило странно: меня пытались напугать сложными задачами, которые они решают, но при этом уровень моей компетенции не проверяли совсем. На мои вопросы об используемом стеке прямо так и не ответили.

олдфаг-недопитонист
Аноним 20/07/18 Птн 17:46:04  1231792
>>1152031
да на самом деле почте в любом технологичном банке есть скалка: райф, сбер, тинька. Насчёт альфы не уверен.

Ещё куча более мелких мест есть. Не так много как на джаве, но всё равно есть
Аноним 22/07/18 Вск 01:11:33  1232645
>>1152031
Вбросил бы свою контору, но не хочу деанона.

А вообще, пойми, что, даже если в вакансии написано, что компания ищет сеньора, тебе ничего не мешает написать им и узнать про джуновские позиции. Часто джунов ищут пассивно и не публикуют вакансии для них.
Аноним 22/07/18 Вск 05:40:40  1232677
>>1232645
унижение какое!
Аноним 22/07/18 Вск 14:33:16  1232847
Аноны, а какую работу выполняют на Scala? С чем, в основном, приходится иметь дело?
Аноним 22/07/18 Вск 15:21:15  1232874
>>1232847
В основном приходится иметь дело с медленной компиляцией, нечитаемым кодом и постоянными тормозами приложения из-за того, что GC работает как сумасшедший пытаясь вычистить весь мусор, который приложение на Scala генерит каждую секунду.
Аноним 22/07/18 Вск 15:38:56  1232894
>>1232847
Биг дата всякая, ну и просто бэкенды с аккой.
Аноним 22/07/18 Вск 16:46:32  1232980
>>1232894
Причем биг дата не такая уж и биг, но чего уж точно с избытком - описано здесь >>1232874
Аноним 22/07/18 Вск 16:49:50  1232982
>>1232980
>>1232874
Зарепортил залетную обиженку.
Аноним 22/07/18 Вск 17:10:42  1233014
>>1232982
Что ты там зарепортил? Это анонимный форум.
Аноним 22/07/18 Вск 17:18:34  1233028
>>1233014
>Это анонимный форум.
Смешно шутите, Николай.
Аноним 23/07/18 Пнд 11:55:17  1233455
>>1232874
>нечитаемым кодом
то что ты не умеешь его читать, это означает, только то, что ты не умеешь его читать
Скала тем и прекрасна, что можно писать очень лаконичные и выразительные конструкции, которые выглядят как built-in
>медленной компиляцией
это да, но для сервака это неважно
> постоянными тормозами
не замечал
Аноним 23/07/18 Пнд 22:56:38  1233805
>>1233455
>то что ты не умеешь его читать, это означает, только то, что ты не умеешь его читать
У Скалы объективно очень хуёвый синтаксис. К нему можно привыкнуть, как к Лиспу, или как к запаху носков в казарме, но чем-то хорошим он от этого не становится.
Аноним 23/07/18 Пнд 23:44:22  1233851
>>1233805
>У Скалы объективно очень хуёвый синтаксис
Ахуенные истории.жпег
Если вот это сложно, то остаётся только 1с с его ВЫЧЕСТЬ ПРМН ПРИБАВИТЬ НАЛОГ и в таком духе.
Небольшие трудности могут вызвать только всякие имплиситы, вот выше анон _+_ подобные записи считал сложными.
Ну и с типизацией надо разбираться, если ты хочешь использовать это всё на полную катушку.
К слову, у скалы же из хаскеля ноги растут? Я как-то читал статью в интернетах, там автор ебанат, он в одной статье давал ссылку на другую, и вот у меня ушло минут 5 прежде чем я сообразил, что та другая использует примеры на хастлере.
Аноним 24/07/18 Втр 01:14:48  1233870
>>1233805
Ты питонист или goвноед? ^_^
Аноним 24/07/18 Втр 06:35:12  1233934
>>1233805
Все верно. Намного быстрее и главное дешевле написать все на Java. Хорошо что есть уже обкатанный Спринг и сопутсвующие библиотеки. Пока будешь подбирать стек на скале, у тебя деньги кончатся в конторе. Нужно же чтобы библиотеки были написаны на скала и все было функциональненько!
Аноним 24/07/18 Втр 10:14:54  1234026
>>1233851
> вот у меня ушло минут 5 прежде чем я сообразил
И таков тупица каждый второй скалист
Аноним 24/07/18 Втр 10:45:25  1234036
>>1233851
>Если вот это сложно
Ездить на велосипеде с квадратными колёсами не сложно, просто неудобно.
>>1233870
Нет, я предпочитаю нормальные языки программирования.
>>1233934
С Джавой сравнивать не корректно, потому что Джава менее выразительна, соответственно и синтаксис для неё придумать проще, но если уж на то пошло, там он лучше.
Аноним 24/07/18 Втр 17:27:03  1234237
Аноны, давайте помогать друг другу, так как ждать ответов в треде долго. Мб будем оставлять свою телегу другим с описанием и приблизительной оценкой своих скиллов/ знаний фреймворков
Начну с себя:
@dirinle
Scala 7/10
Akka Actors 8/10
Akka Http 6/10
Play2 3/10
Slick 9/10
Я, например, постоянно спотыкаюсь об плэй, так как только недавно с ним работаю
Аноним 24/07/18 Втр 17:36:48  1234239
Аноны, хочу писать полноценно функционально. Что лучше, cats или scalaz?
Аноним 24/07/18 Втр 19:49:56  1234283
>>1234239
Cats для петухов, конечно scalaz!
Аноним 25/07/18 Срд 09:33:36  1234540
>>1234239

сейчас более популярно cats
Аноним 25/07/18 Срд 12:34:51  1234618
>>1234239
Haskell.
Аноним 25/07/18 Срд 14:39:39  1234684
>>1234618
Я ждал этого ответа, спасибо.
Аноним 25/07/18 Срд 16:53:32  1234748
>>1234618
Тогда уж Erlang, там хоть работа найти можно будет.
Аноним 25/07/18 Срд 16:53:57  1234750
>>1234748
работу, быстрофикс.
Аноним 25/07/18 Срд 17:47:19  1234789
>>1234748
Если ерланг, то лучше уж эликсир или кложу.
Аноним 25/07/18 Срд 17:55:13  1234797
>>1234789
если эликсир или кложу, то лучше скалу, тогда и работу найти можно будет.
Аноним 25/07/18 Срд 18:02:03  1234801
>>1234797
Логично!
Аноним 26/07/18 Чтв 11:02:38  1235260
>>1234789
На кложе нет работы, хватит распространять этот миф.
Аноним 26/07/18 Чтв 11:09:30  1235265
>>1216375
Для скорости нужен го, раст или плюсы. Ты забыл что-ли, что джява работает на JVM? Которая в принципе сосёт на реальных задачах, и написать на ней что-то быстрое, особенно когда дела касается асинхронщины адски сложно. Просто не ебать мозги и взять гошку.
Аноним 26/07/18 Чтв 11:09:40  1235266
>>1235260
Никита Прокопов же нашел работу на кложе!
Аноним 26/07/18 Чтв 11:13:25  1235271
>>1235266
Шта? Кто это вообще?
Аноним 26/07/18 Чтв 11:24:05  1235275
>>1235271
Да ты погугли! Ты же не гуглил!
Аноним 26/07/18 Чтв 11:50:11  1235283
>>1235271
Один из самых известных программистов на Clojure!
Аноним 26/07/18 Чтв 14:29:19  1235382
Если Scala такая плохая, почему ее используют?
Аноним 26/07/18 Чтв 14:35:28  1235384
>>1235382
Потому что очень много скала-макак, готовых писать за 200 баксов. Короче демпинг зп норм программистов.
Аноним 26/07/18 Чтв 14:56:01  1235393
>>1235382
потому что на ней легко писать программы с хорошим дизайном. Тру программисты не боятся сложностей, поэтому пишут на спринге или го!
Аноним 26/07/18 Чтв 15:04:30  1235398
>>1235393
спринг божественен!
Аноним 26/07/18 Чтв 16:08:42  1235467
>>1235382
Кто использует-то? Даже не в первой двадцатке по популярности.
Аноним 26/07/18 Чтв 16:28:42  1235480
lang.rank.118.png (123Кб, 1050x744)
>>1235467
4.2
Аноним 26/07/18 Чтв 16:35:52  1235486
>>1235260
Июнь не палится. :')

>>1235271
Автор firacode
Аноним 26/07/18 Чтв 16:44:39  1235495
>>1235480
Этот график - полнейшая хуйня.

И, хорошо ещё, если это просто троллинг.
А если те, кто делает эти "исследования", сами в это верят, то это пиздец.

Аноним 26/07/18 Чтв 16:47:37  1235496
>>1235382
Не особо. Всё относительно - относительно ocaml или clojure её таки используют. Относительно Java, JS или C# - вообще нахуй никому не нужна, забытое поделие.
Аноним 26/07/18 Чтв 17:22:18  1235518
>>1235495
Конечно школьнику с сосача виднее, чем одной из самых известных analyst фирм. Съеби в /b.
Аноним 26/07/18 Чтв 21:49:04  1235821
>>1235518
>analyst фирм
Сеньор enterprise солюшн architect в треде! Все на борт application сервера!
Аноним 27/07/18 Птн 01:12:05  1235920
tumblro56sc7ASY[...].jpg (264Кб, 1280x683)
Пацаны, я вам оп-пик для переката принес:

>Hieronymus Bosch “A visual guide to the Scala language” oil on oak panels, 1490-1510.
>The left panel shows the functional features, the main one describes the type system, and the right the object oriented parts.
Аноним 30/07/18 Пнд 00:47:05  1237516
Добрый вечер, скалагоспода. В общем решил навернуть скалу для себя, в качестве хобби, а то заебал жс на работе уже, да и хочется вкусить все бэкендерские фишки, к тому же на таком охуенном фп языке. Вообще, в дальнейшем хочу перекатиться с фронтоговна на скалобэка, сколько это примерно должно занять? фп вроде немного знаю, на жсе стараюсь ворочать говна в фп стиле
Аноним 30/07/18 Пнд 09:26:03  1237565
>>1237516
Purescript. И научись сначала ставить и добиваться решения по одной задаче за раз.
Аноним 30/07/18 Пнд 09:57:40  1237580
>>1237516
всегда лолирую с джс дурачков, которые говорят "фп немного знаю". Фп это не map, filter, reduce.

https://gist.github.com/d1egoaz/2180cbbf7d373a0c5575f9a62466e5e1 -- добро пожаловать.
Аноним 30/07/18 Пнд 14:17:01  1237664
>>1237580
Забавно, аноны в треде советовали как раз всё с точностью до наоборот: толстую книгу Одерски и красную по ФП.
Аноним 30/07/18 Пнд 14:24:49  1237674
>>1237664
дык красную книгу там и советуют, только чуть попозже
Аноним 31/07/18 Втр 22:16:21  1238540
Бамп годному языку
Аноним 01/08/18 Срд 17:52:58  1239026
>>1237580
Так Скала - это не ФП. Скала - это Джава с лямбдами + пара костыльных паттернов на макросах имплицитах, которыми пытаются имитировать ФП. Если хорошо в этих костылях разобраться и попердолиться пару вечеров, то можно написать целую монаду, например.
Аноним 01/08/18 Срд 22:04:21  1239258
Аноны, вопрос немного не по теме треда, но больше некуда. Чем так плох F# по сравнению со Scala, что его вообще никто не использует?

Аноним 02/08/18 Чтв 12:11:26  1239531
>>1239026
анон ты обосрался, как связаны монады, макросы и ФП? Не неси хуйню, уйди
Аноним 02/08/18 Чтв 13:22:57  1239571
>>1239531
Когда твои познания в ФП немного перевалять за map и пару статей на хабре, а опыт программирования на скале - за пару заданий из кук-буков, ты поймёшь, как они связаны. А пока просто учись и не выёбывайся.
Аноним 02/08/18 Чтв 13:45:15  1239582
>>1239571
ты будешь дальше выебываться или может ответишь на вопрос? Как связаны монады, макросы и ФП? ФП не может существовать без макросов и монад?
Аноним 02/08/18 Чтв 13:55:49  1239587
>>1239258
1. проприетарный (де факто)
2. проёбаны GADT-ы, нigher-kinded polymorphism и многое другое. И этого никогда не будет, потому что 1 и на любой вопрос отвечают "это сложно сделать в дудке без костылей".

Вообще, в плане функциональности языки можно разделить так:

0. Эксперементальные языки, вроде Idris, Agda и т.п. Делают НЁХ, но, к сожалению, она не всегда пригодна для практического применения. Например, в Агде нельзя задать функтор для стрелки (морфизма внутри языка), и прочие нежданчики всплывают, про которые никто не знает, потому что никто на этих языках не программирует. Я уж не говорю про отсутсвие экосистемы.

1. Haskell - делают нормально, огромный набор рабочих паттернов для решения практических задач, про язык всё известно, нормальная экосистема. Есть определенные ограничения и косяки, но они тоже, как правило, известны.

2. Scala - пытаются делать то же, что и в Haskell, но по причине родовой травмы, получается только на костылях и в инвалидной коляске. У особо умных личностей путём героических сражений с собственным инструментом и преодоления созданных им трудностей всё же получается что-то сделать (тот же cats или scalaz), но не пытайтесь повторять это дома, может оказаться опасно для мозга. К сожалению, все эти сложности не получается до конца изолировать даже на уровне библиотеки, поэтому даже воспользовавшись чем-либо готовым, вы всё равно рискуете хапнуть говна и повторить геройские подвиги сражения с языком, хотя, справедливости ради, уже в более лайтовой форме, чем авторы либ.

3. F# - онально огорожены и, как я уже писал выше, даже не пытаются делать то, что не поддерживается самой платформой .net. В итоге застряли на полиморфизме ранга-1, причем 13 лет назад, в течение которых все нововведения в язык сводились к синтаксическому сахарку и частным свистелкам-перделкам, которые, по идее, в любом нормальном языке могут быть реализованы на уровне макросов или, в крайнем случае, плагинов компилятора. inb4 MIT-лицензия и наличие mono не особо позволяют шарпу стать "открытым", это все равно, что говорить, что windows-only-говно не онально огорожено потому что есть wine
Аноним 02/08/18 Чтв 14:02:03  1239591
>>1239587
Содержательно. Спасибо.
Аноним 03/08/18 Птн 09:16:28  1240000
Долго, тяжело, больно перекатываться с Жавы на Скалу? В Жаве уже 4 года бтв.
Аноним 03/08/18 Птн 09:22:53  1240002
>>1240000
Ну и да - будут ли с этого профиты? Получится ли это монетизировать в будущем?
Аноним 03/08/18 Птн 12:39:53  1240164
>>1240000
>4 года бтв
А нахуя тебе? Ты ж там небось уже тысяч 200 получаешь, минимум.
Аноним 03/08/18 Птн 12:45:23  1240167
>>1240164
Чтобы в будущем получать уже 300, например
Аноним 03/08/18 Птн 13:34:32  1240178
Ананасы, как лучше оформлять простые рекурсивные функции с if-else или match-case?
Аноним 03/08/18 Птн 19:16:57  1240385
>>1240178
В шапке же вроде было
https://docs.scala-lang.org/style/
Аноним 04/08/18 Суб 00:01:00  1240545
>>1239587
>Haskell крут.
>Scala пытается быть такой же крутой.
Тогда почему вакансий Scala тысячи, а у Haskell десятки?
Аноним 04/08/18 Суб 11:30:14  1240654
>>1240545
Haskell слишком крут. Очевидно же.
Аноним 08/08/18 Срд 00:01:16  1242760
>>1239587
А что на счет Clojure?
Аноним 12/08/18 Вск 09:36:38  1245322
Почему трут конфу по скале из шапки @hcdev
Аноним 14/08/18 Втр 16:20:32  1246634
>>1242760
Такое же нинужно как и скала, тащемта.
Аноним 15/08/18 Срд 04:59:05  1246916
Аноны, а как по-простому скомпилировать скала-код в байткод для jre?
1. Делаю обычный хеллоуворлд
2. scalac hello.scala
3. java Hello дает Error: Could not find or load main class Test
Аноним 21/08/18 Втр 04:51:46  1250022
scala.jpg (270Кб, 700x790)
Бамп
Аноним 21/08/18 Втр 11:02:09  1250127
>>1250022
Да не поможет тебе бамп, скала нинужна, она умирает. Убогий тулинг, мешанина концепций, язык просто как куча разношёрстного барахла, да еще и на JVM.
Вон буружуи уже какие разговоры заводят:
https://www.quora.com/Is-Scala-a-dying-programing-language
Аноним 21/08/18 Втр 18:00:25  1250392
>>1250127
Нет, не нужна, не надо её учить.
В статье так и сказано.
Аноним 21/08/18 Втр 20:02:24  1250507
2.png (96Кб, 1800x2032)
Scala нинужна. Твердо и четко.
Аноним 21/08/18 Втр 20:04:04  1250508
>>1250507
Я не поверю, что человек который смог в монады будет кормить настолько жирного зелёного.
Аноним 22/08/18 Срд 11:34:51  1250801
>>1250507
Что это за маня-фантазии? Сам рисовал? Открой репорт гитхаба, скала уже менее популярна, чем шелл-скрипты.
https://octoverse.github.com/
Аноним 22/08/18 Срд 17:35:21  1251030
>>1250801
https://habr.com/company/moikrug/blog/420391/
Аноним 22/08/18 Срд 21:11:55  1251127
>>1251030
На коболе знаешь какие зп охуительные? Когда технология загибается, спеца найти становится сложнее и рынок готов предлагать большие зп, лишь кто-то был готов обмазываться и поддерживать уже накатанное.
Аноним 22/08/18 Срд 21:21:38  1251130
>>1251127
Так ты работать собрался или на анонимных форумах для девочек анимешниц усираться?
Аноним 23/08/18 Чтв 10:44:28  1251315
>>1251130
Вот именно - работать, для второго есть скала.
Аноним 27/08/18 Пнд 22:04:47  1253800
15325982017230.jpg (11Кб, 415x406)
Читаю это красную книгу, вижу задание.
Смотрю как надо сделать. Решаю сделать тоже самое, но с блекджеком с потоками. А хули нет?
В пятницу сделал, все выходные пробухал.
Щас посмотрел, что я сделал и обосрался. Всего пару дней прошло, а я уже забыл что и как я делал, пришлось 5 минут смотреть в экран, чтобы вспомнить.
Аноним 28/08/18 Втр 13:09:28  1254044
НУЖЕН ПЕРЕКАТ
НУЖЕН ПЕРЕКАТ
НУЖЕН ПЕРЕКАТ
Аноним 28/08/18 Втр 13:11:47  1254045
image.png (497Кб, 460x460)
НУЖЕН ПЕРЕКАТ
НУЖЕН ПЕРЕКАТ
НУЖЕН ПЕРЕКАТ
НУЖЕН ПЕРЕКАТ
НУЖЕН ПЕРЕКАТ

инбифо: сам делай перекат
Аноним 05/09/18 Срд 09:14:01  1259329
ПЕРЕКАТ

>>1259320 (OP)
>>1259320 (OP)
>>1259320 (OP)
>>1259320 (OP)
>>1259320 (OP)


Топ тредов
Избранное