Очередной тред про самый лучший язык для 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 решать существенно проще, чем на большенстве других языков.Конечно, зависит от задачи. Очень многое на Haskell делается красиво и тривиально. Но когда начинается ввод/вывод и обработка ошибок Haskell почти ни чего не дает, по сравнению с распространенными языками.
Какие вопросы спрашивают на собеседовании?
На scala days кто-нибудь собирается? Думаю поехать на берлинскии scala days в мае, годное мероприятие?
>>1137328лямбды
>>1137329Вообще думаю все митапы по умолчанию говно.
>>1137321 (OP)Говорят Хаскель на порядок проще из-за отсутствия ебучего наследования и костылей JVM это так?
>>1137336Лямда исчисления?
>>1137344Оно самое а вообще хороше уже то что ты под себя не ходишь
>>1137363Так а ещё что спрашивают? Хочу сразу как минимум на мидла перакится, на скале ток много для спарка писал.
>>1137370Akka / Akka Persistence / Akka HTTP / Akka Streams, Scala, Play, Slick,Kafka
>>1137370skillset 1 = Scala, Spark, Cassandraskillset 2 = Scala, Solr/Elasticsearch, Akka
>>1137379>>1137383Спасибо
>>1137321 (OP)Часто ли тащат в прод cats/scalaz ? Можно ли жить без них
>>1137425А какой смысл писать на Scala без ScalaZ?
>>1137436Ну ахуеть это что получается язык не состоятельный без сторонней билиотеки?
>>1137340- Нормальная хвостовая рекурсия- Нормальный вывод типов- Нормальный синтаксис вызова функций- Нет разделения на функции/методы- ???- Сотни их
>>1137340только работы на нем нет
>>1137443Согласен
>>1137439ну хуй знает
>>1137321 (OP)scala
Поссал на скалапетухов.мимо жс лорд
>>1137767>2018>js
>>1137321 (OP)Хочу вкатиться с чего начинать?
>>1138290С Haskell
>>1138296Толсто
Там java 10 вышла, добавили var в сахарок, скоро Скала будет ненужна-ненужна
>>1138539Представляю баттхёрт олдскульных джавапидоров. Если даже шарпоёбы воняли про ненужность на весь интернет при добавлении подобной фичи.
>>1138539За сахарком это в котлин. А тут любители хорошей типизации сидят.
>>1139144За хорошей типизацией это в Coq. А тут корпоративные вонаби-ФП-шники сидят.
НАКАНЕЦТАтред о лучшем языке программирования, мимоподписалсяработаю скала-трейни-почтиджунучу акку, слик, скалатест, всем доволен
>>1137321 (OP)https://www.youtube.com/watch?v=4jh94gowim0
>>1137329В NYC в Июне еду
Как сейчас ситуация с вакансиями?
>>1150602когда искал на фрилансе, то их оказалось таки есть. Причем больше чем я думал. Но в итоге ушел в стартап и теперь пишу на ноде (
>>1148186можешь вкратце описать зачем нужна акка?
>>1150976Я юзал akka-http, довольно удобно для написания контроллера. Ну и конечно же akka-actors для написания многопоточных программ
Двач, а скала используется для обучения машин? Насколько реально использовать скалу для МЛ (либы вроде нужные присутствуют и в большом количестве, но используются ли на практике, встречаются ли такие вакансии)?
>>1151296для проверки гипотез все равно быстрее python юзать и либы там заебись. Иногда уже проверенную гипотезу реализуют на Java, чтобы быстрее работало. А так в Scala для ML большого смысла нету
>>1151300Спасибо, анон, я примерно это и предполагал. Тогда вопрос #2: со всей этой бигдатой, хадупами, спарками и прочим можно работать как на джаве, так и на скале. Ощутим ли выигрыш по времени при работе на скале, или если знаешь джаву то смысла вкатываться в скалу (для МЛ/ЕТЛ) нет?
>>1151313Scala хороша чтобы свой Spark написать, а так смысла нету. Опять же хоть Python юзай.
>>1151042я просто быдлоджавер, пишущий e-commerce. Конечно понимаю о существовании различных распределенных нагруженных приложений. Но супер-примеров использования реальных асинхронных штук, кроме мб чата, представить не могу)
А в дс есть какие-нибудь магистратуры, где я смогу изучать фп, теорию типов, мат логику? Мне интересно понять пэйпер dependent object types и свободно читать спеку языка, но пока что мне знаний не хватает. Еще было бы интересно позаниматься пруф асистантами. Начинал ковырять Coq - почти ничего не понял. Начал читать dragon book про компиляторы и потом планирую прочитать benjamin pierce: types and programming languages. Есть магистратуры, куда стоит поступать с таким полем интересов?
>>1151499Вот такие курсы, например, хотел бы прослушать:http://mit.spbau.ru/courses/IntroductionToProgrammingLanguageshttp://mit.spbau.ru/courses/fphttp://mit.spbau.ru/courses/modelchecking
>>1137321 (OP)А матрёшку кто-нить юзает, а?
Есть вообще какая-то работа в ДС кроме Тинькова для выпускника-скалоеба (без опыта работы)?
Подскажите ньюфагу, как сделать так, чтобы IDEA видела либы подргуженные через SBT. Проект у меня собирается, но автокомплит по загруженным зависимостям не работает
>>1152096* Собирается через SBT
>>1152096Делаешь в идее поиск по действиям (у меня ctrl+shift+a), пишешь sbt, в открывшейся панели жмешь кнопочку с двумя синими стрелочками. Еще когда build.sbt меняешь, вверху файла должна появляться желтая полоса с опциями refresh project, enable auto-import и еще че-то.
>>1152107Помогло, благодарствую
Есть ли смысл студентоте без опыта в продакшене вкатываться в Скалу? Или лучше скакать от Джавы.
>>1151499В EPFL иди. https://docs.google.com/document/d/1FvShq1XS0DsTouKYeYbcUe0Ual4no4UiSQyTG7YUFNs/edit
>>1152125Не особо важно, главное - че за работа. Большинство джава-вакансий - это какое-нибудь нудное говно типа интернет-магазинов, крудошлепства в банках и т д, но если сможешь найти приличную работу на джаве (например, будет варик в бигдату вкатиться), то устраивайся.
>>1152176Я имею в виду реально найти джуниорскую вакансию на Скале?
>>1152130Как-то слишком круто. Наукой я интересуюсь, но боюсь я для нее туповат. Я как-то в бакалавриате пытался придумать новый численный метод для вычисления одной фигни и ничего придумать не смог. Публикаций у меня нет и не предвидится, работаю на обычной энтерпрайз-работе (ну не совсем обычной, конечно, все-таки на скале немного особенные люди пишут). Я хотел поступать в магистратуру, чтобы за 2 года у меня либо появились научные интересы, либо чтоб я понял, что мне это не надо.
>>1152184Если в дс живешь, то реально. Скала-джуны бывают, хоть это и редкость.
>>1152130Автор доки в 22 года закончил мфти и уже тимлидом работал. Не представляю, чтобы люди аналогичного уровня успешности на дваче сидели.
>>1152220Еще автор писал, что хватает людей, которые пришли после работы в сфере и есть даже те, кому за 35>>1152186Публикации не обязательны. Как я понял - главное в красках в резюме рассписать чем занимался и написать хорошее мотивационное письмо, зачем тебе все это надо. Так же, по словам автора, перед поступлением можно и не знать тему своей будущей диссертации и определится в первый год
>>1152220На дваче сидят очень успешные люди, но ридонли, это факт. Жалко, что они не пишут.
Вкатываюсь в скалу, лень смотреть/бенчить самому, может анон поможет:1) Неоднократно натыкался на заявление что у Scala меньше memory footprint по сравнению с джава, но никто не поясняет за счёт чего это достигается. JVM как я понимаю одна и та же, gc тоже наверное работает одинаково, откуда улучшение? За счёт использования lazy? 2) Моё джавовское мировоззрение напрягает работа с коллекциями и сам факт того, что коллекции иммутабельны, вопрос такой, когда я делаю так:result :+= elна случай если проябался с синтаксисом -- хотел показать добавление элемента в конец коллекциипроисходит ли полное копирование коллекции? Сложность такой операции по времени и памяти какая будет?
>>11531372) списки там связанные, поэтому элемент просто добавляется в конец. да создается новый объект список, но перекопирования старых элементов не происходит
>>1153137Нет, не происходит. Так как коллекции иммутабельны, общая часть может быть расшарена между всеми "версиями" это коллекции. Представь, например, что у тебя есть иммутабельный список А из 100 элементов, и ты делаешь на его основе 10 новых списков Б_1..Б_10, каждый из которых добавляет один новый элемент к первоначальному списку. У тебя будет 10 списков длины 101, но память будет использована не для 101*10 элементов, а только для 10 новых элементов (по одному от каждого списка Б_1..Б_10), в то время как сто общих элементов будут расшарены между всеми списками: каждый из списков Б_n будет содержать новый элемент и ссылку на список А. Поскольку данные иммутабельны, все эти операции гарантированно корректны.В реальных структурах данных конкретная стратегия расшаривания зависит от реализации. Обычно структура делится на небольшие чанки, внутри которых изменения копируются (ибо так быстрее), и шарятся уже эти чанки. Сложность по времени обычно логарифмическая, но что-то вроде log_32(n), то есть "effectively constant time". Подробнее о реализации и расшаривании можешь гуглить по запросу "persistent data structures".
>>1153137>> 1) Неоднократно натыкался на заявление что у Scala меньше memory footprint по сравнению с джава, но никто не поясняет за счёт чего это достигается. JVM как я понимаю одна и та же, gc тоже наверное работает одинаково, откуда улучшение? За счёт использования lazy? Возможно из-за lazy (если его аквтивно используют) он и меньше, но как по мне, у Scala должен быть больше memory footprint. Во-первых, она не самый эффективный Bytecode даёт, так как мы в нём натягиваем сову на глобус, пытаясь выразить сложные scala концепции в терминах java классов и объектов. Плюс функциональщина достаточно активно срёт в память. Недавно как раз смотрел запись конференции, где чувак показывал как типичный код с фолдом списка на скалке умудряется срать в память со скоростью полгигабайта в секунду. В следствии этого во время фолда просыпается GC и код работает раза в три медленнее, чем его итеративный аналог. А всё сраный боксинг/анбоксинг
>>1153241>код с фолдом списка на скалке умудряется срать в память со скоростью полгигабайта в секунду>А всё сраный боксинг/анбоксинг Пикрелейтед. Открой свое сердце свету трансдьюсеров, брат!
>>1151466Я тоже в прошлом быдлоджавер. А про многопоточность могу в сказать, что не обязательно руками выделять отдельный поток на обработку каких данных, можно просто засовывать отельные части процессов в фьючи (например дейстия с бд), которые будут рабтать асинхронно, что ОЧЕНЬ актуально, если принимать во внимание, что в современных пк упор делаться на многопроцессорность
>>1153605>можно просто засовывать отельные части процессов в фьючиИЧСХ, для этого даже Скала не нужна, лол.CompletableFuture, конечноИ акку можно и из джавы юзать, что многие и делают.
>>1153647>не нужнанужна, поверь нужнащас поясю почему- неизменяемость (иммьютбл переменные и коллекции), очень помогает при работе в многопоточности, легче писать тесты и да и вообще читать код легче- паттерн матчинг. Ну это просто охуенно, это даже не свитч на максималках, это намного круче- краткость. Вот за что ругают яву, за то хвалят скалу - полная поддержка фп. тут даже рассписывать не буду- строягая типизация при той же краткости, и да типы дженекиков при компиляции не стираются, как в яве)- охуенные стандартные либы да и вообще жаба ОЧЕНЬ много потеряла в погоне за совместимостю, после скалы будешь смотреть на неё как на ассеблер после плюсов
>>1154073> вообще жаба ОЧЕНЬ много потеряла в погоне за совместимостюЛюто удваиваю.миможабокотлиносэр
>>1153647>>1154073пока курил, понял что не расписал и половины перимуществ, если заинтересуешься, то я тебе на почту книжку скину "скала для джавистов">>1154079котлин уважаю, котлин крута но скала круче)
>>1154084> скала кручеА еще Солнце, кстати, желтое, а небо синее (серое в России), кэп.
>>1154084>понял что не расписал и половины перимуществЯ, как-бы, в курсе, лол.И насчёт минусов тоже.Я не имел в виду, "скала не нужна", я имел в виду, "скала не нужна, чтобы ...".Ты, кстати, на работе на чём пишешь, и какого рода проекты? Это я к тому, что скала - вещь в себе, и с джавой (на деле) интегрируется не особо.
>>1154073>полная поддержка фп. тут даже рассписывать не будуВсё-таки стоило бы расписать.
>>1154127Работаю в геймдеве, проект на акке + кэтс, для бд - слик. Также работаю удалённо над проектом-сайтиком, там плей + бутстрап>>1154342- монады- неизменяемость- функции как переменные- функции высшего порядка- алгоритмические структуры данных- нормальная поддержка рекурсиихотя дать определение фп достаточно сложно, в отличии от ооп
>>1154375>в отличии от оопТак все-таки ооп - это смолток или кресты?
>>1154434Кресты но это не точно.Я где-то слышал, что ООП - то что в крестах (из Симулы). В смолтолке - не ООП, а объектное программирование (объектная система в смысле позднего связывния, вот ото вот всё).
>>1154439>не ООП, а объектное программирование>не объектно-ориентированное программирование, а объектное программирование>хотя дать определение фп достаточно сложно, в отличии от ооп
>>1154375>алгоритмические структуры данныхАлгебраические типы данных.>неизменяемостьИммутабельность.Оттенок смысла немножко другой.Вообще, не надо ничего переводить на русский.Нужно использовать терминологию как есть, по возможности.Читал ли ты книжку Functional Programming in Scala (изд. Manning)?Это одна из лучших книг по фп вообще, я бы советовал. И задания обязательно прорешать.Ответы есть, репозиторий на гитхабе.Есть ещё Functional Programming in Java, тоже Manning. Тоже охуенная вещь. Написана в совершенно другом стиле - более практическом.Автор (намеренно) не употребляет слово "монада" в основной части книги, например, и в послесловии объясняет, почему.
>>1154508>Алгебраические типы данных.да, спс за фикс>>1154439>>1154461>>1154434ооп - это полиморфизм, инхеритенс не знаю как норм перевести, инкапсуляция и абстракция, а дальше понимайте как хотите
>>1154549> инхеритенсЛол.Наследование.Это как раз тот случай, когда надо переводитьНасчёт ООП - он тебя просто троллит.
>>1154558>Это как раз тот случай, когда надо переводитьта да, просто русский мне не родной>>1154508>Читал ли ты книжку Functional Programming in Scala (изд. Manning)?к сожелению ещё не читал, уже скачана, но не читалда и только 3 месяца, как на скале, прочитал только ессеншиал скала, скала для нетерпеливых (на русском) и 200 страниц програминг ин скала одерского
>>1154577В FP in Scala самой скалы по минимуму.Т.е. предварительное знание языка желательно, но не обязательно. Ну, это авторы так пишут. На самом деле, конечно, просто с нуля ловить там нечего. Но, в дебри языка они не лезут, только в типы, разве что. Книга небольшая, язык (английский) - простой. Но, времени на чтение (с решением задач) надо много, может быть, даже и год (судя по тому, что народ пишет). Т.е. надо делать это вдумчиво и не спеша."Скала для нетерпеливых" - очень годная книга, перевод я, правда, не видел. Одерского можно читать вечно, лол.Народ на форумах пишет, что терпения не хватает.
>>1154601Одерского 5 раз перечитал, прежде чем более или менее стал понимать скалу.
>>1154549>ооп - это полиморфизмСильное заявление. То есть тайпклассы - это ооп?>инхеритенсСильное заявление. То есть ооп-языки без наследования - не ооп? Алсо, "предпочитайте композицию наследованию", вот это все... ооп-гуру, выходит, тоже не ооп?>инкапсуляция и абстракцияТочно, анон, ведь без ооп абстракций не бывает! Ой, подожди. Нет, что-то не сходится.
>>1154655ты зелёный?ну ок, скажи что для тебя ооп, вот мне реально интересно>>1154601>>1154629да у меня вообще уже книжек 5 накопилось, котрые хочу прочитать
>>1154679Для объектно-ориентированное программирование - это, внезапно, программирование, ориентированное на объекты. А объекты - это такие штуки, у которых есть внутреннее состояние, которое можно шатать сообщениями.Но к "ООП" это не имеет никакого отношения. ООП - это просто маркетинговый буллшит без строгих\инженерных оснований, под которым каждый понимает то, что ему хочется.Если что, это все к>хотя дать определение фп достаточно сложно, в отличии от ооп
>>1154073> типы дженекиков при компиляции не стираются, как в яве)шта?
>>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.getprintln(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 тут не генерируется. Тоже самое и со Stringval s = new S[String]("3")val a = s.getprintln(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.
>>1154751Ну и зачем ты это высрал сюда?Ты, блять, кончай тут умничать.Здесь тебе не тут.В скале используется специальный костыль, который сохраняет информацию о типах, только и всего.Там целое кино с рефлексией в скале, заебёшься делать.Но, тем не менее, информация о типах - сохраняется.Ещё раз, для особо одарённых - она не "не стирается", она специально сохраняется, в специальном объекте, и обеспечивает это компилятор скалы, если его хорошо попросить
>>1154826
>ScalaНенужное говно без задач, язык для быдла, пародия на ФП. >HaskellТоповый язык для элиты, подходит для абсолютно любых задач, тру ФП.
>>1154901Что то говно, что то говно.мимо кложа лорд
>>1154826>>В скале используется специальный костыль, который сохраняет информацию о типах, только и всего.>>Там целое кино с рефлексией в скале, заебёшься делать. Но, тем не менее, информация о типах - сохраняется.Как бы фича ради фичи. В рантайме это никак не помогает, так как JVM похуй. JITу она не поможет сгенерировать более эффективный код (а она могла бы помочь, банально со старта девиртуализовать некоторые вызовы, да удалить лишние кастчеки). Да блин, даже сама scalac всё равно генерирует код с кастчеками и прочим дерьмом. При разбработке же нормальные IDE сами прекрасно могут вывести все типы и проверить их соответствие. >>Там целое кино с рефлексией в скале, заебёшься делать.Как бы этим в нормальной разработке особо никто заниматься не будет. Нужно это всё трём с половиной теоретикам. Да кукаретикам, чтобы список "достоинств" скалы раздувать.
>>1154826Информацию о дженериках в полях, аргументах и результатов методов можно и в джава коде достать. А вот имея на руках объект класса с дженериком узнать его дженерик нельзя. Покажи мне код, который сделает это на скале, хотя бы с костылями.
>>1154908>При разбработке же нормальные IDE сами прекрасно могут вывести все типы и проверить их соответствие. Это делает компилятор.То, что мы тут обсуждаем нужно _только_ для рефлексии.>>1154917Можно.https://medium.com/@sinisalouc/overcoming-type-erasure-in-scala-8f2422070d20https://docs.scala-lang.org/overviews/reflection/typetags-manifests.html
>>1154906Ох, лол.Кложура - язык не для всех, это точно.Но не по тем причинам, по каким ты думаешь.
>>1154969Перечитай там ещё раз. Написать метод, который принимает List[Any] и возвращает то, что там на самом деле - нельзя. А дженерики классов, полей, аргументов и результатов функций так же доступны в джаве.
>>1155041>List[Any]>то, что там на самом делеТам Any, блядь, или ты чего-то другого хотел?Ты вообще как-то не так всё это понимаешь (судя по твоему пассажу про IDE).Извини, у меня сегодня нет настроения нести свет просвещения в массы.
>>1154970А по каким?*мимо?
>>1155058Погоди, а если я в метод передал List[Huita], он тоже внезапно Any?
>>1155089Блядь, мимо. Другой анон в смысле.>>1154970Просто как бы скала тоже язык не для всех, и х-ль - язык не для всех, и на жаваскрипе микроконтроллеры не попишешь. То есть это самоочевидное утверждение, но ты, разумеется, имел в виду что-то другое.
>>1155092Я имел в виду, что лисп вообще и кложура в частности, не подходит на роль промышленного языка общего назначения.Нормальному человеку просто тяжело писать на голом AST.И, особенно, читать.Плюс вот эти вот тучи функций на каждый пук - их заебёшься запоминать. Плюс динамика ещё. И макросы.Ну и так далее. Очень большой оверхед с очень скромным результатом. Короче - это просто нишевый DSL.Скала - тоже та ещё хуета, из говна и палок, между нами говоря.Я выучил её уже давно, и до вполне приличного уровня.Но, в реале так и не применил ни разу.Это вещь в себе. А у меня нет таких проектов.И это очень сложный язык - слишком много языка в языке.Это плохо для промышленной разработки.Умственные способности разработчиков тут ни при чём, это другое.Вот, просто навскидку:https://stackoverflow.com/questions/8000903/what-are-all-the-uses-of-an-underscore-in-scalahttps://www.slideshare.net/normation/scala-dreadedИ это ещё довольно простая тема, с которой у меня лично нет никаких проблем.Такие дела.
>>1155120Анон, извини конечно, но ты совершенно не разбираешься в вещах, о которых пытаешься рассуждать. В частности, ты либо не понимаешь значения, либо просто некорректно используешь слова "AST" и "DSL". Ну, то есть продолжать обсуждение этой темы на данный момент смысла явно нет.
>>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.Это именно то, что никак не может взять в толк модная хипстота, хлебающая смузи в кофешопах.
gg
>>1155129Анон, повторю еще раз, что из описанных выше высказываний следует твоя некомпетентность в обсуждаемых вопросах, а потому я не вижу смысла продолжать о чем-то говорить - мне это неинтересно. Твой пост ко мне не имеет никакого отношения, а "юношами" ты лучше пацанов у себя во дворе называй.
>>1155134Дружище, расслабься, всё нормально.И всё в порядке с Clojure, на самом деле.Я довольно давно ею занимаюсь (для развлечения). И довольно неплохо знаю.Но, применить в реальных проектах (за деньги) так и не получилось. И это меня огорчает.
>>1155120> Я выучил её уже давно, и до вполне приличного уровня.> Но, в реале так и не применил ни разу.Чет проиграл. Не взяли на работу на скале и теперь рассказываешь, что скала не нужна, найс.> И это очень сложный языкС точки зрения долбоебов, строгающих сайты, - безусловно. С точки зрения нормальных людей, которые умеют читать книги и документацию, а не только копировать портянки со stackoverflow, - крайне удобный и понятный язык.>>1155129> he avoids clever tricks like the plagueНапомню, что тайпклассы, монады, зависимые типы и другие концепции, которые используются в скале, но которых нет во многих других языках - это не tricks, а общепринятые концепции, описанные в куче книг и статей. Если для тебя это tricks, то я тебе советую в универе отучиться, а потом постить в треде для нормальных людей.
>>1155228>Не взяли на работу на скалеВсё немножко не так.В данный момент я сам обеспечиваю себя работой.И сам решаю, что и на чём будет написано.В процессе принятия решений - принимаю в расчёт соображения типа тех, которые высказывал старина Эджер.Как показывает практика - не зря.На самом деле, довольно много людей получает удовольствие от программирования на скале, но, при этом, не использует её в продакшн.И да, я бы хотел, чтобы меня "взяли на работу" писать на скале.Но, не представляю, кто бы это мог быть.
>>1155247> И да, я бы хотел, чтобы меня "взяли на работу" писать на скале.> Но, не представляю, кто бы это мог быть.В дс переезжай.
>>1155254И идти в тинькофф писать крудодрисню для сайта? Охуенное предложение.
>>1155155Ну ладно. Просто тогда странно слышать от тебя (factually incorrect) фразы вроде "кложа - это дсл", ну а как выглядит аст можно посмотреть, например, тут: https://github.com/clojure/tools.analyzerВдвойне странно слышать рассуждения о синтаксисе в контексте "промышленной разработки". На срок завершения проекта и на количество багов никак не влияет то, пишешь ты f x, f(x) или (f x). Это как раз и есть то самое хипстерство и смузихлебство - "нинравица!1". Подобные вещи нужно оценивать прагматично (объективные профиты дает? дает), а не с точки зрения нравится\не нравится. Да и привыкает к любому из этих вариантов человек максимум за 2 вечера. Далее, что там было... Тучи функций - опять же, это какая-то хипстота. Если человек собирается писать на языкнейм, то он должен не изобретать велосипеды на каждый чих, а разобраться в стандартной библиотеке. В случае кложи это означает, что ему нужно выучить все функции в core. Просто берешь и учишь, тут нет ничего сложного (на худой конец - под рукой всегда есть читшит). В случае с джавой или скалой ему пришлось бы делать ровно то же самое - только эти функции были бы раскиданы по множеству условных "неймспейсов". Нытье про динамику в 2018 году вообще странно слышать. Статическая типизация необходима в проектах-монолитах хотя тот же линукс вон как-то пишут на void* - и ничего; но там хуман ресоурсы, конечно, специфические, а у нас тут, типа, облака, сети, микросервисы, привет.Ну и не лишним, наверное, будет упомянуть, что "лисп вообще" как бы и был в течение некоторого немаленького промежутка времени одним из основных языков "промышленного программирования общего назначения".Короче, я полностью согласен с утверждением "Кложура - язык не для всех".Но не по тем причинам, по каким ты думаешь.
>>1155607>factually incorrectНе нужно всё понимать тупо буквально.Есть метафоры, гиперболы, аллегории и прочая хуйня.>ASTНу, концептуально, синтаксис лиспа - это и есть голое AST. Потому, что синтаксиса, как такового, просто нет.То, что на самом деле это не совсем так, это ничего не меняет в том смысле, в каком я употребил это сравнение.>DSLНаписание любой программы на лиспе сводится, по сути, к написанию DSL для конкретной задачи.Или ты будешь с этим спорить?Ну так вот, лисп - homoiconic. DSL для написания DSL, лол.
>>1155735>метафоры, гиперболы, аллегории>концептуально>на самом деле это не совсем такУгумс.>синтаксис лиспа - это и есть голое AST.То есть (f (g x) (h y)) - аст, а f(g(x) h(y)) - уже не аст? Занятненько.>Потому, что синтаксиса, как такового, просто нет.Есть. Бнф тебе написать или сам напишешь? Про ридер макросы дать почитать? Вообще, весьма надоела уже эта байка, которую бездумно повторяют, совершенно не задумываясь о значении того, что говорят. К вопросу о хипстерах-смузихлебах, угу.>То, что на самом деле это не совсем так, это ничего не меняетТак может тогда попросту не стоит употреблять такие хуевые сравнения, тем более на техническом хоть и для аниме-девочек форуме?>Написание любой программы на лиспе сводится, по сути, к написанию DSL для конкретной задачи.Ерунда. Даже хуже: это утверждение не несет вообще никакого смысла. Опять же, на язык просятся хипстеры-смузихлебы.>DSL для написания DSLA.k.a. "язык программирования общего назначения".Все-таки зря ответил.
>>1139157Кстати, подтверждаю. После Идриса впечатления от Скалы - полная инфернальная дрисня. если это кого-то здесь вообще интересует
Есть смысл вкатываться в скалу? Руби околомидлВ России есть по ней работа? А фриланс?
>>1156785> В России есть по ней работа?Да.> А фриланс?хз
>>1156785что натолкнуло перейти с руби на скалу?Мимоджавер, очень сожалею, что пишу веб на компилирцемом языке
Так-то да, с рубей на кложу вроде логичнее перекатываться. Зато на скалке работу проще найти.
>>1157378Ты и тут уже со своими фантазиями отметился, лол.Может ты как-то не так компилируешь?Вот я пишу энтерпрайзный "веб" на джаве, компиляции даже не замечаю. А выгоды от статической типизации и всего, что с этим связано - очень даже. А также - охуенные выгоды от всей инфраструктуры java.Если мне нужна динамика - использую Groovy. Раньше использовал JRuby, но отказался от него разлюбил, лол.
>>1156785Если _суровая_ статическая типизация тебя не пугает, то давай.Скала - это статический язык, годно имитирующий динамику.Но, чтобы понимать, как это всё работает, а не просто тупо писать магический код, придётся постараться.>>1157387>с рубей на кложу вроде логичнее перекатыватьсяЕсли ты хипстер, то да.Задрочив руби до потери пульса, они перекинулись на кложуру.А так - руби и скала - довольно похожи (на уровне запаха кода или типа того).И некоторые серьёзные руби-бобры таки перекатились на скалу. Например, Дэвид Поллак, автор книги Beginning Scala.Он в начале книги очень живописно описывает свой баттхёрт в начале изучения скалы.
>>1158272> Если ты хипстер, то да.> Задрочив руби до потери пульса, они перекинулись на кложуру.Свят-свят, все бородатые смузипидоры на гироскутерах съебали в ноду, в кложе они нахуй даром никому не нужны.
>>1158272>Если ты хипстер, то да.Как там в 2012?>А так - руби и скала - довольно похожиНу, учитывая, что руби - это лишп без скобочек и по-японски, лол... нутыпонел. Хотя так-то это про любой оопфп гибрид сказать можно.>И некоторые серьёзные руби-бобры таки перекатились на скалу.Я и не спорю. Скала - тоже хорошо. Но СЛОЖНА и НЕНУЖНА!!1
>>1157378Да ну не то чтобы я конкретно перекатываюсь, даже наоборот. Просто решил пополнить слегка коллекцию скиллов чтобы потом на собесах выебоны кидать
>>1158284>руби - это лишп без скобочекПо мне, скорее Perl
И да, я забыл сказать, что Дэвид Поллак, перекатившийся с руби на скалу, это тот самый чел, который потом придумал лифт.Так благотворно на него подействовал живительный скала-баттхёрт.
>>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.
>>1158308> remove macrosи сразу в помойку такого калеку.
>>1158409Ну, это уже к Матцу, не ко мне.
cbbvc
>>1158264я и еще парочка таких же дебилов хотя бы джава тред расшевелили, а то последние месяца три он в тотальном упадке
Собираюсь вкатиться в Scala и Clojure, раньше писал только на C/C++ и Python. Посоветуйте какой-нибудь курс по Java, чтобы после него было ясно, что происходит с JVM в этих ваших скалах, желательно с сертификатами чтобы на фрилансе индусировать в случае чего
>>1161286+1
>>1161286>Собираюсь вкатиться в Scala и Clojure>Посоветуйте какой-нибудь курс по JavaНу охуеть.Я так и не понял: тебе нужно про устройство jvm что-то? Или ты хочешь сначала вкатиться в тырпрайс на джаве? Или тебе просто сертификаты нужны?Сертификаты у оракла, гугли. В джаву через thinking in java и доки можно вкатываться.
>>1161327> Я так и не понял: тебе нужно про устройство jvm что-тоНу смотри, я на жабе сейчас даже хелло ворлд не смогу написать, но хочу писать на скале. Мне же ведь нужно хотя бы примерно понимать, на чём скала построена, как в случае чего тюнить jvm, чё у неё вообще внутри и так далее.> Или ты хочешь сначала вкатиться в тырпрайс на джаве? Или тебе просто сертификаты нужны?тырпрайс и сертификаты (а я имел в виду что-то вроде курсеровских) - это на крайний случай, чтобы можно было на апвёрке с раджешами конкурировать.> В джаву через thinking in java и доки можно вкатываться.Ок заебись, уже хорошо, но хотелось бы именно курс с заданиями.
>>1161346>курс с заданиями.Ну, на курсере вроде алгоритмы от принстона на джаве, но это курс про алгоритмы, а не про джаву, разумеется. Но тащем-то почему бы и нет. Там же проходи интро ту фанкшнл програмин от одерски.
>>1161359> Ну, на курсере вроде алгоритмы от принстона на джаве, но это курс про алгоритмы, а не про джаву, разумеется.Ок, а чисто про джаву и её экосистему есть?
>>1161363Я не уверен, что среди джавистов особенно популярны видосики. Читай документацию.
>>1161346> Мне же ведь нужно хотя бы примерно понимать, на чём скала построена, как в случае чего тюнить jvm, чё у неё вообще внутри и так далее.Можно почитать jvm specifiсation, еще на всяких хабрах и реддитах периодически постят что-нибудь про то, как тюнить жвм, на чем писать бенчмарки и т. д. Вообще начинай сразу со скалы, джаву выучишь в процессе, там учить нехуй (если говорить о самом языке, а не о jvm).
>>1161363В экосистеме джавы очень много древнего индусского говна типа сервлетов, спрингов, и т д, где у авторов библиотек вместо мозга AbstractSingletonProxyFactoryBean. Тебя из экосистемы джавы должны интересовать только java se и jvm. Туторилы по классам из java se есть на сайте оракла + сорцы этих классов читай, полезное занятие.
>>1161346>> Мне же ведь нужно хотя бы примерно понимать, на чём скала построена, как в случае чего тюнить jvm, чё у неё вообще внутри и так далее.Если любишь видосики то:https://www.youtube.com/watch?v=1XV88X3ugiMhttps://www.youtube.com/watch?v=-fcj6EL9rc4https://www.youtube.com/watch?v=iGRfyhE02lAhttps://www.youtube.com/watch?v=iB2N8aqwtxchttps://www.youtube.com/watch?v=oYu3HuIYDhIЕсли сразу хочется чего по-жёстче, то https://docs.oracle.com/javase/specs/jvms/se10/jvms10.pdf
>>1161346Ага, вот пикрил. Там и задания тебе, как вы любите.
>>1161653>>1161654>>1161669Спасибо.
>>1161712> Ок заебись, уже хорошо, но хотелось бы именно курс с заданиями.hexlet.io (я лично не пробовал но вдруг тебе надо НА РУССКОМ)udacityда там платно, но более эффективное обучние. ты гораздо больше денег-времени потратишь читая книжки.
>>1161725> вдруг тебе надо НА РУССКОМНе, мне как раз-таки надо наоборот.> да там платно, но более эффективное обучние. ты гораздо больше денег-времени потратишь читая книжки.Согласен. Скажи, какой конкретно курс по яве порекомендуешь для продолжающего? Как-то странно мне будет после нескольких лет зарабатывания денег питоном снова слушать объяснения того, что такое условия и for лупы.
>>1138542Съеби. Выразил одобрямс ораклам.мимоджаваёб
Кто знает этого функционального петушка, это трап что ли???https://www.youtube.com/watch?v=fLsTPHDWoF0
>>1162070Нет, просто дородная рязанская бабища. Видел ее в видосиках с кложетусовок. Там же написано:>Born into an aristocratic Russian-German family>aristocratic Russian-German family
>>1162079И что? Гермашка же гейропа.
Блять, чего-то у меня хуй встал на этого Bodil.
>>1162084А Рязань - нет.
>>1162079Там дальше написано, что он шарлатан> derided as a fraudulent charlatan by critics
>>1162107autism intensifies
Програмач, как на скале правильно сделать следующее:загрузить инфу с нескольких тысяч пронумерованных АПИ эндпоинтов (api/page/1; api/page/2 и т.д) и положить в файл в порядке нумерации, при этом (по возмжности) не держа в памяти все ответы АПИ. Основная проблема, заключается в том, что мне нужно загружать данные параллельно, но обрабатывать их я хочу последовательно.Я создаю стек с Future и потом по мере готовности заливаю резалты в файл, т.е как только future result оказывается в файле, future убирается со стека и может быть очищено gc. Тем не менее, меня не покидает мысль что это какой-то не Scala-way, как минимум потому что я использую mutable data structures. Я пытался приладить к этой задаче стримы, но что-то каждый раз получается немного не то. Как бы решал эту задачу функциональщик, в какую сторону смотреть?
>>1170111А как ты собираешься эффективно класть в файл твои респонсы в порядке нумерации, если в память они не влазят, а очередность их прихода не определена?
>>1170128Да, пожалуй я хочу невозможного, буду думать что поменять концептуально.
>>1170111Параллельно запрашивай ендпоинты и сри данные в отдельную БД, которая нормально дружит с конкурентностью (то есть всякие sqlite мимо). Обязательно индексируй номер страницы api или по какому порядку ты захочешь записывать данные, чтобы при селектах не делать фулл скан каждый раз.Как закончишь выгрузку в БД - выгружай оттуда данные в нужном тебе порядке и записывай куда надо хоть последовательно, хоть на голове.
>>1170289Складывай в какую-нибудь легкую базу, а оттуда по крону сливай в упорядоченный файлик, например. У тебя же нет жестких ограничений по времени?
>>1170299Можно загружать данные батчами - паралелльно делать 50 запросов, по заполнению батча, сортировать его в памяти, писать в файл и поехали со следующим батчем.
>>1170309Ну тебе же все равно придется потом джойнить и сортировать батчи в отдельном процессе.
>>1170330Зачем? То, что я предложил - работа для одного функционального чейна.> джойнить и сортировать батчи в отдельном процессеКонкурентно заполняется буфер энного размера. По заполнению буффера, буфер сортируется и высирается в файл. Повторить до окончания.
>>1170342Допустим, тебе пришли данные: 42, 0, 1, в таком порядке. В какое место в итоговом файле ты запишешь 42, когда получишь его?Возможно, я овергенерализирую задачу, и тебе на самом деле параллелизация нужна только внутри чанков, а сами чанки линейные - так?
>>1170410>Допустим, тебе пришли данные: 42, 0, 1, в таком порядке. В какое место в итоговом файле ты запишешь 42, когда получишь его?Сяду на хуи, мать на колени посажу.
Как найти работу на скале, если везде просят коммерческий опыт 1-3 года? Сейчас работаю джавером. Если у меня будет коммерческий опыт 1-3 года джавы, а скала чисто для себя. Есть шансы устроиться? Или нужно валить из джавы и изо всех сил пытаться найти хоть какую работу на скале?
>>1170410> Конкурентно заполняется буфер энного размера. По заполнению буффера, буфер сортируется и высирается в файл.
>>1189034Обычно просят опыт и на других языках, если не получается, то просись на скалишный проект на работе, только будь готов, что твой прежний опыт работы на других языках мало чего значит
>>1189338>олучается, то просись на скалишный проект на работе, только будь готов, что твой прежний опыт работы на других языках мало чего значитЯ бы с радостью попросился на скалишный проект на работе, да только у нас скала не используется вообще, за ненадобностью
>>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 конфига по мануалу и всё работает как по-волшебству?
>>1189462Не понял, а как ты без рефлекшна собрался диспатчиться по неизвестному типу объекта? Или как этот Ebean.delete(classOf[T] ...) должен работать?мимо
>>1189034Пилишь что-то на скале для себя, в резюме пишешь, что использовал скалу на работе, что ты как маленький?
>>1189462>classOf[T]>class type required but T found.Добро пожаловать в JVM, братишка)type erasure
>>1189790F-bound polymorphism спасает, ебанько. Не надо кукарекать тут про type erasure
Почаны, что скажите про korolev? Хочу вкатиться в скалу ради этого дерьма. Какие подводные камни?
>>1192781gwt\vaadin reinvented again
>>1192781Алсо, их сайт документации (я так понимаю, он на этом фреймворке и сделан) у меня безбожно тормозит. Каждый клик по любому линку вызывает раздражающее мигание всей страницы.
>>1137321 (OP)>>Лучший язык для JVMGroovy
>>1192802Нет.
>>1192802У тебя в слове Kotlin 5 ошибок.
>>1192845Котлиномакаки даже считать не умеют, лол.
>>1192789>reinvented на самом деле нет, там значительные отличия. гвт\ваадин\зкос это генерелки жс кода.королев же отправляет на сервер только дифы(то что изменилось) и жс он не генерит из-за чего клиент получается очень маленьким по объему + т.к. нет никаких скрытых полей мы получаем безопасность из коробки(никто не выгрузит в жсоне твои данные просто потому что лень править дто)
>>1192791https://fomkin.org/ этот? у меня он хорошо работает, но из-за специфики работы этой либы такое может быть, попробуй померить пинг до него, думаю если не больше 100 должно быть ок всё.
>>1192963Стоп, я был неправ и полную хуйню сказал, извиняюсь.Я кликнул на их апидоки и даже не посмотрел, что они на жавадок.ио, так что disregard that. Алсо, если это не очередной гвт, тогда интересно. Завтра читну их пдфку, если не лень - распиши пока вкратце, как именно оно работает. Ты имеешь в виду, что жс-код у них фиксированный, с сервера прилетает только наполнение, по которому он генерит страницу? Я подобный подход видел у кложурцов, там один чувак именно так генерил спа из описания на edn edn - это более лучший жсон, если что и хуков в логику. Но у него эта шняга была внутренней и не опенсорсной, как я понял. Если тут та же идея - это прикольно.
Хотя, блядь, посмотрел сейчас первый попавшийся пример - пиздец, нет, там обычный темплейтинг на сервере, причем еще и адовый говнокод: https://github.com/fomkin/korolev/blob/master/examples/simple/src/main/scala/SimpleExample.scala - пиздец
>>1193000>>1193001ну да там своя либа для генрации хтмл из скала-кода + при каком либо запросе изменений с фронта от сервера уходит не вся страничка, а только то, что поменялось. Всё это общается через вебсокеты. Незнаю почему ты так категоричен, там в эту простыню достаточно много функционала запихано(и никто не мешает делать универсальными и переиспользывать компоненты).Попробуй представить каким был бы код если делать все это классическим крудапи + вебпетушение с жсом.
>>1192933Дебил неспособен даже o в словах находить.
>>1189468Ну вот пример из доков (на Java):> Ebean.delete(Order.class, 12);Т.е передаётся класс и айдишник. Я пытаюсь сделать тоже самое, но на скале и с дженериком, т.к не хочу писать много бойлерплейта. Моя попытка:> class A[T] ....> def foo(id: Int) = { ...> Ebean.delete(classOf[T], id)Рефлекшен разумеется есть, но он, как я понимаю, спрятан внутри Ebean, что меня целиком устраивает. В своём коде я рефлекшена иметь не хочу, а в библиотечном не против.>>1189462И всё же, как правильно крудошлёпить в этой вашей скале (желательно на Play 2)?Чтобы создать подобие админки мне нужно на каждую таблицу из БД делать по дао и контроллеру? Это выглядит как-то очень уж монструозно.
>>1193368https://github.com/pauljamescleary/scala-pet-storeКак правильно крудошлепить
>>1193368Если тебе нужно где-то взять класс, чтобы засунуть в такую либу, ты уже так и так связался с рефлекшном, расслабься. Чем тебя не устраивают тайптеги или что там у вас в вашей скале? Такой дженерик можно и на обычной джаве разрулить, через подклассы с указанием конкретного типа.мимоджавист
>>1193251Во-во, да еще и считать не умеет.
Бампану тред по лучшему языку программирования в миреРасскажите аноны, как вкатывались? Что читали, что кодили?
>>1204468Я вкатывался с жабы, читал хортсмана, но чтобы норм кодить очень желательно прочитать essential scala + programming in scala одерского. Ну а так мне немного повезло, нашёл вакансию, где брали без опыта работы на скале. На работе можно сказать и научился
Анон с пятью годами опыта работы на скале в треде. Плюс полтора года на C#. Спрашивайте свои ответы.
>>1206852Хуи сосешь?
Скалисты, я Джава прогер. Хочу Скале поучиться. Но с математикой не очень дружу (лямбды в джава знаю). Ну так вот на курсах во всяких курсерах, юдасити по скале и в книжках математическая часть объясняется или по умолчанию считается что я ее знаю?
>>1208298Не рекомендую с курсов начинать. Пиши как на better java первое время, а дальше само зайдётНу и https://gist.github.com/d1egoaz/2180cbbf7d373a0c5575f9a62466e5e1
>>1208340Но better java это котлин.
>>1208340под better java ты имеешь в виду без функциональщины?>https://gist.github.com/d1egoaz/2180cbbf7d373a0c5575f9a62466e5e1Хорош, спасибо
>>1208351Да, все так. В фп успеешь в катиться ещё>>1208349Уходи
>>1206852за 5 лет хоть раз юзал return/while/var?
>>1208947Нахуя?
>>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 тоже по смыслу не подходит. Эта ситуация мне совсем не нравится. Как потом эту чушь двигать на продакшен? Руками копировать файлы куда-то? Запихивать выборочно директории в докер контейнер?
>>1211891Не слышал, чтобы кто-то вообще использовал scala.js в продакшне. Если хочешь нормальный язык на клиенте - бери кложескрипт (или ризон, если хочется чуть больше приключений).>складывать html файлы в корневую папку и делать в них дебильные пути к скриптам, вроде: ../target/scala/...А чо, ты в сбт не можешь прописать какой тебе нужно путь для жс-выхлопа компайлера? Не вижу ничего криминального в том, чтобы хуярить дев-билды в public/js (на прод-билде оно все подтирается). Ну то есть типа КОНЦЕПТУАЛЬНО более лучше было бы держать в public только условный app.js, в который в зависимости от билда либо вхуяриваются пути к дев-коду в ../target/, либо пихается минимизированный прод-код, но на практике-то никакой разницы нет, так что не вижу смысла об этом задумываться вообще.мимо
>>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.
>>1211891>return -- да, удобно использовать как выход из функции если функция дохера большая. я хоть на скале всего полгода, но если тебе нужен return, значит ты неправильно построил свою ф-циюУ меня лично на работе строго функциональный стиль, ни одного вара, вайла, ретёрна за всю работу
>>1212466на java же платят больше, а гемора меньше, да.
>>1212466> но если тебе нужен returnМимокрокодилВы что ли аргументы по ссылку передаете или как? Почему return нельзя?
>>1212670Он наверное имел в виду, что ретурн прерывает исполнение функции, из-за чего у нее возникает больше одного execution path'а или как это правильно назвать, что не очень-то функционально и обычно использовалось в языках с разделением на statements и expressions.
>>1212707Мне кажется, функциональщики страдают фанатизмом, как, например, рьяные фанаты ООП. Усложнять код ради концепции - гиболое дело.
>>1212711Эм, так суть описанного как раз в том, чтобы НЕ усложнять код множественными точками возврата.
>>1212751Блять, я подумал, а вы правы.
Реально ли найти работу на Scala без бэка в Java?
>>1212999Лучше учить Spring и Hibernate. Зачем тебе эта Scala?
>>1212999Да, я перекатился в джавку с нулём опыта на яве и вообще ничего не зная про. JVM
>>1213058Тьфу ты, в скалку
>>1212999>>1213021Не слушай его. Джаву сейчас любая макака знает и спрос соответствующе обратный. Учи Скалу, анончик. И работу найти реально.
>>1213060Ну подожди. Как это "любая макака знает"? Нужно хорошо учить, как в Яндексе.
В чем преимущество скалы? Она что ли быстрее явы или что?
>>1213140После того как вышлел Kotlin - ни в чем.
>>1213160Ты про это сахарное говнище? Хз, даже ява лучше.
>>1137321 (OP)Но ведь гоудауны просто унизят и обоссут скалиста, как дело коснётся конкаренси и распределённых систем. Он будет забитый, сидя в углу обосссаный, дрожащими ручонками ковырят свою Акку, рыдая кричать "а... аа.. а увас генериков нет даже! у... у нас продвинутая система типо...". Но не успеет закончить, так как поймает смачный пендаль в ебальник, и будет наблюдать как его любимую Акку ебет божетсвенный CSP гошечки, не оставляя ей никаких шансов.
>>1213175Тем более можно писать и на goвне в функциональном стиле, просто без таких изъебов как в скуле.
>>1213175
>>1213179Ну не надо этого... ну серьёзно, скалоёб взгляни правде в лицо, твое поделие работает поверх JVM, а это дно. У вас, блядь, даже либы по работе с БД блокирующие (привет jdbc) о чём тут говорить вообще.
>>1213181А ПОЧЕМУ ТВИТТЕР ПЕРЕВЕЛ НА СКАЛУ?????????????????????77777777777777
>>1211913>Если хочешь нормальный язык на клиентеВсе равно остальное лишь обертка над ним.
>>1213175В тред заходит эарланго-господин и запускает 10к процессов по обоссыванию го-дебила.
>>1213175>Но ведь гоудауны просто унизят и обоссут скалиста
>>1213211Эликсиро-господин поглаживает бороду, сидя в антикафе, и респектует.
>>1213230На второй гифке в конце противно выливается пивас.
>>1212999Однозначно да. Джава-бэкграунд является плюсом из-за твоей потенциальной возможности поковыряться в кишках какого-нибудь легаси проекта. Но сейчас скала ― это полностью самостоятельный язык со своей экосистемой. Знание джавы уже несколько лет не обязательно для скалистов.
>>1213211потом 10к раз отсасывает на реальных задачах, где действительно нужен большой конкаренси и распределённая структура. потому-что эликсиром пользуется толлько руби-хипсторы. ладно дадим шанс эликсиро-господам вынуть хуй из рта:даже у жвм-старья есть hazelcast, kafka, ignite. Годауны размахивают consul, etcd, nsq, groupcache, NATS (пытается ссать на кафку, но пока мимом). Что есть у эликсиродебилов? нихуя, только рэббит, но он на эрланге, так так нормальный челвоек такой хуйнеё как эликсир обмазываться не будет.
>>1213576Нихуя у тебя манямирок, бротишь)) Земля тебе пухом)))
>>1213629Это реальность, назови примеры известных решений в области распределённых систем на эликсире.
>>1213576>даже у жвм-старьяБратишка ну ты долбоеб сравнивать устоявшуюся популярную платформу, которая старше тебя и язык, который появился 7 лет назад.
>>1213058>>1213060>>1213498Спасибо аноны, попробую поковыряться.
>>1213682Усложню вопрос. Есть вообще реальный шанс найти работу на Scala без опыта в промышленной разработке? Или лучше всё-таки начать с какого-нибудь Python или Java?
>>1213576Ты в курсе, что еликсир - это нескучный синтаксис для ерланга, да?
>>1213702>Ты в курсе, что еликсир - это нескучный синтаксис для ерланга, да? В курсе. И что в эриксоне эрланг за сраные сервисные сообщения железок отвечал и весь хайлоуд там был только в мифах и головах нонешних некрохипстушков - тоже.
>>1213708В смысле, эрланг отвечал за "пару байт переслать когда абонент поднял трубку, и еще пару - когда бросил". Такую одноклеточную парашу эрланж да, тянул. Весь хуйлоуд эрланга - это выдумки хипстопетушков.
>>1213651Ты ебанулся? Если жвм старше тебя, то ты школьник ебаный (в любом случае еще опарыш), оно 1995 года.
>>1213719Школьникам 95 года уже по 23 года, они уже помидорками работают.
>>1213711Про WhatsApp который целиком на эрланге и у которого овердохуя серверов ты не слышал?
>>1213711У LoL мессейджинг на ерланге. Jabberd на ерланге. Алсо, https://en.wikipedia.org/wiki/Erlang_(programming_language)#Usage
>>1213736Хорошь соскакивать, так про любую закрытую херню можно сказать, а мол в корпорации X это работает на Y. Это всё хуйня и не имеет возможности верификации. Давай рассуждать логически, если язык/платформа збс для чего либо, то на ней будут достойные открытые проекты, на эрланге нет нихуя кроме кролика. Это наводит на мысль, что анон прав по поводу "хуйлоуд эрланга - это выдумки хипстопетушков".
>>1213576>consul, etcd, nsq, groupcache, NATSЯ правильно понимаю, что главное достижение годебилов это написание распределенного key-value хранилища и message broker?
>>1213751>то на ней будут достойные открытые проекты, на эрланге нет нихуя кроме кроликаПро OTP слышал?
Прочитал Programming in Scala Одерски, Functional Programming Principles in Scala и множество всяких мелких статей и блогов.Чтобы ещё навернуть? Про SICP и Кормена даже не упоминаю.И как попрактиковаться?
>>1213926>ряяяя а у нас есть фреймворк, ряяяяя сажу вьебу И где проекты на нем, м, уеба?
>>1213688На собственном опыте проверено, что есть. Но тут важный момент, где ты живёшь. Если ДС или ДС2, то куча компаний хайрит джуниоров. Причём джунов рассматривают как с минимальным опытом в других областях, так и без. Если в мухосрани, то извините.Мониторь hh, линкедин, сообщества скалистов в телеграме (там вся движуха).
>>1214127Scala with Cats, Effective Akka, Scala High Performance Programming.Для практики можешь решать задачки с exercism.io. А можешь написать движок для блога. А можешь поконтрибьютить простенькие таски в проекты на гитхабе.
>>1214180>ряя нет нихуя фреймворков опенсорса>>есть>ряяя а где проекты на этих ваших фреймворках опенсорсных>>вот>ряяяяя а откуда ты знаешь что он именно на нем а ты код видел>>пикрелейтед
>>1214197Спасибо тебе анон! Ты меня убедил попробовать. Я сам из мухосрани, но морально готов перебраться в ДСы джуном ради нормальной интересной работы, да и небольшая денежная подушка безопасности есть на первое время, чтоб с голодухи не помереть.
>>1214298Куколд, плиз. Докажи, что там именно этот фреймворк используется.
>>1213645Discord
>>1214368У них львиная для профита благодаря кассандре вместо бд. Т.е. все эти ваши хайлоады на себя берёт банальная жаба. А писать в неё можешь хоть на js.
>>1214374>>1214328Вы хоть понимаете, что ведете себя ровно как секта свидетелей плоской земли? Но они хотя бы просто жирно траллят, а вы на полном серьезе такие мудаки.
>>1214385Не, я вообще мимо проходил и ничего против ерланга не имею (вообще никакого мнения о нём не имею). Но конкретно у дискорда дела именно так.
>>1214390Вот только почему-то в статье самого дискорда о том, как они заскейлились на 5 млн онлайна, нет ни слова о кассандре (зато много слов о переписывании сишных библиотек на эликсире, вообще охуеть). Даже не знаю, кому верить: анону с зекача или команде discord.мимо
>>1214596https://blog.discordapp.com/how-discord-stores-billions-of-messages-7fa6ec7ee4c7Вот про хранение, например.
>>1214616Круто, но где тут тезис "Т.е. все эти ваши хайлоады на себя берёт банальная жаба. А писать в неё можешь хоть на js."?Я, в свою очередь, про эту статью говорил, если что: https://blog.discordapp.com/scaling-elixir-f9b8e1e7c29b
>>1214197Что тебя спрашивали когда устраивался? Что вообще требуют от джунов (или как там начинающий называется) по скале?
>>1214616Вот, например реальное положение дел в дискордеhttps://discordapp.com/jobs?team=engineeringв явном виде ищут только крестовиков, а этот ваш уеликсир только упоминается среди остальных языков для бека на равне с пистоном, гошкой и скалой. Таки ерланг/еликсир не нужен.
>>1214641Хороший у них блог, бтв. Приятно почитать.
>>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.Я понял: ты сектант, тебе бесполезно пытаться приводить рациональные аргументы. Давай закончим, тем более что это оффтоп.
>>1214673У меня почти все собеседования (и самое первое, и последующие на более высокие грейды) быстро переходили в неформальное общение о том, кто я такой, откуда взялся, как пришёл в скала-мирок.Молодым и зелёным если и будут давать задачки, то, скорее всего, примерно такого уровня: scastie.scala-lang.org/MvUJjYaZQm202EIGNath0A.Но помимо понимания синтаксиса и стандартной библиотеки, тебе понадобится ещё и представление об экосистеме. В итоге джуну надо знать: синтаксис асинхронная модель (как пользоваться scala.concurrent.Future) библиотека коллекций (map, filter, foldLeft и прочие базовые методы) инструментарий (IDEA, sbt, git) что-нибудь про базы данных (хотя бы в чём отличие SQL от NoSQL) крайне желательна акка (что такое акторы, и зачем они нужны. что такое стримы, и зачем они нужны)Лучший способ получить эти знания ― написать небольшой CRUD в качестве пет-прожекта. Например, движок для блога или примитивную CRM для воображаемой кафешки.>>1214318А ты рисковый. Учти, что цены на жильё в ДС очень быстро сожрут твою подушку безопасности.
>>1214905Разметка поехала
>>1214905Спасибо за такой развёрнутый ответ.>кто я такой, откуда взялсяВот тут я обосрусь 100%, ведь мягко говоря не студентик уже...>задачки, то, скорее всего, примерно такого уровняФункцию написать, я правильно понял? Сколько времени даётся на такое? Интернетами можно пользоваться?>scala.concurrent.FutureНагуглил. Пойду читать.>IDEA, sbt, gitIntelliJ? Я накатил эклипс, хз что там знать то можно, всё понятно по контексту. Что-то уровня "знания ворда", лол.>что-нибудь про базы данных >аккаЕсть что почитать про это? Всё что я гуглил это либо поверхностное, либо бесконечная кроличья нора, от которой можно словить шизу.
>>1215005Да, написать реализацию. Интернеты для такого не нужны, достаточно ноутбука с IDE, и никто не будет стоять над тобой с таймером. Время выполнения этих задачек джуном, которое устроит меня: nestedMap — 3 минуты, traverse — 10 минут, partition — 15 минут. Если человек тупит дольше, поинтересуюсь, как у него дела, и дальше будем уже вслух обсуждать задачу.> Я накатил эклипсОткуда же вы лезете? Даже на официальном сайте скалы предлагают IDEA поставить.Про акторы и асинхронщину читай https://github.com/anton-k/ru-neophyte-guide-to-scala. Про БД — просто начни с ними работать и подгугливай документацию в процессе. Потом уже придёт понимание, что изучать полноценно.
>>1215130>https://github.com/anton-k/ru-neophyte-guide-to-scalaСлушай, а почему бы не взять Spring Boot, к нему добавить Spring data и прочее. Получится же быстрее и понятнее. Зачем тебе эта Scala, ммм?
>>1215130>Даже на официальном сайте скалы предлагают IDEA поставить.Много ли среди скалистов вимо\имаксоебов?
>>1215130Ясно.>Откуда же вы лезете?Ну не стукай, выбрал первое что выдал гугл.>Про БД — просто начни с ними работать>работатьТригернулся.Я просто малость аутист, мне не хватает фантазии придумать что с этими бд вообще делать. Создать, добавить элемент, убрать... Всё нахуй. Лан надо будет накатить SQL и подрочиться.Ещё раз спасибо.
>>1215130>Откуда же вы лезете? Даже на официальном сайте скалы предлагают IDEA поставить.А я тебе скажу откуда. На курсере Одерски демонстрирует всё в Eclipse. Я попробовал пойти против системы и поставил себе чистую sbt. С наскока нихрена не разобрался в ней и решил, чтоб время не терять, качнуть голый компилятор. Где можно вменяемые доки найти по sbt, а не эту херню с хеллоуворлдом вместо создания проекта?
Есть возможность сменить работу на scala разраба.Сейчас занят в java ee.Какие подводные и стоит ли? Послезавтра собедесование - к чему готовится? кроме анального порева
>>1215570Есть книжка SBT in Action.Вполне годная.>чистую sbtИ почему в женском роде? Это же "инструмент".
>>1215570>На курсере Одерски демонстрирует всё в Eclipse.Это курс по фп?Ему лет триста уже, тренд поменялся давно.Эклипс заебал уже даже самых упоротых ебанатов, лол.Нормальные же люди им и вовсе никогда не пользовались, ибо просто невозможно же.
>>1214905>scastie.scala-lang.org/MvUJjYaZQm202EIGNath0AЭто ты писал?Что ещё за nestedMap, лол?Лифтинг отменили уже?
>>1216096Спасибо за наводку на книжку! SBT хоть и tool, но система сборки. А вообще, не знаю. Оно само так получилось.>>1216098Ага, он самый. А сам то курс стоит потраченного времени?
>>1216138Этот курс - пространное введение в Скалу с лёгким уклоном в ФП.Там и про ООП куча, и т.п.А по ФП - не так и много.Например, чтение книжки Functional Programming in Scala (и решение задач, обязательно) будет гораздо более полезно. Есть гитхаб с задачам, хинтами и ответами.Это вообще одно из лучших введений в ФП как таковое.При этом знание Скалы требуется на самом начальном уровне.Авторы пишут, что можно вообще с нуля, но это, конечно, перебор.
>>1216298Я представляю как будет тормозить приложение написанное на Scala, когда GC будет работать нонстоп.
>>1216337Анус свой лучше представляй.
>>1216298Для полных нубасов без промышленного опыта курс будет полезным? Скажем, сначала накатить его, а потом Functional Programming in Scala?
>>1216343Ну что ты нервичаешь? Мы же с тобой понимаем, что для скорости нужна Java, а не Scala.
>>1216368Да, будет.Есть ещё книжка фолиант Одерского - Programming in Scala. Надо искать 3-е издание, где версия 2.12.Ну и другой литературы полно.Вообще, я бы посоветовал Scala For The Impatient (2-е издание).Минимум воды, широкий охват тем, читается легко.А за тонкими подробностями - к фолианту Одерского.Даже на русском есть (Scala для нетерпеливых, перевод 1-го издания), но сам я перевод не видел, по качеству ничего сказать не могу.
>>1216375Скала - для души, лол.
>>1215985>Какие подводныеИмплиситы.>стоит ли?Конечно стоит - кругозор шире, зарплата больше, молодежней-современней.>Послезавтра собедесование - к чему готовится?Ну ты скалу-то уже знаешь? Деревья повращал? Мы ж не телепаты, хуй знает, что у тебя за вакансия и какой у тебя уровень.
>>1216375>для скорости нужна JavaТомми, ты?
>>1216434>Ну ты скалу-то уже знаешь? Нет, нихуя не знаю.Для меня это пафосное название как и все околоджавное больше ассоциируется с чем-то промышленным и даже с ML.>Конечно стоит - кругозор шире, зарплата больше, молодежней-современней.А это точно не гавно на палках/попытка сделать на жвм хоть что то стоящее?
>>1216443>попытка сделать на жвм хоть что то стоящее?Ты, сынок, потроллить сюда пришёл?
>>1216378То ли дело взять Spring 5, а там Netty и такой-то перформанс. Это тебе не Finagle какой-нибудь или Akka Http, да.
>>1216504Сейчас бы пытаться сделать вид, что netty - медленный энтерпрайз, а вот в акке сила.
>>1216468бля, нет. но, в новой конторе обещали научить скале(они с джавы все переносят)
>>1216508Наоборот же! Netty быстр, а вот Akka Http не очень.
>>1216504Вообще-то, сетевая часть в акке сделана на netty.Это, если отвлечься от того факта, что спринг не нужен, например.
Я вам покушать принёс.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.
>>1216689Ну Netty из Akka давно уже выпилили. Сам понимаешь, что это черевато добавлять в зависимости библиотеку, которую по сути поддерживает один человек.А Spring можно и к Scala прикрутить. Как ты без IoC будешь жить, а?
>>1216937Стоит заметить, что спринг давно уже не только IoC, его корфичами являются и weblux/mvv, и aop, и всякие integration-security, да и без бута/клауда его используют всё меньше (что на понимании макаками-кодерами сказывается крайне негативно). Про нетти сказал как отрезал. А ещё у него новые мажорные версии не выходили десять лет, а пятую ветку забросили после второй альфы.
>>1217015Согласен. Spring - это такой уанстопшоп, где есть все необходимое для разработки приложения. Если взять Scala, то можно долго куковать в поисках альтернативных библиотек и фреймворков.
>>1217015>Топит за спринг>Называя несогласных "макаками">в Scala-тредеСодомит, ты же два раза на ноль поделил.>>1216937>IoCС давних пор использую.А причём тут спринг, лол?
>>1217131Очевидно макаками-кодерами я называю нерадивых пользователей Spring Boot, у тебя wishful thinking сработал. >при чём тут спрингДумаю он подразумевал что-то вроде "можно хоть спринг использовать", но это мои домыслы.
>>1217160Как причем? Берешь Java + Spring и ваяешь свой стартуп. А Scala не нужна по сути.
> Scala ни нужнаАнончики, а можно простыми словами и без троллирования, какие у Scala преимущества по сравнению с Java? Чтоб вот можно было, например, другану-профану за пивасом пояснить, почему я решил упороться Scala. Ведь сейчас под JVM есть и Kotlin, и Clojure и, даже, Groovy.
>>1217377Скала по отношению к джаве - это как сиплюсплюс по отношению к си. Можно наворотить такого, что голову себе сломаешь, но если использовать как "си с классами", то преимущества очевидны.
>>1217377Ебать Акку под спарком збс. Для всего остального котлин лучше, иначе есть шанс быть неявно выебанным неявным хуем невяного пидора в неявных обстоятельства.
>>1217385> Можно наворотить такого, что голову себе сломаешьВот это, между прочим, объективный минус с точки зрения языка - любой в меру своей испорченности может нахуячить так, что хуй проссышь нормально даже сам спустя пару месяцев.
>>1217387Но как бы и на джаве, и на любойязыкнейм можно наворотить в меру своей испорченности. Тут суть не в этом, а в том, что скалу можно использовать просто как более лучшую джаву. Мне кажется для объяснений под пивас это самое то.
>>1217377>едь сейчас под JVM есть и Kotlin, и Clojure и, даже, Groovy.А ещё jRuby, Jython, и до ебеней матери всякого разного прочего.Какие преимущества?Никаких.Это просто другой язык.Какие могут быть преимущества у тёплого перед мягким?Можно делать фп, например. Акка там, хуякка, вот это вот всё.Это преимущества?А просто как беттер-джава - очень сомнительно, т.к. язык _гораздо_ сложнее.Плюс - несовместимая развесистая иерархия коллекций и т.п.Скала это не беттер-что-то, это вещь в себе.Беттер - это котлин, хотя, я бы не стал его юзать в этом качестве - очень мутный язык, с весьма мутным будущим.
>>1217401>Плюс - несовместимая развесистая иерархия коллекций и т.п.Так стд коллекции один хуй говно же.
>>1217390Нет. Джава сильно ограничивает. Котлин меньше. Скала вообще нет.
>>1217414>Так стд коллекции один хуй говно же.В скале или в джаве?А потом, это не имеет значения.Проблема именно в том, что скала без родных коллекций - хуйня.А джава - без своих.И, в итоге, на каждый пук надо юзать встроенные конверторы, которые красивые, конечно, но совсем не бесплатные.Если покопаться в интернетах (англоязычных), то можно увидеть, что про скалу как беттер-джаву пишут, в основном, ньюфаги, которые скалу только вчера увидели.Опытные бобры пишут совсем другое, уже не такое интересное, лол.
>>1216102Да, я.В чём проблема с нестедмапом? Это задача, которую можно реализовать через лифтинг f в общем случае, и через xs.map(_.map(f)) в частном. Если кандидат начнёт рассказывать про lift, это ему только в плюс пойдёт. Но вообще, это задумывалось как элементарная задачка для джуна на знание самых простых операций над стандартными коллекциями. Условно, чтобы понять, что человек не путает map и flatMap.
>>1217444>В скале или в джаве?Второе.>И, в итоге, на каждый пук надо юзать встроенные конверторыА вот в кложе такой проблемы нет, кстати. ^_^>Опытные бобры пишут совсем другое, уже не такое интересное, лол.Тут не буду возражать, я не бобер.А ты сам из личного опыта говоришь? Ну, конкретно по части того, что "никаких" преимуществ. Тот факт, что это разные языки, нам ведь не мешает их сравнивать и оценивать целесообразность их применения для какой-то данной задачи. Ты согласишься с тем, что скала в целом более высокоуровневая и более типобезопасная, чем джава?
>>1217513Я не говорил, что нет преимуществ.Я сказал, что не нужно сравнивать разные вещи.И там и там недостатки (в большинстве случаев) являются продолжением достоинств. А за достоинства приходится платить определённую цену.Закон сохранения никто не отменял.>Ты согласишься с тем, что скала в целом более высокоуровневая и более типобезопасная, чем джава?Да. Есть куча ценных фишек, свяаных с типизацией, которых нет в джаве.Но, это не бесплатно.Язык значительно сложнее. Порог вхождения в разы выше.Код трудно воспринимать при беглом просмотре. И т.д.Кто не понимает, о чём я - почитайте исходники библиотеки коллекций, например.И можно (иногда) нахуевертить такого, что будет компилироваться, но не будет работать (я имею в виду ошибки применения типов). В джаве такое невозможно, например.Инструментальная поддержка, опять же, несравнимая совершенно. Хотя, за последние годы поддержка скалы улучшилась в разы.Вообще, это сложная тема, которая далеко выходит за границы обсуждения на аиб.Стоит ли скала того, чтобы её изучить до приличного уровня?Будет ли это полезно для профессиональног роста, даже если ты не будешь писать на ней фуллтайм?- Однозначно.Ну не котлин же, в самом деле, лол.Значит ли это, что джава не нужна, и все чёткие пацаны должны перекатиться на скалу?- Ни в коем случае.
>>1217529Я в целом со всем согласен, про ненужность скалы я и не говорил, и все остальное ты написал по делу.Разве что>И можно (иногда) нахуевертить такого, что будет компилироваться, но не будет работать (я имею в виду ошибки применения типов). В джаве такое невозможно, например.- https://hackernoon.com/java-is-unsound-28c84cb2b3fА в целом - да, анон, все так, я с тобой согласен.
>>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 => Nonecase Some(s) => Some (f(s))}xs.map(wew)}А потом пошёл читать про футуры.Теперь ещё и про лифт читать буду.
>>1218092Проверка на None делается внутри map(). В это и смысл.Футуры - это хорошо.Лифт - хули про него читать?Это функция, которая "поднимает" другую функцию, работающую со значением типа A, чтобы она работала а с определённым контейнером, содержащим значение типа A.Т.е. (A => A) => ([A] => [A])Т.е. лифтованная функция внутри себя вызывает map(f).Вот тут можно потрогать пример:https://scastie.scala-lang.org/mrYmm1ZiRZaNMeVVlClAQw
Есть ли где-нибудь нормальный бесплатный туториал о связке kafka + spark с кодом на скале? Пока что нашел толькотплатный
>>1218270> (A => A) => ([A] => [A])Ну, или (A => B) => ([A] => )
>>1218282>kafkaТолько sorokin.С кодом на php.
>>1218285хуя ты шутканул ,а по делу есть что сказать?
>>1218301Деньги вперед.
>>1218270>Лифт - хули про него читать?А, так вот какой лифт имелся ввиду.
>>1218270ну тащемта можно показать и более общий пример через функторы:https://scastie.scala-lang.org/dSj8uomlReeSpliZyLeg2A
Как написать функцию, аналогичной этой, def transformInt(x: Int, f: Int => Int) : Int = { f(x) } Но что бы вместо единственного входного параметра x: Intбыли, например 2 строки s1:String, s2:String,и к ним двоим тоже применялась какая-нибудь функция
>>1137326>Но когда начинается ввод/вывод и обработка ошибок Haskell почти ни чего не дает, по сравнению с распространенными языками.Я утверждаю, что ты просто не знаешь, как в современном ФП делается ввод/вывод и обработка ошибок. Показывать тебе как это делается на Хаскеле, конечно, бесполезно, но хоть Скалу попробуй осилить http://degoes.net/articles/modern-fp вроде специально для брейндамагнутых джавой язык делался.
>>1218799лол, ну держи:def transformStrings(s1: String, s2: String, f: (String, String) => String): String = f(s1, s2)
>>1218799Это же map получается, или reduce?Не понятно из твоего поста."и к ним двоим тоже применялась какая-нибудь функция" - это несколько расплывчато, лол.На вход надо подавать 1 аргумент - коллекцию.Можно сделать доп. вариант для Option (который, сука, не коллекция, почему-то).
>>1137340Да, это так. И дело не только в наследовании, а в том, что в Хаскеле мухи таки отделены от котлет. Например, в Хаскеле есть "обычные" алгебраические типы данных и есть генерализованные АДТ. В Скале нет ни того, ни другого это делается через ебучие костыли вроде sealed trait .. и это вроде как АДТ, но одновременно при паттерн-матчинге может эмулировать некоторые свойства ГАДТ, но с некоторыми ограничениями. В чем конкретно заключаются "некоторые ограничения" - хуй проссышь, просто в какой-то момент ты на них внезапно натыкаешься и у тебя начинается жопаболь. Type-level programming, higher-kinded types, type-level macros - всё это в Скале эмулируется, но с кучей бойлерплейта, без macro paradise практически ни одна функциональная библиотека на Скале не обходится. Да что уж там, даже тайпкласс или фукнцию с экзистенциальным типом на Скале написать - это проблема, тот же cats использует simulacrum и kind-projector для этого. Вывод типов - ебанутейший, вплоть до того, что функциоальных либах меняют порядок аргументов в функциях, чтобы типы выводились (охуеть дизайнерское решение - выводилка типов тебе диктует в каком порядке должны быть аргументы). Ебучий аппликативный порядок плохо сочетается с рекурсией во всех функциональных либах trampolining на каждом шаге вручную, чтобы это хоть как-то работало (слава б-гу он уже там прописан, поэтому используя либу о нём можно не думать, но исходники из-за подобных вещей хрен разберешь). В общем, чтобы писать программы в функциональном стиле на Скале, надо её обвесить тоннами костылей, за которыми сути не видно. Надо знать, как все эти костыли работают, там макросы, плугины компилятора, надо знать зачем они все нужны. Поэтому в целом Хаскель гораздо проще и понятнее. На Скале всё это говно можно использовать когда ты уже всё знаешь из Хаскеля и еще знаешь специфичные заёбы Скалы. На Хаскеле можно учиться программировать.
Подитоживая эпопею со Скалой вспоминается анектод про Вовочку, который натягивал себе на голову презерватив со словами "Все равно на Новый год писькой буду!". Вот так и программирование на Скале - это постоянное натягивание презерватива на голову с целью превратить её в функциональный язык.
>>1218849То, что в Скале - это элементы фп.Которые местами весьма полезны.А попытки _использовать_ Скалу как функциональный язык (scalaz и прочая хуйня) - это именно попытки натянуть сову на глобус и подрочить вприсядку.И за использование такой хуйни в продакшн надо пожизненно разжаловать в сторожа.
>>1218841>>1218842вот что я хотел сделать
>>1218855Лучше уж Kotlin использовать. Зачем эти сложности?
>>1218855Дело в том, что современный "продакшн" - это и есть дрочба вприсядку толп полуграмотных ОО-дебилов. Поэтому соверменные программы - это самое ненадёжное из когда-либо созданного человечеством, при этом по самым неэффективным технологиям. Единственное, что в Скале есть хорошего, это те самые "элементы фп.", но они там настолько убогие, что для написания полноценных функциональных программ приходится тащить с собой кучу костылей. Что же касается применения фп "местами", так тут можно выделить три стадии развития кодописца:0. ОО-макак. Считает, что ФП не нужно, лямбды - сложная непонятная хуйня, пишет на Джаве, хотя когда в Джаву 8 завозят таки лямбды начинает делать вид, что про ненужность говорил кто-то другой и переходит на 1-ю сдадию.1. Недофпшник. Нахватался по верхам на сайтах типа хабра, знает, что такое лямбда, умеет пользоваться функцией map. На этом его знание фп заканчивается, никаких декомпозиционных паттернов поциент не знает, про монады читал только в скалаблогах, там же прочитал про scalaz, но не знает, зачем это нужно. Пишет на мультипарадигменном говне обычные императивные программы с функцией map и лямбдами, с умным видом говоря, что использует фп "по месту". 3. Программист. Полностью знаком с парадигмой ФП, пишет на Скале в таком https://github.com/slamdata/quasar стиле, охуевает с полудурков на дваче, которые рассказывают, что на Хаскеле сложно работать с сайдэффектами, что cats или scalaz нельзя использовать в продакшене и прочих охуенных историй, которые тут генерирует недообразованная студентота, чтобы как-то оправдать свою недообразованность.
>>1218877ФП-блядь носится по треду с разорванной сракой, спешите видеть.
>>1218877Ты уж выбери, что ты хочешь. Денежки получать или фп своё.
>>1218872Это reduce.Точнее - foldLeft() для списка строк.Это если тебе нужно общее решение для любого к-ва элементов.https://stackoverflow.com/questions/1446419/how-do-you-know-when-to-use-fold-left-and-when-to-use-fold-righthttps://en.wikipedia.org/wiki/Fold_(higher-order_function)
>>1218996Зачем мне выбирать, если мне и так платят за ФП, причем существенно больше, чем всяким быдлокодерам которые кукарекают про ненужность ФП.
>>1218872>>1219005Посмотрел внимательно, лол.Это будет:myStrings.map(toUppercase).foldLeft("")(concat)Как-то так.
Блядь, сажа откуда-то приклеилась.>>1219014Так ты радостью зашёл поделиться?Это правильно.И мы за тебя рады.
>>1218843>что функциоальных либах меняют порядок аргументов в функциях, чтобы типы выводилисьмимо-динамикодрисня-господин
>>1218877А вот этот пост уже поддвачну.тот-же-господин
>>1219093Сам себя не поддвачнёшь - весь день как оплёванный ходишь.
>>1219156Сочувствую тебе, братан.
Набросьте говна на вентилятор, плиз, SJW хуеют.https://users.scala-lang.org/t/scala-pride-t-shirts-for-charity-fundraiser-1-week-left/2928
>>1219731Похоже на провокацию котлинопидоров ребят из Jet Brains.
Пацаны, эрланг или скала?Вакансий в России больше на скале. Но там часто идет как дополнение к джаве. Неотъемлемо ли одно от другого?Хотелось бы ответов от тех, кто работает или работал с обоими языками.
>>1220140На скале ты можешь писать что угодно.А не эрланге?>javaНравится это тебе или нет, но это - промышленный стандарт. И так будет ещё много-много лет. До твоей пенсии, как минимум.
>>1220180>На скале ты можешь писать что угодно....кроме десктопа, фронтенда и легких серверов.>Нравится это тебе или нет, но это - промышленный стандарт. И так будет ещё много-много лет. Ага, особенно вон с такими-то новостями https://www.oracle.com/corporate/pressrelease/java-se-subscription-offering-062118.html>До твоей пенсии, как минимум.так пенсии ж отменили yoba.png
>>1220313Но ведь и десктоп, и фронтенд на скале пишут (в том числе в РФ). Не сказал бы, что мне это нравится, но это имеет место быть. Что ты под лёгкими серверами подразумеваешь, мне непонятно. Круды что ли?>>1220140Скала не дополнение к джаве. В вакансиях их обычно пишут рядом, если уже есть большой кусок джава-энтерпрайза, а новые проекты пишутся на скале. В легаси-код программистам тоже иногда приходится залезать, поэтому в требованиях упомянают джяву.
Скалоблядки, можете рассказать про реальные коммерческие проекты на Акке?Желательно энтерпрайз.Желательно в Росии.
Аноны,я постигаю акку, читаю туториал с офф сайта и не могу понять такую базовую вещь:в нормальном коде, дерево акторов создаётся в начале работы программы и остаётся более-менее неизменным, или же некоторые акторы-дети постоянно создаются и удаляются в результате обработки сообщений родителем?Более конкретный пример: я хочу обрабатывать запросы к СУБД, конечно же параллельно. У меня есть актор А который принимает запрос и:1) Создаёт актора Б, который выполняет запрос, обрабатывает и возвращает результат. Затем удаляет актора Б.2) Имеет готовый пул акторов Б, и просто роутит задачу одному из них (я видел, есть класс Роутера и несколько стратегий роутинга сообщений).Какая из этих стратегий лучше? Если вторая, то как правильно выбрать размер пула? Если таких пулов несколько, каждый раз думать, насколько велик должен быть пул?Дополнительный вопрос:давеча ГО-анон писал что jdbc не асинхронно, и поэтому скала говно. Насколько правомерно это умозаключение? Я нашёл вот это:https://github.com/mauricio/postgresql-async(хотя в README: This is not supposed to be a JDBC replacement)Получится ли использовать эту либу в связке с АККА ?
>>1223339В райфе на митапе недавно какой-то насквозь матановый доклад рассказывали, который 95% нормальных людей вообще не поняло. Но сам доклад родился из использования Акки, так что вероятно используется.
>>1224824>jdbc не асинхронноВ смысле, требует поддержания соединения?Так это не JDBC.Точнее - да, JDBC, но потому, что это абстракция для _любой_ БД, большинство из которых не асинхронны.Хочешь асинхронности - вводи лишний слой (поближе к физической БД), который будет обслуживать твои запросы асинхронно, а с БД работать через пул соединений.Собственно, на Акке его и можно сделать (наверное, я не большой спец по ней).
>>1224825Свежо предание, лол.Понятно, что где-то всё это используется (или может использоваться) ирл, только интернеты об этом молчат, в основном.
>>1224824http://slick.lightbend.com/ ?
>>1223339Я вот на проекте на акке в энтерпрайзе, юзает акка-акторс + акка хттп
>>1225039Какого рода проект или энтерпрайз?В общих чертах?
>>1225043Делаем сервис для отображения рекламы в играх (в том числе AR, VR), на скале пишется сервер для фиксирования просмотра, статистики, операции с баблом, непосредственно отображения рекламы на юнити на шарпах, работаем на шведов
>>1225039В базу как ходишь, м? Как общие впечатления?
>>1225047Это охуенно, но "энтерпрайз" - это немножко другое - торговля, промышленность, банки, государственные системы.Но, в принципе, понятно, зачем вам Акка.А БД какая?В Akka in Action рекомендуют вообще всё в памяти держать, при остановке системы сливать в хранилище, при старте - загружать. Вы как делаете?
>>1225058С помощью Слика, но мы ещё юзаем ДинамоДБ>>1225062>но "энтерпрайз" - это немножко другое - торговля, промышленность, банки, государственные системыок, значит я неправильно понимал>А БД какая?основная Постргрес, для статистики ДинамоДБ>В Akka in Action рекомендуют вообще всё в памяти держатьу нас с-ма всего раз запускается, а данных супердохуя>Вы как делаетеДержим в бд, но конечно же есть и кэшированные данные, но их немного
>>1223339Странный вопрос. Акка почти везде в ынтырпрайзе. У нас вот тоже. Хотя плюёмся от неё очень сильно. Вот например akka-streams потихоньку на fs2 меняем
>>1225120Какого рода энтерпрайз?Какого рода проекты?Зачем Акка?Почему плюётесь?
>>1225120>fs2Ну подожди. В Акка тиме же Конрад Малавски!
>>1225128> Какого рода энтерпрайз?> Какого рода проекты?Биллинг. Больше сказать не могу, коллеги тоже сидят, не хочу задеанониться, лол> Зачем Акка?Event Sourcing. Взяли Akka-Cluster, получилось неплохо. Сейчас ещё лучше, ибо код на сырых акторах я уже не помню когда писал в последний раз.> Почему плюётесь?Future. Но тащемто уже скрыли всё что можно за семи слоями абстракций и везде (почти) Monix
>>1225147Сергей?
>>1225147А почему не взяли JGroups для кластеризации?
>>1225167Потому что писали на скале. А если серьёзно, то хз. Это прям как-то даже странно. Да и не только же кластер нужен нам был -- стримы и персистенс тоже.
Ребят, Одерски то не видит!
>>1225382Это потому, что ночь уже.
>>1225338Выбрасываешь скалу, берешь джаву, спринг, базу там какую-нибудь, инмеймори дата грид, хазелкаст там, инфиниспан там вот и все.
>>1225462А потом долбишься в задты кстати, что вечером делаешь?
>>1225466Ты это, давай переходи на джаву, а там посмотрим.
>>1225481Лучше ты на скалу.Уже и майки для вас завезли: >>1219731
Господа, а есть какая-нибудь IDE полегче IDEA?
>>1226490Emacs + ensime или VSCode
>>1226527> VSCodeА разве там есть нормальная поддержка? Синтаксис подсвечивает и на этом всё.
>>1226607плагин какой-то был
>>1226490Ну у меня на немощном ноуте IDEA +- работала, но на линухе; а на винде, да, тормоза неебические.Попробуй убунту + идеа, мб заканает, потому что я лично не представляю, как кодить на скале не в идее; поиск юзеджов (для акторов вещь просто необходимая), подсветка передачи имплиситов.Если не идея, то не могу ничего посоветовать, сори
>>1226490Вроде для Eclipse что-то было.
>>1226527>ensimeДля джавы норм? Лучше eclim'а?
>>1226773Не знаю. Использую IDEA.
>>1226795Блин, придется попердолить, деваться некуда. Выглядит вкусно.
Господа, я тут пытаюсь осилить Functional Programming Principles in Scala на курсере и у меня начинают возникать трудности. Как реализовать тот или иной метод в императивном стиле я представляю, а вот с функциональной реализацией проблемы. Посоветуйте, как развить в себе это самое функциональное мышление.
>>1228444Я параллельно с курсом читал SICP. Одерски оттуда все задачи подергал. Порой объяснение материала в SICP изложено намного лучше чем в курсе.Есть же всякие entry-level книжки для тех кто решил освоить функциональную парадигму.Я бы не сказал, что конкретно данный курс является лучшим источником информации по теме.Если тебе охота именно Scala освоить для каких-то своих проектов, то лучше взгляни на этот гайд - https://gist.github.com/d1egoaz/2180cbbf7d373a0c5575f9a62466e5e1. А курсы оставь на потом. Их польза крайне сомнительна, к сожалению. Лучше пролистать пару книг и начать писать небольшой проект используя полученные знания.А проходя данный курс ты будешь неделю думать как решить задачу с разменом монет или полиномы высчитывать ФУНКЦИОНАЛЬНО!
>>1228444Решай больше задачек. Смотри чужие решения после того, как написал свое.У скалы кстати есть свой аналог http://www.4clojure.com/problems ?>>1228471Двачую кроме последней части. Перед тем, как писать петпроект, тебе все равно надо научиться составлять алгоритмы. Кому-то нравится видео, кому-то - книжки. Без разницы в принципе, но курс тебя еще будет подгонять сроками, плюс там есть форум, где можно задавать ответы.
>>1228471>>1228733Спасибо!
>>1228444Я кстати помнится вот такую хуйню нашёл когда-тоhttp://www.otstavnov.com/Odersky_Scala_lecture-notes.htmlМожет тебе пригодится.
Я снова выхожу на связь. Возник вопрос по литературе. Книг по Scala не сказать, что много, но и не одна. Что лучше новичку читать? Есть ли смысл читать Essential Scala от Underscore если потом читать Scala for the Impatient? И что по поводу толстой книги Одерского?Я понимаю, скорее всего вопрос платиновый. Но я так уже попадал с Питоном. Все советуют The Byte of Python, но это полное говно, а не книга, и я лишь потратил время. Более менее полезной была Think Python, и то, только из-за наличия упражнений. В итоге, всё перешло в изучение Лутца, где много воды, но расписано всё обстоятельно. Правда, один хер, работу джуном я на Питоне найти не могу. Похоже, я слишком старый для этого дерьма. Вот такой вот я вкатывальщик-неудачник, да. В общем, проще - не всегда лучше, потому что остается много непонятной магии в работе. А я так не могу. Меня это раздражает сильно.
>>1228859Impatient + FP in Scala (скала там почти с нуля).Можно параллельно.Фолиант - для тонких подробностей.
>>1228859>Scala for the Impatient?Я дропнул. Не помню почему. Хоть и на русском было, но что-то мне не зашло. Очень много воды.>по поводу толстой книги Одерского?Вот этой?https://www.artima.com/pins1ed/index.htmlМне нормас зашло.В любом случае придётся прочитать всё тоже самое, но в разных вариантах.С задачками я вот это читал http://aperiodic.net/phil/scala/s-99/>работу джуном я на Питоне найти не могуНа скале тем более не найдёшь. Открой хх, там требуются только сеньёры на 200 тысяч, ньюфаги никому не нужны.
>>1228865>Хоть и на русском было, но что-то мне не зашлоЛол.Не читайте до обеда советских газет.Читать надо по английски.И второе издание.Фолиант - третье.Всё есть в интернетах.
>>1228865И хуй знает, где ты там воду нашёл.Книга очень плотно написана.Русский перевод, правда, не видел.Не удивлюсь, если насрали, как обычно.
>>1228873Дело не в русике, а в постоянных авторских "а вот в крестах вот так, в яве так...". Да мне похуй как там, пиши по делу. И ебанутая подача, то расписывает простейшую хуйню, а через страницу даёт пример, чтобы понять который надо ещё пару страниц гуглить.Русик я упомянул, чтобы подчеркнуть, что даже учитывая разницу в языках (русик то родной, пинг от глаз до мозга меньше) книга на английском зашла легче.
>>1228891>"а вот в крестах вот так, в яве так...". Да мне похуй как тамСкала - очень сложный язык.Не понимая, почему нечто сделано именно так, а не иначе - можно просто не понять вообще ничего.Книга написана очень хорошо и лишнего там нет ничего, всё строго по делу.И, далеко не каждая книга, а особенно по такому не особо популярному языку, выдерживает второе издание вскоре после первого.И да, эта книга для тех, кто уже умеет программировать. Т.е. это не учебник по программированию. И скала - очень плохой кандидат на роль первого языка.
>>1228896>Скала - очень сложный язык.Почему?
>>1228856>http://www.otstavnov.com/Odersky_Scala_lecture-notes.htmlСпасибо!>>1228865>На скале тем более не найдёшь. Открой хх, там требуются только сеньёры на 200 тысяч, ньюфаги никому не нужны. Ньюфаги в принципе никому не нужны. Интересно, откуда при такой политике сеньоры берутся. А мне уже без разницы на каком языке я не смогу работу найти. Мне недавно отказали в интервью на трейни-вакансию, в которой требовали знание хоть какого-то языка. Скалу хотя бы интересно учить.>>1228896>Скала - очень сложный язык.Скала - интересный язык. Он создан для людей, которые сначала думают, а потом делают. Если с думалкой слабо, то есть JS, Python, Ruby и PHP. Там можно говнокодить даже с дырой в голове.
>>1228954>Скала - интересный языкВот вот. Только поэтому и учу, а то бы дальше маняме смотрел, б листал и лес фармил.
>>1228954>Скала - очень сложный язык.>Скала - интересный язык.>Если с думалкой слабо то есть JS, Python, Ruby и PHPТы, вообще, понял, по какому поводу я это написал (про "сложный")? И кому?Попробуй, перечитай.Или ты привык слушать себя, в основном?Возможно, в этом причина твоих проблем с поиском работы.Алсо, с каких пор питон и руби стали языками для слабоумных, лол?Многие рубисты, например, люто надрачивают на скалу, тот же Поллак (разработчик Lift).>>1228902>Почему?В смысле?Спроси у Одерского.Или ты имеешь в виду, с чего я это взял?Потом поймёшь, если продолжишь учить.Чисто для примера - почитай исходники библиотеки коллекций.Если хоть что-то там поймёшь - отпишись обязательно, лол.
>>1228985>Или ты привык слушать себя, в основном?>Возможно, в этом причина твоих проблем с поиском работы.Ты чего злой такой? Основные причины - отсутствие профильного опыта и возраст. Причем, вторая причина ключевая, насколько я могу судить.>Алсо, с каких пор питон и руби стали языками для слабоумных, лол?Я написал, что даже имея дырку в голове, на них можно успешно говнокодить. То есть язык не так требователен к квалификации пользователя.
>>1228985>В смысле?Уже который раз слышу, что сложна, но так и не могу понять почему. Такое чувство, что это какой-то налёт элитарности, чтобы отпугнуть ньюфагов.Ну матан, вся хуйня. Но погромирование само по себе подразумевает матан, разве нет?
>>1228991Я не спец в этом вашем программировании, но мне что-то подсказывает, что для клепания форм, например, матан не нужен.
>>1228991Нет там никакого матана.Просто язык сложный, потому, что очень много всего в нём.Просто для примера:https://stackoverflow.com/questions/8000903/what-are-all-the-uses-of-an-underscore-in-scala>чтобы отпугнуть ньюфаговЧтобы предупредить, лол.И чтобы человек не думал, что это он тупой, например.
>>1228989> возрастИ сколько же вам стукнуло, почтеннейший?
>>1229002>очень много всего в нёмЭто ж плюс, разве нет? Широкий выбор инструментов это здорово. К тому же никто не заставляет всем этим пользоваться. Я вот читал про всю эту ковариативность, и прочую еботню с типами, например, но что-то мне подсказывает используется это очень редко.Про подчёркивание - это наоборот упрощение, когда не нужно переменные лишний раз создавать, ебанул _ да и всё. Как символ, который подразумевает что-то очевидное, типо местоимения.Очень во многом вижу вот этот подход, хз как выразиться, для ленивого человека. Может поначалу это и кажется сложным и нихуя непонятным, но когда один раз поймёшь, то уже не захочешь возвращаться обратно. Огромный простор для того, чтобы лишний раз не писать новый код, а переиспользовать уже имеющийся.
>>1229012Правда в продакшене это никому не нужно. Проще и дешевле взять Java или Kotlin и в случае необходимости использовать какую-нибудь Akka (хотя реализация акторов на Java вроде имелась).Пока найдешь программиста на Scala, который не фигачит одни монады - контора успеет обанкротиться.
>>1229022>Проще и дешевле взять Java или KotlinЕсть и обратный момент. Если взяли всё таки Scala, то там вероятно не просто и не дёшево.>который не фигачит одни монадыКак что-то плохое. Неужели формошлёп, который потеет услышав что-то про лямбды, будет предпочтительней?
>>1229023Зачем такие сложности, когда можно взять стандартный спринговый стек и не обосраться в продкшене?
>>1229024Раз не взяли, значит на то были причины.
>>1229034Да ладно! Вон, SEMRush переходит со скалы на джаву.
>>1229055Да, скала хайп немножко поутих в последние пару лет.Причина, видимо, в том, что сложность языка "не окупается". И параллельный успех (блядского) котлина свидетельствует о том же.
>>1229129> скала хайп немножко поутихИ заебись, меньше вкатывальщиков-джунов, готовых работать за 300 баксов, которые демпингуют зп. А работа будет и так.
>>1229004Мне далеко за тридцать. И я ощутил в полной мере, как "никогда не поздно вкатываться". Честно говоря, не ожидал такого. Думал, айтишники - ребята прогрессивные.Отсутствие опыта, конечно, тоже оказывает влияние. Но я ж и не претендую на синьорскую позицию. Я настроился на среднюю джунскую зарплату уже... В общем, немного у меня энтузиазм подисчерпался. Решил вот посмотреть на Скалу.
>>1229177Я смотрю, олдфагов тут несколько больше, чем принято считать, лол.Российские айтишники - не прогрессивные.Угадай почему.Да, никогда не поздно.Просто чем позже, тем сложнее.Уже считаешь себя умным, и это сильно мешает умнеть на самом деле.Скала - интересный язык.Но, если ты хочешь найти работу, и ты уже не мальчик - учи джаву. Изучение скалы может в этом сильно помочь, но потом.Варианты - 1С, PHP.Это не подъёбка.JS - слишком молодёжно, мне кажется. Но, тоже вариант.Вообще, ориентируйся на то, что тебе хотелось бы _создавать_.Потому, что язык (языки) - это просто инструмент.И без мотивации на создание конкретных вещей он бесполезен.
>>1229177Не все так плохо, братунь. На прошлой работе, примерно год назад, взяли двух вкатывальщиков-джунов рубистами, одному было 33, другому 36. Оба прошли испытательный и остались.
Как понять, что ты уже не джун а хотя бы лоу-мидл, и стоит просить прибавки кроме того, что код-ревью почти все без замечаний
>>1229194>>1229254Спасибо за совет и поддержку. Думаю, допройду вводный курс Одерского - жаль бросать, осталось две недели всего. И снова погружусь в Python. Может курсы какие на той же курсере пройду, чтоб сертификатик был в резюме.
>>1229578в чем проблема просто попросить прибавки?
>>1229715выгонят же!
>>1229715Не то что бы >>1229727, но сорт оф ведь я джун и без понятия особо в этом плане, поэтому и спрашиваю
>>1229737не ссы. Просто приходи и говори: "Даров, я тут сделал то и то, научился тому и закрываю вот это. Накиньте двадцатку."Если посылают -- спрашивай, что тебе необходимо сделать, чтобы получить прибавку, ведь ты хочешь получать больше. Всё это на личном опыте, если работодатель адекватный -- накинет, или скажет что подкачать. Если нет, то беги нахуй. Скалист без работы не останется долго.
>>1229742скалист уровня джун - лоу-мидл? Везде же сеньеры нужны дс
>>1229742Как часто по-твоему должны делать повышения?
>>1229751Хз, я раз в полгода просил, когда устроился на первую работку, тогда буст у меня сильный был, потом уже реже.>>1229743Да хуйня эйчарская. Хотят superstar, но сойдет и обезьяна, которая функтор от моноида отличить в силах
>>1229755А если 1.5 года не повышают. Мне еще потерпеть или лучше искать новую работу?
>>1229758я рили хз, я всё на личном опыте говорю. У меня был супер ахуенный манагер и говорил он так: "С компании надо забирать всё" и постоянно давал мне прибавку, когда я просил.Не будь терпилой -- требуй, проси, доказывай, что ты заслуживаешь больше. Если нет, то сваливай.Но быть мудаком, который приходит и говорит: "У меня тут оффер, делайте прибавку или я сваливаю" не стоит.
>>1229755>Да хуйня эйчарская. Хотят superstar, но сойдет и обезьяна, которая функтор от моноида отличить в силах Ну не знаю. В Тинькове сильно по скале гоняют, ууух!
>>1229763Дело в том, что контроффера у меня нет. Да и это как-то на саботаж очень похоже.Наверное я просто не очень ценный сотрудник и нужно довольствоваться тем что имеешь.
>>1229763Повезло тебе с менеджером. Мой менеджер только спрашивает "Ну че, сколько там еще осталось?!".
>>1229763я другой анон который и начал спраишвать про это вот все, ситуация - месяцев 8 назад устроился джуном, при этом до этого на скале не прогая вообще. И, если в начале я бывало тупил и тд в плане делания всего как на каком-нибудь питоне, а не в фп стиле и все такое, то постепенно стал намного лучше, делаю все сам и с минимумом незначительных замечаний. Но как-то все равно хз, мб я многого хочу и все такое
>>1229769не ссы анончик, подойти сегодня к манагеру и поговори с ним, потом отпишись здесь. Что плохого то случиться может? Да нихуя, ровным счётом.
>>1229777просто выгонят и наймут более лояльного сотрудника!
>>1229780И правильно сделают, мелкобуквенное быдло не нужно.
>>1229769Что хоть пишете на скале?
>>1229788но мне предложили потерпеть с повышением!в компании проблемы, нужно перетерпеть!
>>1229755>сойдет и обезьяна, которая функтор от моноида отличить в силах И часто в работе нужны понятие функтора и моноида?
>>1229847Да
>>1229847Это совсем не сложные понятия, на самом деле.Функтор, например, это любая хуйня, которая реализует map().
Кто-нибудь вкатывался в скалу с нуля? Или всё таки это не первый язык у большинства? Гуглю хх, там даже джунов нет, не то что стажёров. Всем подавай сразу сеньёров с опытом и стаком на страницу. В то же время на Java вакансии есть, берут вообще всех, буквально "основы ооп" в требованиях. Может стоит влезть в джаву, а потом уже перекатываться?Хотя с другой стороны, откуда то ведь берутся эти сеньоры...
>>1230204Олдфаг-кун, это опять ты?Ну вот смотри.Есть такая книжка Functional Programming In Scala.https://scanlibs.com/functional-programming-in-scala/Знания скалы там почти не требуется.Всё, что нужно, объясняют в процессе.Используется ограниченное подмножество языка, без заморочек, которых в скале полно.Попробуй, прочитай и _прорешай_ задания в этой книге. Там есть хинты, и даже есть ответы.Если ты поймёшь, о чём эта книга, зачем вообще всё это нужно, если сможешь решать 1 главу за 7-10 дней (в среднем) и решить все - ты молодец. И смело можешь претендовать на работу, почёт и уважение.Но, я что-то сомневаюсь.Поэтому, я бы предложил тебе выбрать джаву, а к скале вернуться попозже.
>>1230211Нет, я не тот питонист.Дело не в книжках. А в последующем устройстве. Прочту я её, не прочту, что-то мне подсказывает работодателю похуй.Хуй с горы без опыта работы? Мы вам перезвоним.
>>1230211>Олдфаг-кун, это опять ты?Неа. Это другой анон. Я вот писал >>1229624Но за наводку на книгу спасибо. Вообще, мне дико доставило именно решение заданий в курсе Одерского. Так что книжечку буду читать для собственного развития.А вообще, мне сегодня ВНЕЗАПНО позвонили и пригласили на собеседование. Что-то там с Питоном и данными я как раз собирался удариться в ML библиотеки. Завтра пойду побеседую.
>>1230204>>1230220Я задавал аналогичный вопрос в треде и мне неплохо на него ответили здесь >>1229194Могу предположить, что в России-матушке не так много компаний, которые используют Scala вообще, и как основной язык разработки в частности. Это такое экспериментальное направление скорее. Да и Scala завязана на JVM и интегрируется с Java. Поэтому последнюю желательно таки знать.
>>1230220Чувак, если ты можешь читать такие книги (и понимать прочитанное), твоему работодателю не будет похуй, поверь мне.Другое дело, что чтобы смочь, надо уже иметь изрядно этого самого опыта, лол.Или быть гением, но гении сюда не пишут.
>>1230221>для собственного развитияЭто одна из лучших книг по ФП для начинающих.Независимо от языка. Плюс, в отличие от хаскеля, например, тут используется практичный jvm-язык. И весьма многое можно с минимальными изменениями реализовать на джаве.
>>1230226>твоему работодателю не будет похуйВот хз, хз.>>1230225>в России-матушке не так много компаний, которые используют Scala вообщеВнезапно, они есть. Но нужны серьёзные ребятки с опытом в 2-3 года на 300 тысяч в секунду. А, похуй, буду читать этот толмуд и мониторить периодически хх. Не взлетит так в джаву вкачусь. Нет.
>>1230221Ох лол, так это ты? Ну ок, ждем на собеседование...
>>1216536> они с джавы все переносятЛол, нахера?)
>>1230204Я вкатывался. Не имел вообще никакого опыта на JVM, кроме немного кложуры. В прошлом гавнокодил на питоне.
>>1230204работал стажёром, имея опыт стажировки на яве + пет проджект на спринге (мвс + дата), но это вроде как не просилось; требовали знаний ооп + фп + бд
>>1230368Ну и как, интересней чем на Java?
>>1230390Ясен пень, я вообще скалу учил без особой надежды на работу, чисто для себя, потому что реально интересно.Ну а с вакансией реально повезло, не буду отрицать, работается заебись>>1225047 -кун
>>1230261Ну как, взяли?
>>1230433Разнесли как дворовую шпану.
>>1151705Я юзаю, что интересует?
>>1152031Сбертех, но тинькофф получше
>>1152031Exante, Revolut.
>>1230261>>1230433Контора хоть и крупная, но мутная какая-то. Вообще, собеседование проходило странно: меня пытались напугать сложными задачами, которые они решают, но при этом уровень моей компетенции не проверяли совсем. На мои вопросы об используемом стеке прямо так и не ответили.олдфаг-недопитонист
>>1152031да на самом деле почте в любом технологичном банке есть скалка: райф, сбер, тинька. Насчёт альфы не уверен.Ещё куча более мелких мест есть. Не так много как на джаве, но всё равно есть
>>1152031Вбросил бы свою контору, но не хочу деанона.А вообще, пойми, что, даже если в вакансии написано, что компания ищет сеньора, тебе ничего не мешает написать им и узнать про джуновские позиции. Часто джунов ищут пассивно и не публикуют вакансии для них.
>>1232645унижение какое!
Аноны, а какую работу выполняют на Scala? С чем, в основном, приходится иметь дело?
>>1232847В основном приходится иметь дело с медленной компиляцией, нечитаемым кодом и постоянными тормозами приложения из-за того, что GC работает как сумасшедший пытаясь вычистить весь мусор, который приложение на Scala генерит каждую секунду.
>>1232847Биг дата всякая, ну и просто бэкенды с аккой.
>>1232894Причем биг дата не такая уж и биг, но чего уж точно с избытком - описано здесь >>1232874
>>1232980>>1232874Зарепортил залетную обиженку.
>>1232982Что ты там зарепортил? Это анонимный форум.
>>1233014>Это анонимный форум. Смешно шутите, Николай.
>>1232874>нечитаемым кодомто что ты не умеешь его читать, это означает, только то, что ты не умеешь его читатьСкала тем и прекрасна, что можно писать очень лаконичные и выразительные конструкции, которые выглядят как built-in>медленной компиляциейэто да, но для сервака это неважно> постоянными тормозамине замечал
>>1233455>то что ты не умеешь его читать, это означает, только то, что ты не умеешь его читатьУ Скалы объективно очень хуёвый синтаксис. К нему можно привыкнуть, как к Лиспу, или как к запаху носков в казарме, но чем-то хорошим он от этого не становится.
>>1233805>У Скалы объективно очень хуёвый синтаксисАхуенные истории.жпегЕсли вот это сложно, то остаётся только 1с с его ВЫЧЕСТЬ ПРМН ПРИБАВИТЬ НАЛОГ и в таком духе.Небольшие трудности могут вызвать только всякие имплиситы, вот выше анон _+_ подобные записи считал сложными. Ну и с типизацией надо разбираться, если ты хочешь использовать это всё на полную катушку. К слову, у скалы же из хаскеля ноги растут? Я как-то читал статью в интернетах, там автор ебанат, он в одной статье давал ссылку на другую, и вот у меня ушло минут 5 прежде чем я сообразил, что та другая использует примеры на хастлере.
>>1233805Ты питонист или goвноед? ^_^
>>1233805Все верно. Намного быстрее и главное дешевле написать все на Java. Хорошо что есть уже обкатанный Спринг и сопутсвующие библиотеки. Пока будешь подбирать стек на скале, у тебя деньги кончатся в конторе. Нужно же чтобы библиотеки были написаны на скала и все было функциональненько!
>>1233851> вот у меня ушло минут 5 прежде чем я сообразилИ таков тупица каждый второй скалист
>>1233851>Если вот это сложноЕздить на велосипеде с квадратными колёсами не сложно, просто неудобно. >>1233870Нет, я предпочитаю нормальные языки программирования.>>1233934С Джавой сравнивать не корректно, потому что Джава менее выразительна, соответственно и синтаксис для неё придумать проще, но если уж на то пошло, там он лучше.
Аноны, давайте помогать друг другу, так как ждать ответов в треде долго. Мб будем оставлять свою телегу другим с описанием и приблизительной оценкой своих скиллов/ знаний фреймворковНачну с себя:@dirinle Scala 7/10Akka Actors 8/10Akka Http 6/10Play2 3/10Slick 9/10Я, например, постоянно спотыкаюсь об плэй, так как только недавно с ним работаю
Аноны, хочу писать полноценно функционально. Что лучше, cats или scalaz?
>>1234239Cats для петухов, конечно scalaz!
>>1234239сейчас более популярно cats
>>1234239Haskell.
>>1234618Я ждал этого ответа, спасибо.
>>1234618Тогда уж Erlang, там хоть работа найти можно будет.
>>1234748работу, быстрофикс.
>>1234748Если ерланг, то лучше уж эликсир или кложу.
>>1234789если эликсир или кложу, то лучше скалу, тогда и работу найти можно будет.
>>1234797Логично!
>>1234789На кложе нет работы, хватит распространять этот миф.
>>1216375Для скорости нужен го, раст или плюсы. Ты забыл что-ли, что джява работает на JVM? Которая в принципе сосёт на реальных задачах, и написать на ней что-то быстрое, особенно когда дела касается асинхронщины адски сложно. Просто не ебать мозги и взять гошку.
>>1235260Никита Прокопов же нашел работу на кложе!
>>1235266Шта? Кто это вообще?
>>1235271Да ты погугли! Ты же не гуглил!
>>1235271Один из самых известных программистов на Clojure!
Если Scala такая плохая, почему ее используют?
>>1235382Потому что очень много скала-макак, готовых писать за 200 баксов. Короче демпинг зп норм программистов.
>>1235382потому что на ней легко писать программы с хорошим дизайном. Тру программисты не боятся сложностей, поэтому пишут на спринге или го!
>>1235393спринг божественен!
>>1235382Кто использует-то? Даже не в первой двадцатке по популярности.
>>12354674.2
>>1235260Июнь не палится. :')>>1235271Автор firacode
>>1235480Этот график - полнейшая хуйня.И, хорошо ещё, если это просто троллинг.А если те, кто делает эти "исследования", сами в это верят, то это пиздец.
>>1235382Не особо. Всё относительно - относительно ocaml или clojure её таки используют. Относительно Java, JS или C# - вообще нахуй никому не нужна, забытое поделие.
>>1235495Конечно школьнику с сосача виднее, чем одной из самых известных analyst фирм. Съеби в /b.
>>1235518>analyst фирмСеньор enterprise солюшн architect в треде! Все на борт application сервера!
Пацаны, я вам оп-пик для переката принес:>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.
Добрый вечер, скалагоспода. В общем решил навернуть скалу для себя, в качестве хобби, а то заебал жс на работе уже, да и хочется вкусить все бэкендерские фишки, к тому же на таком охуенном фп языке. Вообще, в дальнейшем хочу перекатиться с фронтоговна на скалобэка, сколько это примерно должно занять? фп вроде немного знаю, на жсе стараюсь ворочать говна в фп стиле
>>1237516Purescript. И научись сначала ставить и добиваться решения по одной задаче за раз.
>>1237516всегда лолирую с джс дурачков, которые говорят "фп немного знаю". Фп это не map, filter, reduce.https://gist.github.com/d1egoaz/2180cbbf7d373a0c5575f9a62466e5e1 -- добро пожаловать.
>>1237580Забавно, аноны в треде советовали как раз всё с точностью до наоборот: толстую книгу Одерски и красную по ФП.
>>1237664дык красную книгу там и советуют, только чуть попозже
Бамп годному языку
>>1237580Так Скала - это не ФП. Скала - это Джава с лямбдами + пара костыльных паттернов на макросах имплицитах, которыми пытаются имитировать ФП. Если хорошо в этих костылях разобраться и попердолиться пару вечеров, то можно написать целую монаду, например.
Аноны, вопрос немного не по теме треда, но больше некуда. Чем так плох F# по сравнению со Scala, что его вообще никто не использует?
>>1239026анон ты обосрался, как связаны монады, макросы и ФП? Не неси хуйню, уйди
>>1239531Когда твои познания в ФП немного перевалять за map и пару статей на хабре, а опыт программирования на скале - за пару заданий из кук-буков, ты поймёшь, как они связаны. А пока просто учись и не выёбывайся.
>>1239571ты будешь дальше выебываться или может ответишь на вопрос? Как связаны монады, макросы и ФП? ФП не может существовать без макросов и монад?
>>12392581. проприетарный (де факто)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
>>1239587Содержательно. Спасибо.
Долго, тяжело, больно перекатываться с Жавы на Скалу? В Жаве уже 4 года бтв.
>>1240000Ну и да - будут ли с этого профиты? Получится ли это монетизировать в будущем?
>>1240000>4 года бтвА нахуя тебе? Ты ж там небось уже тысяч 200 получаешь, минимум.
>>1240164Чтобы в будущем получать уже 300, например
Ананасы, как лучше оформлять простые рекурсивные функции с if-else или match-case?
>>1240178В шапке же вроде былоhttps://docs.scala-lang.org/style/
>>1239587>Haskell крут.>Scala пытается быть такой же крутой.Тогда почему вакансий Scala тысячи, а у Haskell десятки?
>>1240545Haskell слишком крут. Очевидно же.
>>1239587А что на счет Clojure?
Почему трут конфу по скале из шапки @hcdev
>>1242760Такое же нинужно как и скала, тащемта.
Аноны, а как по-простому скомпилировать скала-код в байткод для jre?1. Делаю обычный хеллоуворлд2. scalac hello.scala3. java Hello дает Error: Could not find or load main class Test
Бамп
>>1250022Да не поможет тебе бамп, скала нинужна, она умирает. Убогий тулинг, мешанина концепций, язык просто как куча разношёрстного барахла, да еще и на JVM.Вон буружуи уже какие разговоры заводят:https://www.quora.com/Is-Scala-a-dying-programing-language
>>1250127Нет, не нужна, не надо её учить. В статье так и сказано.
Scala нинужна. Твердо и четко.
>>1250507Я не поверю, что человек который смог в монады будет кормить настолько жирного зелёного.
>>1250507Что это за маня-фантазии? Сам рисовал? Открой репорт гитхаба, скала уже менее популярна, чем шелл-скрипты. https://octoverse.github.com/
>>1250801https://habr.com/company/moikrug/blog/420391/
>>1251030На коболе знаешь какие зп охуительные? Когда технология загибается, спеца найти становится сложнее и рынок готов предлагать большие зп, лишь кто-то был готов обмазываться и поддерживать уже накатанное.
>>1251127Так ты работать собрался или на анонимных форумах для девочек анимешниц усираться?
>>1251130Вот именно - работать, для второго есть скала.
Читаю это красную книгу, вижу задание.Смотрю как надо сделать. Решаю сделать тоже самое, но с блекджеком с потоками. А хули нет? В пятницу сделал, все выходные пробухал.Щас посмотрел, что я сделал и обосрался. Всего пару дней прошло, а я уже забыл что и как я делал, пришлось 5 минут смотреть в экран, чтобы вспомнить.
НУЖЕН ПЕРЕКАТНУЖЕН ПЕРЕКАТНУЖЕН ПЕРЕКАТ
НУЖЕН ПЕРЕКАТНУЖЕН ПЕРЕКАТНУЖЕН ПЕРЕКАТНУЖЕН ПЕРЕКАТНУЖЕН ПЕРЕКАТинбифо: сам делай перекат
ПЕРЕКАТ>>1259320 (OP)>>1259320 (OP)>>1259320 (OP)>>1259320 (OP)>>1259320 (OP)