Очередной тред про самый лучший язык для JVM.Лучшая книга по Скале: http://www.ozon.ru/context/detail/id/31921731/Учебник по Скале на русском: http://twitter.github.io/scala_school/ru/index.htmlВторой учебник по Скале на русском: http://twitter.github.io/effectivescala/index-ru.htmlКурс по fp на Скале для слоупоков: https://www.coursera.org/course/progfunСписок годноты: https://github.com/lauris/awesome-scalaПрезентации летнего ScalaDays: https://www.parleys.com/channel/53a7d269e4b0543940d9e535/presentations?sort=views&state=publicДва недавних форка компилятора, один от тайплевела и второй от баттхертнутого:https://github.com/typelevel/scala (https://github.com/typelevel/scala/wiki/Differences)https://github.com/paulp/policyЗавтра ищешь в интернете книжку Programming in Scala. Похуй если ничего не поймешь. Затем идешь на scala-lang.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию скала кода - от EPFL естественно, чтобы от зубов отскакивало. Когда напишешь свой первый клон Twittera, по пути изучив основы дискретного и лямбда исчисления, скачиваешь и изучаешь любой асинхронный скала вебсервер, рекомендую Play!. Как переделаешь твиттер клон, чтобы выдавал по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop и Spark, сверхбыстрые асинхронные key-value хранилища, NoSQL и прочие мира открытого исходного кода приблуды. Отсос хиккующих питонистов / просто неудачников типа годаунов или рубифанбоев, сосут по жизни, не заставит себя ждать и уже через пол года ты будешь подворачивать штаны, есть маффины, запивая смузи и любая баба будет течь от упоминания твоей зарплаты.
>>633032Поддвачну, пожалуй.>>633037Переусложнённая хуета. Что в ней нужно новичку, так это пожалуй только лямбды, но они есть и в 8-й джаве и питоне. Всё остальное представляет интерес разве что для хаскеллистов, которым не дают писать на Хаскеле на работе.
Хаскель на порядок проще из-за отсутствия ебучего наследования и костылей JVM никогда не думал, что напишу что-то подобное.
>>633214> только лямбдыВ голос с дебила.
>>633214>лямбды>в питонеHow about "no"?
>>633215Хаскель вообще простой язык, разве что комьюнити любит играть в алгебраистов.А у скалистов принято городить сложности ради сложностей.
>>633223Потому что скала изначально язык от студентиков для студентиков, которым нравится ласкать себе анус о 9000 перегруженных операторов и СУПИР систему типов.
>>633037Нормально вкатываются в скалу после хоть какого-то опыта в нормальном статически типизированном ЯП или опытом в ФП. Также вангую в тебе очередного вкатывальщика без вышки (иначе не задавал бы такие вопросы), так что ты просто нихуя не поймёшь, когда начнёшь "учить" скалу по книжке.
в джаве шарю на уровне червя-пидора, можно спокойно учить скалу не зная джава?
>>633264Можна.
>>633260Отлично вкатился без вышки, после джявы и C++.
>>633218Продемонстрируй нам свой интеллект, недебил.
>>633410>после джявы и C++Я об этом и писал.
>>633427Но скала проще чем джява и тем более C++, если бы я знал про её существование то вкатился бы сразу в неё.
>>633220Там даже keyword lambda есть эти лямбды говно а не лямбды
>>633573>Там даже keyword lambda естьЛол, похуй вообще>эти лямбды говно а не лямбдыthis
Уехал писать на Scala в Новую Зеландию пару месяцев назад. Для этого отказался от оффера в Нидерландах. До этого звали в Германию, но я так и не доделал визу.Крутой язык, много платят, есть спрос на рынке.
>Уехал писать на Scala в Новую Зеландию пару месяцев назад.>Для этого отказался от оффера в Нидерландах.Кек, дебил.
>>633772Я был морально не готов платить 48% налогов после 30 лет и учить странный полунемецкий язык.
>>633772В Зеландии природа лучше
>>633430Проще?
>>633782Разумеется
>>633794Чем, кроме типовыводилки и нескольких паблик классов в одном файле?
>>633807Тем, что позволяет намесить говна в жопе больше, чем C++.
>>633807> типовыводилки и нескольких паблик классов в одном файлеНа такую толстоту даже отвечать не буду
>>633775>48%Три года кенисмигрантских льгот, а там и с офшором бы что сообразил. Ходи теперь вниз головой хуле.
>>633942Да ну нахуй, хочу получать нормальную зп и не ебаться с оффшорами (прям призрак рашы ей богу) :) Тут заебато. Правда сено во рту у всех (последствие разведения овец), поэтому даже местные свой акцент не понимают.
>>633816Ну да, скажи что implicit'ы и higher-kinded типы с аппликативными функторами - это очень просто. Или val и var? Наверное, проще. Но только дебил будет это сравнивать с Java говоря, что Java сложнее. Так что там проще-то?
>>633772Наоборот, всё правильно сделал. Евросовок - говно ебаное, а Новая Зеландия, наверное, последнее нормальное место на земле.
Есть ли живые проекты кроме экзамплов на этом эпик без стеба вине - https://github.com/ochrons/diode? Чет искал - не нашел, в принципе уже и сам разобрался.
>>634471Что такое живые проекты? Библиотеки или проекты?
>>634503Приложения на этой либе
>>634379>Ну да, скажи что implicit'ы и higher-kinded типы с аппликативными функторами - это очень простоБлагодаря всем этим "сложным" вещам, на скале приложение, требовавшее до этого тысячи бойлерплейта и AbstractSingletonProxyFactoryBean, пишется в 3.5 строчки, именно поэтому скала проще.
>>634471Нах она нужна если есть Akka Streams?
>>634524Проще ровно до того момента, когда что-то ломается. Не понимая, как это работает - ты продолжаешь писать на Java, полагая что пишешь на Scala.А если ты понимаешь как это работает, то нихуя не проще. Проще - накатать бойлерплейт и не знать проблем с неправильно отсортированными implicit конвертерами.
>>634526>Проще - накатать бойлерплейтЯсно, уносите мартышку.
>>634524Да и это не проще, это - короче. Просто - это когда думать почти не нужно. Берешь код и копипастишь, с небольшими правками для себя. Когда этим обезьяны заниматься могут.
>>634525Нах она нужна если есть пенопласт?сам то понял, что написал?
>>634530да, я дебил. это другое
Что стоит сделать чтобы попробовать весь тайпсейф стек + аэроспайк и кассандру? А то через полтора месяца собираюсь пройти стажировочку, хочу попробовать сам, сначала разобраться.Твитор клон, его и на пыхе сделать можна?
>>636615Борду
>>637041/r/ Ъ-макабу на ирланге Швеция-куна. Может что-то позаимствую.
Скаланы, я тут недель покурил субж и ебнулся на отличненько, спасибо тому анону, который посоветовал scalajs вместо мелкосовто ТайпСкрипта.
>>637261бля, запостил раньше времени. Внимание, вопрос почтенной публике:Есть ли какой-то (каноничный) способ короткой записи лямбд вида v => v, или v => True, или v => False, ну типа тех, которые вроде нейтрального элемента в теории групп.
>>637388> v => v, identity> или v => True, или v => False,_ ⇒ True
>>637388identity, true, false. Не?
>>637403Спасибо
>>637404ага, так
Вчера пробовал эту вашу Скалку, хотел сделать список, содержащий Int или Double, а sum types, оказывается, в вашем недоязыке-то и нет! И конпелятор мне тут пишет "так, это у тебя List[AnyVal]". Вообще охуеть.
>>637509> сделать список, содержащий Int или Doubleоткуда ты такой дибил к нам пришел?
>>637534Из динамикодрисни, очевидно же.
>>637534А как это идиоматично в Scala сделать?
>>637554https://github.com/milessabin/shapeless/wiki/Feature-overview:-shapeless-2.0.0#heterogenous-listshttps://github.com/milessabin/shapeless/wiki/Feature-overview:-shapeless-2.0.0#coproducts-and-discriminated-unions
>>637597Злые вы, сразу нубу гвоздь в мозжечок вбиваете этим вашим шейплессhttp://stackoverflow.com/a/3508555
>>637625А что мешает просто в язык добавить type MyType = A | B | C ?
>>637628То, что это, блядь, скала. Слишком просто - значит неинтересно.
>>637628http://stackoverflow.com/questions/19081904/scala-difference-between-a-typeclass-and-an-adt
>>637628Добавят в dotty.Пока идиоматично сделать sealed trait и case classы. Если хочется повыёбываться, сделай как >>637625 предложил. Если выёбываться хочется сильно, а компилировать код долго, то юзай shapless (>>637597) или сам это реализуй: http://milessabin.com/blog/2011/06/09/scala-union-types-curry-howard.
>>637647Вот, только хотел написать, что вроде планируют запилить. Даж в ссаном тайпскрипте есть.
>>637628В Scala.js такая хуйня есть, попробуй оттуда выдрать
>>637628Это нельзя сделать на JVM, в scala.js это тип-интринсик компилятора и работает толко за счет того, что все типы стираются в js.Any
>>637816А тип листа в жвм не стирается? По сути это всего лишь сахар для конпелятора, типа чтоб СТАТИЧНЕНЬКО, а так-то можно сделать List[Any] и потом хуярить match/case.
>>637863Мы о разных вещах говорим, тут и спора никакого нет. Union-types в ванильной скале хорошо реализуются обертками или боксингом с паттерн-матчингом по забоксеным значениям (case/instanceof), не вопрос. Другое дело, что в js любые значения по определению являются union-types. Для того, чтобы можно было передавать функциям при интеропе типизированные объекты, не имеющие общего предка кроме js.Any, и сохранить тайпчеки на стороне scala-кода, не указывая js.Any как тип параметра, ввели такой костыль, который просто стирается.
>>637509Ну, для двух типов есть Either, а так sum type будут вводить в 2.12 вроде
Бамп треду про лучший язык для JVM!
>>649737Это Clojure.
>>649755> Clojure.Мертворожденный кал
>>637509надеюсь ты сдохнешь от рака жопы в этом году, гнида тварь
>>649817Представься, мразь.
А много на скале в реальной жизни пишут?
>>649835Что значит много? Я только на ней и пишу хуй знает, много или нет например, а кто-то вообще не использует.
>>649835Если ты про индустрию, а не админов локалхоста, то чуть больше, чем на Хачкиле, скажем так.
>>649835In April 2009, Twitter announced that it had switched large portions of its backend from Ruby to Scala and intended to convert the rest.[79]Gilt uses Scala and Play Framework.[80]Foursquare uses Scala and Lift.[81]SpinGo uses Scala and Akka.[82]Coursera uses Scala and Play Framework.[83]The Guardian newspaper's high-traffic website guardian.co.uk[84] announced in April 2011 that it was switching from Java to Scala,[85][86]The New York Times revealed in 2014 that its internal content management system Blackbeard is built using Scala, Akka and Play.[87]The Huffington Post newspaper started to employ Scala as part of its contents delivery system Athena in 2013.[88]Swiss bank UBS approved Scala for general production usage.[89]The BitGold platform was built entirely on Scala and Play Framework.[90]LinkedIn uses the Scalatra microframework to power its Signal API.[91]Meetup uses Unfiltered toolkit for real-time APIs.[92]Remember the Milk uses Unfiltered toolkit, Scala and Akka for public API and real time updates.[93]Verizon seeking to make "a next generation framework" using Scala.[94]
>>649844Ну хачкиль это совсем до свидания
>>649873а в рашке?
>>649888Тинькофф.Короче, замена раби (как и ява замена пхп) для бохатых компаний.
>>649895Но у Руби же плохо с производительностью и ее используют больше для прототипов. Скала такая же?
>>649904Нет. Первое тоже нет.
>>649904Относительно явы скала тоже проигрывает в производительности, так что в какой-то степени.
>>649948Пруфы? Тесты? Интриги, расследования?
>>650006>oh, scala performance...http://ivan-gandhi.livejournal.com/2356883.html
>>650036>Идиоматик скалаИ чо? Тебе на жабе идиоматичные индусы без плетки такого напишут. Императивный джавалайк код, проложенный, в нужных местах, работает со сравнимым быстродействием, что тебе еще нужно, смерд?
>>650041>, проложенный, в нужных местах,, проложенный в нужных местах,лишняя запятая прилипла, соре
>>650036И вообще иди нахуй, синтетический.
Ух, блядь, завоняло-то как старым дерьмом. Уноси отсюда своего пидора старого, пусть дальше пишет как с васьками-дружками в своих Нижних Васюках поёбывался при совке.>>650041>Императивный джавалайк код, проложенный, в нужных местах, работает со сравнимым быстродействием, что тебе еще нужно, смерд? Проложенный в нужных местах через JNI C++-код в Java проекте работает со сравнимым быстродействием, что тебе еще нужно, смерд? Проложенный в нужных местах С код в C++ проекте работает со сравнимым быстродействием, что тебе еще нужно, смерд? Проложенные в нужных местах ассемблерные вставки в С коде работают со сравнимым быстродействием, что тебе еще нужно, смерд?Сам понял тупость сказанного? "Идеоматик" средства языка - это именно средства предоставляемые языком, а не его прародителем.В любой задаче всегда удобно использовать средства языка, и всем приматам пишущим на скале как и на других высокоуровенных языках абсолютно похуй, будет их функция работать на 2 мс быстрее. Не им же в конце-то концов банк по 3 недели после НГ деньги переводит.
>>650062Проложенный в нужных местах через JNI C++-код в Java проекте работает со сравнимым быстродействием, что тебе еще нужно, смерд? Залупа на воротник. Выигрыш если и есть, то мизерный. Про Си с асмом расскажешь посонам у падика. >на других высокоуровенных языках абсолютно похуй, будет их функция работать на 2 мс быстрееЕстественно, на абстрактные миллисекунды на реальном проекте всем похуй. Есть требования - с определенным набором данных код должен успевать отработать за определенное время. Идиоматичный код отрабатывает (а он отрабатывает в 99% случаев) за нужное время — заебись, нет — начинаем искать боттлнеки, и что-то менять.
>>650062Он еще и на зоне сидел, если не врет:> Ну и взяли меня наконец. Литература там, то да се. "Зияющие Высоты", "Архипелаг", тут же и фотопленка моего изготовления - статья готова. Им-то нужен был Револьт - но на Револьта никто не показывал. Да и не Револьт вовсе мне книжки давал, без него хватало народу. Книгоношу нашу, Маргариту, тоже, конечно, схватили; на нее в Питере настучали. А на меня - по месту жительства, в Сыктывкаре. Одно время, в начале 90-х, модно было расспрашивать, а кто конкретно стучал? А зачем это вам, чтобы чувствовать себя на высоте, как бы встать рядом с теми, кто сидел, и пальцем показывать на предателей?> Так вы хотите знать, кто предал? Да ведь вы и предали-с. Вы продали меня за относительно уютную квартирку, за стабильную получку два раза в месяц, за возможность видеть своих детей каждый вечер и отправить их летом в пионерлагерь, за обыкновенную свою жизнь - вы и продали. Вы молчали, когда нас арестовали, когда на собраниях про нас выдумывали всякую гадость, когда вас спрашивали о характере знакомства, а вы говорили, что после окончания ВУЗа ничего обо мне не слышали. Вы и предали. А кто еще? Урнышев? Что Урнышев мог предать, если он был по другую сторону невидимой баррикады? А предали - вы. И меня, и себя.> Да ладно, дело прошлое. После почти года тюрьмы меня отправили в ссылку в Качканар, Свердловской области. Конечно, времена другие; жена со мной развелась, просто потому что я ей всю жизнь испортил. Папа-коммунист тут был ни при чем, не больно-то она к нему прислушивалась. Просто. Я только о себе и думал, а о семье не думал - вот в чем моя проблема. Семья, конечно, моего поступка не забыла, и дочь меня так и ненавидит до сих пор. Ну, это как бы положено, эдипов комплекс, я же тоже своего папу мента ненавидел лет так до тридцати с лишним.> Математикой в Качканаре я как-то не занимался. Не совсем понятно, почему - время-то было, работал истопником, сиди всю ночь да строй свои коммутативные диаграммы. А нет, не тянуло. Может, конечно, Людка отвлекала от высоких тем. С Людкой не до математики было - у нее рот не закрывался, и все ей смешно. Почему я Людку оставил в Качканаре, почему ее с собой не взял? Думал, наверное, так: нельзя зверка из заповедника в город везти, заболеет зверок в городе и умрет. Демагогия на самом деле. Просто не к лицу, признался бы уж прямо.http://patryshev.com/literatura/volum2/istoria_zisni.html
>>650072>Залупа на воротник.Мамаше твоей тупой.>Выигрыш если и есть, то мизерный. Гуглу расскажи, который на этом мизере миллионы экономит где-то бумажка с их исследованиями лежит. Хотя, тебе с твоей задрюпанной шаражкой, конечно похуй, лишь бы трактор завёлся.>Про Си с асмом расскажешь посонам у падика. Ну так это сравнение, дефектное. Хотя твой мозг даже си не потянул бы.>за определенное время. Идиоматичный код отрабатывает (а он отрабатывает в 99% случаев) за нужное время — заебись, нет — начинаем искать боттлнеки, и что-то менять. >за определенное времяЧто и требовалось доказать, ведь мы как никак изначально говорили что это медленное дерьмище. Если уж возникает ботлнек на продакшен серверах (а у всяких банков на хорошее железо деньги есть) - такой язык дефакто медленное дерьмо.
>>650088>Гуглу расскажиМамкин максималист? Про принцип Паретто слышал?В банке не работал, а под программно-аппаратные изделия писал, да, пример оттуда.
>>650088>такой язык дефакто медленное дерьмоАга, медленное дерьмо коррелирует с ЯП, лол
>>650099>Мамкин максималист?Конечно. Ещё и технофашист.>Про принцип Паретто слышал?Конеш. Только учитывая разную специфику проектов он варьируется в них так же, как и звучит.
>>650112Вот и хорошо, ты сам признал, что выигрыш имеет место в корпорациях масштаба гугла. Интересное наблюдение, и скорее всего, бесполезное.
>>650111Если на других яп один алгоритм реализованный идиоматичными средствами будет ощутимо быстрее - да, медленное дерьмо и %название_яп% становятся почти синонимами.
>>650113Эээ, нет, я признал что я не терплю говна, а не то что это справедливо только к гуглу. На большей эффективности (в плане перформанса) могут выиграть не только гиганты, но и стартапы, и даже дядя-вася написавший %шареваренэйм% менее требовательным к железу.Недавно на медиуме мелькала статья о челике, который писал что-то там о экономии на железе своего бомжестартапа благодаря C++. Аналогичных истории о том же Go - жёпой жуй.
>>650114>Если на других яп один алгоритм реализованный идиоматичными средствами будет ощутимо быстрееТо такую реализацию никто не будет использовать. Как, например, никто не будет писать рекурсивные реализации сортировок, хотя это красиво и напрямую мапится в математическое определение.
>>650120>экономии на железе своего бомжестартапа благодаря C++Отлично, у чела было свободное время, которое он сконвертировал в вертикальную масштабируемость своего стартапа. Ты ведь понимаешь, что вначале он упрется в производительность бомжежелезки, а затем в производительность одной ноды, любой доступной в настоящее время конфигурации? При условии роста нагрузки, естественно.
>>650120Я бы скорее взял такую шкалу: скриптота - vm - нэйтив код. Внутри одного уровня производительность критично не различается (речь здесь не идет про маргинальщину), бери что удобнее.
>>650130>а затем в производительность одной ноды, любой доступной в настоящее время конфигурацииА ещё я понимаю что если стартап взлетит и появится нагрузка каждая доступная в данный момент нода будет использоваться эффективнее.>>650123>То такую реализацию никто не будет использовать.Нуу.. На раби с питоном тоже пишут и крупные сервисы (хотя там дело именно в скорости разработки). Так что зависимость популярности от производительности сомнительна.
>>650145>А ещё я понимаю что если стартап взлетит и появится нагрузка каждая доступная в данный момент нода будет использоваться эффективнее.Где-то на этом моменте у стартапа возникают интересные вопросы с деплой автомейшн, сопровождением, набором кадров. И скорее всего просёр по экономике из-за завязки на маргинальщину.
>>650145>уу.. На раби с питоном тоже пишут и крупные сервисыРуби, Питон, пхп.. Львиная доля запросов дальше мемкеша не пройдет.
>>650149>Руби, Питон, пхп.. Львиная доля запросов дальше мемкеша не пройдет. Значит докупятся ещё 5-6 серверов, чо.>>650147> возникают интересные вопросы с деплой автомейшнКакие?>сопровождением, набором кадровСкажи ещё что на скале больше людей пишут, или что у неё приток больше. Если относить по размерам к какому нибудь рынку Java/C# - она ещё большая маргинальщина, чем даже C стандарта 89 года.
>>650153>она ещё большая маргинальщина, чем даже C стандарта 89 года.Смешно же. Прямо сейчас можно взять хипстора, который будет поначалу писать как на джабе с сахарком. Спец, который будет писать на под веб на Си, притом писать непадучий безопасный код - я хз, где брать такого единорога.
>>650158>Прямо сейчас можно взять хипстора, который будет поначалу писать как на джабе с сахарком.Не, хипсторов и прочую поеботу я бы не рискнул допускать до функционального языка. А писать на скале как на яве не получится никак. Здесь шутка про ++ и + и их типобезопасность, нытьё про хвостовую рекурсию и кучу прочего.>Спец, который будет писать на под веб на Си, притом писать непадучий безопасный код - я хз, где брать такого единорога. Кроме C подойдёт и любой C++ программист.Именно парочку спецов найти вполне можно, а дальше сгодятся и макаки которые будут коммитить только через кодревью, как и везде.
>>650036Я хуею с такого сравнения. А ничего, что в Java сортируется массив, а в "Idiomatic Scala" — односвязный список?
>>650179Отлично. В обоих случаях имеем одного-двух рокстаров и отряд мартышек. >будут коммитить только через кодревьюЧеловеческий фактор же, однажды очередная мартышка закоммитит очередной null pointer dereference, срыв стека и т.п.
>>650195Однажды мартышка закомитит val chlen_lenght = List('1', '2')val hui = "5" + chlen_lenghtИ получит еботню в виде 5list(1,2).Или ещё где-то видел такую вещь, что .toSet возвращал нормальный результат, а .toSet() - Boolean.Господи, да любое взаимодействие с явакодом требует кучи преобразований структур данных и не редко вызывает NPE.Это так, к слову о человеческом факторе. Скала - не ява, и мартыханов с легким сердцем на неё сажать не получится.
>>650214Отсюда преимущество: приходя на проект на скале, ты скорее всего будешь работать с умными людьми, а не тупыми макаками.Уже видел несколько проектов, которые начинали на скале именно потому, что она работает как фильтр от обезьян.
— Одну минуту, — громко произнес Патрышев, — прежде чем продемонстрировать вам способ поедания борща, о котором все вы, как будто, позабыли, я должен опорожнить свой кишечник.Вот каким образом развратник приступил к омерзительной операции. Его окружили четверо скала-петухов: один держал наготове большой ночной горшок, второй взял зажженную свечу и подставил ее поближе к анусу, чтобы было лучше видно происходящее, третий сосал ему член, четвертый, перекинув через руку белоснежное полотенце, целовал Ганди в губы. Тот, опершись еще на двоих педерастов, поднатужился, и как только появилось невероятное количество дерьма, которое обыкновенно и регулярно выдавал хозяин параши, учитывая страшное количество поглощаемого им борща, тот петух, что держал горшок, принялся восхвалять экскременты. «Какое прекрасное скала-дерьмо! — восклицал он. — Ах, господин мой, какое превосходное говно! Как красиво вы испражняетесь». Когда дифирамбы закончились, педераст, вооруженный салфеткой, языком очистил преддверие ануса, а горшечник подставил содержимое горшка под нос Ганди и опять громогласно восхвалял его. После этого мощная струя мочи ударила в рот сосателю, который тут же проглотил всю жидкость, полотенце завершило то, что не мог сделать язык, и четверо скала-петухов, оставшись без дела, долго сосали поочередно язык, фаллос и задний проход распутника. (Автор этого поста был забанен. Помянем.)
>>650233Высрался, уебок? Полегчало тебе? Нет? Попробуй в следующий раз поударяться головой о стену.
>>650258> боль JVM-мартыхана
>>650216Ну теперь буду знать как объяснять дырки в других языках, лол.
>>650270Забавно серишь и обмазывешься, братишка. В /b/ или /po/ тебе были бы рады.
>>650214>5list(1,2)Это не проблема, на самом деле. В haxe то же самое - на выходе получается строка, и тайпчекер начинает ругаться.
>>650322И ради того чтобы больше мартых вспороло себе живот они оператором ++ складывают содержимое листа в строку.То, что в хаксе есть то же самое - не значит что это не проблема, лол. Это проблема скрещивания java-like паттерна с перегрузкой операторов (которые, чтобы одерску выебали, не ограничены вообще никак).
>>650451Оно просто не сконперируется, тебе же ответили.
>>650451Кстати, в Scala нет перегрузки операторов.
>>633264Сеньёр девелопер в треде, я спокоен
>>650793Промазал? Промазал.
>>650214> Однажды мартышка закомитит> val chlen_lenght = List('1', '2')> val hui = "5" + chlen_lenght> И получит еботню в виде 5list(1,2).А что он должен был получить по-твоему? Ошибку конпеляции? Но ведь тогда мартышкам будет больно, строки не посклеивать(((
>>650819Именно ошибку конпиляции и получит. val hui не пролезет в сигнатуру метода zalupa.chlenomer: Int
>>650822А если это String то пролезет. Я бы всё-таки запретил складывать строки с хуйнёй, для этого есть s"${huita}"
>>650824А если String, то значит это не ошибка, а так задумано.
>>650824Я бы тоже конкатенацию запретил.
>>650824Если это String, то туда не пролезет List("5", '1', '2'). И я надеюсь, что в скалке можно задавать строки обеими кавычками, иначе вообще хуй знает, что автор этого кода хотел сделать.
>>633151 (OP)Поясните за совместимость.Как скала компилируется?а) Scala --> Java byte codeб) Scala --> Java --> Java byte codeПредстоит работать с узкоспециализированным фреймворком под JVM, про поддержку Скалы ничего не известно. Может оказаться так, что я не смогу Скалу использовать?
>>651148В байт-код
>>651148Скалу использовать сможешь в любом случае. Временами будет неудобно, когда из джавы нужно дергать скала-код и наоборот, в основном из-за преобразований типов.
>>651077По обещаниям это типобезопасный язык - такой хуйни быть не должно.На практике - http://ideone.com/NQDUXH>>651148Если нету офф. поддержки - лучше не еби мозги и не примешивай скалу (разве что только в местах не связанных с фреймворком). Работать с чем-то явным кроме стандартной библиотеки достаточно больно - уродливые конструкции и постоянные перегоны типов, убивающие нахуй производительность и память, NPE и прочая поебота.Из самой явы - а если фреймворк чисто явный без неё не обойтись - использовать код скалы просто пиздец как больно, см. гугл.
>>651161>>651166>>651180Ок, спасибо ребят.Буду тогда жаву использовать, чтобы мозги не трахать себе и коллегам.Годный тред у вас.
>>651180А ты как хотел. В первом случае неявное приведение к String, во втором — расширение строки на Seq. В реальном коде от такого можно огрести только если слепо полагаться на вывод типов и не продумывать интерфейсы. За программирование без проектирование интерфейсов принято бить канделябром.
>>651180>По обещаниям это типобезопасный язык - такой хуйни быть не должно.Ты в List[Any] что угодно запихнуть можешь, о какой типобезопасности речь идет?>Работать с чем-то явным кроме стандартной библиотеки достаточно больно - уродливые конструкции и постоянные перегоны типов, убивающие нахуй производительность и память, NPE и прочая поеботаКакие уродливые конструкции? Зачем перегонять типы, можно просто джавовые использовать? Про NPE вообще пушка, как будто в джаве их не будет. В скале хотя бы null'ы из библиотеки можно в Option'ы завернуть. Обёртки и для перегонов типов актуальны, кстати, тут нужно на влияние на производительность смотреть.В общем, в 2016-ом единственная причина не использовать Скалу - недостаток программистов и/или неуверенность в них.
>>651352Я не >>651180, но иди-ка ты нахуй.Сам-то пробовал мешать скалу с джавой или писать на скале под джавовый фреймворк?Очень блядь охуенно удобно передавать List[Int] в джавовый метод, ожидающий Collection[Integer]:ololo.setIds(ids.map(_.asInstanceOf[Integer]).asJava)А особенно я люблю, когда нужно передать лямбду.Щас ты, конечно, предложишь обмазаться имплиситами с головы до ног, на что я тебя обозву червем-пидором и пошлю еще дальше нахуй, потому что сам в таком коде разбирайся, сука.
>>651180>На практикеТеперь создай функцию, которая принимает List[Char] (или это String у вас?), и попробуй передать в неё "lol" + kek.
>>651489>Щас ты, конечно, предложишь обмазаться имплиситами с головы до ногНет, не предложу, я же не даун. Предложу:1) Сделать так чтобы значение ids имело тип Collection[Integer]2) Вынести преобразование типов в обёртки, то есть метод setIds принимал List[Int] + null'ы туда жеИли еще что-то зависящее от конкретного случая.
>>651489> А особенно я люблю, когда нужно передать лямбду.Жди 2.12> Щас ты, конечно, предложишь обмазаться имплиситами с головы до ног, на что я тебя обозву червем-пидором и пошлю еще дальше нахуй, потому что сам в таком коде разбирайся, сука.Неосилятор закукарекал.
>>633151 (OP) Scala - это когда здравый смысл подсказывает, что можно использовать продвинутый язык, но опыт в энтерпрайзе подсказывает, что "серьёзный" язык должен обязатель быть с привкусом говна. Scala - это когда когда в промышленных библиотеках эмулируются наиболее сложные паттерны Хаскеля посредством ональных трюков, при том что даже в самом Хаскелле, заточенном под эти паттерны, они считаются сложными и применяются ограниченно и с крайней осторожность в библиотеках с тегом experimental. Scala - это способ выебнуться, "потому что можем!" Похуй, насколько сложно этим пользоваться, насколько не подходит это языку, но ведь можем же! В лечении зубов через ональное отверстие Скала на первом месте. Scala - это фанбои, которые открыли для себя тайпчекер и теперь тайпчекают, скажем, диррективы в спрее (где всё равно практически невозможно ошибиться, а война с тайчекером - там боль на ровном месте), но при этом пишут безтиповую акку. Scala - это когда паттерны динамического языка засовывают в статический (акка), в результате программист вынужден пидорасить классы для входящих и исходящих сообщений, которые нигде не используются. Ну т.е. взяли всё худшее из динамических языков (отсутсвие типизации), смешали со всем худшим из статических языков (необходимость явно описывать типы), получилась типичная библиотека Scala. Scala - это безумное время компиляции, и безумный расход памяти при исполнении. И еще - Scala это один из немногих языков, где как нехуй делать получить null pointer exception, при том, что null-ов в Скале вроде как нет. Ну просто из-за особенностей порядка инициализации полей. Scala - это когда eDSL-ем на порядок сложнее пользоваться, чем самим языком, для которого этот eDSL построен (см. slick). Scala, это когда язык с менее продвинутой системой типов (C# LINQ) делает всё то же самое существенно удобнее, чем более "продвинутая" Скала. Scala - это когда надо освоить Хаскель на продвинутом уровне, чтобы программировать на Скале. Scala - это когда у высококлассных хаскеллитов есть шанс разобраться во всех её изъёбствах опираясь на свой бекграунд, а вот как поступать быть обычному программиту, который всю жизнь на Джеве программировал, с этим криптохаскелем, совершенно не понятно, и скалафанбоев, похоже, не ебёт.Вот это и есть Скала, это вот всё.
>>651909> боль неосилятораКек.> аккаДля кого akka-streams сделали? А ну пошёл говно чистить>а вот как поступать быть обычному программиту, который всю жизнь на Джеве программировал, с этим криптохаскелем, совершенно не понятно,Манямирок, вкатился в скалу почти без опыта в джяве.
>>651923Akka-streams - это тот случай, когда akka-долбоёбы героически решают созданную ими же проблему отсутсвия back-pressure и отсутсвия типизации посредством написания могущественного фреймворка над лучезарным фреймворком. Короче, сами создали проблему, сами её и порешали спустя три года, "яичко испечет да сам и облупит." Охуенные самодостаточные программисты.
>>651931> пок пок кукареку мне лишь бы кукарекатьПонятно
>>651935>мне лишь бы кукарекатьНичего страшного, просто ты петух)
>>651939Лол, опущенное чмо с петушиной аватаркой продолжает копротивляться.
>>651923Двачую, на мерзкой джабе не писал не дня, сразу взял скалу.
>>651996*ни дня
нафаня в тредеправда ли что с появлением java 8 смысл существования скалы уничтожился?
>>660919В скале конечно смысла не много кроме мастурбации на самого себя, но нет, лол.
>>660926то что появился функционализм в жаве8 разве не убивает ли жанр конкурентов жавы на этом поприще(котлины, скалы)?или в чем тогда смысл скалы(искренне был уверен что это такая ФП-джава и все)
>>660927>то что появился функционализм в жаве8 разве не убивает ли жанр конкурентов жавы на этом поприще(котлины, скалы)?Эмм... Нет. Там появились лямдочки, всё, жява уже функциональный язык. Лел.Это другой язык, который с явой объединяет платформа.>или в чем тогда смысл скалы(Как и любого функционального языка - если у тебя есть ахуенная команда сеньёров помидоров - делать быстро ахуенные продукты (как это получилось у Тинькофф-а). Если у тебя её нету - делать нерабочее говно, которое никогда не выйдет в продакшен и дрочить на свою самооценку за мамкиным борщём.
>>660935спасибо! ухожу греть борщ
>>660927Не убивает, чуть-чуть ранит только.http://fsharpforfunandprofit.com/posts/is-your-language-unreasonable/>>660935Два чаю.
Есть одна древняя cms на жаве и есть одна пхп макака на которую скинули задачу поправить одну хуйню. Хуйня находится в skala файле, и нужно этот скала файл как нибудь отдебажить. Но тут есть одна проблема, я до этого ни разу не работал с жавой и всем, что с ней связано, и я блядь даже понятия не имею как эту хуйню отдебажить. Исходников самой cms нет, а компиляция scala файлов запускается из админки с неизвестными мне параметрами. Так вот, возможно ли как нибудь вручную добавить breakpoint? А может в skala есть что нибудь похожее на вардамп?
>>670477Чё? В IntelliJ IDEA брейкпоинт ставишь и жмёшь дебаг
>>670492Я походу недостаточно понятно объяснил, извиняюсь. Если я правильно понимаю, для того чтобы IntelliJ IDEA смог зафиксировать брейкпоинт, нужно чтобы он этот файл скомпилил. Но в моем случае это не возможно, так как долбаная cms компилит все skala файлы сама и собирает их в один jar файл, который потом и юзает. Сам я никак собрать этот файл не могу, так как в него собирается овер дофига skala файлов разбросанных по всему проекту.
>>670508Сейчас поймал себя на мысли что за 3 года работы со скалой пользовался дебаггером раз 10 наверное, в основном когда с рефлексией что-то делал. Прочитай код, пойми его и поменяй. Зачем сразу в дебаггер лезть? Работаем методом тыка?
>>670508> долбаная cmsНу запусти её из под IDE в дебагере. Или сделай хуйню вроде https://stackoverflow.com/questions/21114066/attach-intellij-idea-debugger-to-a-running-java-process
Как комьюнити относится к kotlin? (без сырказма)
>>673005На ведре позитивно, но пока 2.5 конторы юзают его для продакшена, на бэкенде нахуй никому не уперлось.
>>673005Хороший кетчуп, мясо им поливаю, вкусно.
>>6730081 контора
>>673005Сначала котлин заинтересовал, есть несколько вещей, которые выглядят приятнее чем в скале, но когда попробовал - разочаровался. Имхо, основной недостаток - это отсутствие паттерн-матчинга, а из этого уже вытекают хуита вместо опшнов, бесполезные дата-классы и костыльная "деструктуризация" и т.д.Ну и плюс недоделанные коллекции, местами ебнутый синтаксис (делегация через by не читается вообще, а костыль с ее использованием для ленивости - всем костылям костыль), слишком много новых ключевых слов для простых вещей.Единственное применение, которое я вижу котлину сейчас - это андроид, пока его не перевели на OpenJDK (то есть через пару лет и в этой нише котлин будет не нужен). На сервер-сайде же уже полным ходом юзают восьмую джаву, при том многие индусы и ее лямбды восприняли в штыки как что-то слишком сложное, так что котлину с его "типа лучшая джава"-ориентацией ничего не светит. Те же, кого джава реально не устраивает, уже перешли на скалу и смотрят на котлин с недоумением.
>>673279> пока его не перевели на OpenJDKТы правда думаешь что Java 8,9,... будет лучше котлина?Уже давно кто хотел перешли на retrolambda и все равно это жалкая тень котлина.Тем более 99% девайсов не обновятся до нового андроида, а их нужно поддерживать.
>>673385> Ты правда думаешь что Java 8,9,... будет лучше котлина?Не лучше, но для большинства - достаточно.> Тем более 99% девайсов не обновятся до нового андроида, а их нужно поддерживать.Ну да, не обновятся. Просто отомрут за пару лет так же, как умерли девайсы на 2.х, в которых у Стринга были не все методы. Гугл может даже просто добавить поддержку java8 в компиляторе, не меняя формат байт-кода, и добавить compatibility library с новыми классами, как когда-то сделал с фрагментами, тогда счастье восьмерки снизойдет даже на Jelly Bean.
>>673438> Ты правда думаешь что Java 8,9,... будет лучше Scala?Не лучше, но для большинства - достаточно./тред
>>673518Нет. Ниша тех, кому недостаточно, как раз занята скалой. А вот котлин опоздал.
>>673518Скала вообще другой язык, делящий с джявой только виртуальную машину
>>674060Двачую этого. Индусы и в жяве лябды в штыки восприняли - ведь СЛОЖНА. Ни о какой пересекающейся области речи идти и не может.
>>674060Тричую, нафиг нам совместимость с жабой, еще зашкваримся об нее.Лучше все проекты/библиотеки с нуля перепишем.
>>674214Как ты мог заметить, петух, совместимость де-факто только в одну сторону, чтобы можно было безболезненно забрать библиотеки с джявы и выкинуть её нахуй.
Если я на уроках математики спал, мне в скалу лезть вообще не стоит?
>>676677Откуда вообще взялся пиздёж про то что программирование связано с математикой?
>>676854Ну функциональное программирование это не классы наклепать и уйти кофе пить.
>>677002И чем оно сложнее?
Где можно использовать скалу? Что надо попутно учить чтобы найти удаленку?То есть мне понятно где можно использовать Джаву (тырпрайз, андроид, бекенд), пхп, руби, питон. А вот скалу где?
>>677031Везде>тырпрайз, андроид, бекенд, фронтендРазве что драйвера и ОС не напишешь
Денис пидораска.
Бумп
Доброго времени суток треду, есть здесь кто-то кто работал с play+akka+slick+oracle+postgresql?Суть вопроса такова. Если примеров для использования slick в play хоть завались и ничего сложного в этом в принципе нет, то что касается SLICK EXTENSIONS, в частности com.typesafe.slick.driver.oracle.OracleDriver то здесь начинаются проблемы. Может кто-то поделиться годным мануалом по эксплуатации или хотя бы указать направление в котором копать.Заранее спасибо.
>>684006Ну наверно надо вписать что-то вродеimport slick.driver.OracleDriver.api._А дальше писать ту же хуйню что и для других баз
>>684025Боюсь, что нет. Как минимум TableQuery не получится проинициализировать. И описание таблицы не сделаешь, т.к. нет типичныхметодов, как для открытых драйверов бд.На данный момент закостылил объектом с java методами и необходимой обёрткой, но всё же хотелось бы иметь гомогенную механику работы с бд.
>>685226Их вроде делают опенсорсом, наверно тогда же будет и документация http://slick.typesafe.com/news/2016/02/01/slick-extensions-licensing-change.html
Озадачился вопросом необходимости IO монады в императивных/мультипарадигмальных языках. После прочтения этого http://blog.higher-order.com/assets/scalaio.pdf и этого https://apocalisp.wordpress.com/2011/12/19/towards-an-effect-system-in-scala-part-2-io-monad/ вроде сложил в голове определённую картинку. Но всё равно не покидает стойкое ощущение того, что за всеми красивыми словами типа "Separation of I/O code from logic" и "Algebraic reasoning" на деле не стоит нихуя и мне просто предлагают бесплатно попердолиться с обмазыванием всего Real World кода в IO.Ну и опять же, на реализации в виде class IO[A](run: () => A) ещё все понятно, типа все потенциально грязные действия делать отложенными и запаковывать в IO контейнер, пробрасывая их наверх. В идеале main - единственное место где будет выполнено unsafePerformIO, где все эти экшоны и будут запущенны. Ну это в теории. А на практике непонятно как скалац разрулит все эти отложенные экшоны по требованию и вообще непонятно нахуй это всё надо.Ещё более я охуел, когда увидел реализацию типа class IO[A] (run: RealWorld => (A, RealWorld)) это что они предлагают RealWorld везде таскать с собой, как с линейными/афиными типами? ЭТож тупо неудобно нахуй.А потом же они чуть дальше пишут, что мол так то оно всё хуйня и бенефтов нет, но вот если заюзать свободные манадки и дальше ещё более запутанный пиздец. В общем, есть тут те кто активно юзают IO монаду в скале чтоб пояснить мне долбоёбу с вертушки в щи как это всё говно по уму делается и так ли вообще эта IO монада нужна?
>>685757А в скале ленивое IO?мимо не могу в скалу из-за уродливого синтаксиса
Как вы на скале вообще пишете? Зашёл в местную доку, и понял что кому–то таки удалось высрать что-то страшнее C++.
>>686114Мартин старался
>>685757Нет смысла использовать IO в скале. Основная причина в том что тебе придётся весь библиотечный код (что на джаве написанный, что на скале) обмазывать обертками, чтобы понимать где возращается T, а где IO[T]. По той же причине scalaz Task мало где используется, но там хотя бы можно написать преобразования из Task во Future и наоборот.Еще одна причина в том что если у тебя много действий в IO у тебя из-за вложенных flatMap'ов переполнится стекэто может случиться и с любой другой монадой, но в IO/ST проблема более вероятна. Разруливается trampolining'ом, но это очевидно не эффективно.Третья причина - чистый IO это не scala-way. Не нужно делать из скалы хаскель или джаву или еще какой язык. Хочешь побыть пуристом - просто используй Хаскель, там вся инфраструктура под это заточена.>>686114Скала на порядок проще C++ как по стандарту, так и по использованию, а использование библиотек проще чем кажется.
>>633573От кейворда вся польза в том, что аргументы для распределений называются lambd вместо lambda. Когда нужна функция с замыканием, все равно приходится писать def.
>>686597>24/01/16Ну нихуя ты археолог. Лямбды и замыкания - всё-таки разные вещи.
Анон, вкатываюсь в скалу, подскажи где совсем плохо и вообще допускается ли такое писать. В какую сторону копать? Скалу для нетерпеливых штудирую.Собственно паста:http://pastebin.com/gK6YpvSd
>>687503Откуда вкатываешься? Где это еще до сих пор не знают об автоформаттере?{ case s => Future(s)case _ => Future("Error")} - это лол. Эррора не будет никогда, ведь на s заматчится что угодно. flatMap и map здесь лучше заменяить на for comprehension, станет сразу понятнее что здесь происходит.Переменные f, q, s, i = очень, блядь, информативные имена.class smsApi - хули имя класса с маленькой?Почему getState растянул на три строки? def getState(arg: String) = ""Вместо try { ... } catch { вернуть волшебную константу } лучше использовать Try и матчить Success/Failure.if (map.contains(value)) { doSomething(map(value))} else {...} - тоже не scala way. Лучше map.get(value).map(blabla).getOrElse(...)Гугли цикл статей "Neophytes guide to scala", там описывается как избежать ровно таких костылей, как у тебя.
>>687523Вкатываюсь из скриптоты. Опыта чуть больше двух недель. Курс нагуглил. Полуркаю. Спасибо.
>>687503Я бы написал нечто вроде такого (пример не скомпилится): http://pastebin.com/K1nw23KG.Что не так: - ты используешь DI, но руками соаздешь инстанс smsApi (нужно инжектать через конструктор контроллера) - имя класса с маленькой буквы smsApi (вспомни/почитай жаба код конвеншн) - фабрика не нужна, т.к. список экшнов можно описать через роуты и замапить на соответствующие методы контроллера - парсинг json-a в модель делается через BodyParsers: https://www.playframework.com/documentation/2.5.x/ScalaBodyParsers. Примерно так: def modelParser[M](implicit r: Reads[M]) = parse.using[M] { implicit request => val errorParser = parse.error[M](Future.successful(BadRequest(""))) request.contentType.map(_.toLowerCase) match { case Some("text/json") | Some("application/json") => jsonParser[M] case _ => logger.warn(s"Couldn't parse request. Invalid content type. " + s"Request: $request. Headers: ${request.headers}") errorParser } } - бесполезный кусок кода, который ничего не делает: val q = f.flatMap { case s => Future(s) case _ => Future("Error") } - invalidReq. Вместо этой функции нужно заимплементить кастомный ErrorHandler: https://www.playframework.com/documentation/2.5.x/ScalaErrorHandling
>>687590Блядь, распидорасило код и ссылки. Надеюсь, суть уловишь:http://pastebin.com/K1nw23KGhttps://www.playframework.com/documentation/2.5.x/ScalaBodyParsers
>>687593Спасибо, и это пораскуриваю.
>>687590>- фабрика не нужна, т.к. список экшнов можно описать через роуты и замапить на соответствующие методы контроллераЕщё вот такой вопрос. Если я предполагаю что действий будет достаточно много, а условие таково, что они завёрнуты в json как лучше поступить? Просто я предполагаю, что если у меня роуты представлены точкой входа для api в контроллере, то не придётся писать портянку разных роутов на все случаи жизни. Я не утверждаю, что так верно, просто интересно.
>>687604Тебе все равно где-то придется мапить строковое название экшна на некоторый метод. Либо через роуты, либо фабрикой как у тебя. Я бы предпочел это делать через роуты и убрал название экшна из json-а.
>>687610Если у твоего приложения единая точка входа, и туда шлются все запросы и нет возможности на это повлиять, то можно изъебнуться с Play Http фильтрами и редиректить запрос на нужный роут. Можно поставить какой-нибудь прокси сервер, который будет парсить json и, в зависимости от экшна, слать запросы на нужные роуты.
>>687628Фактически я переписываю на scala приложение, которое писалось ранее. Идея была в том, что существует несколько приложений, которые общаются друг с другом и с клиентом по унифицированному RFC JSON, как средство доставки используется HTTP и WS(там где нужна дуплексная связь). Они висят в разных контроллерах как независимые приложения. На каждый контроллер свои маршруты: маршруты которые генерируют на выходе html для авторизованного и не авторизованного пользователя и маршруты которые используются для RFC JSON собственно, так же, для авторизованного и не авторизованного пользователя. В целом такой подход вроде бы больше всего похож на микросервисы. Возможно этим объяснится такой странный подход.
>>687638Понятно. Я почему-то подумал, что ты в качестве обучения разрабатываешь какое-то новое приложение и нет жестких ограничений по протоколам. В твоем случае можно и фабрику оставить или использовать один из перечисленных выше приемов (или придумать что-то новое).
>>687642В принципе можно сказать, что и для обучения. Т.к. до тех пор, пока я не буду уверенно себя чувствовать в scala и вообще понимать что происходит, ни о каком переезде на прод речь безусловно не идёт. То, на чём я писал себя исчерпало, да и возможность сейчас есть переползать сюда. Ещё раз спасибо за ответы.
Тем временемhttps://scala.epfl.ch/
Где можно посмотреть примеры идиоматичного scala-кода?
>>688017На курсах Одерского
>>688017Одерский вот здесь рассказывает когда какой подход применять: https://www.youtube.com/watch?v=kkTFx3-duc8Есть классные статьи именно об идиоматичном использовании скалы "Neophtyte's guide to scala".Вот статья вроде выглядит полезной, но я ее пока не читал: http://www.lihaoyi.com/post/StrategicScalaStylePrincipleofLeastPower.html
>>688017исходники shapeless
>>689153Спустил HList тебе за щеку, изучай исходники.
>>689250Идиоматично ты должен был не спустить, а сконкатенировать.
>>689267Проиграл. Внимание, серьезный вопрос - shapeless - это такой местный троллинг нубов? он ведь вроде как если не предан анафеме анонами из числа создателей компилятора, то, как минимум, сильно нерекомендован
>>689275С чего бы им предавать его анафеме? shapeless - просто пример впихания в скалу не совсем впихуемого. HList - просто типобезопасный список произвольной длины. Скала такое не умеет искаробки, вот и изъёбывался профессор джва года, целое паблисити себе сделал на такой-то хуите. Ну и наговнокодил в процессе ояебу.
>>689281Типобезопасный гетерогенный список произвольной длины. Нет, не анафеме, просто весьма авторитетные деятели часто пишут - сто раз подумайте, прежде чем начать использовать эту ъуйту.
>>689285Использовать-то почему бы и не, все равно почти всё compile-time.
>>689285Типобезопасный гетерогенный список произвольной фиксированной длины.>>689281>профессор Кто это? Разве Miles Sabin профессор?>>689290Слишком мощная штука, см. >>688813>http://www.lihaoyi.com/post/StrategicScalaStylePrincipleofLeastPower.html
>>689290Почему бы не сделать C++ по затратам времени на компиляцию из жвм язычка.
Тут есть аноны, кто пользовался Scala IDE для средних / крупных проектов ? На сколько хуже Scala плагина для IDEA ? Стоит ли вообще скачивать и запускать это поделие (перекатился с эклипса на идею около 3-х лет назад) ?
>>691645Попробуй и узнаешь
>>691645работает кое-как на самом деле но идею не щупал
>>691645Почему бы не использовать Intellij IDEA?
>>693954Я и использую. Просто подумал, раз Scala IDE официально поддерживалась тайпсейфом, то они могли сделать неплохую бесплатную IDE.А по поводу IDEA - JetBrains охуел. Не успел приобрести подписку на 15 версию и попользоваться 3 месяца, как выпускается 2016 версия и будьте добры приобрести новую подписку.
>>694154> Не успел приобрести подписку на 15 версию и попользоваться 3 месяца, как выпускается 2016 версия и будьте добры приобрести новую подписку.Всё правильно сделали, тупого гойского лоха грех не наебать.
>>694154Для вас уже весь джетбрейнс покрякали вплоть до крякнутого локального сервера, а вы все ноете
>>694154Ташемта подписка от 15 работает на 16. Через год только, если зажать 50 баксов, придётся крякнуть откатиться на 15.
>>694478Кстати, а стоит ли обновляться если я использую 0.идея.ланьюс.ком? Эту хуйню не пофиксили?
>>694572Да какая разница что там пофиксят, её за 15 минут снова взломали бы.
>>694456 >>694555 >>694478 >>694603Вся суть скала-питухов - нет денег даже на иде.
>>694952Вся суть местных – ломать бесплатный продукт за тим-фичи которыми всё равно не будешь пользоваться.И да – идея по сравнению с эклипсом сосёт как по возможностям работы с кодом, скорости работы и багам в indelij-евском скалаплагине, как эклипс сосёт по ущербности своего гуя.
>>694957>тим-фичиТипа database плагина, да>багам в indelij-евском скалаплагинеТут его автор пробегал, говорит, скала говно, он бы лучше котлин пилил. Но, видимо, не дали, поэтому ненавидит свою работу и старается нассать клиентам в суп как может.
>>694978>ненавидит свою работу и старается нассать клиентам в суп как может. Наш человек.мимо
>>694957> Вся суть местных – ломать бесплатный продукт за тим-фичи которыми всё равно не будешь пользоваться.Жалкие самоутешения пользующегося огрызком.
>>694952> пок пок пок я отдал свои деньги своим еврейским хозяевам, значит я успешенЯсно
>>695506Они же из питерских, этим все отдают деньги.
котаны, есть код с книжки[code lang="scala"]object Demo { def map[A, B](xs: List[A], f: A => B): List = for (x <- xs) yield f(x) def flatMap[A, B](xs: List[A], f: A => List): List = for (x <- xs; y <- f(x)) yield y def filter[A](xs: List[A], p: A => Boolean): List[A] = for (x <- xs if p(x)) yield x}[/code]почему flatMap возращает список, а не список списков?
>>695806Ну наверно потому что в этом суть префикса flat?
>>695806Наркоманские у тебя книжки. Зачем они делают def map(xs, f) = xs map f ?
>>696111Упоролся? В книжке приведен эквивалентный код для map flatMap filter, чтоб нубам не было нипонятно шо це за магия такая.
>>694978>Тут его автор пробегал>JetBrains>сосачАга, а военачеры уверены, что к ним забегает Рогозин и иногда Димон. ебаные накроманы-аутисты
>>696135Так над ним рандомный макак работает, ебанашка.А здеся и следы разных знаменитостей бывали, ничего удивительного в этом нету.
>>696221> рандомный макак> макакАга, макак писал парсер языка, хитровыебанней крестов по синтаксису и семантике, макак писал плагин, который разбирает цепочки map filter fold и прочего, и адекватно предлагает упрощенные варианты выражений. И вообще статический анализ в нем очень нехуевый. Макак. Не думаю, что даже единицы из зекача так живут.
>>696221>следы разных знаменитостей бывалиЛол. Профиль Дмитрия Маликова с жидхаба?
>>696357Ты так говоришь, будто осиливший Ахо уже никогда не зайдёт на зекач даже просто чтоб кого-нибудь обоссать и самовыразиться. и да, хуле там синтаксис, парсер и AST уже есть в родном конпеляторе
>>696132Типа, нуб лучше понимает for comprehension, чем map flatMap filter? Да ну нахуй.
>>688813Чё он шпарит с акцентом? Я думал он американец.
>>696525 for comprehension можно объяснить на пальцах, и далее, используя этот концепт, показывать более сложные сущности.
>>696540Немец же, ебан
>>633214Однострочные лямбды на пидоне, молодец, умница, а теперь иди нахуй.
Сижу как сыч без документации. Поставил scala плагин на idea, скачал sdk, там внутри есть все джарки с документацией, но идея ее не показывает. Происходило ли с тобою такое анон?
>>699049Ты используешь сбт? Включил "скачивать документацию и исходники"?
>>699425Нет, выбрал в списке вариантов просто scala(там было и сбт), странно что доки вроде как прикреплены к скала сдк(если отредактировать зависимость scala sdk в идее), а идея все равно хуй показывает инлайн документацию.Сейчас создал sbt проджект, нихуя ваша симпл тул засрала папку с проектом. Но сейчас доки показывает и вообще походу тула весь scala sdk еще выкачала, похуй что у меня уже установлено.
Так, парни, изучаю Functional streams , бывший скалаз-стримс https://github.com/functional-streams-for-scala/fs2Есть идеи че б написать что б на практике навыки применить:
>>700742Там знак вопроса конце потерялся.
>>700742Кластер метапарадигм
Можно ли за выходные более менее освоиться с основами языка?Знаю только питон и джаваскрипт.
>>705351Можно, если найдёшь годное интро не найдешь нихуя
>>705351Были бы за плечами лиспохаскелеокамлы, или хотя бы мозгоплавящее говно вроде плюсов - освоил бы. А так за выходные ты разве что статическую типизацию потыкаешь.
>>705351Синтаксис освоишь, учи, пробуй.
Есть один методtest(thing: Openable)Openable - трейт.Есть классы Book и Door реализующие этот трейт.Как в методе проверить, не Book ли thing.Вкатываюсь с шарпа, заметил отсутствие опретатора is.
>>706671Паттернматчингом
>>706671Если тупо в одном ифе проверить, то thing.isInstanceOf[Book]Для более общих вещей таки паттерн-матчинг предпочтительнее.
Анончики, есть поле с размерами sizeX и sizeY и массив кортежей (x,y) которые должны быть на поле, нужно весь field конвертировать в строку чтобы строки поля разделялись \n, а в нужных коордионатах стояли *. Написал функцию на этом божественном языке, но чуичка что быдлокод и можно сделать проще@лучшеhttp://pastebin.ru/PbjfoN51Подскажи более грамотное решение анон.
>>708896https://ideone.com/82czsE
>>709853Спасибо анон, в самую суть.
>>696135И хуле такого? У меня несколько одногруппников работают в джетбрейнс, один из них котлин делает. Основной пропихиватель котлина, Андрей Бреслав, был учителем в моей школе. Мир тесен. Вполне могут двачевать.
>>711189Далеко не все знают про двачи, а тем более, заходят. Ждать, что твой школьный учитель заходит в /зк/ - что ждать Димона в /вм/-е
>>711189Спасибо, Анон, теперь я знаю, что в сторону Котлина можно не смотреть.
>>711189> один из них котлин делаетТащи его сюда, у меня куча вопросов есть про язык
>>711189>несколько одногруппников работают в джетбрейнс, один из них котлин делает>Основной пропихиватель котлина, Андрей Бреслав, был учителем в моей школеОдин из этих пидоров форсит своё поделие на весь зекач. Передай обоим, что они заебали.
>>711292Нет, это я >>711286И я вроде бы много раз говорил что работаю Android разработчиком, а JB не занимаются мобилками.
>>711306>анонимная имиджборда>я много раз говорилДа ты же поехавший.
Скаланы, есть один объект: Any (десериализован из xhr), в может быть структура {user: {email: "текст сообщения об ошибке валидации"}}, и может и не быть (хрен там знает, что выдаст бекенд). Как мне сделать сопоставление с образцом и выдернуть .user.email? Можно ли это сделать паттернматчингом, или нужно пердолиться с Dynamic или рефлексией?
>>712102> AnyЧто, простите? Не может быть объектов такого класса.Чем десериализуешь? Где код?
>>712102А в чем проблема десериализовать сразу в нужный класс?
>>712105>e.xhr.responseВот здесь scalajs.dom.raw.js.Any >@ScalaJSDefined>trait Any extends scala.AnyRefЕго я и пытаюсь как-то деструктуризировать.
>>712119Можно, но ко мне уже приходит десериализованное значение внутри AjaxException (типа js.Any)
>>712123Ну боя, там же в документации написано, что это может быть String, ArrayBuffer или Blob, в зависимости от того что указано в responseType.Очевидно у тебя String и тебе нужна библиотека uPickle от китайца, чтобы собрать из жсона кейс класс.
>>712131Да, лоханулся, там обычная строка, думал какая-то магия json уже распарсила за меня. >Нужна библиотека uPickle от китайцаИменно ей пользуюсь.Всем спасибо.
Можно ли компилировать скалу не в JVM файл, а сразу в исполняемый, как Си например?
>>712223Нет (хотя хуесосыч из последнего выпуска девзена который работает с Одерски говорит что такой сайд проект есть и им занимается какой-то хохлюн).
>>712230Блядская макаба с блядским спамлистом
>>712239Потому это и сайд проект, который делает левый челик, а не сам Одерски с командой. По тому что помню из подкаста - говорилось что просто будет классно иметь такую возможность и где нибудь юзать скалу на десктопе, не больше.
>>712223Скорее вопрос надо ставить "Можно ли компилировать байткод в натив?".Называется это Ahead of Time компиляция, на картинке актуальные проекты.Компилировал в RoboVM код на Java/Kotlin в нативные консольные приложения OS X.
>>712272Блядь, что? RoboVM может компилить в десктоп? Я думал только iOS/Android. А под винду может?
>>712272Gcj вроде закрыли.
>>712275На сколько я знаю только в iOS и Mac OS X консольные приложения (может и в Swing можно, но я не пробовал).Там прям в RoboVM Studio есть такой шаблон, видимо для тестирования сделали.
>>712223Кстати в Java 9 обещали сделать "Java Native". Так что через пару десятков лет, это будет "из коробки".
Соу, анон поясни за языкПочему бест JVM, почему не Kotlin и почему не сама Java
>>712330>почему не сама JavaНеудобный огрызок, расчитанный на тупых макак, не умеющих в языки посложнее. Чистая жава - это как пхп.>почему не Kotlin Новомодная хипстерская игрушка без задач, о которой не вспомнят через пару лет.
>>712347Как и скала собственно.
>>712347>Мамкин эксперт вещает
>>633781В Зеландии погода - то как везде в Нидерландах. Ну или как в Дании.
>>712378Суровый климат викингов?
>>633151 (OP)Фанфик на тему хаселла - вот что есть скала.
>>712383Скала полноценно заменяет джяву даже и без функциональщины, а вот хачкиль няшную как-то неоче.
>>712406Нет, спасибо - я лучше котлин выберу и подожду пока хачкиль подтянется.
>>712239В джяваскрипт конпелируется, значит и в натив можно. Только гц нужен.
>>712378Нидерланды это гейропа, а не ламповый остров в жопе мира.
>>712615Все, что робит унутре жвм-песочницы - безусловно. Но жабка еще может лезть наружу через FFI/JNI. И еще эммитить байткод в рантайме. Все совсем не однозначно.
>>712722Ну так сначала стоит сделать для "песочного" кода, а потом думать о костылях для остальной хуйни.
https://speakerdeck.com/heathermiller/academese-to-english-a-practical-tour-of-scalas-type-systemScala is famous in part for having one of the richest type systems of all mainstream programming languages today. Despite its reputation, Scala’s type system remains one of the most under-documented and jargon-heavy aspects of Scala.This talk will turn the academese into English, providing an example-rich tour of Scala’s type system, covering all the things that make people call it “powerful”. This talk isn’t about showcasing a bunch of challenging little logical puzzles with types; on the contrary, this talk is about showing practical uses of Scala’s type system, making it work for you and your users. We’ll see how we can use it to improve usability by reducing boilerplate, meanwhile keeping code type-safe. We’ll touch on the practical parts of Scala’s type system, all through examples.
Осваиваю скалку, но туплю почему параметры функции контрвариантны. Если у наследника есть какой-то допметод, который используется в функции, то разве если передать предка не случится хуита? Что я упускаю анон?
>>718139Получится. Поэтому вместо функции которая принимает наследника, можно использовать функцию которая принимает предка, но не наоборот: вызывающий код сможет дать всю необходимую инфу, вся она есть у наследника, который в свою очереь есть у вызывающей стороны. Это и есть контрвариантность.
>>718244Спасибо анон, теперь дошло
Есть у кого-нибудь akka in actions или reactive design patterns для невозбранной закачки?
Почему скала-сообщество такое ебанутое, аггресивное и вечно недовольное?
>>718440Ты про себя что ли?
>>718440Функторы и монады вызывают неприятные ощущения пониже спины. Вначале. Потом приятные.
>>720524Но ведь это в другом треде любят заинжектить монаду в функтор.
В общем я разочарован. На скале тупо никто не умеет программировать, думаю даже Ордерский это понимает. Просто чтобы писать на этом языке идеоматично, так "как задумывалось", не достаточно просто что-то там изучать и практиковать. Нужно постоянно держать баланс сил и быть ёбаным избранным.Ведь кто программирует на скале? Вариант 1: В аутсорс парашу уровня люксофта стали чаще заходить запросы на проект на скале и менеджеришки смекнули натаскать пару своих индусов на это дело, чтоб не упускать заказы. Берут самую опытную явамакаку, говорят "Раджешь, пришло твоё время". Тот садиться и за две недели проходит интенсивный курс по книге "скала для жабадебилов" хорстмана. И начинает писать. Пишет он на скале как на яве с синтакс сахаром. Нахуй это всё надо, когда есть такой-то говноподсластитеть как котлин, нипанятна, но в целом все довольны.Вариант 2: Хаскелист в надежде всё же найти работу с дрожащими от нервов губами изучает скалу. Устраивается он или нет в конечном итоге не важно. Важно что его это всё не устраивает, ведь он же познавший высшие истины пурист алгебраист, а тут какое-то императивное сайдэффектное непотребство. И начинает он натаскивать в проекты всякие скалазы, писать свои едсли делая из скелы новый хаскель. Выходит всё конечно уёбищно, с кучей синтаксического шума, никому кто не в теме не понятно, но заато теперь как в цацкиле.Вариант 3: Чел решил что он понял что имел в виду Одерски, посмотрев курсеру и прочитав книжечку от сэнсея. Уверовал, что ему дано стать мастером парадигмального дуализма. Вот только вышло наоборот и в результате он стал смешивать худшие стороны вместо лучших.Смогут ли эти трое работать в одной команде, поддерживать друг за другом код не разбив друг другу ёбычи? Маловероятно. Понимаете о чём я говорю? Это пиздец. Чтобы программировать на этом говне так как надо, нужно быть избранным, брать лучшее в разных местах и объединять в одном. Ну нахуй. Желание доказать, что можно смешать разные парадигмы в одной, получив удобный инструмент, а не громоздкое говно - это то ради чего всё это создавалось. И нихуя не вышло.
>>720651Так-то да, во многом прав. Только>вышло наоборот и в результате он стал смешивать худшие стороны вместо лучших.>И нихуя не вышлослишком пессимистичный взгляд. Если немного включать голову, все получится.>Чтобы программировать на этом говне так как надо, нужно быть избранным, брать лучшее в разных местах и объединять в одном.Нужно чтобы в команде было 1-2 таких и чтобы они пиздили тех кто отходит от курса партии.
>>720651>Вариант 1Узнал себя, с другой стороны нахуя котлин, если есть скала. Сомневаюсь что там все сильно пизже чем в скалке.Чтоб стать избранным надо просто обмазаться хаскелем, на котором не сможешь писать как на уютной сишке\яве и научиться прогать чисто в функциональным стиле. Ну, а если пришел с качкеля, то "спуститься" на уровень индусов, облепиться императивом с сайд эффектами и спагетти, нырнуть в мир состояний, деадлоков и гонок.В обоих случаях на выходе должен получиться тот самый избранный, который сможет в дуализм. Другое дело что типичный программист, который пошел в отрасль потому что платят на 50 зеленых больше чем санитарке в поликлинике, не захочет.
>>720651При этом вариант 1 - самый рабочий. Если взгнуть на код Kafka или Spark, то там именно что better java.
>>721056В спарках таки код оптимизируют по максимуму, там это важнее чем красивость и функциональность.
>>721056>>721153Ну можно и так сказать, даже не смотря на оптимизации. Хотя и там джава настолько better, что уже не джава.
>>633151 (OP)>>720834
>>633151 (OP)>самый лучший>для JVMВообще-то самый лучший язык для JVM это Clojure. В вот тут любой адекватный анон скажет: "Да как же так, Clojure - это лиспоговно, лиспоговно в принципе не может быть хорошим!" И он будет прав, да, лиспоговно не может быть хорошим. Но ведь "самый лучший язык для JVM" не означает "самый лучший язык". И даже не означает "хороший язык". Для JVM в принципе нет хороших языков, это просто выбор между сортами говна. И ирония заключается в том, что среди этих сортов говна говнолисп, внезапно, оказался лучше говноскалы.Я не призываю программировать на скобочном говне и не оправдываю его и не пытаюсь доказать, что оно достойно изучения. Просто в говноедском мирке JVM такая забавная фигня приключилась.
>>721427Тебя в детстве насиловали разработчики JVM?
>>721532Имхо они своей JVM "изнасиловали" не одно поколение программистов.мимо android девелопер
Мамкин борщехлеб, чем тебе JVM то не угодила?
>>721559Вангую что,>стековая вм ко ко ко производительность ко ко ко оракл - корпорация зла ко ко
>>721532Если при тебе кто-то скажет, что бас-гитары "Урал" - это говно, которое подходит только для того, чтобы отбиваться от зомби в случае зомби-апокалипсиса, ты ответишь, что его изнасиловали разработчики бас-гитары "Урал"?
>>721559С чего ты взял, что JVM, мне не угодила? Я просто рассказал, как забавно там дело обстоит с языками.
>>721559затирает типы, фризит программу, отжирает дохуя памяти, всё валяется в одном хипе, не умеет в автоматическое распараллеливание чистого кода, уёбищный менеджмент памяти вообще, у тредов и объектов разное время жизни, вообще нихуя не сделано на уровне вмки для поддержки распределёнки/конкурентности, нет REPL'а и хот код реалоада из коробки, вообще какой-то неадекватный abstraction penalty, короче вмка для всего сразу и нихуя толкомпонятно, что эти проблемы частично решаются на прикладном уровне написанием всяких костылей сериализаторов/десериализаторов, ринг-буферов деструпторов, фреймворков типа аки и прочим, но все равно обычно выходит говно
>>721616>не умеет в автоматическое распараллеливание чистого кодаИ тут внезапно неуловимо запахло борщом.
>>721616>не умеет в автоматическое распараллеливание чистого кодаА кто умеет? Где можно на это посмотреть?
>>721617Да каким борщем блять. Просто модель памяти в жам построена таким образом, что ни о каких распараллеливания на уровне вмки речи быть не может. Потому что в флагманском языке даже не задумывалась семантика для определения куска данных как иммутабельного или каких-то там чистых функций.Ну то есть какой нибудь компайлер скалы по идее может сгенерить явно параллельный код, так как в скалке то эта сематика есть, но всё это не так у просто, возможны множество багов и проёбов по скорости, т.к. не понятно как оно ляжет на вмку, особенно если в одной приле крутятся куски и явы и скалы.
>>721620>А кто умеет? Где можно на это посмотреть? Двачую. Ей богу качкель только свой не кидай.
>>721602Ну если он будет специально искать гитаристов использующих "Урал", чтобы прийти к ним на сходку, и долго рассказывать что они говноеды а "Урал" говно, то да.
>Скала тред>Фанаты JVM, слепленной чтобы на ней крутить Кобол нашего временимда, дожили
>>721620Сдается мне вы беседу с философским зомби ведете.
>>721620Основные плюсовые компиляторы (clang, gcc, intelcpp) хотя и достаточно криво, код получается не переносимый между ними и писать всё равно код нужно как мультипоточный, что-то слышал про хацкел.
>>721744Слышал он. Слышал звон, да не знает где он.Не мог бы уважаемый специалист указать поточнее - где можно посмотреть > автоматическое распараллеливание чистого кодас помощью> плюсовые компиляторы (clang, gcc, intelcpp)чего jvm>не умеет в ?
>>721791>с помощьюПишешь код без сайдэффектов, и смотришь как можно врубить автовекторизацию на твоём компиляторе в гугле.>чего jvmНе, вась, ты ебанутый или что? Жвм как не умела в фичи которые "просто работают" так и не умеет.
>>721825> >с помощью> Пишешь код без сайдэффектов, и смотришь как можно врубить автовекторизацию на твоём компиляторе в гугле.Ссылочку на пример пожалуйста
>>721832http://llvm.org/docs/Vectorizers.htmlhttps://software.intel.com/ru-ru/articles/automatic-parallelization-with-intel-compilershttps://gcc.gnu.org/wiki/AutoParInGCCСам ковыряйся и ищи примеры, ахуевший блять.
https://en.m.wikipedia.org/wiki/Automatic_parallelization_toolВ примерах куча тулз для си и фортрана.
>>721825Лично читал код jvm изучая какие конвеерные интринсики используются. Java умеет в оперативную трансляцию с использованием SIMD инструкций. Например http://bugs.java.com/view_bug.do?bug_id=6340864 Это если говорить про> автоматическое распараллеливание в таком контексте.Возможности конечно не те что у GAP и вообще у нативных платформ - но это уже и не про автоматическое распараллеливание.Eбанутый здесь ты маня. Охлади свой пыл, быдлан.
>>721841Но ведь это не распараллеливание.
>>721863Почему? Вполне себе распараллеливание - на уровне обработки cpu. Просто та маня чистоту кода приплела к чему - то и это могло ввести в заблуждение.
>>721878Но это оптимизация операций с числами, а не распараллеливание кода.
>>721863>Но ведь это не распараллеливание.>Automatic parallelization distributes sequential code into multi-threaded code. It automatically generates parallel (multi-threaded) code for specific loop constructs using the gomp library. >В дополнение к оптимизации кода высокого уровня, компиляторы Intel® позволяют проводить автоматическую параллелизацию с поддержкой OpenMP. При автоматической параллелизации компилятор находит циклы, которые могут безопасно и эффективно выполняться параллельно, и генерирует многопоточный код. OpenMP позволяет программистам выражать параллелизм с помощью директив компилятора и прагм С/С++.
>>721885Маня, сперва кумекай, потом кукарекай.
>>721854> Java умеет в оперативную трансляцию с использованием SIMD инструкций.>Eбанутый здесь ты маня. Охлади свой пыл, быдлан.
>>721904>>721906Т/е по существу дела - ничего? Отчего то я не удивлён.
>>721904> specific loop constructs > Many loops cannot be vectorized including loops with complicated control flow, unvectorizable types, and unvectorizable callsПодставляй ротешник.
>>721905Покумекал тебе за щёку.
>>721910Отчего-то я не удивлён гибгостью манямирка жяважывотного, который приплёл к автораспаралеливанию SIMD и начал кукарекать что его жэвээм умеет в это особенно учитывая что компилятор его языка настолько убогий, что любой синтасический сахар убивает нахуй перформанс. А потом пытается аккуратно слиться. переведя стрелки, но ты обосрался вась. Будь добр аргументировать, либо не толстей.
>>721917А ты чего ожидал? Что он вообще всё за тебя напишет? Может у тебя ещё статические анализаторы кода любые ошибки в алгоритмах ловят?
>>721922Распараллеливание кода это например когда произвольный код размазан на %колво_ядер_цп% потоков, аля параллельные коллекции, акка, и т.п., а здесь всего лишь пачки чисел обрабатываются особым образом (оптимизация байтоебства), про код и параллельность и речи не идёт.
>>721925О, SIMD-жывотное опять в треде. Ты как там? Норм с дцп живётся?
>>721917Поциент, никто в здоровом уме не пишет видеокодеки медиапроцессоры и тп на java.Ровно как у жабы есть своя ниша. Для оптимизации работы в которой, вендор реализует векторизацию, там где выигрыш может быть значителен (например работа со строками). Конечн, особо охочие товарищи могут на прикладном уровне использовать библиотеки векторизации - в том числе расчеты на gpu. Но это исключительное битоебство.Тебе указали на твою некомпетентность - ты продолжаешь лезть в конкретику - упоминая то, чего в жабе нет и не должно быть.Если ты это не способен понять - печально.
Есть ли в скале жизнь за пределами энтерпрайза? Прикладное, геймдев, веб?
>>721929Таблетки принял?>>721930Но ведь это ты кукарекаешь, что в жвм надо добавить магическое распараллеливание, шизик.
>>721929Я за того анончика. Или ты или другой анонас что - то мычал про чистый код - что дать впечатление о разговоре про параллельность за счет вычисления в отдельных потоках.В процессе выпытывания сокровенных технологий автоматической параллелизации - выяснилось что речь о конвееризации.За тем поциенту пояснили за то, что где её целесообразно просунуть - там она используется (в jvm).
>>721936>с что - то мСука, перестань ставить пробелы между тире для окончаний, у меня глаз заболел.>За тем поциенту пояснили за то, что где её целесообразно просунуть - там она используется (в jvm).Пояснили за акку и прочую еботу, автоматического разбора на потоки в "ванильной" жвм я что-то не нашёл.Сука, беседа утонула в 10 непонятных анонах, путающих друг друга с другими анонами. Ладно, идите нахуй, тут не реально ссать прямиком кому-то на ебало, я закругляюсь.
>>721941Читать научись, дурень, и следить за нитью беседы. Потом возвращайся за серебряной пулей автоматической параллелизации.
>>721933В вебе есть Play Framework например. На нем даже иногда фриланс какой-то можно найти. У него есть апи и под джаву, и под скалу.
А с чего лучше начинать учить Скалу?
>>723580С коре Ява хорстмана. Затем его же скала для нетерпеливых. Без кореявы в скале печально будет
>>723596А нафиг мне Джава если я Скалу учу =D
>>723601Толсто. Или пошел нахуй или учи яву пидор
>>723605Что за тупость если я хочу плюсы учить ты меня отправишь С учить? а если кложу тоже Джаву? или тебе Оракле проплотила чтоб их говно продвигать ?!?
>>723580С официальной документации
>>723685Да ну? а может еще скажешь где она а то как то я не додумался да этого, а может еще скажешь как поставить скалу? А если серьезно, читаю "Scala for the Impatient" если кто то знает что то еще годное кидайте
>>723611Дык он-то прав. Если ты нюфаг – лучше не смотри в сторону скалы, а иначе синтаксис особой роли не играет – самое главное это экосистема и тулкит, который весь явный.
>>723717>самое главное это экосистема и тулкит, который весь явныйВесь скальный тащемта
>>723717Ну я же не без знаний вкатился, пишу на другиз ЯП, на говна джаве не хочу писать (бывала дело писал на этой шняги, но знать не знаю) из за этого выбрал Скалу (мог кложу выучить или груви)
>>723790Всё зависит от задач: планируешь писать хуйлоад/искать работу на скале – всё равно нужно дрочить именно явовские контейнеры и прочее г-но, учишь "для души" – можешь вообще на императивщинуб хуй класть.
>>723702Ну вот и соснешь, когда дойдешь до контейнеров.
>>723849>писать хуйлоад/искать работу на скале – всё равно нужно дрочить именно явовские контейнерыДля хайлоада придется пидорасить байтики офф-хип, как байтослесари.
>>723790>на говна джаве не хочу писатьИ не нужно. Учить нужно JVM, библиотеки и тулы для неё, а не джаву, грубо говоря. Лучший способ изучать - написать маленький проект, тесты, метрики для него, побенчмаркать что-то.скалаёб-перекатился-из-сишарпа
>>724122Наташа?
>>724138Твоя мамаша)
>>724204Неа, она спит, я точно знаю.
Есть на скале какое нибудь шаблонное задание для новичков? В вебе вон твиттер пишут все начинающие. А на скале что?
>>724262Борду.
>>724262Твитор с Akka, Play, Slick ещё попробуй Apache Spark, Cassandra
>>724494>Apache Spark, Cassandra>задание для новичка>localhostЧота проиграл
>>724495Лучше уж сначала поковырять на локалхосте
>>724494в это кстати уже играл, хотя сам Спар не поднимал но вот Hadoop собирал, и потом ставил разные сборки
Читаю книгу с оп-поста, scala для нетерпеливых, и вот у меня вопрос мне можно всю книгу тестить примеры в REPL или перекатиться в какую ту IDE? Если да то какую?
>>727898Можешь без иде, там все задание - однофайловые. Но точно не в репле. Знаешь жаву?
>>727946Немного, а что?
>>649888Тинькофф, Qiwi делает потуги
>>727987Вернись в яву. Скала говно без будущего. В 9 явке закроют рефлексую и ансэйф и скалопидоры соснут
>>728104ява - болото без будущегодаже гугол вон ищет ей замену в своём ведроиде
>>728126Зачем искать если уже есть котлин? В гугле просто батруд от того что они не смоги придумать котлин.
>>728142Котлин никому кроме авторов не нужен, не говоря уже о крупных компаниях.
>>728126Вам сплетню какую-то скинули, а вы и взбудоражились кококок замену кококок.Еще неизвестно замена будет или дополнение, а может это вообще к NDK дополнение / замена. Если вообще что - то будет.Пока харчанин кукарекает о болоте, инженеры оракл в Штатах и России пилят value types и прочие нештяки.
>>728126Иди обратно на парашу, мартышка, ынтерпрайз вилкой чистить
>>728181вскукареки энтерпрайзовского петуха
>>728723Это я хотел этому >>728104 ответить
Продолжаю читать книгу с оп-поста, scala для нетерпеливых, и блять прям неебу почему вся книга все блядь все в REPL, это же нихуя не обьясняет лучше ебаный scaladocs чем блядь эта параша. А если серьезно то очень тяжело книга реально не подходит новичкам, только для перекотa с Java.
>>729833Вкатывальщик с нуля?
>>729833Что конкретно ты не понял?вкатывался с одним гуглом
>>729833Видосики Одерского на курсере посмотри.
>>729833Хорстман - это книга для переквалификации яваиндусов. Читай Programming in Scala 2nd Edition Одерского, или подожди до 10 мая, будет 3d Edition.
>>729865Почти
>>730468Дак я тоже пол книги читаю, пол гуглю
>>730502Спасибо
Есть hadoop-проектик на Pig. Стоит ли учить Scala и перекатываться на Scalding?
>>731133Да, а лучше сразу на http://spark.apache.org/
>>650182>Идиоматик скалаКстати, идиоматик Скала сходу в 10 раз проигрывает идиоматик Хаскелю. Причем, похуй, что там используешь, Списки, стримы, последовательности, в 10 раз - это на лучших из Скаловских структур, на остальных - еще хуже. А код на Хаскеле - самое тупое на базовой прелюдии, даже без попыток ручной оптимизации. Такие дела.
>>735505Кто тебе такое сказал?
>>650793В продакшен с этого.
Ну чо, вот о чём я писал где-то здеся месяцок назад.https://github.com/scala-native/scala-nativeДаже бенчмарк хэловорда дефолтный есть, лол.
>>743991Ох лол. Получается скоро скала даже кресты выебет?
>>743997Нет, лол. Кресты пытались сдвинуть десятки языков – все обосрались.Это так, возможность написать какую нибудь десктопную/системную хуитку если у тебя основной/любимый язык скала.
>>743998Ну, главное можно будет проворачивать крестоблядей на хую в олимпиадка-тредах
>>744001В олимпиадка-тредах они тебя сами перевернут на хуе за лишнюю 0.1 мс.
>>744007Скорее порвут свой пердак от функционально-декларативного кода, заместо портянок. Сейчас рвутся и кукарекают что идеон показывает 300 метров сожранной памяти.
Кто следил за скала дэйс? Что там за история с скала.макро ?
>>743991Нет слов. Ну охуеть теперь.
У кого-нибудь есть курс по скала от Головача?
В скалу без джавы есть смысл вкатываться?
>>756209Тогда есть и смысл сразу с хачкелля начинать - только будешь чувствовать отвращение от убогости скалы.
>>744008Я тебя сейчас расстрою - этот компилятор точно так же написан на скале (как и оригинальный) и жрать будет точно столько же.
>>756430А скала уродливая пародия на эту хуйню.>>756432Прочитай сначала пост на который я отвечал. И нет – имеет.
>>756435>яскозалЯсно
>>756461>пукпук абида
>>651909Годно, схоронил.
>>756572>мааам, ну чо он скалу абсираит???>ну скожи иму что он парвался)))
>>756575>борщехлёб прадалжаит тралить)) нинад))
>>756577>этот запах свежих монад со вкусом земельки
Аноны, помогите достать пдфку Programming in Scala 3rd edition
>>756948Ну пиздос, вышла книга пол месяца назад, а нищий и наверное еще и тупой двачер уже хочет ее спиратить.
>>757002У меня денег нет на книгу, так бы купил
На скале вообще что-нибудь авесомное в последнее время появилось? Скажем, после спарка. Ппц, в 2011-2012 годах было просто взрывное развитие, хайп-хайп, писали всё подряд, а сейчас все стухло. Все уныло задрачивают плей и акку штоле? И язык не развивается нихуа... Пищаль.
>>757169В Scala ты либо на передовой дрочишь Cats, Shapeless, spire, scalaz и прочий typelevel с остальными функциональщиками, либо деградируешь в Enterprise Quality™ с жаваиндусами. Судя по тому, что ты не видишь никакого развития с 2012, ты относишься ко вторым, и тогда справедливый вопрос - откуда твои претензии? Перечитай ещё разочек GoF, Patterns of Enterprise Application Architecture, бери котлин и еби мозги.
>>757366Тогда возникает вопрос: нахуя нужна Скала, если теперь это ещё один академический ЯП не использующийся в продакшене?
>>757446Нахуй не нужна.Говно ебаное тормозное.Есть груви, кложур и ява.Остальные джвм языки ненужная хуита
>>757446Всмысле ещё один? Первый и неповторимый. Точнее первый настолько кривой академический язык, что даже в энтерпрайз пролез.>>757366>ты либо сосёшь хуй спонсору, и надеешься что завтра бывший тайплевел не пошлёт тебя жрать грязь из под ногтей>либо мамакишьствуешь за стабильную едуТрудный выбор скалаиндусов.
>>757366> ты либо на передовой дрочишь Cats, Shapeless, spire, scalaz и прочий typelevelВся эта мандула еще четыре года назад была.
>>757756А Scala ещё в 2003 году была и что?
>>757807В 2003 было маня поделие, "коммерческая" скала с тайпсейфом и яхтами Мартина началась только в 2011.
>>758230Ну вот и претензии что тайплевел либы были ещё 4 года назад - туда же.
>>735505Пруф пожалуйста
>>758437Нахрен они не нужны. Лучше бы писали удобные либы для разработки реальных приложений, а не эти зигохистоморфные препроморфизмы.
Посоны, есть у кого-нибудь Programming in Scala, 3rd edition, бесплатно, без СМС? В гугле не нашёл.
К слову, lichess.org написан на Scala.sources https://github.com/ornicar/lila
>>758709Так тогда и скала не нужна, какой нибудь котлин со всем сахарком для таких целей подойдёт куда лучше как better java, чем скала, изначально проектировавшаяся как жвм хаскелль.>>760432Иии... Чо?
>>760434> ко-ко-котлин > скала, изначально проектировавшаяся как жвм хаскелль.Что простите?
>>760589>бе-бе-беттер жяваТы не ослышался. Весь сурьёзный продакшин и хуйлоад написан на скале которая именно "беттер жява", т.е. возможности скалы не использованы и на десятую часть. Вопрос – нахуя использовать богатый язык, не используя все его фишки где богатость синтаксиса только помогает ошибиться макакам.Тот же котлин – жява в которой реализованы все новые хотелки, без кучи ненужной (или немодной?) хуйни.
>>760642Весь продакшене написан на спринге или ЕЕ. А ссаную костылепидорскую скалу засунь себе в анус пес.
>>760666Тинькофф с любым еу банком ссут тебе на ебало.Ах, да, чистая жява – на ней как раз вся инфраструктура сбербанка, который на нг по 3 недели деньги переводил. Мб гц работал?
>>760670Ты ебанутый?Ебанутый
>>760681>я скозал
https://ideone.com/hXP3XFЕбать, какой же ахуенный язык, я прям кончил пока угорал.
>>760807>8 строк>0.28s 322368KB Энтерпрайзно.
>>760909Ты, блядь, на вывод посмотри – вот где весь фэйл.
>>760434> чем скала, изначально проектировавшаяся как жвм хаскелль.Скала проектировалась как идеальный гибрид ООП и ФП, с компромиссами в обе стороны. А жвм хаскелль есть, называется Frege.
Поясните-ка, что такое Spark. У меня есть задача, которая сводится к «сделай кучу однотипных запросов средней сложности к ридонли реляционке и профильтруй/примени некоторые методы анализа данных к выбранным нереляционным уже данным». Сейчас оно реализовано именно на реляционке, но я понимаю, что даже на тестовых объемах данных оно загибается. Поможет ли мне Spark?
>>761024Уточню что основная работа деляется в обработке реляционных данных. Все прочее можно считать хоть скриптиком на пистоне. Это не реалтайм, считается несколько раз в день и складывается в другую БД/хранилище для посчитанных результатов, откуда пользователи могут выбирать результаты.
>>761027И да, базка не совсем ридонли, но обновляется она раз в сутки (сейчас 5-6 Гб/день).
>>761001>42, а не 10>матчпаттеринг падает с эксепшеномЧо ещё скажешь?
>>761003Так этот компилятор точно так же на оригинальной скале написан, никуда не денутся 300мб при компиляции хэловорда.
>>761001В нормальном современном языке ожидается, что неполные паттерны приведут к ошибке компиляции, а не эксепшену.http://try.haxe.org/#3218b - нажми 'build + run".
>>761003> @struct stackalloc[Vec] stdlib.malloc1. Это уже другой язык.2. Пилит его один студент Дима, так что будущее туманно.3. Без жвм скала мало кому нужна.
>>761053Вообще, матчинг вполне себе полон - матчатся все возможные варианты опшена. От нормальных языков ожидается его спокойное прохождение, или хотя бы ошибку компиляции, как ты сказал.http://ideone.com/MM0Zm8 - ржавыйhttp://swiftlang.ng.bluemix.net/#/repl/575263cf641e65e70fb09aa9 - свфитhttp://ideone.com/ugKxRW - окамл (лол, да)Кароче, думая вы поняли мой посыл. скала говно, гы
>>761061>Вообще, матчинг вполне себе полонНихуя не полон, переданное значение не удовлетворяет ни одному условию.>>761053>что неполные паттерны приведут к ошибке компиляцииЭто неудобно нихуя же. В нормальных языках как раз принято писать что-то типаok, Socket = db.connect();это неполный матчинг, но как бы и ожидается иксепшн если соединения нет.
>>761064>Нихуя не полонОно для этого типа может быть либо some(hui), либо none. Само значение проверяется уже вне матчинга, если ты не заметил.
>>761064>писать что-то типаНе говори про своё Говно "нормальный язык", плез.
>>761067Гуарды в матчинге - часть матчинга вообще-то. https://ideone.com/9rlaKN
>>761069{ok, Socket} = connect(Db).
>>761070так язря говном истекаю здеся, лол>>761071Нет, вась, в эрланге в отличие от говна так не делают.
>>761064>неудобноУдобно. Добавил одно значение в тип, который матчишь - получай подсказку от компилятора, где надо поменять, чтобы заработало.>это неполный матчингЭто полный матчинг. Ты матчишь тупл и получаешь его компоненты. И какой тут нахрен может быть эксепшен, если ok явно возвращается?
>>761074То-то Джое в каждой книге пишет "Don't programming defensively" и призывается писать только happy case код.
>>761076>Это полный матчингНет конечно, только один варик описан, а возвращать db.connect() может ok, Resulterrorerror, Codeerror, Code, Info>>761076>Удобно. Добавил одно значение в тип, который матчишь - получай подсказку от компилятора, где надо поменять, чтобы заработало.Ты не понял. Специально добавляется только хэппи кейс. Потому что при нормальных условиях ожидается только он. Остальные - исключение.
>>761079Я, наверное, и правда что-то не понимаю.Есть функция describeBodyPart: BodyPart -> String, и тип BodyPart = Head | Ass | Hand. Теперь добавим к типу Leg и получим ошибку компиляции. Чем это не хэппи кейс?>а возвращать db.connect() может Какое же говно в голове у тех, кто это дизайнил.
>>761080Мне лень с тобой спорить по этому поводу, если интересно сам подумай. Всё что я хотел сказать, что в скале/эралге/хаскеле/кложе паттерн-матчинг работает одинаково и везде при захуяривании unexpected значения в неполный матчинг тебя ждёт иксепшн в рантайме.
>>761086А я пока и не спорю. Пока я пытаюсь понять, что ты имеешь в виду под "хэппи кейс", и почему под него не подходит мой пример с бодипартами.>везде при захуяривании unexpected значения в неполный матчинг тебя ждёт иксепшн в рантаймеПроблема только в том, что это анэкспектед значение большинство старается не допустить. Тот же окамл обсирается только, когда в дело вступают гварды. В хаскиле тоже что-то такое, вроде, было.Алсо, в огромном количестве языков вообще динамическая типизация. Подумай над этим, ага.
>>761098Могут не совпадать степени уточнения типа в функции и матчинга внутри неё. Более того, матчинг может оперировать не только типами, но и конкретными значениями. Не знаю что там в верблюде, я так понял с твоих слов, что на матчинге по конкретным значениям/типам там нужно прописывать все варианты/или использовать _ , задавая для него какую-то дефолтную обработку. Иметь дефолтную обработку для "всего стального" иногда удобно, а иногда нет. Описывая только хэппи кейс, ты отделяешь код по обработке исключительных ситуаций от бизнес логики, используя же дефолтные обработчики, ты по сути включаешь этот код в бизнес логику. Во-вторых, описывая только хэппи кейс, ты можешь абстрагироваться от размышлений о типах исключительных ситуаций и попыток их все предотвратить. Если у тебя компилер заставляет описать все значения в матчинге, то единственный способ отложить изучение исключений на потом, это хуярить заглушку. То есть для ситуаций A, B, C - нормальные виды поведения, а D - ошибка, действительно удобно описывать всё, но для ситуаций A - нормальное поведение, но B, C, D и ещё хуй знает сколько вариантов - исключительные, удобно использовать в матчинге только обработку А, а на все остальное забить и обработать где-то выше в трай-кетче, супервизором, процессом-монитором и т.д.Во всяком случае в идеоматичном Erlang подход именно такой, так как там прилы по-дефолту конкурентные с овердохуя процессами, и какой-то иксепшн в одном из них не значит по большом счету ничего. Для однотредовых систем это может быть не оправдано, да. В Scala же, неполный матчинг сделан скорее по той же причине, что и возможность создавать частично определённые функции, чтоб потом чейнить их через orElse и тому подобное.http://goo.gl/7Boe2ihttp://goo.gl/r0N8PvНе знаю, какие причины в Haskell, там действительно есть ключи компилера, чтоб проверить Non-exhaustive patterns. Основная причина, скорее, это нелюбовь к catch-all предикату, из-за которого, как раз твой предыдущий пример, с проверкой на новый тип не работал бы, но который тем не менее приходится применять, если тебя заставляет тайп-чекер. http://goo.gl/syJPvR
>>761237Неполный матчинг там сделан из-за того, что exhaustiveness check сделать все равно нельзя.По сути, матчинг — это обертка над instanceof с некоторыми хаками для примитивов/кейс-классов.
>>761229>Найс маневрЕбанашка, а что по твоему показывает ideone? мне кажется явно не память необходимую для работы, лол
Объясните, что не так, пожалуйста.https://ideone.com/K25BWd
>>761292Если второй слэш убрать, то норм, но тогда у меня у IDEA батхерт.
>>761261Память, занятую программой, даун. JVM резервирует 300 метров вне зависимости от потребления
Какой фреймворк сейчас стандарт в скале, как спринг в жаве? Play? Spray?
>>761664scalaz
>>761332А ещё 30мб на хэловорлд?
>>761664Play + Akka. Это даже почти так же уныло, как спринг.
>>761873Что значит "уныло"?
>>761888В каждой шутке есть только доля шутки, такие дела..
>>633151 (OP)Что обычно пишут на скале?
>>762371Ты у нас магистр хеллоуворлдов.>>762807Энтерпрайз/веб, бигдата.
>>762828Уважаемый дебил! Тот анончик весело и ненавязчиво пошутил, что Вы обосрались c оценкой в 300мб. С наилучшими пожеланиями, мимо крокодил.
>>762828Поссал на манямирок энтерпрайз веба на скале. Лечись уебан.
>>761055>Пилит его один студент Дима, так что будущее туманно.А скалу пилит Одерски с кучкой студентов, разницы не слишком много.>>763400Тут выше уже был аргумент про банки и прочее.Лечись уебан.
>>763379Обосрался даун, не слышавший про округление.
>>764305Продолжай округлять на порядки, лол. Погроммист-рыбак будет учить меня на дваче.
Тут Барух обоссывает Scala и говорит, что скалоебные компании перестают заниматься скалоебством и начинают жить: https://habrahabr.ru/company/luxoft/blog/302668/Оправдывайтесь.
>>765891>тут две ынтырпрайзные джява-мартышки не осилили скалу, одна со смешным именемЧто тебе не ясно? Там прямым текстом написано>для Enterprise-хардкора, чтобы гнать код в продакшн, он не подходит, потому что сложен для разработчиков, которые решают реальные бизнес-проблемы"Мартышки не осиливают, пок-пок сириус бизнес, лучше наймём ещё десять индусов"
Давайте перекат.
>>765891Барух - это который профессиональным клоуном на конференциях выступает?Помню, помню изумление от просмотра на ютюбе какого-то доклада на тему то ли Spring Puzzlers то ли Groovy Puzzlers. Изумление как с другим клоуном они с какой то извращенной гордостью обсуждали велосипедствования, от которых их давно бы стоило гнать ссаными тряпками из индустрии.
>>765959Ну он так и говорит, что годный академический язык, но сложнее Джавы и не дает прям таких киллер фич, поэтому тырпрайз ебал его и уходит с него.
>>766088Не уходит, а _не переходит_, потому что мартышкам за 1$ в час больно без знакомых ПАТТЕРНОВ в жопе, и киллер фичами они воспользоваться не могут в виду того что они не разработчики а тырпрайз мартышки.
>>766102Проще говоря, Scala нахрен не нужна никому, кроме изучивших Scala разработчиков.
>>766102Ты хочешь сказать что Твиттер _не перешёл_ на Скалу? Или может всё-таки _ушёл_?
>>765891Хуйню какую-то несёт про Скалу.В 8ой жабе появились лямбды - Скала закономерно пошла нахуй.
У вас БАРУХ.
>>766298> В 8ой жабе появились лямбдыМожет, кроме блямб еще и паттерн-матчинг, иммутабельность, алгебраические типы, вывод типов завезли? Ну тогда...
>>766499Вот - вот, чувакам синтаксического сахара к анонимным классам завезли, а они уже на радостях в штаны припустили.А вывод типов кста обещают - лет через 5.
Наскальные сектанты, а напомните что вне России из серьезного использует скалу.
>>766178Тебе точно не нужна, не отвлекайся от РЕАЛЬНЫХ БИЗНЕС ЗАДАЧ и абстрактных фабрик бобов.>>766297С чего бы ему уходить, фантазер?
>>766888Ты так и не ответил кому нужна, кроме изучивших Scala разработчиков?> абстрактных фабрик бобовА что плохого в абстракциях? Хуячим по-хардкору сразу реализации и сильные связи между реализациями компонентов? Ведь главное написать и продать, а какой лох потом будет все это поддерживать или расширять функциональность не ебет?
>>766550Вне России - конечно никто, только в Сколково жулики и воры Twitter и Foursquare пилят на ней бюджет.
PEREKOThttps://2ch.hk/pr/res/767431.html
>>766499> иммутебальностьЧё-то кекнул со скалодебила. Как будто в Скале иммутабельные коллекции - это дефолт.И да, никто не мешает использовать в Джаве хорошие иммутабельные коллекции из Clojure. Они, в отличии от скаловских, реализуют интерфейсы стандартной библиотеки и их реально можно вызывать из Джавы.
>>766524Вывод типов как бы уже есть в некоторых случаях.
ВНИМАНИЕ!ауе, братульцы!будте аккуратней не встряньте в хуй пойми какие негодные проекты в банках типо Т и С на скале и спарке. проекты конина блядская.предупрежден - вооружен.
>>770830Как будто в банках бывает не говно.