Очередной тред про самый лучший язык для 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Скала за пределами JVM: https://github.com/scala-native/scala-nativeДва недавних форка компилятора, один от тайплевела и второй от баттхертнутого:https://github.com/typelevel/scala (https://github.com/typelevel/scala/wiki/Differences)https://github.com/paulp/policy
>Лучшая книга по Скале: http://www.ozon.ru/context/detail/id/31921731/Лучшая книга для жавадаунов>Учебник по Скале на русском: http://twitter.github.io/scala_school/ru/index.htmlХуевый учебник, https://github.com/anton-k/ru-neophyte-guide-to-scala этот лучше, хотя хуй его знает.
>>767431 (OP)Наскальные балбесы, поясняйте чем Скала лучше Котлина как академический язык, и лучше Джавы как язык практический для бизнеса и тырпрайза.
>>767503Котлин - кастрированное хипстерское говно для школьников. Даже чистая жава лучше.
>>767524Мал по малу вкусности находятся. Напримерinline fun Logger.debug(s: () -> String) { if (isDebugEnabled) debug(s.invoke()) } Метод расширения (который инлайнится кстати), принимающий лямбду, позволяет писать:logger.debug { "Customer + " customer.getId() + " has just ordered " + order.expensiveComputation() } При этом логирование будет выполняться, только если уровень логгера подходящий и аргументы вычислятся лениво.
>>767503Тем что имеет больше возможностей, и имеет в 999999999999 раз более обширную инфраструктуру чем жидбрейнское поделие?>>767550Но ведь это синтаксис из скалы, да и @inline там есть. А ещё есть -Xelide-below который может вырезать ассерты и логгинг при конпеляции.
>>767583Ну синтаксис, вроде, совсем не решающий аргумент, конечно если это не пиздоглазие как у Раста.В скале пугает, когда ебанутые, которым фирма не разрешила писать на хаскеле, тащат скалаз и творят свои мутные дела. Т.е. им вроде дали неплохой язык, но они умудряются подгадить, не используя идиоматичные решения, и не подавляя маня-позывы.
>>767588>Ну синтаксис, вроде, совсем не решающий аргументНу, в смысле, не синтаксис, а конкретно эта конструкцияdef huita(s: ⇒ String)huita { ... }А ещё PartialFunction так же передаётся.
На моем недобуке хелловорлд компилировался три минуты, нахуй-нахуй.
>>767588>Ну синтаксис, вроде, совсем не решающий аргумент, конечно если это не пиздоглазие как у Раста.1) Удобство любого синтаксиса – дело привычки, я так же плевался с раста первые пол года знакомства с ним;2) У скалы он куда "бохаче", в плохом смысле.>>767593Потому что компилятор скалы написан на скале)) ну вы понели)))
>>767596>компилятор скалы написан на скале)) ну вы понели)))Ты не поверишь, но компилятор хачкеля написан на хачкеле, а компилятор C на C (хотя давно уже на крестах :(), но ни один из них не тупит над факториалом столько времени.
>>767598>но ни один из них не тупитПро то и шутейка была, дурашка.
>>767599Типа, у скалы не только компилятор тормозной?
>>767593Одна история охуительнее другой.>>767596Нет, манька, вот поэтомуhttps://wiki.scala-lang.org/display/SIW/Overview+of+Compiler+Phases
>>767604>Одна история охуительнее другой.Да, это так, я спиздел про три минуты. На самом деле, я просто не дождался окончания компиляции.
>>767606Олсо, когда запускал репл, уже начал думать, что это какой-то баг в жвм или еще где, так как запускался он минуты две, минимум (потом я пошел курить, вернулся и о, чудо!). Последующие запуски, даже на прогретой жвм, были нихуя не быстрее.
>>767604>Нет, манька, вот поэтомуТеперь поясни чому хаскель компилируется быстрее - может у него компилятор малофункциональнее?
>>767503Возьми да почитай вводные на оффсайтах котлина и скалы, там даже макака поймет что к чему, аноны щас тебе как обычно тонны предвзятой хуиты понастрочат(хуле, от явы навык хорошо развит).>>767524Сразу видно маняхейтера. Котлин это просто улучшеная жава, добавляет кучу синтаксического сахара, который на ява ждут уже 20 лет и который реально помогает, спасая от простынок текста.
>>767612>предвзятой хуиты понастрочату тебя неплохо получилось, маня
>>767503> чем Скала лучше Котлина как академический языкДумаю, тебе парни из JB с вертушки бы пояснили, что Котлин - не академический язык.> и лучше Джавы как язык практический для бизнеса и тырпрайза.Тем, что делает код короче и читабельнее и реализует разнообразные бест практисес непосредственно в языке.
Скала правда такая охуенная?
>>767863Скала такая охуенная, что я не могу на ней писать. Только заглядываю в документацию, как обканчиваю монитор, иду курить, а затем без сил падаю спать.
>>767914Внезапно поддвачну, сейм шит.
>>767914Этот форс такой охуенный, что я не могу его не форсить. Только заглядываю в сосач, как обканчиваю монитор, иду форсить форс, а затем без сил падаю спать.
Нахуй ее вообще сделали? ФП блджад. Все равно никто за пределами бложеков на Скале в функциональном стиле не пишет. Потому, что если взяться за ФП всерьез, то код сразу начнет обрастать такими ебанутостями, что ударившийся во все тяжкие функциональщины скалолаз очень сильно об этом пожалеет. В общем-то нет языка, который может "запарить" мозг сильнее, чем скала. Скала имеет мозговыносящую систему типов, не имеющую аналогов в том смысле, что нет другого языка, в котором ООП было бы адекватно статически типизировано. Это крайне сложная и амбициозная задача, буквально все остальные создатели ООЯ на каком-то этапе плюнули и решили "Статическая типизация — это сложно, ну его нахуй, лучше будем динамически кастить". Правда, весь этот околодинамический цирк с конями в скале остался "для совместимости" (и дополнительного выноса мозга). За что боролись?
>>768429ну если ты не осилил хуле тогда своё рыло здесь заставляешь кукарекать? >Скала имеет мозговыносящую систему типовне понял это как?>что нет другого языка, в котором ООП было бы адекватно статически типизировано.define адекватно, а ваще ето кек канешна>околодинамический цирк с конями в скале остался "для совместимости"это какой?
>>767503котлин хуйня без задач
>>768438Котлин хуйня и с задачами. Ceylon неплох, но не будет популярен все равно из-за инерции.>>768437Вот никто и не осилил. Кроме десятка ее разработчиков. http://yz.mit.edu/wp/true-scala-complexity/
>>768437 Я вообще удивляюсь, как подобным предыдущему анону позволено иметь своё мнение и голосовать в частности. Давно пора ввести интеллектуальный ценз на мыслеизъявление. IQ меньше 100? - вон из интернетов! В крайнем случае - анально огородить какой-то аналог двача где оним бы могли морозить на тему >взяться за ФП всерьез
>>768442>Котлин хуйня и с задачами. список задач, про покпок тюринк полнота можешь не кукарекать.>Вот никто и не осилилdefine осилил. ты понимаеш что ты даун?
>>768442Котлину может повезти на Андроиде, если Гугл сжалится и подмахнет. И если товарищи прекратят велосипедить с anko (там есть хорошие вещи, но многие пытаются заменить лишь одним красивым кодом то, что сейчас имеет отличную инструментальную поддержку).
Добавлю еще что типов с IQ больше 140 и проявляющих подозрительную творческую активность надо тоже в резервацию, там бы где они под чутким руководством адекватов могут двигать прогресс.Пример того, что подобные субчики могут сделать в открытом поле (если не присматривать за ними):>WTF is /:? Why do I need to consult a periodic table to make HTTP requests? http://www.flotsam.nl/dispatch-periodic-table.html
>>768449>2016>dispatch>когда уже есть Akka HTTP
>>768447> anko (там есть хорошие вещи, но многие пытаются заменить лишь одним красивым кодом то, что сейчас имеет отличную инструментальную поддержку)Можно пример таких вещей, имеющих отличную инструментальную поддержку?
>>768442>As of 2.9>January 2012Ясно, иди нахуй
чего вы делаете у себя в этих ДС на scala meetup?
>>774795Обкуриваемся функторами и ябём друг друга в монады.
ребят, кто в scala умеет, поясните пожалуйста, почему так происходит что запускают прогу в идее - норм выполняется всё. запускают с командной строки - вылетает туча ошибок ( на самом деле две: java.lang.ClassNotFoundException: com.mysql.jdbc.Driverи java.lang.NullPointerException)
>>776494недобавлены зависимости к проекту.
>>774795>ДС>scala meetupНу охуеть, жаль я мамкин хекка борщехлёб
Обмазываюсь сейчас курсом progfun на курсере, он конечно пиздец нереально скучный. Остальные курсы с этой специальности тоже подобные или там повеселее уже будет?
> We are a big scala shop at Expedia and it's concerning that Martin is more interested in Dotty.> Scala 2.12 is late, and not having easy java8 interoperability is becoming more and more of an issue.> I love the language but it is becoming harder to recommend it for new things due to the ambiguous roadmap
поясните, скалабоги, почему в вакансиях на скала требуя год-два опыта на этом языке сверху, как правило, требуют вдвое больше опыта на джаве? Вакансия то Скала-дев
>>784987Наверное потому что глупо требовать 3-6 лет опыта на скале?
>>777420Параллельное программирование еще скучней + один из двух лекторов имеет максимально неприятный акцент
>>777420>он конечно пиздец нереально скучныйЯ смотрю на 1.5, понижая до 1.25, когда перестаю понимать.
Небольшая дружелюбная конфочка про скалу на телеграмме.Желающие пообщаться, велкам.https://telegram.me/joinchat/BoA_agWB_Xh7Rm75eumPNw
>>777420А я почитываю https://www.manning.com/books/functional-programming-in-scalaПока ток до 4 главы дошел, но честно сделал все упражнения и очень даже годно!
>>789409Моар картиночек.
>>791942
>>789409Ссылка на конфу изменилась:https://telegram.me/joinchat/BoA_aj9lle-bI9Id-jcE3A
Запилил иконку для Scala IDE, может быть, кому-нибудь пригодится.
Что-то пусто стало в треде, все в конфу переехали?Расскажите, какой способ обработки ошибок вы предпочитаете? Исключения, Option или что-то еще?
>>795076На растянутый анус только в плоском дизайне похоже.
>>798343Try (именно который с большой буквы), который контейнерМожно Either, но это когда ты в месте ошибки знаешь что куда класть (Left И Right)Я тащу Try и уже там где это по смыслу подходит его разворачиваю.
Почему Scala native не взлетит?
>>799342А почему должна?
>>768429> В общем-то нет языка, который может "запарить" мозг сильнее, чем скала.Есть: С++
>>772745Вот тебе немного новостей из 2016: ваш Фюрер таки признал что Скала некорректна, переписывает её заново, но когда будет релиз - хуй знает.
>>799451> gaЭто как /ga?
>>799451пеар анрилейтед параши
>>768429у меня на работе скала, мудак
Loving #Scala but missing #AbstractSingletonProxyFactoryBean ? Try Spring-Scala! https://github.com/spring-projects/spring-scala
>>768429Пример Go показывает, что люди готовы обрастать код ебанутыми фичами ради скорости и писать вообще без типов.
>>799479Вот когда будет релиз, тогда и начну учить вашу скакалку для биг даты, а пока на D посижу.
>>804130>D>BigData/0
Я правильно понимаю, что всё фреймворки и библиотеки скалы можно использовать с джавой?
>>805323и да и нет
>>805323зачем скала, если есть джулия?
>>805333зачем джулия, если есть кложурь?
>>805333Это тот язык, в котором из-за религиозных соображений/фундаментальных законов запретительного характера разрабы не могут REPL запилить? См. (переопределение функций/типов здесь https://github.com/JuliaLang/julia/issues/6786 и далее по переоткрываемым задачам).Спасибо, не надо
>>805341Из новых языков-убийц, вспоминается похожий конфуз еще у раста, в котором разрабы не осилили TCO.
>>805344Они байтики привыкли ебать а не разворачивать рекурсию, чо ты хочешь.
>>805341 Но твоя скакался всё равно соснула здесь: >>799479
>>804205А для бигдаты по твоему пойдёт? У скалы вон с релизами проблемы. А кроме неё вроде больше ничего и нет.
>>799479Что конпелятор скалы некорректен, если точнее
>>777420Кинь ссылку на курс. Они там всё переделали и теперь старая работать перестала.
>>805588>А для бигдаты по твоему пойдёт? джява
>>805588>У скалы вон с релизами проблемыЧто это означает? Ты имеешь в виду что 2.12 еще не вышла? Ну так я тебе сообщу что например спарк до 2.0 по дефолту билдится под 2.10(!), после будет под 2.11. А когда он появится в дистрибутивах клаудеры, не говоря уже о хортонворкс, вообще не известно. Может осенью, а может и в следующем году.>>805640>Что конпелятор скалы некорректен, если точнееЧто это означает? Что значит корректный компилятор?>>805323Обычно нет, если либа не написана специально для интероперабельности с джавой. Очень легко проебать и использовать такую фичу скалы которую очень трудно выразить в джаве.
>>805746>жава >бигдатаНасмешил. Это инструмент для клепания CRMок макаками, но никак не для бигдаты.
>>805763Маня, все основные биг-дата тулы написаны на джяве и естественно она хорошо с ними интегрируется. То что скала это ололо бигдата-язык - это просто следствие того, что она работает на той же платформе, на которой джява-мужи уже всё написали.
>>805763Смотря какие задачи решать. У нас обычно модель пилят на питоне, а для прода все процессы перепиливают на джаву. Но мы hdp используем, на православном спарке наверняка удобнее и быстрее использовать скалу с её радующими глаз конструкциями, похожими сами знаете на что (_+_)
>>805758Ну кукарекали же что у скалы слишком тормозной и сложный конпелятор, вот Мартин и решил переделать. А он написал так, будто переделывают с нуля весь язык.
>>805774Спарк написан на скале, лови струю в ротешник.
>>806194Там немалая часть - Java-код и апишки на оба языка (+ пихтон и R), плюс он юзает хадуповские либы. Hadoop - на джаве, Storm - на джаве, Druid -на джаве, Samza - опять же, значительная часть - джава код. То что на Scala типа ололо бигдата - просто результат использования уже написанного джява-кода. Твой вскукарек ничего не отменяет.
>>807283И что? Использование готового - это хорошо, не зачем плодить велосипеды. С другой стороны скала позволяет значительно эффективнее использовать уже написанный код, элегантнее, проще, эффективнее и с большими возможностями.
>>807323Так-то оно так. Я это всё к тому, что Scala - не какой-то ёба-язык монополист биг-даты, а один из языков, на котором ей можно заниматься. Вообще все адекватные бигдата тулы рано или поздно заведут SDK под десяток языков и писать можно будет хоть на питоне, хоть на джаваскрипте. Потому что в бигдате важнее сами тулсеты, чем прослойка.
>>807283>Java-кодКостыли для джявамартых?>плюс он юзает хадуповские либыДля совместимости с хадуповскими легаси-говнами джявамартых, ну да>То что на Scala типа ололо бигдата - просто результат использования уже написанного джява-кодаНет, мартышка, результат превосходства скалы над говноджявой. Иначе бы все жрали хадуп.
>>807837>Истерика надуманного превосходстваМимо Agda/Idris господин
>>807845>AgdaА что с этим языком можно делать?
>>807845>Agda/IdrisЧто это за мертвечина без задач?
>>807912Унижать и доминировать над скала-макаками
>>807980Ну и где что-то уровня Spark на агде?
>>808669Ты не понял. Они нужны не для для каких-то там мартыханских школобигдатеров, а например, чтоб унижать индусов в их собственном JDK.Вот тут пруверщики доказали что TIMSORT который используется в джяве, пердоне и ондроеде - некорректный алгоритм.http://envisage-project.eu/proving-android-java-and-python-sorting-algorithm-is-broken-and-how-to-fix-it/
http://www.bullshitbingo.net/cards/bigdata/
>>807980Юникод то завезли?
>>808984А нахуя её в сам язык завозить? чтобы как в свифте можно было переменные и функции смайликами именовать?
>>808685>петухи на параше доказали, что понятия некорректныЛол, всем похуй
>>808998>что понятияТы по ссылке вообще переходил? Там конкретный issue. Я воспроизводил этот баг у себя с помощью их программы. В джяве оно падало даже 67 млн. элементов. Или это ты так за обсер своих jvm анальных господ копротивляешься?>петухи на парашеЛол, эта боль жвм-мартышки.
>>808998>чёткие пацаны с прувером формально доказали некорректность тимсорта, которым, кстати, все так гордились>пок-пок всем похуй, не то что я такой-то бигдата отчёт для тёти Груни вчера выгрузиллел
>>809018>>809024То есть вершина достижений агда-петушни это проверять сортировки? Никакой работающей программы они сделать не в состоянии? Лол.
>>809026Да, по сравнению с достижениями мартышек из твоей веб-студии это конечно очень слабо. Ты вообще как, за компьютер сайнсом следишь, алгоритмы там, вычисления, верификации, системы типов. Или так, только отчётики выгружаешь и спарк программируешь?
>>809033>Ты вообще как, за борщехлеб сайнсом следишь, олимпиадки там, вычисления факториалов, верификации хелловорлдов, монадкиЧто простите?
>>809034Хули не в джава треде? Ведь теперь там можно даже найти элемент в массиве и благодаря стараниям борщехлёбов отсортировать массив без ошибки.
>>809018>с помощью их программыВ этом и суть. Сколько лет оно работало, но тут оказывается, что на одном наборе данных оно может упасть. То есть, фиксить надо, фикс хороший, но не настолько. Но, поскольку у функци-анальщиков других достижений нет, вот они и бегают размахивая руками. А вот если бы они вместо написания статеек о том, как в функци-анальщине всё хорошо, и как императивному программированию скоро-скоро придёт самый настоящий вендекапец, занимались чем-то полезным, то всем было бы намного лучше.
лол вроде скала тред, а эталонные жатники сидят
поясните, пожалуйстаможно ли как либо с одного метода достать переменную которую этот метод не возвращает? вот пример кодаhttp://pastebin.com/EagWLMSW
Поясните, пожалуйста. можно достать переменную с метода который эту переменную не возвращает? Вот пример коданадо достать строку с метода, и использовать её в другом методеhttp://pastebin.com/EagWLMSW
>>сорян, инет пинганул
>>811064Что за библиотека?
>>811195это Play 2, очевидно
>>811225[code lang="scala"]ws.url(URL).post(POST).map{ request => val parts = request.body.split(",") val sessionKey = someResult val sessionValue = someString (sessionKey, sessionValue)}[/code]Не?
>>811264Или Ok((sessionKey, sessionValue))
>>811264Какое-же убожество. И после этого макака еще паскоды требует...
>>811267>2016>без вишмастера))
>>811268Не для того я макбук покупал :3
>>811273А для того, чтобы хэловорлд на скале компилировалась по 5 минут буквально?Кстати, в идее стала доступна опция создания проект на Dotty, идея сама тащить последний снапшот. И оно предсказуемо работает раза в 3 медленнее текущего компилятора.
>>811328>А для того, чтобы хэловорлд на скале компилировалась по 5 минут буквально?Что, получается Бреслав правду что-ли говорил :) ?Я только на java/kotlin/C# разрабатываю на clojure еще через плагин хеловорды :3 писал.
Помогите пожалуйста из Future[String] вернуть String. Хочу строку в хтмл засунуть( плей фрейм), а он дичь мне выдает
>>813533fStr.onComplete { case Success(str) => println(str) case Failure(exc) => println(exc.getMessage)}
>>813533Без блокировки не получится, а с ней теряется весь смысл асинхронности. Правильно будет так: future.map(string => frame.put(string)) или future map frame.put.Результат - Future[Frame].
Есть ли какие нмбудь опенсурсные проекты на скале в которые можно покомитить, кроме монстров вроде спарка?
>>817056Тысячи их. Ищи на гитхабе: https://help.github.com/articles/searching-repositories/
>>817078Искал. И первые 10 страниц кроме йоба гигантов вроде спарка и плея да рисёрчей нихуя нет.
>>817096Скала - академичный язык. Или рисёчёшь или иди круды клепай на пыхе.
>>817099И что же в ней такого "окодемичного" что сильно отличает её от других языков?
>>767431 (OP)Чем скакался лучше Джулии?
>>817288Распределённые вычисления на том же уровне реализованы в скале или хуже?
>>817290Такой вид паралельности с общими данными там реализован разве что в виде пары конкурентных коллекций, так что да – в этой области от сосёт (отличается?) у юли.Тоже кстати жду ответа от петуха выше – что в скале такого академичного?
>>817295Ну тогда я лучше Юльку буду учить как академический язык, нахуй мне скакалка сдалась.
>>817056https://github.com/lauris/awesome-scala
>>817096Какие 10 страниц? С какими фильтрами? Такое впечателние что тебе нужны не проект найти, а попиздеть про их отсутствие.А вообще опенсорс работает по другому:1) У тебя есть проблема2) Есть опенсорс либа котороая решает твою проблему, но не до конца3) Ты допиливаешь либу и делаешь пулл реквест4) ???????5) PROFIT
скаланы че спрашивают на собседованиях на скальные вакансии? ну и вообще по функциональщинеотличаются ли чем-то задачки (сортировки лол) на собеседах у функционалистов от быдло-имперетивщиков?
>>817990На собеседованиях вообще врядли будут спрашивать про функциональщине если в вакансии прямо не написано про шизу вроде шэйплесов – в проде её избегают во имя поддерживаемости.На большинстве скала вакансий что я видел требуют знания ява стека + пары инструментов и фреймворков из мира скалы.
>>817997то есть будут спрашивать по джаве штоль? треды-шмреды?
>>817997по фреймворкам тоже какие вопросы? типа что такое экшон в плей? ето же хуета или че попизже?
>>817311Впрочем, на чём лучше будет нейросети писать: на скале или джулии?
>>817997>функциональщине>шэйплесКак вы заебали пиздеть о том в чем не разбираетесь, уёбища.>>817990Предметная область имеет значение. Мы например вообще по кодированию задачек не давали, в основном вопросы то бекенду - базы, конкарренси, CAP теорема etc. Ну и общие вопросы по програмированию вроде "что НЕ нравится в скале?" и про простые структуры данных. Обычно если человек отвечает на такие вопросы, непосредственно с кодированием он справится.Я бы еще давал задачу "напиши мне функцию reverse(List[T]) в функциональном стиле": могут разные интересные вопросы возникнуть.На первой работе связанной со скалой собеседование строилось на отличиях скалы от джавы, какие у неё преимущества и недостатки, как там с функциональными фичами/ОО паттернами.
>>818317звучит как не очень сложный собесед, хотя я чушок - сходу бы вот так лист функционально бы не развернул
>>818365Первый собес отсеивает процентов 80-90 кандидатов. reverse не давали писать потому что нормальные джависты нам тоже подходили. Btw, развернуть связный список in-place (с мутабельныйми нодами) намного сложнее чем просто записать элементы одного списка в другой в обратном порядке (что я и имел в виде под функциональныйм разворотом списка).
Аноны, подскажите ньюфагу в jvm. В джава треде проигнорили. Решил запилить хелловорлд для себя и еще пары человек. Простенький бекенд с легкими БД операциями без всяких каскад апдейт на 1000-2000 запросов в день много будет в памяти отжирать? И вообще, можно где-нибудь поглядеть тесты на реальных приложениях потребления памяти по нагрузке? Просто под рукой простенький сервак на 2gb с одним ядром, на том же go его хватает за глаза, хочу попробовать на scala это дело переписать, так как функционала не хватает немного, а динамически типизированные языки я не воспринимаю на сервере.
>>818539Сколько дашь, столько и будет отжирать.http://stackoverflow.com/questions/14763079/what-are-the-xms-and-xmx-parameters-when-starting-jvmsТебе может и 128mb хватит, кто знает что там у тебя за логика.
>>818539Стоковый VisualVM запусти, там профайлер показывает красивый график с потреблением памяти.
>>818572Ничего серьёзного, 6 моделей и небольшой xml-rpc интерфейс на коленке с вебмордой чтобы искать по истории в irc каналах зарегистрированного юзера, писалось тоже for fun.>>818575>VisualVMНе знал о таком, спасибо, помониторю.
>>818580>Не знал о такомИ это джависты. Она же с 2008 года в JDK входит.
>>818592Это не джавист. Это залетный пидор
>>818615Подтверждаю. Нужна чистка в рядах.
>>818592Нефиг жопой читать.
А есть что то как скала, только не жава, а шарп, но с кроссплатформенностью?
>>818635vala
>>818635Например, Шарп с Mono?
>>818709Vala - это копия шарпа поверх gobject. К тому же кроссплатформенность там во много номинальная.
>>818814> Шарп с Mono> MonoУ нас за такое на районе по ебалу били.
>>807283Так-так, товарищи, тут кто-то пиздит. Storm - говно, и написан он на Clojure, Samza - его мертворожденная копия с минимумом изменений.А на Scala есть божественный Spark, который рвет всех и Storm с Samza (Spark Streaming), и Hadoop.
>>818374Функционально - это с рекурсией и конструкцие листа на обратном ходу из последнего элемента?
>>819072>и HadoopТы дебил? Спарк и Хадуп разные задачи решают.>Spark, который рвет всех и StormЛол, даунёнок не понимает разницу между stream-processing и micro-batching.Судя по тому, что для тебя вся бигдата сводится к Спарку - ты просто восторженный школьник с дивана.
>>819098Поясни мне разницу между spark streaming и stormмимо
>>819110присоединяюсь
>>819076Это самый простой, лаконичный и очевидный вариант. Но с ним есть одна проблема.
>>819527>Самый простой лаконичный и очевидныйПереебал тебе свёрткой с вертухи прямо в щиКстати, напомни какую лучше использовать, правую или левую?
>>820336>Переебал тебе свёрткой с вертухи прямо в щиЭто да. Я вообще какую-то хуйню в этом комменте написал, о чем-то другом думал наверное.>Кстати, напомни какую лучше использовать, правую или левую?Какую нужно, лол. Если оперция ассоциативна, то лучше не выёбываться и использовать левую, правая может быть не хвосторекурсивна stackoverflow привести на некоторых структурах данных (на списках все будет ок).Кстати, кто-то сталкивался с не хвосторекурсивной левой сверткой? Ну например какой-нибудь бесконечный список [.. 0]?
Что означают проценты в build.sbt? На stackoverflow пишут что это как в мавене, а я не знаю как в мавене, на джаве раньше не писал.
>>821120Алсо, пишут, что там синтаксис такой:> libraryDependencies += groupID % artifactID % version % configurationЧе за группы? Че за артифакты? Че вообще гуглить надо?
>>821131В гугле чтоли забанили блять?http://stackoverflow.com/questions/2487485/what-is-a-maven-artifacthttp://www.scala-sbt.org/0.13/docs/index.html
Ауе, братульцы!Поделитесь соображениями, что с рынком вакансий по скале в мск?смотрю, последние года три, одни и те же конторы ищут людей, и хуй кого набирают, мне тоже дохуя где отболтили, где-то сам по фишке сливал собесы, т.к. обстановка ч т писос какая не прикольная.везде одна ситуация: дико задроченные чуваки собеседуют для самоутверждения, но не набирают, а некоторых слишком круто осаживаю, и жалею, они не виноваты, но блять не умеют в нормальные коммуникации.смотрю так же на джин например, 8 из 10 - релокация из ДС. т е работы тут как бы и нет для скалиста адекватного, не адепта-евангелиста, а когда ты и в код умеешь и знаешь как дела делаются. хз, Минск гораздо более праздничный, конторы крутые, бодрые не ссученные. Как вы думаете, что тут за хуйня со скала-разработкой происходит?
>>821592С твоей формой изложения мыслей тебе в пхп-тред. Неудивительно, что тебя никуда не берут.
залепи удило, конь! это 2ч.
>>821592>Минск гораздо более праздничныйЧем Москва? Не поверю. Бывал в Минске, по сравнению с Киевом унылое место. Да-да, майдан, генотьба, скачут, всем весело.
>>820717> Ну например какой-нибудь бесконечный список [.. 0]?Does not compute. Ты не сможешь оторвать такому списку голову, её нет
>>822052Да, головы нет. Точнее её невозможно получить, как и развернуть бусконечный список. Зато есть хвост и последний элемент. Ну не важно, вопрос не про это был.
Минск конечно уныл, но я о работе исключительно.
>>822239>Есть хвостТы понимаешь, что концептуально, то что ты описал -- это всё тот же обычный бесконечный список в котором tail ты назвал head, a head - tail?
>>822259>tail ты назвал headУ их типы разные. tail остаётся tail (тоже бесконечный список), head нет, но есть last.
Нужно ли до скалы учить джаву или сразу можно?Сейчас заканчиваю cs50 и хочу выбрать дальнейшее развитие, интересуют более или менее современные и активно развивающиеся технологии с применением в вебе и больших данных, поэтому выбор пал на скалу. Все правильно?
>>767431 (OP)Поясните, зачем нужны форки компилятора?
>>822785Сам язык java тебе мало чем пригодится, скорее навредит. А вот экосистема тебе пригодится, ну и понимание что там и как в jvm твориться, и почему вся функциональщина в scala -- это не больше чем набор костылей сахарок. А веб и бигдату абсолютно нормально пилить и на java, python и на всем, чем тебе хочется. Тут скорее нужно понять, чего тебе хочется.
>>822977> Кто-то не умеет в абстракцию
>>822914Затем, что он тормозное говно, не умеющее в java 8, очевидно же.
>>823037>не умеющее в java 8А нахуя оно надо?>он тормозное говноНу, это не исправить, тут дело не столько в самом компиляторе...
>>822985Я то как раз перекатился из java в scala, потому что мне на jvm не хватало тех абстракций, которые предоставляет scala. А то, что функциональщина в scala -- это всего лишь сахарок, ты этого не замечаешь? Там же отовсюду торчит прибитые гвоздями к jvm куски. Ещё и система типов в scala оставляет желать лучшего. Но, для новоприбывших бойцов, может быть и не нужна jvm и вся эта возня с экосистемой java.
>>822977>>822977>>822977Спасибо за ответ, а как тогда учить, то-есть в книгах по скале рассказывается о > экосистема тебе пригодится, ну и понимание что там и как в jvm творитьсяИли это отдельно гуглить и читать?
>>823193>А нахуя оно надо?Чтоб рантайм бодрей исполнял, ясное дело.>тут дело не столько в самом компилятореЧто он не может в параллельность - тоже дело не в нём, да?
>>823234>Синтаксический сахар Как же меня заебала эта идиома. Со всех сторон слышен этот кукарек. Ты совершенно не понимаешь сути синтаксического сахара. >Торчат прибитые к jvm кускиКак это понимать? Куски чего? Чем прибитые? Постишь - как в лужу пердишь
>>823314В любом учебнике по scalа будут описаны некоторые подводные камни jvm. Не стоит этим заморачиваться, пока не столкнешься.>>823567> Как же меня заебала эта идиома. Со всех сторон слышен этот кукарек. Ты совершенно не понимаешь сути синтаксического сахараЯ то его понимаю. Любой более-менее читаемый функциональный код, можно переписать в императивном стиле, но что это даст? На scala, как и на groovy? очень удобно делать dsl, и после них, абсолютно не хочется делать некоторые вещи на java. Но я одного не понял, почему тебя так задевает то, что я назвал функциональщину в scala -- сахаром? >Как это понимать? Куски чего? Чем прибитые? Постишь - как в лужу пердишьОк, скажи мне, как скала ушла от jmm? Или может scala научилась не затирать знания о генериках в рантайме? Или может scala привнесла что-то фундаментально новое в jvm?Ты меня конечно прости, но мне кажется ты просто диванный специалист, который не пишет\писал код на scala за деньги.
>>823942Некоторые твои тезисы верны, с некоторыми я не согласен. Но я совершенно не понимаю, что ты хочешь ими сказать, и главное зачем. > Любой более-менее читаемый функциональный код можно переписать в императивном стилеЛюбой более-менее читаемый код на тьюринг-полном языке можно переписать на другом тьюринг-полном языке.>я назвал функциональщину в scala -- сахаромТы употребляешь термин "Синтаксический сахар" некорректно. Как это вижу я: если ты средствами языка можешь определить достаточно похожую конструкцию, то введение такой конструкции в язык - синтаксический сахар. Циклы в lisp - синтаксический сахар. В Java - насущная необходимость к синтаксическому сахару отношения не имеющая>Синтаксический сахар:>Это может быть любой элемент синтаксиса, который даёт программисту альтернативный способ записи уже имеющейся в языке синтаксической конструкции, и при этом является более удобным, или более кратким, или похожим на другой распространённый способ записи, или помогает писать программы в хорошем стиле.Dependency Types, например, в скала - синтаксический сахар над какой-то из синтаксических форм java? Тогда давай, показывай как это делаетсяв джаве.
>>823942А, и да, пруф писания тобой кода на scala за деньги в студию
>>823942С твоим подходом можно любой язык назвать синтаксическим сахаром над машинными кодами. Это корректное, но совершенно бесполезное определение синтаксического сахара.>ты просто диванный специалист, который не пишет\писал код на scala за деньги.За такие "аргументы" в приличном обществе принято сразу нахуй послать.>>824358Какие можно предоставить пруфы этого на анонимином форуме?
>>824569покажи трудовой договор и там замажь имя свое
>>824572Хуй знает, где мой договор, и вообще есть ли он, я как частный предприниматель оформлен. В любом случае, думаю что вероятность наличия в договоре слова Scala мала, там будет что-то вроде "разработка програмного обеспечения". Я могу ошибаться, конечно. Покажи свой договор как пример.
https://gist.github.com/anonymous/bb1eed2c4a15a35949741b4c34639e55#file-otsos-scala-L3-L21Хотел поинтересоваться как правильно писать файлы в ZipOutputStream. Я беру прямые ссылки на удаленные файлы и пишу их через BufferedInputStream в поток архива. Брат не умер, работает нормально, но иногда всё наёбывается причем на одном и том же месте и мне дропается поврежденный архив. Проверял неоднократно, все ссылки рабочие, если по отдельности писать, то норм, но бывает, что какие-то два соседние файлы не могут записаться и все дропается нахуй, уже заебало. Че мне делать, как быть? В большинстве случаев работает нормально, но на большом множестве файлов может случится такая хуета.
Вернулся в скалу спустя год, тайпсейф переименован, хайпа больше нет. >>823234Ты не понимаешь, что такое функциональное программирование. Скала функциональный язык, в ней реализованы некоторые функциональные структуры, которые используются на постоянной основе вроде монадических типов - Future, Optional, Try и тд, дефолтная иммутабельность, объекты первого класса - ты можно обращаться ко всему как кобъектам, дёргать-туда-сюда, передавать аргументом в функции, функторы, паттерн матчинг, уебищная библиотека коллекций, которые вообщем-то поддерживают все функции высшего порядка. В скале нет ленивости и есть только локальная типизация, нет ADT и зависимых типов, но и первое и второе можно реализовать, то есть это несовсем из коробки, но оно есть. Синтаксический сахар - это всякие дешевые приколы с инфиксной формой записи, щас посмотрел что это в интернете, какой-то ебанат указал на case class, в хаскеле такие классы по дефолту, и реализуются они почти так же внутри, я только зашел, а меня уже заебали этим тупым пиздежом не о чем, какие-то ебанаты просто обдрачивают слова и смакуют. Идите нахуй.
>>824822заработало, видимо, создавались entry с одинаковым именем, дублировались ссылкиохуеть, качает 2,8гб зип и ничего не сломано
>>824823В JS есть монадический тип Promise, это тоже ФП язык?
>>824823Поддержу анона выше - в плюсах есть и Future, и Optional и даже лямбдочки (sic! kek), это теперь тоже ФП язык?
>>825036>>825021Есть множество домов: без крыши, без окон, с цокольным этажем, старый, новый; но все они дома. Почему?
Подскажите, где обосрался и как можно лучше сделать.http://pastebin.com/iXTqXwqa
топик утопает в дерьме... идите на хуй, те, кто не понял или дохуя умный, вас сюда никто не звал.На, сука! Лови свою функциональщину на С++.. struct sequence_tag {};struct pointer_tag {};template< class X >X category( ... );template< class S >auto category( const S& s ) -> decltype( std::begin(s), sequence_tag() );template< class Ptr >auto category( const Ptr& p ) -> decltype( *p, p==nullptr, pointer_tag() );std::unique_ptr<int> p( new int(5) );auto f = []( int x ) { return -x; };std::unique_ptr<int> q = fmap( f, p );-- реальная дичнаблюдаю только школоту неодупляющую, либо дохуя умных которые могут тут С++ и Скалу на раз оценить, и сказать что и там и там что-то есть, оба языка одинаковы, идите на хуй все..так вот, я вас жду таких дохуя умных на собес, и готовьтесь получше, особенно если решите проводить сквозные аналогии в ФП между языками.. буду жестко наказывать вас анально, при джунах, что бы пример был перед глазами, что бы 100 подумали прежде чем говорить.всем добра!
>>767431 (OP)не самые очевидные тесты: scalapuzzlers.comполезные упражнения: scala-exercises.org
>>827902>-- реальная дичКонечно дичь, это разные невзаимосвязанные куски кода.
Есть кто-то кто может устроить беспощадное ревью кода?haltandcf@gmail.com
мужики не из дс сколько у вас зп? с дс-блядками примерно понятно тк есть пара вакансий в общем доступе с цифрами, а я как провинциал не знаю какой ценник ломить
Cкала-трендж, почему ты тонешь?
>>841613Потому что скала настолько всем неинтересна, что тред можно нахуй удалять.
Хелпуйте, пацаны.Короче, написал функцию, которая принмает набор байтов и считает количество появлений каждого байта в этом наборе.http://pastebin.com/yyYPkZDpНо проблема в том, что не осиливает большой объем данных.Как пофиксить?
>>841870>Как пофиксить?Поменять язык программирования.Мимокэп.
>>841870Вот так это фиксится. На раз-два. Не благодари.http://pastebin.com/2kqdpMRU
>>841870По поводу >>841902 - обрати внимание, там в принципе могут обрабатываться файлы гигабайтных размеров, и никакой подчеркиваю: никакой ебли с аккумуляторами.Насчет этого, кстати, скала не хаскелл и не sml, в самой идеологии языка закладывается что in small, на уровне тела функций /их отдельных мест допустимы императивные циклы и var. Так что не еби мозги хвостовой рекурсией.
>>824822/pr/ - NSFW борда что ли?тесттест
>>841915>Еби мозги с хвостовой рекурсиейНо норм пацаны же свёртками такие штуки делают
>>841931Ну вон там выше свёрткой и на не борщехлебской жабе. Вообще было бы интересно послушать кукареканье борщевиков. А они, как назло, притихли.
>>841870Твой код это пиздец. Ты понимаешь при каждом remainingBytes.tail и accumElems :+ (...) у тебя создаётся новый массив? И чем дальше, тем больше эти массивы становятся и тем больше элементов приходится копировать.Наивное функциональное решение, вообще без заморочек с производительностью, может быть таким: seq.groupBy(identity).mapValues(_.size). Я нормальный бенчмарк не проводил, но на моей машине обработка 100000 элеметнов занимает <100ms в худшем случае (все элементы разные) и 1-2 секунды для 1000000 разных элементов. Ты че считаешь байты, а не инты, значит максимум разных элементов у тебя может быть 256. На таких данных наивный алгоритм обрабатывает 100000 элементов з 9ms, а 1000000 - <100ms.То есть твои пикчи по несколько метров возможно сможет осилить. Проверить это просто - нужно написть одну (1) строчку кода, а не 20 с tailrec и условиями.Если данных больше - нужны стримы кончено. Завтра, если не лень будет, сделаю на scalaz-streams и сравню с джавовыми стримами.Если еще больше - welcome to Spark.>>841915>Так что не еби мозги хвостовой рекурсиейТолько если работаешь с мутабельными данными и без них не выходит выразить алгоритм или добиться приемлимой производительности.
>>841935>Свёрткой>Простыня текста>Ни одного упоминания fold в любой форме.Зачем проникающие в этот тред кукаретики назрюкивают свой кукарек совершенно не понимая того, о чем нахрюкивают?
>>841951что думаешь о cats?
Помню помню какая-то обезьяна воняла, то ли здесь, то ли борщеподобном треде, что-то про поддержку SIMD в жабе.Вот из новостей >Из других направлений я бы отметил API для пакетной обработки данных (Vector API). В современных процессорах есть векторные расширения (SSE и AVX на x86, NEON на ARM), содержащие инструкции для пакетной обработки данных (SIMD инструкции). На текущий момент JVM умеет делать автоматическую векторизацию кода при динамической компиляции, но это не покрывает всех интересных случаев. Идет работа над специализированным API, дающим возможность явно описывать операции пакетной обработки над данными.
>>842232Там была вонь про автоматическое распаралеливание кода, а вместо одной (из нескольки) ссылок с пруфом тот C++-питух скинул линк на доку про векторизацию в LLVM, после чего его выгнали нахуй из треда с визгами "КОКОКО ЖВМ ВСЁ УМЕЕТ".
>>767431 (OP)скалабогов конфа http://xaa.su/28jQ
>>842288Пощекотал хуем за языком любителю сокращателей ссылок.
Читал вот про Free монады и возник такой вопрос к тем, кто пишет на скале в продакшене: их кто-нибудь в реальной жизни использует и если да, то в каких случаях?
>>842288Дай нормальный invite на конфу
>>844107https://invite-me-to-2chpr.herokuapp.com/
А есть скалараш по аналагу с джаварашем?
>>844125Прям как джавараш нету. Есть курсы на курсере, более-менее приличные.
>>844131Ок гляну
Скаланы, как у скалы отношения с machine learning и big data?>>844125Говно по "аналагу" с говном? Ебать ты говен.
>>844186>Скаланы, как у скалы отношения с machine learning и big data?Ну, apache'вский Spark написан и использует скалу.
Реально ли найти в дс вакансии на джуна по скале, просто везде, где фигурирует скала, требуют еще и знания чуть ли не всего джава стека, учить сначала джаву и потом постепенно перекатываться на скалу или сразу учить скалу и потом доучить нужные технологии из джавы? Джаву знаю на уровне книги head first java
>>844633Джуна вряд ли. Обычно средняя скала вакансия подразумевает, что опыт у тебя хоть какой-то есть, если не скале, то хотя бы на яве или другом языке. Ну и знание самой явы, jvm и стандартной библиотеки явы необходимы, потому что они точно понадобятся. Знание сервлетов и jdbc, скорее всего тоже понадобятся. Но вот насчет необходимости всяких древних JavaEE технологий я бы не был так уверен.Мне, например, предлагали скала вакансии, хотя у меня основной опыт в сфере .net технологий. И собеседования на эти вакансии я проходил, несмотря на то, что особо глубоко в экосистему явы я никогда не погружался, хотя саму яву и jvm я знаю более-менее хорошо.
>>845340Спасибо, ну тогда буду параллельно учить, чтобы при первой возможности перекатиться.
Вакансии в ДС - та еще засада.Угораздило меня со студенческой скамьи нырнуть в Скалу всей головой, устроившись в одну фирму джуниором. Теперь как "свежий мозг" возглавляю рефакторинг, ебашу проект на ScalaZ, но при этом кушаю много-много кактусов, связанных зачастую с требованиями к окружению (Websphere + JVM 1.6 и ниипет). Пытался искать новую работу, ибо уже тошнит от одиночества, похуизма и чуть выше чем студенческой зарплаты, но АХ и УВЫ - нихуя. 99% HR-бабищ, которые доебывали меня по телефону, пытались мне впихивать какие-то джава-вакансии (зачастую на тему BigData). Хотя я четко всем говорил, что джава-опыта у меня нет, один хуй пытались пихнуть. Соснул крупных хуев на нескольких собеседованиях, где задавались в основном джава-вопросы. Лишь пару фирм было более-менее, но они нашли кандидата получше - немудрено, я сижу и сохну мозгами в своей конторке. Уже ничерта там не осталось из основ, все сплошная практика и готовность варить свои велосипеды.Короче, анон, я уже почти год в профессиональной депрессии и совершенно не понимаю, что мне делать. Есть ли вообще жизнь на Скале? Куда идти дальше?
>>845519Хуёво как-то искал, тот же тинькфф безостановочно хантит. Ну ещё как вариант – поговорить с начальством на счёт зарплаты прежде чем искать новую работу.Кстати, уже вышла 2.12 RC1, из фич – java 8, новый оптимизатор, по синтаксису только SAM-типы.
>>845530Может быть и хуево. Я искал пассивно: кинул резюмеху на хх и ждал звонков. Просмотров была тьма тьмущая, звонков не сильно меньше. Но все по джава-хуите какой-то, да и к тому же названивали агентства.Про Тинькофф знаю, собеседовался у них. Вроде бы интересный вариант с одной стороны, с другой стороны мне немного не понравилась их атмосфера, которая довольно типичная для банка. Там все постоянно с горящей жопой и на иголках. Все вот эти АГИЛЕ, "каждую неделю релиз no matter what", спринты и прочее говно. Я туда пришел и сразу понял, что эти чуваки ищут упоротых энтузиастов, которые готовы сидеть с 10 до 19, выжимая из каждой клетки своего тела всю возможную энергию, которые готовы работать даже просто за идею. А меня в конторе разбаловали свободным графиком, похуизмом и всем таким вот. За последний год едва вспомню, когда я досидел 8-часовой рабочий день до конца. Сделал несколько фич, чувствую что заебался/устал, или пробки начнутся вот-вот - съебываю домой. Никогда не ездил в час пик.Короч, они мне тестовые задания дали, а я через пару дней в отпуск уходил. Конечно же, я положил хуй и сообщил им об этом. До сих пор в раздумьях, впрочем. Чтобы туда нормально устроиться, мне придется хорошенько напрячь очко и вботать многое, что я когда-то знал и использовал, но порядком подзабыл. А то последние полгода я только и делаю, что веду БОЙ, а не спокойную разработку, со Spray-ем.Короче, это реал проф депрессия с сопутствующей апатией. Всю жду, когда меня шарахнет молния, и я начну пилить какой-нибудь сайд-проект, который вскрутит мне голову и заставит многое выучить/вспомнить.
Как вы выучили scala?
>>845371Куда перекатываться? Зачем перекатываться? Ты думаешь использование скалы тебя волшебным образом избавит от необходимости думать? Потому что если думать, прежде чем говнокодить, то и жаба прокатит.
>>845684Избавит от многословности и отсутствия более высоких абстракций
>>845702Seriously?http://pastebin.com/yyYPkZDphttp://pastebin.com/2kqdpMRUНе устаю повторять - разруха она не в сортирах, а в головах.
>>845743>> n {сколько можно форсить это говно
есть смысл tapl дрочить?
>>846241Конкретно тебе - нет.
>>767431 (OP)
>>845547че у тинькова задают на тестовое?
Здарова скаланы, вкатываюсь в скалу по фану, очень интересно, но на Java никогда не писал, да в общем-то не собираюсь. И всю эко-систему JVM только изучаю.А вопрос у меня один:Есть какой-то Yoba-веб-фреймворк для скалы чтобы прям вообще макет бэк-энда за день собрать можно было и масштабировать до бесконечности? Ну типа рельсы и прочая ересь скриптопараши но только под скалу.
>>851779Play Framework 2
>>851779>макет бэк-энда за день собрать можно было и масштабировать до бесконечностиПишешь стейтлесс апи и масштабируешь по горизонтали.Можешь спрей попробовать, если только апи будешь писать.
>>844131Не дай бог!Пусть хотя бы эко-система скалы была в форме и явно ленивые говнокодеры выбраковывались.
>>844125 -> >>852612
>>822365Чем head отличается от last? Кроме названия, и того, что ты соответствующий ему элемент справа рисуешь.
>>817990> скаланы че спрашивают на собседованиях на скальные вакансии?А такие есть?>>818317>что НЕ нравится в скале?"Что на такое обычно отвечают?
>>845607Практикой и чтением гугла/документации/чужого кода
>>852638>А такие есть?Гуглить разучился?>Что на такое обычно отвечают?Да разное, кто про отсутсвие общего стайл гайда, кто про убогий вывод типов, кому-то коллекции не нравятся, етц. У скалы полно недостатков и этот вопрос как раз хорошо показывает опыт работы с языком.>>852629Ничем. Такая вот абстракция.
>>818151 Бамп вопросику
>>818151Я бы вообще посоветовал F#, но тут уже дело вкуса — статика или динамика. Из реальных аргументов — кол-во библиотек и стабильность языка — на стороне скалы.
>>852936> стабильность языка — на стороне скалыТолсто, там блядь компилятор через раз зависает, 100500 багов в трекере.
>>853188> Толсто, там блядь компилятор через раз зависает,Ни разу не было> 100500 багов в трекере.Это значит что язык активно используют и улучшают
>>853188Хз что у тебя там падает, но всё что я слышал и читал об опыте с юлей — пока что очень сыро и память течёт из все дыр.
>>817295>Тоже кстати жду ответа от петуха выше – что в скале такого академичного?Система типов. И это нихуя не плюс.
>>853234И что в системе типов такого академичного?
>>853356Он наверное имеет в виду что за ситемой типов в скале есть DoT (Dependent Object Types) Calculus. Не понимаю почему это не плюс. Это позволяет формально рассуждать о системе типов и улучшать её в dotty например.
Решил вкатиться в Play!Когда редактирую views/index.scala.html например, соответствующий scala файл (target/scala-2.11/twirl/main/views/html/index.template.scala) не обновляется Использую Жидею со Скала плагиномПриходится делать из командной строки activator clean; activator compile.Есть какие-нибудь советы?
>>805344>>805359Причем здесь "осилили" и "не осилили".Поддержка на уровне llvm. Проблема в том, что не каждая архитектура поддерживает. Они хотят, чтобы язык можно было портировать на как можно большее количество платформ. Вот и отказались.
Каковы шансы студента-борщееда вкатиться на джуниорскую позицию на скале?
>>862427Никаких
Конфа /pr/ в Slack:https://invite-me-to-2chpr.herokuapp.com/
>>862541Ладно, тогда буду вкатываться сразу на мидла
>>767431 (OP)называется, зашел скалу поучить.спека в виде html файлов, ченжлог забронзовел вообще, что добавили в 2.11 догадывайся как хочешьhttp://scala-lang.org/files/archive/spec/2.12/15-changelog.htmlчто с нами стало, мартин?
>>870053Зайди на гитхаб и посмотри ченджлог в описании релиза, чо как маленький.Алсо, зашёл на сайт, прям на странице загрузки компилятора есть ссылка "чо нового" http://www.scala-lang.org/news/2.12.0
Здесь кто-то использует Akka/AkkaHTTP? Я малость охуел в начале, потом прочитал доку (http://doc.akka.io/docs/akka/2.4/scala.html) акторам и потокам, даже что-то стал понимать и получать работающее, от чего совсем охуел.
>>871146Я использую. У меня на акке написано простое REST-апи. Сам тоже ньюфаг, вкатился в скалу недавно после 6 лет джавы, местами нравится, местами нет.
>>871150А у меня микросервис для сбора статистики, основная же часть на Django с REST-фреймворком, а гуй на ScalaJS/React. Так вот, перейти с динамики на скалу (как в моем случае) - это как с бейсика/1С на нормальный ЯП.
Опытные аккаёбы есть тут?Подходит ли акка для выполнения long running tasks? Гугл говорит, что актор должен отрабатывать как можно быстрее и придется что-то городить с пулами. Use case такой - пуляю таску на "кластер", она там выполняется от нескольких секунд до нескольких часов и возвращает результат.Что предложите?
>>871175кастомный контекст\или таску в отдельном экзекутор сервисеclass MyActor extends Actor { implciit val ec = CachedThreadPool(10) def receive = { case task: LongRunningTask => MyCustomEC.run(task) pipeTo sender } }object MyCustimEC { def run(task: LRT)(implicit ec: ExecitionContext) = { // your code here } }
>>855323нету, кроме что не использовать плэй, сейчас пишут микросервисы, а вся статика в СПА, которая отдаётся нгинксом
>>851779Lightbend очевидно же
>>845607никак иди нахуй отсюда
>>871175>актор должен отрабатывать как можно быстрееThis, как и в любом асинхронном фреймворке, блокировать Event Loop надолго нельзя.>Подходит ли акка для выполнения long running tasksПускай таск отдельным процессом или тредом, и организуй передачу сообщений, все будет ништяк.Не аккаёб, нуб скорее.
>>841951>сделаю на scalaz-streams и сравню с джавовыми стримами.мда
>>833550кидай
>>824822>io>2016ты нормальный ваще?
>>818635тикль
>>871196Т.е. в таком случае акка будет эдаким message broker?Если у меня producer может несколько единиц/десятков/сотен задач в секунду выдавать, то можно как-то его заблочить?
>>871246Akka-streamsТак же можно ввернуть для надёжности Kafka Grechnevaja, а в идеале взять спарк.
>>871146Все скалаёбы используют, мне особенно вот эта няшка понравилась http://doc.akka.io/docs/akka/2.4/scala/stream/stream-graphs.html
>>871246>Если у меня producer может несколько единиц/десятков/сотен задач в секунду выдавать, то можно как-то его заблочить?да, это бэкпрэша называется, смотри любые стримы, как простой это аковские, как провереные продакшеном - апач флинк
>>871198на чем писать микросервсиы?
>>872166На чем хочешь на том и пишешь, пиздос вопросик.
>>872166Akka HTTP
>>872166spray+akka и/или finagle
>>872429Akka HTTP is Spray 2.0
>>873042Хорошо замечено, ибо спрей мертв.
>>873042уже не тормозит?
>>873059Акка хттп это и есть спрей
>>872429Поясни за финагл
>>873651берёшь такой набираешь в гугле блять и используешь, сука вы все тут тупые нахуй.
>>871198> а вся статика в СПАВ рот ебал ваши СПА. Вместо того чтобы отдать простую страничку текста - сперва скачай 10 мегов каких-то ебнутых скриптов, затем подожди еще полчаса, пока неторопливый мобильный браузер со скрипом провернет в себе шестерни джаваскриптовой хипстопараши. При этом смартфон держать надо в варежках для сварщиков, иначе можно ожог руки получить, ибо кочегарит во всю мощь, переваривая все эти флюксы-редуксы-хуюксы.И ради чего это все? Почему нельзя просто страничку сгенерированную отдать? Тьфу блядь.А потом еще ебутся с тем что гугл видите ли их сайт не индексирует как следует, так как его робот не хочет / не может как следует обработать ваши скрипты.
>>879967Выключай джаваскрипт в браузере и не выебывайся
>>879968Тогда у него вообще будет груда говна вместо интернета
Хз не платина ли, но есть какие нибудь годные материалы по акке?
>>880332Что тебе кроме доки и исходников нужно?
>>879968Угу, и что я там увижу на сайте написанном по принципу> а вся статика в СПА, которая отдаётся нгинксом ? Пустую страницу?
Готовьтесь уйти в прошлое, макаки!
>>881125>Имеешь опыт разработки на Haskell от 5 летБорщехлебы соснули, лол. Представляете, как у этих ебанашек подгорит, когда им везде будет отказ?
>>881125Круто фотошопишь.https://hh.ru/vacancy/18711171А я уже обрадовался
>>881125За такие вакансии (если бы это был не фотошоп) можно было бы устраивать бои хаскеллистов, ведь их много, а вакансия одна раз в год. Ну и чтобы они там пиздили друг друга клавиатурами и рвали глотки, последний оставшийся на ногах получал бы работу.
Почему в скале настолько ублюдская система типов? Интероп с явой действительно столько стоит?
>>881245Хачкелист закукарекал? Что в ней убогого-то?вкатываюсь с джавы, проблем пока не имел
>>881253Не хачкеллист ни разу, из экзотики знаком только поверхостно с окамлом.Ты их и не можешь иметь, тк не понимаешь даже о чём речь, после явы и паскаль хорош своими типами, лол.Просто сходи посмотри как адт в скале там реализуются, гуарды пма в рантайме падают (лел), как банальный энум пишется, максимально оверинжинирнутые средства разграничения полиморфизма (хотя такое больше нигде и не выразить).Короче, она очень мощная — но с очень странными прибомбасами и косяками.
>>881267>адт в скале реализуютсяНормально реализуются. Через трейт описывающий тип и несколько наследующих его case классов. Весьма похоже на хачкель, хоть и немного более многословно>enunНе то чтобы они нужны в скале, но чем плохо? http://www.scala-lang.org/api/current/scala/Enumeration.html
>>767431 (OP)Есть учебник по нейронным сетям на скале? Англ подойдёт.
>>881298>Нормально реализуются. Через трейт описывающий тип и несколько наследующих его case классов./0>Весьма похоже на хачкель/0> хоть и немного более многословно>немного/0>нинужнаНу да, ты какую нибудь фсм обычную без подобного средстав очень красиво напишешь. Не начинай песню жава и го индусов.>но чем плохо? Может то, что они:1) Генерируются В РАНТАЙМЕ (как и еще добрая половина ТИПОБЕЗОБАСНОЙ системы типы скалы);2) Нужно писать буквально в 6 раз больше как и с адт.
>>881682>/0Что сказать то этим хотел? >Нужно писать буквально в 6 раз большеТы выражаешь частную концепцию в терминах более общей. В хаскелле атд -- встроеная часть синтаксиса. В скале -- нечто, что можно реализовать при помощи трейтов и классов. Это ты ещё имплементацию тайпкласов не видел, лол. Здесь то всё хотя бы очевидно, хоть и многословно.
Насколько плох/хорош c# с точки зрения функциональности и удобства использования по сравнению со скалой? Думаю, что учить после джавы. Пока считаю, что скала интереснее, но пугает количество вакансий.
>>881837Если тебя это пугает — пиздуй учить спринги и прочее, что требуют при устройстве на работу, а не языки.>Насколько плох/хорош c# с точки зрения функциональности и удобства использования по сравнению со скалой?Функциональность/0.Удобство — относительно жавы 8/10, относительно скалы 2/10.В любом случае, если ты только вкатываешься в программирование — скалу выше уровня "нескучной жавы" не осилишь.
>>881842Не, так-то я уже работаю год джава девом, сейчас хочу сделать вклад в будущее, поэтому надо понять, можно ли ставить на скалу или по крайней мере, на ее идеологию и фишки, которые вроде как начинает перекатывать джава. Гетц во всяком случае наобещал уже угадывание типов, кейс классы и паттерн матчинг.
>>881846>Гетц во всяком случае наобещал уже угадывание типов, кейс классы и паттерн матчинг...которых уже гарантированно не будет как минимум в девятке, ещё всего-то лет 6-8 подождать осталось. При том, что это даже не пятая часть её фич, лол.>сделать вклад в будущееТы это так мусолишь, будто прям дохуя времени и сил инвестировать надо. Лишними новые концепции не будут в любом случае.
>>881846Если тебе для себя и поиграться, то ставь Haxe и конпелируй под джаву.
>>881857Чем он лучше скалы?
>>881267>гуарды пма в рантайме падают (лел)Ты имеешь в виду тотальность или что? В хаскеле тоже можно писать не тотальные функции.>как банальный энум пишетсяЭнум не имеет отношение к системе типов, это просто класс и стандартной библотеки. Лучше исользовать джавовый энумы или либу Enumeratum.У системы типов скалы есть реальные проблемы: http://io.livecode.ch/learn/namin/unsoundВозможно они будут пофикшены с развитием DoT в dotty и scala 3.>>881837Писал почти все работы в универе и полтора года на работе на шарпе, сейчас уже 4 года на скале, на джаве сам почти не писал.Могу сказать что вернуться к шарпу будет больно. Как и к джаве, даже к восьмой. Дело не только в языках, а в библиотеках, что собственно связано, потому что более мощный язык позволяет создавать более мощные библиотеки и с их помощью писать более читаемый и, если нужно, более абстрактный код.Хотя шарп удобнее джавы (как минимум был, с появлением восьмой джавы разрыв очень сократился), я бы не советовал переходить на него. Причина проста: на джаве чаще пишется серьёзный бэкенд. То есть у тебя есть больше возможностей работать в местах где ты узнаешь много про разные хранилища данных, конкарренси, асинхронные фреймворки etc. Я не говорю что на шарпе это не пишут, просто реже. Посмотри сам по вакансиям.Btw, http://www.itjobswatch.co.uk - интересный пример. Найди там данные по шарпу, джаве, скале и хаскелю и сделай выводы.
Вкатился в проект на Play и Akka. Ох, и боль.
>>885882Рассказывай
>>767431 (OP)Что эта шайтан машина хочет от меня?
>>886110<kzlm. Можно просто писать код и исполнять его, без всяких созданий говно SBT-проектов? Я, блядь, просто поиграться хочу, а не ентерпрайз приложение писать. Сука. Час потратишь, слушал несколько разных индусов чтобы только понять, как запускать код из Idea, так нихуя и не получилось, хотя под конец как мартышка действия повторял. Сука, бомбит.
>>886110>jvm sdk does not exists Ну ты сам то как думаешь?
>>886125REPL в скале есть, так что просто набирай в консоли "scala" и получай доступ к интерпретатору.
>>886445Лол, ты действительно предлагаешь кодить без подсветки и автоподбора или траллишь? >>886153Как сделать его экзист, блядь? Плагин sdk установлен. Я заебался, даже гугл не помогает. мимопестонистсменившийверу
>>886496>Лол, ты действительно предлагаешь кодить без подсветки и автоподбора или траллишь?Во-первых, если тебе просто поиграться, то автоподбор тебе не слишком нужен, да и подсветка тоже, хотя она есть в любом нормальном текстовом редакторе.Во-вторых, в repl'e скалы 2.12 есть подсветка и автодополнение.В-третьих, судя по проблеме, у тебя хромают навыки обращения с ПК.
>>886504>если поиграться Если хочу разобраться, но чисто из образовательных целей? Я читаю книжку по скале и кончаю радугой. Нужно просто понять, как это настроить, а дальше пойдёт проще. >в repl'e скалы есть подсветка В любом случае там нужно построчно вводить. Это не удобно, если хочешь написать что-то на 200 строк кода, нпрм. >хромают навыки обращения с пк И что делать?
>>886527Делаешь SBT проект, а в нем создаешь себе scala worksheet. И играешься с ним сколько влезет
>>886534Спс, но я просто вместо класса обжект создал и заработало. Мне больше интересно, как ты разобрался во всём этом? Есть какой-то учебник/сайт или есть рилейтид опыт из явы и поэтому понятно всё?
>>886534В чём разница между worksheet/ scala script, чем они отличаются от файлов классов/объектов, как именно применяется SBT и что это вообще всё такое.
>>886545 -> >>886543
>>886545SBT -- эдакий Maven для Scala проектов. Только вместо xml описания -- DSL на самой scala.>worksheetПродолжение идеи REPL. Каждое выражение вычисляется и отображается интерактивно. Фактически используется за тем же, за чем и REPL>ScriptНе знаю, не трогал>>886543Через жопную боль. Особенно припекало от ИДЕИ, которая крашилась из-за недостатка оперативки. Как выяснилось, я забыл выделить swap.
>>885882Двачую. Писать на Scala на Play! - то же самое что писать на жабе на Play!, разве что паттерн-матичинг немного помогает.
>>886661>то же самое что писать на жабе на Play!Так говоришь будто что-то плохое. Вполне няшный веб-фреймворк.
>>886661У нас Play+Java как раз. Говорят, кошерно только на Scala для него писать. Что сразу заметил:- другая парадигма, много всего осознавать, не самая пологая learning curve;- везде пишут "расслабьтесь, скалу учить не надо". Но sbt — это описание билда на гребаной скале. Если ты ее не знаешь, что файл сложно читать, я уже не говорю менять. Это в противовес няшному декларативному Maven с xml, где конфиг по аналогии поправит даже ребенок;- стек довольно редкий + завязка на Lightbend
Кому интересно общение на тему скалки, милости просим в наш чятикhttps://telegram.me/joinchat/BoA_aj9lle-bI9Id-jcE3A
>>886935Ну пиздец. XML ты значит смог выучить, а DSL с джаваподобным синтаксисом не осилил.
>>887082XML интуитивно понятен же.
>>887082XML не надо "учить" он декларативный. Там домохозяйка расскажет, что происходит. И посмотри на .sbt в противовес со всеми этими :=, <<+, +<<, <<=, whatever. Я не говорю, что это нельзя освоить. Я говорю, что это лишний геморрой и дополнительное время.
>>886935>У нас Play+Java как раз. Говорят, кошерно только на Scala для него писатьСмотря какая версия фреймворка. Первая более заточена под джаву, вторая - под скалу. Я свои проекты делаю на джаве на 1.4.х и мне норм. Хотя поскольку начал сейчас скалу осваивать - думаю вкатиться во вторую версию и поглядеть что-как там.>>887082Безотносительно SBT, в функциональных языках все просто помешались на придумывании DSL на каждый чих.Самый цирк - это DSL для html или xml (такое мне попадалось). Блядь, вы ебнутые что ли? html и xml это УЖЕ DSL фактически, зачем придумывать еще один слой поверх них?В итоге приходится учить кучу ненужной хуиты.
>>887328Потому что (html (body хуй)) для многих читается и набирается проще, чем <html><body>хуй</body></html>
>>887082SBT — уродливая говнина уровня перла, а не жавоподобный синтаксис.Вот серьёзно, я хз как люди пользуются этими сбт/мавенами/ант, когда есть божественный грейдл.
>>887495Для большинства проектов все что нужно - это уметь скачивать зависимости, компилировать проект и собирать всякие джары-вары-хуяры. В таком случае что грейдл, что мавен, что сбт однохуйственны.
Есть джва стула. Жаба и Скала. Стоит ли скала того чтобы в неё закатываться. Есть небольшой опыт работы с жавой, и возможность переехать на скалу. Есть успешные скала девелоперы 300к/нс, стоило ли оно того для вас, какие пруфиты по сравнению с жавой?
>>843284Почитай вот про свободные аппликативные функторы и стрелки.
>>767431 (OP)Анон, у тебя не печет от синтаксиса скалы после хаскеля?
>>889736Адово печет, даже учитывая что от хаскеля я узнал только какие-то самые основы.>>889671> и возможность переехать на скалуА что значит "переехать"? У тебя есть вакансия со скалой, на которую тебя готовы взять? Ну тогда чего бы не попробовать.На скале вакансий мало, но они есть. Язык интересный в целом, хоть и переусложненный.
>>889736Печёт но не сильно. Я так и не понял например, как в хаскеле нормально работать с разными зависимостями, к примеру. Если есть несколько пакетов с процедурами имена которых совпадают, начинается веселье и пиздец с квалифицированными импортами и лапшой кодаКуда сильнее печёт от каличного автоматического вывода типов. Ну оно то и понятно, скальная система типов несколько более "свободная"
>>890161>сли есть несколько пакетов с процедурами имена которых совпадают, начинается веселье и пиздец с квалифицированными импортами и лапшой кодаА в каком языке это не так?
>>889671Пробовать стоит однозначно, ты ничего практически не теряешь. Ну может будешь хуже в спринге каком-то разбираться, но дрочить на фреймворки - быть дауном.Профиты:- язык на котором можно почти без боли писать и, что важнее, который можно без боли читать- обычно более компетентные команды - в среднем выше зп - пруф я давал выше >>882149
Теперь вы добавлены в Перекотер, так что вам нет нужды перекатывать треды вручную >>891794
Говорят вообще круто, попробуй еще захочешь.Может кто поможет закатиться
>>892084А что ты сделал? Темплейт с макроида то пробовал собрать?
Так, есть в треде скаланы - scala-разработчики? Как вкатились? Что нужно знать? Пилите стори
>>897112То же что и для вкотывания в любой другой язык ничего.Скачали любую книжку и вкатились.>>892084Ага, ахуенно, только вот рантайм 50мб на мобилках тебя опечалит. Если не хочешь измазываться монадами и заниматься прочими приседаниями на типах и прочем - то она тебе даст только более краткий синтаксис. Для такого лучше взять какой нибудь котлин.Вкатится поможет шапка.
Работаю чуть меньше года джава джуном. Попробовал скалу - понравилась.На какие деньги можно рассчитывать в МСК при выборе скала-вакансии (будет ли эта цифра выше/ниже для джава вариантов)? Охотно ли берут людей с аналогичным опытом, или стоит еще прокачаться в джаве год-два?На hh нашел, что скалисты нужны тинькоффу и яндексу. Есть ли отзывы по ним, а также другие известные работодатели на примете?
>>897118Прочитал джве книжки предварительно посмотрев курсы на coursera. Как теперь начать писать на скале за деньги?
>>897159Получить где-то опыт (опенсорс/фриланс пойдёт чтоб подзабить портфолио), подзубрить что там спрашивают на собеседованиях по скале и в уелом, подтянуть енгришь и пиздовать собеседоваться. Ещё есть вариант походить познакомится с людьми на конференциях/митапах — больше всего хайрят через знакомых.>>897146Моя имхота — когда будешь уверенно тянуть на мидла (относительно своих более опытных комрадов измеряется такое), если среднеджун не стоит сильно рыпаться.В среднем та же самая цифра, зависит от вилки конкретного региона и компании (зарплаты в целом-то только так и варьируются а не по языку).Яндексы с тиньковыми — просто большие компании с большими штатами и, соответственно, текучкой. Так вакансий куча, но они мелькают и их трудно заметить если не мониторить (опять же, я выше уже писал — большая часть хайринга кадров производится через знакомых).
Про заработок денех на скале уже пора в шапку добавлять, лел.
>>897159Фриланс, хуячь вебприложения на фуллстек-скале.
>>897165Так я работу сменить хочу именно из-за того, что ощущаю, что уровень в плане технологий выше коллег и ловить в конторе уже нечего, либо меня просто не хотят прокачивать. Поэтому адекватную оценку дать себе сложно. Вопрос только в "джава или скала". Конечно, похожу по собеседованиям, посмотрю, где больше предложат и на условия труда. Но я с бОльшим удовольствием повозился бы в скале.Значит, в крупные конторы через формы обратной связи на сайтах не стоит подавать заявки, а лучше найти человека с интересуемой фирмы и черкануть на почту?
>>897178Нет, просто чирканув на почту ты наврятли чего-то вообще добьёшься (вот сам представь — тебе пишет незнакомый хуй из интернетов тебе пишет на почту, просит протолкнуть под жопу эйчарке).Знакомятся люди явно не так, лол.
>>897208Окай.. а можешь подсказать еще, в реальных скала-проектах код читабельный для среднего разработчика? Или часто используют спец. либы для хард функционального программирования, к примеру, scalaz?
>>897234"Обычный скала проект" зависит только от команды которой пишется. Где-то как в мире плюсов используют очень ограниченное кол-во фич и даже травят линтеры на нарушителей, где-то и округлые котята на монадах.
>>897236От размера команды зависит, скорее всего. Трудно представить себе даже человек 10 тайплевел-джедаев за одним проектом.
>>897256Ну, проекту-то не обязательно быть монолитным. А морду для взаимодействия можно и без джихада императивщине написать.
>>897236Кароч, смотря какая роль - пользователя всей этой магии (которая под капотом, наверное, всех популярных библиотек), либо кортим-разработчика. Если у каждого разработчика прикладного кода свой собственный dsl over scala, и метапрограммирование на shapeless, это как-то стремно.
Изучаю вот эту страницу: https://www.scala-exercises.org/cats/semigroupи нифига не понимаю, для чего нужен этот Semigroup, и по какому правилу он вычисляется (в гугле нифига). Подскажите?
>>902644https://en.wikipedia.org/wiki/Semigroup
>>902662Кинуть ссылку на вики - все-равно что нахуй послать. Может ты сам не шаришь?
>>902664Я и не шарю. Помню только, что полугруппа - что-то из дискретки. А тебе зачем?
>>902676Для саморазвития. После появления в джаве лямбд, на гитхабе развелись проекты (к примеру, functionaljava), предоставляющие скаловский способ работы с данными. Там, в том числе, и эта структура есть. Видать, что-то важное, раз даже в джаву попытались мигрировать.
>>902691/0Лучше попробуй поискать чего в яву ещё не потащили.
>>902644>>902662>>902664>>902676Ебаные дебилы что вы здесь делаете? Функциональщики, говно жрут, что такое полугруппа -- не знают. Ну охуеть вообще!
>>902717Не разжевал понятие - записался в наши ряды =)
>>902717Раскинулось поле по модулю пять, за ним интегралы стояли..Че сказать то хотел?
>>902729Не знаешь понятия - не являешься илитным скала девелопером :)
>>902736Все типовики порешал, илита?
>>902717>функциональцикиНо мы простые веб-макаки
>>902736>>902729>>902734С манадами то уже разобрались, почаны? Или не нужно? Или не рассказали как монады связаны с полугруппами?
>>902741>monad is a monoid in the category of endofunctors>Моноид>Полугруппа
>>902747>Моноид>Полугруппа с единицей>Снабжаешь ебаную полугруппу одним ебаным нейтральным элементом и получается блядский моноидЧто ещё спизданешь, мудило?
>>902751Кэп, с чего ты решил, что с тобой кто-то спорит?
>>902754Хуй знает. Такой вот я батхёртнутый долбоёб
>>902757Давай лучше за NoSQL перетрем. Чому его так форсят? Я postgres всю жизнь использую (over slick как в склаебы заделался), а монгу ни одного повода изучить не было. Все ли так я делаю?
>>902769Потому же, почему подворачивают штаны или отращивают бороду, лел. Использовать нереляционные БД там где можно использовать реляционные --- долбоебизм чистой воды
>>902788Примерно так и думал. Вот у меня есть проект, где классически в БД лежат всякие сущности, и их отношения (а мордой джанга выступает). Но, вместе с тем, есть и сервис со сбором событий (и хитрой аналитикой в отчетах) на акке, где журнал весь такой из себя схеммалесс, но ссылающийся на вышеупомянутые сущности. Так вот, мне не впадлу написать миграцию, если журналирование требует каких-то изменений. Ну и понятно, что со временем, нагрузка таки может возрасти, и всю эту аналитику из отдельной схемы БД придется переносить в какое-то новомодное хранилище с шардингом, но бай дефолт монгу сувать туда я не стал.
>>902769Ты сидишь в скала треде, и вспомнил о монго, но не кассандра+айроспайк. Думаю ты зашел не в тот тред.
>>902847А же говорил, что пишу гуй на scalajs и асинхронщину на AkkaHTTP/Slick (иначе фигачил бы на торнадо), причем год только как подсел. Экосистемы не знаю, да. Зато вот от тебя, няша, узнал полезное.
Братья, я вам тут годноту про implicit-based паттерны принес, нубам — в обязательном порядке к прочтению.http://www.lihaoyi.com/post/ImplicitDesignPatternsinScala.html
>>902880Имплиситы какое-то невероятное говнище. Экономится пара лишних символов (ну охуеть, теперь вместо того чтобы в каждый метод передавать контекст, или, что еще лучше, один раз передать его в конструктор объекта, мы заведем новую фичу языка), зато код делается некопируемым. Нельзя просто взять, скопировать кусок когда из документации или стековерфлоу и чтобы он заработал. Так как внезапно откуда-то нужно взять кучу имплиситов, которые могут еще и внезапно нетривиально создаваться.Короче наравне с перегрузкой операторов это квинтэссенция подхода "ты никогда не угадаешь что делает этот код просто глядя на него, пока сука не сходишь в IDE по всем методам, операторам и вообще всему окружению"
>>903335В статье как раз описано, для чего это делается. Если так бугуртишь, и сравнивай на джавке строки через equals, там такого "говнища" не завезено.ровные посоны пишут в ide, посмотреть значения имплиситов - одна кнопка. расширяемость языка - бесценна
>>903337>и сравнивай на джавке строки через equalsА я так и делаю. Скала мне нравится многими вещами, но все-таки этот язык содержит очень много способов сделать код абсолютно непонятным и нечитаемым. И если перегрузка операторов - вещь в целом полезная (и холиварная) и способна повысить читаемость и понятность кода, то имплиситы - какая-то невнятная поебень, нужная только чтобы сэкономить пару символов. Впрочем учитывая что многие адепты скалы обожают абсолютно ложное утверждение что "короткий код = понятный код" то ничего удивительного.
>>903958>нужная только чтобы сэкономить пару символовГлубоки познания твои, подаван.
>>903335>нельзя просто взять, скопировать кусок когда из документации или стековерфлоу и чтобы он заработал. Пиздец какой-то. А так вообще можно? И внутренние импорты в проекте не помешают? >нужная только чтобы сэкономить пару символов.Пиздос. Даже обьяснять лень
>>903977>И внутренние импорты в проекте не помешают? Импорты стандартных классов IDE сама проставит. А вот всякие нетривиальные имплиситы - хуйз.>>903959>>903977Неглубоки, но пока что я не видел ни одного использования имплисит параметров (я именно про них, имплисит преобразования в целом я нахожу полезными) которое нельзя было бы сделать добавлением пары символов и явной передаче аргумента.
>>904149Вот и прочитай про статью про тайпклассы, там, например, разобран JSON сериализатор, расширяемый через ваш любимый Open/Closed принцип. Что за порода, им принесешь информацию на блюдечке, а они вместо чтения начинают, нытье про ненужно.
>>904172лишнюю зпт захуярил, соре
>>904149нахуй иди отсюдава дауна кусок
>>904188Поддерживаю твою сорону, но не поддерживаю твою аргументацию.Немного джуночувств.Вот такое я оче не люблю:[CODE]def sosi(implicit name: String) = "Sosi " + name......sovsem drugoy fayl....implicit val n = "Scalahater"............mnogo strok.........sosi[/CODE]Хотя такая вот нравиттся:[CODE]class Pidor(val name: String)object Pidor { implicit val pidor: Pidor = new Pidor("Scalahater")}......sovsem drugoy fayl....def sosi(implicit pidor: Pidor) = "Sosi " + pidor.name[/CODE]
>>767431 (OP)объясните пожалуйста, как исправить эту ошибку? я создаю в intellij idea проект maven, потом нажимаю на "create from archetype", и выбираю scala, и у меня даже не получается запустить этот шаблонный проект. Объясните, в чём дело пожалуйста.
Настало время глупых ошибок. У меня, вот, идея не запускает свежесозданный sbt проект по стандартному create шаблону (scala-плагин установлен и без sbt все работает збс). Ошибки: ClassNotFoundException Product0, либо Function0. Погуглив, понял, что идея не видит Scala (не совсем понимаю, что это значит, и как исправить). Кто-нибудь сталкивался с такой проблемой?
>>904895>>904983Мне кажется у тебя Шиндоуспроблемs.
>>904895Обновить JUnit, очевидно же.
Анон, как организовать implicit conversion Option[A] => Option?Такое не работает implicit def toB[A, B](a: Option[A])(implicit conv: A => B): Option = a.map(conv(_))
>>905974Там Option проебалось.
>>905976Да блядь.Опшен(Б)
>>905977Запости на пастебин.
щас тред похерим, аккуратно
О чем спрашивают новичков на скала-собеседованиях?
>>908911Об их прошлом опыте работы на Java. Как правило, большом опыте. Или вообще переучивают имеющихся в штате. Scala Junior - редкость.
>>908951Значит, всех сразу же делают скала-мидлами? ) Чтоб мотивировать переход. Или сеньорами, чего уж там.
>>908951С JS прыгнул на Scala, на Java до этого почти не кодил не считая пару сложных хеловордов. Ну в целом конечно только умные джависты идут на скалу, а тормоза остаются в жабе, факт.
>>908992Да нет, не делают, сразу берут из жява мира синьйоров и мидлов.
>>908992Нет, Scala язык не самый просто для новичка, да, ты можешь писать на нём как Java, только нахуй тебе тогда учить Scala, обычно скалу выбирают как раз из-за его богатых возможностей функциональной парадигмы, а это определенные правила и стиль программирования, которые во-первых накладывают ограничения при программировании (за переменную линейкой бы у меня на работе ебнули по рукам), ну и императивный стиль почему-то для большинства легче
>>908996Ну просто я реально не понимаю. Вот задача. Есть теоретический (!) скала синьор с пятилетним опытом и джава синьор с таким же опытом, только-только изучивший скалу. Как каждого из них называть, если будут работать в одной команде над скала-проектом?
>>909000Если проект на монадах и котятах — синьером будет только опытный скалист-фпшник. Иначе — похуй абсолютно, такая же жава, с чуть менее вербозным синтаксисом.
>>909000Скала синьора называй папой, джава синьора можешь называть шляпой, тетей шлюхой, гребнем, хуйлушей.
>>909016Двачую этого мопса.
>>902740О! Это scala.js? Поясни, как с ним дела обстоят, жив ещё? Чо там с интеропом, либами? Как пишется вообще на нём?
>>908997Т.е. var вы вообще не юзаете и если нужны сортоф while цикл(как пример) пишете функцию с хвостовой?
>>909909Мне кажется что это какой-то хуевый scalatags.C scala.js все нормально. В меру популярный для сложных интерфейсов.>>909919Иди на курсеру проходить proglang. Все поймешь.
>>909956Это тот же скалатагс импорченный через префикс
Братцы, если я совсем зеленый в алгоритмах че делать? Изучать книги/курсы с императивной реализацией? Мб есть какая годная инфа?
>>912426Если тебе просто хочется уметь во всякие эти списки-деревья-сортировки то читни какого-нибудь Кормена "Алгоритмы построение и анализ", это классика, это знать надо.Вообще реализовывать тебе вряд ли что-то придется самому, если ты только не дохуя хайлоад будешь делать (что вряд ли в ближайшем будущем) или науку пилить. Хватит краткого перечня основных алгоритмов и структур данных и основ анализа сложности чтобы понимать хуле у тебя удаление из ArrayList так долго работает. Главное знать ключевые слова, по которым потом гуглятся детали
>>906011Держи https://paste.fedoraproject.org/528008/48452209/
>>912910а почему тебе не хватает просто имплицитного преобразования из A в B?Такая штука вполне работает: http://pastebin.com/MagUGi9kПередаем Option[A] туда, где нужен Option и A преобразуется в B
>>912970Ды как-то не преобразуется, братан.
СУКА ПИДОРАСЫ НЕНАВИЖУ БЛЯДЬ АААААААААААААААААААААААА
>>914171def joiner[T](list: List[T]): T = ???
>>914189Нужна диспечеризация по типу. Для одного типа аргумента один метод, для второго -- другой. Не через instanceOf же чекать?Что за хуйня и почему я с ней до сих пор не столкнулся?
>>914426Паттернматчинг. Кстати, если диспетчеризация нужна по типу параметра дженерика (как у тебя List[Int], List[String]), наткнешься на жвмопроблемы, кури тайптеги
>>914430Ну и как ты собрался через паттерн матчинг проверять тип? Вот, кстати что пишут пацаныhttp://stackoverflow.com/questions/3307427/scala-double-definition-2-methods-have-the-same-type-erasure
>>914467Руками, йобанаhttp://docs.scala-lang.org/tutorials/tour/pattern-matching.html
>>914467Ну а я че тебе написал про жвм-проблемы, ебана
>>914467А вообще, ты бы книгу прочитал, что-ли. Скала хуево осваивается методом тыка без целостной картины в головушке.
>>914496Во-первых, кто "ты"? Нас здесь двое как минимум. Во-вторых, с чего ты взял что я не читал книг? Просто такая: case y: List[Int] => ???конструкция как-то мимо меня прошла
>>914517Я третий. Про книги не я писал, но как бы основное применение паттернматчинга в других языках, откуда он пришел, именно в том чтобы матчить типы и адт, а не для обычного свитча на стероидах. Так что пиздуй читать про моноидные функторы, йопт
>>914524>матчить типыВ этом вашем хаскеле такой хуйни нету, например. А, и да, в скале это не работает
>>914517>с чего ты взял что я не читал книг?>не знать про матч по типу>не знать про тайп эрейжеХуй знает. Наверное, от то, что абсолютно не понимаешь, что делаешь.
>>914527Ну ты и днище ебаное тебе уже 5 раз написали про type erasure в жвм и тайптеги
>>914527>В этом вашем хаскеле такой хуйни нету, напримерТы очень хуйово смортишь, причем везде. зануда мод: скала от эмэлей синтаксиса написалась, не от хачкеля>в скале это не работаетА тут ты не та то валишь.
Мне даже интересно стало, откуда же к нам такая йоба умная прибежала? Из го-вно трета, где агитируют за то, что литература нинужна?
>>914538>>914540Ладно, я соснул. Не понимаю, правда, как из этого абзаца можно сделать такие далеко идущие выводы. Может книжка хуёвая? Рассказывайте, что за годноту читали
>>914550>написаласьНасосалась
>>914554>Scala in DepthНе знаю, может и хуевая. Я изучал по "Scala для нетерпеливых", там последовательно разложены аспекты языка, и примерно указано, где какие подводные камни.
>>914566Она намного проще, и значительно менее подробная.
>>914550>Ты очень хуйово смортишь, причем вездеА где это в хаскиле паттерн-матчинг по типу? Или в окамле? Или в смл? Или в фешарпе? Я вот что-то не припоминаю. Ты же не имеешь в виду ручное теггирование через адт?
>>914426Юзай тайпклассыobject Main extends App { trait Joiner[T] { def join(list: List[T]): T } object Joiner { def apply[T: Joiner](list: List[T]) = implicitly[Joiner[T]].join(list) implicit val intJoiner: Joiner[Int] = (list: List[Int]) => 1 implicit val strJoiner: Joiner[String] = (list: List[String]) => "str" } println(Joiner(List(123))) println(Joiner(List("")))}
>>914623А я еще вот такой трюк использовал: http://stackoverflow.com/questions/34745066/dummyimplicits-is-this-used-and-how
>>914630Оно то можно конечно воспользоваться хаком, но тайпклассы - стандартный паттерн в ФП и в scala юзается почти везде.Так что рекомендую освоить и использовать его: http://danielwestheide.com/blog/2013/02/06/the-neophytes-guide-to-scala-part-12-type-classes.html
>>914684Да я в курсе про тайпклассы, просто дал еще один вариант. Есть разные ситуации, возможно DummyImplicit в какой-то будет лучше.
Ну пиздец посоны, я думал, что в скале эту хуйню пофиксили, а нет, же блядь походу прямо в жвм проблема, а не только в жабе. Ну пиздец.
Анон, подскажи, как можно реализовать следующую хреньХочу написать функцию которая принимает два аргумента одного и того же класса, что-то вычисляет и возвращает результат, который является обьектом этого же классаdef compute(a: T, b: T): T = ...Что бы она произвела вычисления у класса T должны быть методы +, -, , : DoubleЗнаю, что можно сделать интерфейс с этими методами и задать T <: Interface или через implicit обьект ComputeOps[T] с методами add(a: T, b: T) и тд, но этот метод мне не оч нравится, потому, что и так громоздкое выражение внутри функции превратится в совсем пиздец, если вместо a + b придется писать fooOps.add(a, b). Мне нравится следующая идея: если я хочу использовать compute для некоторого класса Foo, то мне надо "довесить" необходимые методы используя implicit class не засоряя основное определение Foo, и внутри compute просто писать a + b * a.... и тд.Можно ли так сделать, и если да, то как? Это вообще норм идея, или глупость?
>>914977То, что ты описал, похоже на тайпклассы + pimp my library:object Main extends App { trait Add[A] { def add(a: A, b: A): A } implicit class AddOps[A](a: A)(implicit n: Add[A]) { def |+|(b: A): A = n.add(a, b) } object Add { implicit val addForDouble: Add[Double] = (a, b) => a + b } def compute[A: Add](a: A, b: A): A = a |+| b println(compute(1.0, 2.0))}Метод специально назвал |+| вместо +, чтобы было видно, что он добавлен через имплиситы
>>915047Ты заебал уже со своими тайпклассами, Анон. Выучил тайпклассы - теперь во все щели протаскиваешь?
>>916357Они без Антона торчат из всех щелей например. Печет от тайпклассов - возможно, ты используешь не тот яп
>>915047Спасибо, оч помог!
>>767431 (OP)Скаланы, а вот меня интесует вопрос по структуре проекта. Директории, куда тесты, сырсы и прочее.
>>917355man sbt
>>917587Про генераторы прожектов типа скалатра хуиты я знаю, но вот все эти Джава лайк подходы: директория/ещё директория/100 уровней вниз/Опача.scala меня не очень радуют. Я понимаю, что это вкусовщина всё, и можно делать как хочешь, но есть ли другой, альтернативный и популярный подход?
>>918056Нету. И самое веселое, что тот же sbt из коробки поддерживает именно жява-стайл. Ну а чо ты хотел, она на жвм крутится, со всем вытекающим говном, вроде нпе, стирания типов и вот этого вот.
>>918056>директория/ещё директория/100 уровней вниз/Опача.scala>директория/ещё директорияsrc/(main|test|it)/(scala|java|resources) - это нормально, что тут еще можно придумать>100 уровней внизА это уже на твоё усморение. Не хочешь под каждый пакет делать директорию - не делай. Другое дело что когда у тебя 100 пакетов, с соответствующей иерархией в файловой системе как-то удобнее. Ну и я не знаю как IDE дружат с неиерархичным представлением, в смысле рефакторинга например.
Cап, анон, нужна твоя помощь: есть модель - case class Model(... field: Option[Long] ...) нужно используя слик (3 версия, если это важно) взять из базы первый попавшийся экземпляр у которого field == None, обновить ему значение field и вернуть обновленный экземпляркак-то так def findAndUpdate(value: Long): Future[Option[Model]] // value - значение которое надо установить в field, Option[Model] - потому что в базе может не оказаться сущностей с field = None
>>924231обновить - значит изменить и записать изменение в базу
>>924231query .map(_.field) .filter(_.isEmpty) .take(1) .update(Some(value))
>>924274такой запрос вернет Int, а мне надо обновленную сущность возвращать
>>924291Ну, чот такое.val itm = query.filter(_.field.isEmpty)val optVal = Some(value)for {optModel <- itm.result.headOption_ <- itm.map(_.field).take(1).update(optVal) if optModel.nonEmpty} yield optModel.map(_.copy(field = optVal))q
>>924316Без q в конце.
Почаны, 2.12 сильно от 2.10 отличается? Если начну читать по 2.10 не получится так, будто я читаю про 7 джк?
>>924960Не получится.
>>924960Начни читать про 2.12.
>>924960Там не такие сильные изменения что прям все ПИЗДЕЦ ВСЕ ГОРИТ ПЕРЕПИСЫВАЙ ЧИСТИ ВИЛКОЙ. Если тебе не завтра на собеседование йоба-перформанс-инжинер — вообще не парься.
>>924960Весь код с 2.11 у меня переконпелировался под 2.12 без изменений, так что полагаю нихуя особо не поменяли.
Есть какой-нибудь мануал по стилю, оформлению кода, бест практикам, архитектуре скала приложений, написанию тестов для них?
>>926176Хули ты в Скалу лезешь, если даже такой простой вопрос нагуглить не можешь? Ты же с таким проглотом отсосешь, что позавидует даже самая опытная колумбийская шлюха.
>>926195>кокпок кукарекуЯсно.
>>926636Ебать ты нечеловек, съеби отсюда.
>>926176https://www.google.com.ua/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8&client=ubuntu#q=scala+style+guideТеперь закрой тред и никогда сюда больше не возвращайся
>>927208>>926972>.com.uaНо я просил что-то на усмотрение анонов, а не ссылку на гугл. Обоссал тебя в общем.
>>927343>2D17>не быть хохломсъеби, неактуальный опущ
Чем отличается ТРЕЙТ от абстрактного класса? Я ни хрена не понял. И зачем вообще нужны эти трейты, в чем отличие от множественного наследования в C++?
>>929065Во-первых, интеропабельностью с жявой.Во-вторых, в нормальных языках трейты не позволяют хранить вообще никакого реализационного кода, в скале все же уступили перед напором энтерпрайз-макакенов.В-третьих, несмотря на второй пунки, в трейтах все полностью иммутабельно.Отличие в том, что в плюсах можно наследовать любую залупу от любого спидозного хуя и это никак нормально не разграничивается в отличие от скалы (ну это про систему типов в целом в общем-то).
>>929065Тем что абстрактный класс совместим с джявой, имеет конструктор, и можно наследоваться только от одного абс-го класса.>>929715>Во-вторых, в нормальных языках трейты не позволяют хранить вообще никакого реализационного кодаКак раз в этом их фишка по сравнению с интерфейсами (в джяве потому и спиздили её).>В-третьих, несмотря на второй пунки, в трейтах все полностью иммутабельно.trait Govno { var mocha = "" mocha = "blevota"}
>>929065Кароче, забей хуй на все сказанное, абстрактными классами не пользуются ни в Java, ни в Scala - тебе нужны интерфейсы и агрегация.
>>930170Да нет, это в скале они просто реализованы в угоду хуяк-хуяк, а не хачкелю.Про трейты, очевидно, имелось в виду что нельзя менять их если унаследоваться от них.
Посоны, обчитался двача и решил выучить скалу. Пишу вообщем простую программу:import scala.language.higherKindstrait Proxiable { def source: String}trait Proxy[+T <: Proxiable] { def source: String}case class Data(source: String) extends Proxiablecase class Stuff[+P[PP <: Proxiable] <: Proxy[PP]](content: P[Data])Компилятор выдаётsandbox/test.scala:9: error: kinds of the type arguments (Proxy[PP]) do not conform to the expected kinds of the type parameters (type P) in class Stuff.Proxy[PP]'s type parameters do not match type P's expected parameters:trait Proxy has one type parameter, but type P has onecase class Stuff[+P[PP <: Proxiable] <: Proxy[PP]](content: P[Data]) ^one error foundЧто я делаю не так?
>>936346Плюсик убериStuff[P[PP <: Proxiable] <: Proxy[PP]]
>>936708https://issues.scala-lang.org/browse/SI-9331
>>936742>Created: 27/May/15 5:30 AM >На мейлаче нашли фикс за пару часов
>>936784Илита интернетов, чего ты хотел?
>>927415>2014>быть хохломКак там в котле?
>>939442>2017>2014Как ты пишешь из прошлого?
>>939445Это комменты из прошлого, а я из будущего.
>>897118> Ага, ахуенно, только вот рантайм 50мб на мобилках тебя опечалитБез какого-нибудь proguard максимум 2-2.5 мб выйдет. А с ним и подавно меньше. Не стоит об этом вообще беспокоиться.Куда большая проблема — система сборки. SBT не подойдёт, поскольку плагин андроида завязан на Gradle очень сильно и сделать что-то сложное просто не получится (всякие сложные работы с манифестами и прочее, что могут использовать сторонние библиотеки). Есть всего один плагин для скалы под андроид, сделанный энтузиастом, но он на него забил походу, так что придётся заморочиться. И со временем плагин может устареть настолько, что с ним нельзя уже будет работать, если никто не возьмётся за его поддержку.
че спрашиваете у мидлов кандидатов специфичное по языку/экосистеме?
>>941385import java.util.Date trait TDate trait TT[A1,T1] trait TTFactory[F,G] { def create(f: F) : TT[F,G] def sample: F} object Impls { // If the c1 is declared before c2, it compiles fine // or if the implicit's result type is specified explicitly implicit def c2(s: Date)/ : TT[Date, TDate] / = c1.create(s) implicit val c1 = new TTFactory[Date,TDate] { def create(v: Date): TT[Date,TDate] = sys.error("") def sample = new Date }}Что не так с этим кодом?
>>941980No indentation.
>>942195Еще макаба звездочки сожрала. Мимо КО
>>942195>>942358https://issues.scala-lang.org/browse/SI-5265
>>942392Все умеют гуглить.Опять, всегда Ваш, КО
Посаны, а какие есть ресурсы с новостями по скале? Типа как если бы я подписался на тэг scala на stackoverflow, только я хочу чтобы были статьи/новости вместо вопросов. Живу в коробке если че, всегда читал только книги по кампухтер саенсу и доки, а сейчас решил, что определился с выбором языка, и хочу следить за его жизнью.
>>949593Можешь на Твиттеры видных деятелей Скалы подписаться для начала, они разную интересную фигню репостят.
>>949661Heather Miller няшная чет.
>>827902> жду таких дохуя умных на собес>буду жестко наказывать вас анально, при джунахвся суть этих ваших собесовунизить всех вокруг, чтобы возвыситсяпонабирают в команду самовлюбленных онанистов и вместо работы все нюхают собственный пердеж
>>767431 (OP)Какие цели преследуют разработчики Scala пиля Native ?
Анон, нужна помощь. Такой вот кусок кода: http://pastebin.com/RTSL4kwG. При этом я пытаюсь добиться того, чтобы при вызове minByFeature не нужно было явно указывать параметры типа. Но у меня нихуя не получается
>>957988List(-2,-3,-3,-4,-5) minBy math.abs
>>957988>>958909Доплню ответ - когда компилятор начинает выебываться с выводом типов, можно попытаться разбить список параметров на несколько:val list = List(-2,-3,-3,-4,-5)def minBy[A, B: Ordering](list: List[A])(f: A => B): A = list minBy fprintln(minBy(list)(x => math.abs(x)))
>>958985[code lang="scala"]minBy(list, math.abs(_: Int))[/code]
>>959051Все равно ведь указан тип при частичном применении. Я думаю, что анон искал способ с полным выводом типов
>>959061У меня даже так работает, возможно в 2.12 пофиксили
>>959097Походу. Я тестил на версии 2.11.8
Существуют ли какие-то реальные примеры проектов на Spring + Scala? Хочу попробовать скалу, но отказываться от спринга для меня пока что слишком радикально.
>>959727Берёшь шпринг, пишешь энтерпрайзные бобы на скале, в чём проблема?
>>958909Я знаю, что есть такая функция если ты заметил, моя реализация немного пизданутая. Всё потому что я не собираюсь это использовать, я просто хочу понять чому нужно явное указание типа в моем примере и почему нельзя без него обойтись
>>960683Запилите перекот кто-то. Чур не я
>>960684Да кому он нахуй нужен.
>>959727У нас на работе есть микро проект на спринге и скале.Но вообще использовать джавовую инфраструктуру со скалой не имеет смысла, так же как и использовать скалу как джаву++, только дополнительных проблем отгребешь. Либо преезжай полностью, либо не выёбывайся и пиши на джаве.
Сделайте перкат. Хочу обмазываться борщами.
Скопировал хелловорлд из доки по akka-httphttp://doc.akka.io/docs/akka-http/current/scala/http/introduction.html#using-akka-http, через консоль билдится нормально, а в идее почему-то подчеркивает красным > complete(HttpEntity...> expected: ToResponseMarshallable, actual: HttpEntity.StrictРешил понять, как оно конвертируется в ToResponseMarshallable, и не смог. Думал там какие-то имплиситы подрублены, через которые конвертируется. Что я пытался сделать:1) Запустил activator console, импортнул все, что в коде, прописал :implicits, написало> No implicits have been imported other than those in Predef.2) В sbt прописал scalacOptions += "-Xlog-implicits", при конпеляции выдало> [info] .../hello-akka-http/src/main/scala/com/example/WebServer.scala:22: server.this.RoutingLog.fromActorContext is not a valid implicit value for akka.http.scaladsl.server.RoutingLog because:> [info] hasMatchingSymbol reported error: could not find implicit value for parameter ac: akka.actor.ActorContext> [info] val bindingFuture = Http().bindAndHandle(route, "localhost", 8080)(materializer) Как все-таки HttpEntity превращается в ToResponseMarshallable?
Выбираю между Скалой Питоном Го и Тут ещё на хаскель предложили посмотреть для многопоточной обработки геоданных: парсинг -> поиск координат и маршрутов.В активе только php, delphi/pascal, ruby. Стоит скала того? А то куча статей о миграции на Го (а с го на хаскель)
>>976390>в активе только phpИ выбираешь ты между лебедем, раком и щукой. Бери Go, остальное ты не осилишь, да и не надо тебе оно.
>>978254Причём здесь осилю-неосилю. Мне нужен эффективный инструмент, который поможет обрабатывать большие массивы данных. И не заебусь ли я потом (через год-два) разработчика искать для поддержки?
>>978995При том, что ты не осилишь и инструмент этот у тебя в руках окажется неэффективным. Заебешься со всеми тремя вариантами.
>>979295Почему?
>>979604Почему что?
Тактический бамп.