Программирование

Ответить в тред Ответить в тред
Scala #2 /scala/ Аноним 05/09/20 Суб 18:53:59 17981681
image.png 31Кб, 493x202
493x202
image.png 364Кб, 1920x1200
1920x1200
Scala сочетает объектно-ориентированное и функциональное программирование в одном выразительном, высокоуровневом языке.
Система типов Scala позволяет избегать ошибок в сложных приложениях, а рантаймы для JVM и JS позволяют строить высокопроизводительные системы с удобным доступом к огромной экосистеме библиотек.

Q: Какой стэк библиотек взять?
A: cats, http4s, doobie, circe, ZIO

Q: Какие либы НЕ брать?
A: play, izumi, tofu, джавовые фреймворки

Q: Хочу Java without semicolons
A: Обрати внимание на Котлин

Q: Хочу угорать по функциональщине и теории категорий
A: Посмотри на Хаскелль
Аноним 05/09/20 Суб 18:56:33 17981712
Аноним 06/09/20 Вск 18:26:49 17988963
>>1798168 (OP)
>рантаймы для JS
Кому нужона скала на фронте?
И что там с компилятором, очередные свистоперделки поверх гугловского кложура? Он еще поддерживатеся вообще?
Аноним 06/09/20 Вск 18:32:11 17989034
>>1798896
> Кому нужона скала на фронте?
Из отечественных юзеров "Мой Склад" использует (по крайней мере использовал год назад) для электрон-приложения

> Он еще поддерживатеся вообще?
Вполне. Почти все популярные библиотеки адаптированы для работы со scala.JS
Аноним 06/09/20 Вск 21:43:23 17990715
>>1798168 (OP)


> Q: Какие либы НЕ брать?
> A: play, izumi, tofu

А что с ними не так?

> Q: Хочу угорать по функциональщине и теории категорий
> A: Посмотри на Хаскелль

Да ты ж ебанутый.
Аноним 07/09/20 Пнд 21:16:28 17998966
Ребят, кто димсола и кота в овощной кидает?
Аноним 07/09/20 Пнд 22:12:49 17999627
>>1799896
У шизика совсем крыша потекла я смотрю. Своих одноклассников в треде ищет.
Аноним 07/09/20 Пнд 22:58:44 18000058
Аноним 08/09/20 Втр 00:19:04 18000869
>>1799962
В Москве есть замкнутая тусовочка Scala-разрабов из желтых банков.
Их особенность в том, что это такая самобытная секта - они пилят собственную библиотеку эффектов, и не замечают происходящего в коммунити за их пределами.
Короче, каноничные борщехлебы, только сидящие не на шее у мамки, а каким-то образом пробравшиеся в отделы разработки банков.
Аноним 08/09/20 Втр 07:23:42 180019210
>>1800086
>Пробрались в банки
>Борщехлебы
Поражаюсь твоему отрицанию реальности.
Аноним 08/09/20 Втр 10:16:19 180031111
>>1800192

Объективно, с точки зрения норм работодателя они пойзонус емплоерс, втащившие свой матан на прод и локнувшие этот прод на необходимость искать редких академиков с матаном головного мозга вместо индусов.
Аноним 08/09/20 Втр 12:27:02 180045212
>>1800311
Значит они няши и сделали всё правильно.

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

Я сам занимаюсь подобной деятельностью и веду активную агитацию на местах.


мимо-фп-партизан
Аноним 08/09/20 Втр 12:28:13 180045413
>>1800452
> умных людей
Лол, нет, такие же долбоёбы, только залифтили representableK монады себе в очелло
Аноним 08/09/20 Втр 12:37:27 180046514
>>1800454
>вумники очки напялили сидят со своими мандадами, ни то что мы простые макакены чисто на спринге и не паримся еее)
Ммм, эта боль копчёного.
Аноним 08/09/20 Втр 12:45:00 180047115
>>1800465
Чини детектор. Я не против ФП, я против того как эти долбоёбы наворачивают trait Transfer[T[_[_]], Link[_[_]], _[_]], Constraint[_[_]]]. Это реальный пример если что.
Аноним 08/09/20 Втр 20:54:01 180109016
>>1800471
А что тут сложного, и похожего говно и в джаве много
Аноним 08/09/20 Втр 21:03:04 180110117
>>1801090
Давай, объясни сходу, что это за тайпкласс, какие у него laws и как его лучше применять
Аноним 09/09/20 Срд 02:30:44 180131618
сугакпорицает.jpg 53Кб, 599x500
599x500
>>1801101
Главный laws это то, что у твоей мамы ты родился не очень умным. Это обычный обычный трейт с тайп параметрами.
Аноним 09/09/20 Срд 19:37:53 180199319
>>1800311
Не в курсе что именно они там делают, но что именно ты назывешь матаном? Любую абстракцию? Так почти любая библиотека и особенно фреймворк в любом языке дает тебе свои абстракции.
Кто такие академики? Люди, способные осилить эти самые абстракции? Все программисты этим занимаются каждый день ну уж точно когда приходят на новый проект.
>>1801101
Странно высрать рандомную строчку внутреннего кода и требовать по ней понять то что ты просишь. Тот анон наверное имел в виду что эта конкретная строчка понятна - есть какая-то передача данных, видимо но каналу с началом и концом и какими-то ограничениями. Все это параметризировно по типу эффекта, скорее всего, но сказать сложно без контекста проекта. Еще для меня не ясно что такое тип T - тип данных для передачи или что? Могли бы и попонятнее назвать.
Нужны ли эти абстракции и качственны ли они - другой вопрос.
Аноним 09/09/20 Срд 20:41:38 180203420
>>1801993
> рандомную строчку внутреннего кода
Это не внутренний код, это абстракция которую эти пацаны запихнули в библиотеку. Предлагая понять, что это такое, я и намекал что это какой-то частный случай, который они пытаются выдать за нечто общее и абстрактное.
Так что мой пойнт как раз в том что
> Нужны ли эти абстракции и качственны ли они
Аноним 09/09/20 Срд 22:10:29 180214421
>>1802034
Дай ссылку на код, по одной строчке сложно понять качество. Может там scaladoc на 50 строчек над этим определением.
>это какой-то частный случай, который они пытаются выдать за нечто общее
Ты же понимаешь что наверное о чем угодно можно сказать "это частный случай чего-то более общего". Монада - частный случай моноида, если что. Ты о "матане" точно в негативном ключе говорил?
Аноним 10/09/20 Чтв 11:14:51 180245922
>>1802144
Расскажите, зачем дрочить монады и дырки, когда 3/4 вакансий на Scala - это неумелый пердолинг в "большие данные" на Apache Spark, а остальная четверть это дрочь акторов или какого-нибудь плей фреймворка?
Аноним 10/09/20 Чтв 11:16:07 180246123
>>1802459
Чтобы такие недоучки как этот >>1800452 могли потешить ЧСВ и сказать "смотри мам математика"
Аноним 10/09/20 Чтв 11:41:48 180247824
>>1802461
Но ведь я серьезно. Я листаю вакансии и чистые бекенд позиции это чья-то не очень удачная попытка запилить проект на малораспространненном стеке, когда на том же Spring это делается на раз-два, а разработчиков на несколько порядков больше.
Аноним 10/09/20 Чтв 17:43:40 180278925
>>1802459
Люди дрочат монады и дырки потому что им нравится теоркат. Я, например, ничего не дрочу, а просто использую абстракции по мере необходимости.
>>1802478
Научишь удачность проекта по тексту вакансии определять? Дай угадаю, алгоритм такой: есть скала - проект неудачный.
Аноним 11/09/20 Птн 20:53:12 180390126
>>1800311
Ну значит рано или поздно их выкинут на мороз и наймут индусов за три копейки, чтобы переписать все на шарпе/джаве.
Аноним 11/09/20 Птн 21:14:12 180392727
>>1800452
>Потом ещё спасибо скажут.
За что? Программист -- это commodity, дешевый расходный материал. Неважно на чем он пишет - на скалке или пыхе.

Главное, что двигает ИТ иднустрию - наличие большого количества дешевой рабочей силы. Если вдруг кодерки станут элитой, то это замедлит прогресс
Аноним 11/09/20 Птн 23:32:14 180403928
>>1800452
Элита программистов должна сделать такие тулзы и языки, чтобы даже тупые макаки могли бы делать что-то работающее и полезное, пользуясь ими.
Аноним 12/09/20 Суб 01:07:34 180408929
Аноним 12/09/20 Суб 01:36:53 180410230
>>1804089
Нет не мне. Я-то как раз Элита. Можешь мне поверить.
Аноним 12/09/20 Суб 05:35:58 180414231
Есть реальная возможность вкатиться в скалу если до этого только на жс и реакте работал? Или лучше бросить эту идею и взять что более приземлённые типа го?
Аноним 12/09/20 Суб 05:58:35 180414332
>>1804142
На Гоу ты хотя бы работу сможешь найти и вкатиться с JS на нее будет проще простого. На Скалу ищут только опытных разработчиков, которые до этого работали Java программистами.
Аноним 14/09/20 Пнд 09:42:09 180588133
Сап, скалолазы. Какие книги топ по скале? И стоит ли сейчас её изучать или дождаться уже третьей версии (слышал она будет примерно в конце 20го года)
Аноним 14/09/20 Пнд 10:52:07 180593034
>>1805881
>третьей версии
Она уже готова на 95%, но из литературы только дока и хуй вместо вменяемой поддержки IDE. Но если сильно интересно, то можешь взять Dotty и ковырять прямо сейчас. Лично я уже около года балуюсь дома.

Но учти что разница между ней и прошлой версией, это как между Perl и Perl 6 - почти другой язык.
Так что учитывая слоупочную специфику эволюции скаламирка, на тройку можно забить ещё на пару лет минимум, если ты не энтузиаст early adopter.
Аноним 15/09/20 Втр 06:26:15 180695335
>>1798168 (OP)
Как лучше всего взаимодействовать с реляционными СУБД из Scala? Slick мертв и "поддерживается" пользователями, которые только новые ишью создают в трекере. Doobie завязан на одного человека, который сейчас вообще ушел в какой-то экспериментальный проект по написанию драйвера для PostgreSQL. Quill? Но это только DSL для написания SQL запросов. Т.е. исполнять их должен какой-нибудь Doobie. JOOQ? Так он вроде для Java/C#, т.е. Scala там даже и не пахнет.
Как люди работают с базами данных из Scala?
Аноним 15/09/20 Втр 17:15:19 180739136
>>1806953
doobie норм работает, мы его во всем новом подключаем (но у нас не оч сложные схемы, просто локальный сторидж без джойнов), scalike, да и любая стабильная java-либа с небольшой оберткой подойдет, на самом деле.

>>1805881
можешь пока не переживать за дотти, учи что есть.
топ книги - functional programming от создателя (не обязательно целиком), от него же курсики по fp на курсере, scala for the impatient (чуть устарела вроде), твиттеровские ресурсы какие-то были неплохие.
Аноним 15/09/20 Втр 17:17:02 180739637
>>1804143
> На Скалу ищут только опытных разработчиков, которые до этого работали Java программистами.

вкатился когда-то на первую работу скалистом-джуном, 0 опыта работы, так что это как минимум не невозможно, как в общем - хз.
Аноним 15/09/20 Втр 17:45:41 180742838
>>1807391
>functional programming от создателя
Если ты имеешь Functional Programming in Scala, то ее писал не Мартин, а Рунар. Книга так себе, если честно. Начиная с 7 главы повествование идет в очень сумбурном стиле. Есть Functional Programming Simplified от Alvin Alexander - там по сути тоже самое, только написано более простым языком и примеры чуть ли не на пальцах разбираются.

>от него же курсики по fp на курсере
Курсы от Одерски по FP на Scala - это по сути передранный учебник SICP, где примеры кода и задачи переписали на Scala сo Scheme. Курс очень посредственный, если что.

>scala for the impatient (чуть устарела вроде)
Довольно таки бодрая книжка. Сложно сказать, что-нибудь плохое про нее.
Аноним 15/09/20 Втр 17:48:20 180743139
>>1807391
>doobie норм работает
Меня пугает то, что его разрабатывает один челик. Над сликом пахало целая команда, которая сидела на зарплате у Lightbend, но его это не спасло.

>да и любая стабильная java-либа с небольшой оберткой подойдет, на самом деле.
На сколько это Scala-way? Если писать обертки поверх джавовых библиотек, то можно ведь и головой двинуться. Одно дело, если ты используешь какую-нибудь Akka, из которой футуры торчат, а если ты на котах или зио пилишь бекенд?
Аноним 15/09/20 Втр 18:04:13 180745140
>>1807431
IO.fromFuture(IO(здесь твоя фйюча))
Аноним 16/09/20 Срд 00:29:04 180774241
>>1807428
Перепутал книгу Одерски и the red book видимо. Я говорил про первую, красная книга по желанию. От Александра не читал, думаю норм.

Курс мне когда-то зашёл как начальная точка, не жалею, что посмотрел, но для опытных конечно есть лучшие варианты.
Аноним 16/09/20 Срд 05:37:01 180787442
>>1807742
>книгу Одерски
Ну, это же типичный справочник по языку. Читать его скучно и там не разбираются ни типичные архитектурные приемы ни паттерны при работе на Scala. Красная книгу рекомендуется читать как введение для котов. Хотя я не уверен, что описанные там практики помогут тебе при работе с той же Akka, например.

Аноним 16/09/20 Срд 07:22:05 180789843
image.png 5Кб, 264x143
264x143
Аноним 16/09/20 Срд 07:27:44 180789944
Аноним 16/09/20 Срд 07:29:33 180790145
>>1807899
Ну то есть как многие опенсорс продукты, которые пилятся коммьюнити?
Аноним 16/09/20 Срд 07:35:51 180790246
>>1807901
За крупными опенсорс продуктами обычно стоят крупные конторы на вроде VMware, JP Morgan, Apple, Twitter, Google и другие. И ключевые мейнтейнеры таких проектов либо работают в таких компаниях, либо наняты в виде внештатных работников. В любом случае - это люди на зарплате, которые пашут стандартную 5-дневку, где пилят "опенсорс проект, которые разрабатывается коммьюнити".
Аноним 16/09/20 Срд 22:46:52 180856947
>>1807874
> Хотя я не уверен, что описанные там практики помогут тебе при работе с той же Akka, например.
Всё верно, чтобы узнать акку, нужно работать с аккой, чтобы освоить коты - использовать котов как можно чаще.
На моей практике вообще красную книгу стоит читать после некоторого опыта использования котов в реальном коде, а не наоборот.
> Ну, это же типичный справочник по языку. Читать его скучно и там не разбираются ни типичные архитектурные приемы ни паттерны при работе на Scala.
Мб, что бы сам посоветовал?
Аноним 17/09/20 Чтв 05:45:02 180871948
>>1808569
>Мб, что бы сам посоветовал?
Essential Scala
Аноним 17/09/20 Чтв 17:19:01 180916549
>>1803927
>Главное, что двигает ИТ иднустрию - наличие большого количества дешевой рабочей силы.
Только если называть движением повышение скорости высирания стартапного забагованного говнища, про 95% которого никто никогда не узнает, кроме заказчика и команды разработки. А те 5% что взлетят - или рухнут позже под тяжестью говнокода, либо не рухнут, но говном от этого быть не перестанут.

opinionated нытьё ↓ как будто остальной пост не opinionated нытьё, хех
Насмотревшись 10 лет назад на успехи популярных соц.сетей, людишки уверовали в мантру "пока в Вилариба выдрачивают код, в Вилабаджа уже зарелизились и фиксят баги". В целом логика правильная: во всех соц.ориентированных продуктах качество даже не на третьем месте, а главное - это захватить ресурс (людишек) и отхватить как можно больше. В итоге, если не получилось - отбиваемся минимальными затратами, а если получилось - конкуренты могут выпускать хоть в десять раз более качественный аналог, он нахуй никому не будет нужен, потому что в соц.продуктах - главное не сам продукт, а пользователи, вернее их количество. Фейсбук по сей день остаётся убогим говном, пользоваться которым невозможно без рвотных позывов, но все там сидят, потому что там все сидят. То есть даже при коммерческом успехе продукты остаются дырявым и забагованным, поэтому лаги, ошибки, слив юзер данных и прочий абьюз багов - вещь повсеместная, независимо от крупности компании. А выпуск новой версии в которой всё будет сделано правильно произойдёт в том дне, который не наступит никогда, а в том что наступит выпустят скорее свистоперделки для подогрева интереса юзеров, такие же забагованные и прикрученные сбоку на костылях.
Так как подавляющее большинство новых продуктов - тоже социальные, то вся эта история повторяется вновь и вновь, и самое печально, что оно задаёт тенденцию и влияет на другие области, например, на продукты ориентированным на бизнес, где вся эта спешка в общем-то ни к чему


Интересы буржуйчика и качество софта - вещи ортогональные, иногда они совпадают, чаще - нет. Но вот интересы людей в целом - иметь качественный софт.
Я не против, чтоб всякий MVP хлам на выброс клепала индусня на питоне и гоу, но разработкой полезного прикладного софта для людей должны заниматься как минимум умные люди, которых ныне в IT сфере страшный дефицит.
Аноним 17/09/20 Чтв 18:22:11 180923050
>>1809165
>разработкой полезного прикладного софта для людей
Это какой-такой софт ты называешь "полезным" и "для людей"?
Аноним 17/09/20 Чтв 18:24:01 180923251
>>1809165
>про 95% которого никто никогда не узнает
Достаточно посмотреть где используется всеми ненавистный Spring и какие проекты на нем реализуют, чтобы понять, что не обязательно дрочить анус котами и плакать кровавыми слезами из-за того, что ИДЕЯ код краснит, чтобы выдавать продукт, который будет приносить радость пользователям, а тебе - деньги.
Аноним 17/09/20 Чтв 18:39:54 180924652
>>1800471
Ты уверен, что второй тайп аргумент `Link` правильный? _[_]

Это разметка съела часть типа?
Аноним 17/09/20 Чтв 18:45:15 180925453
>>1808719
Да, читал её, отличная. По-моему оттуда же книжка про Cats стоит прочтения.

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

> какие проекты на нем реализуют
какие?
Аноним 18/09/20 Птн 05:16:12 180971854
>>1809254
>идея уже давно почти не краснит код
Возможно ты не пишешь ничего сложнее хеллоуворлдов на пару строк, поэтому и не видишь всего того пиздеца который происходит при работе над крупным проектом.
Идея может краснить корректный код или не подсвечивать некорректный. Может валить эксепшенами и жрать память гигабайтами. Я все время порываюсь перейти на VS Code + Bloop, но меня быстро отрезвляет тот факт, что VS Code обычный текстовый редактор, а Bloop - не более чем очередная поделка Scala Center, где студенты Одерского осваивают гранты.

>Самое уродское, что есть в scala-мирке - sbt
К сожалению, ничего не изменится в ближайшее время. Всех все устраивает и все считают, что sbt - это путь Scala.
Очень жаль, что при разработке sbt, разработчики не ознакомились с такими проектами как Maven или Gradle, где банальные вещи делаются интуитивно и буквально за минуту, когда как sbt с самого начала начинает тебя грузить какой-то эзотерической хуетой и рассказывать как здорово, что у тебя теперь есть еще один DSL на Scala на котором ты можешь описывать свои билды.
Пожалуй это самая тормозная, забагованная и неинтуитивная система сборки, которая, ко всему прочему, еще имеет отвратительную интеграцию с IDEA.

>какие?
Любые крупные проекты, начиная от банковских систем, заканчивая какими-нибудь соц. проектами или крупными площадками на вроде Яндекс.Маркета. Тот же Netflix очень плотно сидит на Spring Boot и все микросервисы стартует именно на этой платформе.
Та же Scala у них там сбоку и вообще про Big Data.
Какой-нибудь Twitter мы не берем в расчет. Там изначально собралась отбитая компашка, которая изначально все писала на Ruby, а когда начало все тормозить, то они кинулись на Scala, т.к. синтаксис был похож. Ну и да - Twitter за все время своего существования показал прибыль лишь однажды, когда провел массовое увольнение разработчиков. А так это просто очередной убыточный проект, который проедает очередной раунд инвестиций. Но да, там есть собственная виртуальная машина, наработки на Scala (правда без котов и прочего тайплевл стека).
Аноним 18/09/20 Птн 16:23:42 181001955
>>1809718
> Возможно ты не пишешь ничего сложнее хеллоуворлдов на пару строк
Пилю скалку в известном банке, тут немного не пара строк, но всё равно "пиздеца" прямо не ощущаю, как и ранее писал. Мб дело в настройках и мощностях, мб у всех разный порог пиздеца. Пользуюсь обычной комьюнити идеей на средней мощности воркстейшене на линуксе.

> Пожалуй это самая тормозная, забагованная и неинтуитивная система сборки, которая, ко всему прочему, еще имеет отвратительную интеграцию с IDEA.
Всё так.

Яндекс, кстати, регулярно пишет-зовет на небигдатную скалу, видимо не только спринг у них.
Аноним 18/09/20 Птн 16:57:47 181005556
>>1810019
>Яндекс
У них все проекты, которые входят в Вертикали написаны на скалке.
Аноним 18/09/20 Птн 23:18:34 181033957
В общем только недавно узнал, что языки, где зарабатывают просто дохуя, по сравнению со всякими пхп и джавами. Это Эликсир, Руби, Скала, Го. Твердо решил перекатитьcя с пхп в один из них. Подсобите с выбором, в каком из них самые высокие зарплаты, но чтоб при этом работа вообще была ?
Аноним 19/09/20 Суб 02:22:35 181045058
>>1810339
Не знаю как в скале но в руби работа есть, только вот хуй куда устроиться, везде миддлов с пятилетним стажем хотят.

Миморубист-вкатун
Аноним 19/09/20 Суб 06:53:43 181052159
>>1810339
>Твердо решил перекатитьcя с пхп
Женя? Это ты в скаладжобс поливаешь говном пхп и хочешь перейти в скалу? Ты же понимаешь, что платят не за знание языка, а за экспертизу в предметной области и опыт разработки высоконагруженных проектов.
Учти, что те графики с зарплатами, где скала лидирует - это не более чем махинация со статистикой, т.к. в скале нет джюнов, а только сеньоры и принципалы.
Аноним 19/09/20 Суб 12:19:12 181066760
>>1810521
Нет понятия "платят". Есть понятие вакансия. И в вакансиях пхп платят мало, полоток 300 тыщ, а в вакансиях скалы платят много, потолок 670 тыщ.
Это если говорить про удаленку из России

А вот тот факт, что в скале нет джун вакансий и невозможно вкатиться без 3+ лет опыта, конечно может меня остановить.
Аноним 20/09/20 Вск 20:56:47 181190261
>>1807431
>Меня пугает то, что его разрабатывает один челик
Отчасти это проблема, но он достаточно много кем используется, входит в тайплевел стек, да и сам можешь подхачить что-то, не программист чтоле?
>Над сликом пахало целая команда, которая сидела на зарплате у Lightbend, но его это не спасло.
Не то чтобы его прям спасать нужно, он работает себе, пусть и не развивается активно. Просто появились альтернативы лучше, в том числе потому что его задумка оказалась не самой удачной как а смысле использования, так и в разработке.
>>1807431
>На сколько это Scala-way?
Вопрос не в этом, а в том насколько это нужно.
>>1806953
>Quill? Но это только DSL для написания SQL запросов.
Все из коробки работает, хотя можно и с Doobie подружить. Рекомендую, очень хороший проект, я его еще и с кассандрой и даже спарком использовал. Хотя возможно для новичков scalikejdbc понятнее будет, он простой (если все строго по примерам из доки делать и не стараться вникать как там этот DSL реализован) и на jooq похож. Обе либы, кстати, поддерживают асинхронную работу с постгресом, но я не знаю в каком состоянии эта функциональность, возможно альфа и это никогда изменится.
>>1808569
https://www.handsonscala.com
Сам не читал, но слышал положительные отзывы именно о том что тут разобраны реальные примеры. С другой стороны, автор использует свои библиотеки в книге. Это само по себе не плохо - они простые и позволяют сфокусироваться на языке и задачах, но если (скорее всего) в проде будут другие, придется их доучивать.

Аноним 21/09/20 Пнд 06:01:49 181217762
>>1811902
>входит в тайплевел стек
Туда много что входит, включая какие-то поделки от рандомных челиков.

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

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

>https://www.handsonscala.com
>Сам не читал, но слышал положительные отзывы именно о том что тут разобраны реальные примеры.
Слышал ты из-за того, что этот хитрый китаец бегает по всем площадкам, где тусуются скала программисты и пиарит свою книжонку. Сама книга довольно посредственная и во многом опирается на поделки этого китайца, который изобретает очередной велосипед, которым пользуются полтора анонимуса.
Аноним 21/09/20 Пнд 11:03:05 181228763
>>1798168 (OP)
Откуда столько ненависти к Lightbend стеку? В основном это исходит из ру-сегмента скала коммьюнити. Большинство называет Akka, Play, Slick - легаси и рассказывает охуительные истории про то как "все компании" переходят на typelevel и горя не знают.
Аноним 21/09/20 Пнд 15:23:59 181255764
>>1812177
>Туда много что входит, включая какие-то поделки от рандомных челиков.
Там есть разделение на включенные проекты и incubator projects, doobie именно включен.
>Зачем мне что-то "хачить" в библиотеках?
Чтобы добавить то, чего в ней нет, очевидно же, а не ждать пока разработчики соизволят уделить внимание твоей проблеме.
>За многие годы работы джава программистом мне не приходилось
>что-то там править
Везет, мне и на джаве, и на С# приходилось. Судя по, например https://github.com/hibernate/hibernate-orm/graphs/contributors, сюда тоже контрибьютят люди не на зарплате.
>копаться в сорсах библиотек
А вот это вообще странно, очень часто по документации невозможно понять как точно работатет та или иная фича. Ну может тебе не нужно было.
>Заодно можешь посмотреть количество багов, которые весят в ишьюсах.
50 багов. Это много или нет? Не знаю. По моему опыту 3-4 летней давности еще 2-ой слик был вполне работоспособным, но не слишком удобным в использовании.
Можешь, кстати, посмотреть на баги в Hibernate - там их сотни.
> Сама книга довольно посредственная
Ну вот теперь у меня еще один отзыв есть, негативный. Хотя я бы все равно советовал дать книге шанс - китаец хорошо пишет как минимум блог-посты.

Аноним 22/09/20 Втр 12:46:05 181316965
Аноним 22/09/20 Втр 13:54:43 181324166
>>1813169
>Scala мертва
>получил 4-5 офферов на Scala в нескольких Европейских странах
Как-то не очень вяжется.
>Подоспела качественная аналитики от инженера
>Раунд 1: Go vs Java
>Безоговорочно Go.
>мой опыт с ним составляет всего пару месяцев
На этом думаю стоит закончить, и не тратить время на очередную аналитику про микросервисы - ебанутые совершенно не понимают сколько проблем создает перенос вызова из памяти в сеть.
Аноним 22/09/20 Втр 13:59:58 181324367
>>1813241
Гоу сочетает в себе простоту освоения (неделя-две) и удобство программирования. На Scala, пока не осилишь красную книгу и не прорешаешь все задачи без подглядывания в решение - можно даже и не начинать проект, т.к. все равно обосрешься без понимания комбинаторов, монад и типов высших порядков.
Аноним 22/09/20 Втр 14:15:10 181325368
>>1813243
Гоу не так уж и легко освоить на уровне написания идиоматичного кода, особенно если до этого не работал с CSP-based системами и не привык к structural typing и это еще go2 не вышел, а удобно на нем программировать только тривиальные сетевые сервисы, которые легко создавать на любом достаточно распространенном языке вплоть до Хаскеля. Его преимущества в другом, а именно в рантайме, заточенном под определенные типы задач и унифицированном тулчейне.
Аноним 22/09/20 Втр 14:43:42 181325869
>>1813241
>на очередную аналитику про микросервисы - ебанутые совершенно не понимают сколько проблем создает перенос вызова из памяти в сеть.
Ты совершенно напрасно драматизируешь. Микросервисы и serverless - это будущее разработки масштабируемых приложений. Проблема Скалы заключается в том, что за ней не стоит никакой крупной технологической компании, которая бы выпускала библиотеки/фреймворки, которые бы, в свою очередь, радикальным образом упрощали жизнь типичному разработчику.
Какое-то время люди были в восторге от Akka и Play Framework, но вскоре основательно поели говна с акторами (которые слишком поздно сделали типизированными и это так и не решило никаких основных проблем, а только добавило новых, в основном с деплоем новых версий сервисов в кластере). С Плеем так вообще смешно вышло - сейчас бы в 2к20 писать на толстом веб-фреймворке вместо того, чтобы отдельно выкатить фронт, который бы отдавался инжинксом и отдельно рест-бек на чем-нибудь легковесном.
В итоге, получили ситуацию, когда весь LIghtbend стек в скала-коммьюнити считается легаси и не рекомендован для новых проектов.
Остается typelevel стек. Но проблема тайплевела в том, что это не технологическая компания как редхат или оракл, а просто конгломерат из приходящих челиков, которые проталкивают свои мутные велосипеды в инкубатор и консалтеров, которые напилили всяких котов, сёрсе и прочих дубей и теперь пытаются выехать на поддержке и внедрении.
Это не идет ни в какое сравнение с тем же Spring за которым стоит VMware или Helidon за которым стоит Oracle или взять тот же Quarkus, который пилится с подачи Красношапки.
Т.е. не стоит сравнивать жалкие потуги скалистов, которые нажравшись дерьма на Akka, побежали пердолить микросервисы на котах и гонять месседжи через кафку, попутно объясняя менеджменту, что такое моноиды и как залифтить монаду себе в очко и почему это важно для проекта.
Аноним 22/09/20 Втр 14:49:57 181326370
>>1813253
>Его преимущества в другом, а именно в рантайме
Да похуй на твой гоу рантайм, старина. Там до недавнего времени GC врубался по таймауту. Преимущество гоу в том, что можно взять условную похапэ-макаку и она через неделю будет выдавать код, который можно будет лить на бой. Код при этом получается однообразный и в нем нет никаких сюрпризов, когда нужно себе анус рвать, чтобы понять, как он работает.
За интересным рантаймом это тебе в Erlang/Elixir и виртуальную машину BEAM или взять тот же OCaml.
Аноним 22/09/20 Втр 16:40:45 181333171
>>1813258
Я уже хотел было написать развернутый ответ про микросервисы и фреймворки, но после этого
>попутно объясняя менеджменту, что такое моноиды и как залифтить монаду
передумал, слишком толсто. Менеджменту похуй на монады и технологии.
Для мимокрокодилов могу только сказать что
> весь LIghtbend стек в скала-коммьюнити считается легаси и не рекомендован для новых проектов.
только на дваче и можно услышать, большинство проектов как стартуют, так и остаются на нем. Хорошо это или плохо - другой вопрос.
>>1813263
Конечно есть рантаймы намного интереснее, да у той же JVM есть перимущества перед ним. Но для простых сетевых лоу-латенси сервисов он очень хорошо работает из коробки, как и CSP и то как он обрабатывает блокирующие вызовы. Ключевое слово здесь из коробки, его не нужно тюнить.
>OCaml
Интересно, а что в нем особенного?
>преимущество гоу в том, что можно взять условную похапэ-макаку
Это миф, на уровне "хороший программист осилит любой язык за неделю, они все одинаковые". Языки разные, и научиться писать идиоматичный код за неделю не выйдет. Кроме того, не похоже чтобы на Go писали макаки, судя по тому сколько за него платят.
>когда нужно себе анус рвать, чтобы понять, как он работает.
Что интересно, самый запутанный код который я видел в жизни бы написан на С# в абсолютно процедурной парадигме - только циклы, рекурсивные вызовы и изменения переменных. Ничего такого же сложного в скале со всеми ее фичами я никогда не видел, так что думаю что сложность, привносимая самим по себе языком очень преувеличена (кроме С++, но это отдельная история).
Аноним 22/09/20 Втр 17:12:01 181336372
>>1813331
>Менеджменту похуй на монады и технологии.
Нет, не похуй. Менеджмент понимает, что если начать проект на непопулярной технологии, то это может загубить весь проект. Так случилось с Моим Складом. Пока его писали борщехлебы на Scala, то дела у компании шли так себе - новых сотрудников было тяжело нанять и они стоили каких-то безумных денег, продукт был забагован и вхождение в проект было тяжелым испытанием для новых программистов. Но вод пришел Козуля и переписал проект на Java и теперь разработчики находятся на раз-два, проект очистился от FP-дерьма и теперь все будет ништяк.

>большинство проектов как стартуют, так и остаются на нем. Хорошо это или плохо - другой вопрос.
Ну вот M2 стартанул на лайтбенде (акка), а потом раз, и теперь они ищут людей только на typelevel стек со знанием кафки. Тут уже вкидывали видео, где еще одна компания в ужасе съебала с акторов на тайплевел и кафку и горя не знает.
Аноним 22/09/20 Втр 18:07:36 181343473
>>1813363
Сложность поиска людей конечно имеет значение, я скорее про технологии внутри одного языка говорил. Обьяснить разницу между lightbend- и typelevel-стеком менеджменту сложно, для них это сорта одного говна. Но lightbend продвинуть легче, если станет вопрос - мне вот недавно нужно было стек для нового проекта выбирать, я подумал-подумал над http4s + doobie, и решил что продвинуть akka-http + quill проще будет. Основные конкуренты были (и еще есть наверное) finagle и go, кстати.
> вот M2 стартанул
Понятно что кто-то переходит, но это единицы. Я достаточно часто на собеседованиях бывал (хотя последний год не хожу), чтобы иметь достаточно большую выборку.
>компания в ужасе съебала с акторов на тайплевел
С акторов кто угодно съебет в ужасе, а вот akka-streams вполне себе прилично работают и имеют огромное количество коннекторов. Я не то чтобы гоню на typelevel, просто он не и близко не занимает той доли проектов, что lightbend.
>ищут людей только на typelevel стек
>со знанием кафки
Если они действительно ищут людей со знанием этих обеих технологий, то удачи, хех. Что в той, что в той очень мало кто разбирается, а пересечение вообще почти пустое множество.
Аноним 22/09/20 Втр 18:26:12 181346074
>>1813363
Ага, помню обратную ситуацию в Приватбанке, когда в одном из отделов страшно обосрались со своей джявой, в этот день уволили нахуй СТО вместе с половиной джавадебилов, остальным был предложено изучить Erlang в кратчайшие сроки (к счастью простота языка позволяет) или съебать тоже. Дальше разработка в том отделе велась исключительно на Erlang правда с ним тоже в конечном итоге поели говна, очевидно надо было брать Haskell или на крайний случай Scala
Аноним 22/09/20 Втр 22:36:12 181362275
>>1813460
>Приватбанке
>обосрались со своей джявой
Как вообще такое возможно? Ну т.е. если обосрались с джавой, то там уже проблемы на уровне хромосом CTO.
А технологии и стек - вообще дело десятое.
Аноним 23/09/20 Срд 10:50:58 181392076
>>1813434
>Я не то чтобы гоню на typelevel, просто он не и близко не занимает той доли проектов, что lightbend.
Ру-сегмент Scala с тобой в корне не согласен. В их понимании Lightbend стек - это легаси и все адекватные компании сразу стартуют новые проекты на тайплевеле. Схожая риторика проскакивает и в зарубежном коммьюнити, где ту же Akka поливают говном и рассказывают как сладко живется на typelevel + Kafka.

>Если они действительно ищут людей со знанием этих обеих технологий
Сейчас как-бы 2к20 и от рядового бекендера требуют опыт работы с Kafka практически в обязательном порядке.
Никто не хочет пердолиться в кластеры или херачить микросервисы через какой-нибудь gRPC - все гоняют месседжы через кафку.
Аноним 23/09/20 Срд 10:52:31 181392277
>>1813460
Ну так это известная история. Там же Максимка опердени на своем ёрланге ебал. По итогу все вылилось в то, что его возвышенный код никто не понял из команды и все пошло по пизде. Учитывая то, что они и с джавой говна поели, то можно сделать вывод, что уровень разработчиков там было довольно низкий.
Аноним 23/09/20 Срд 13:29:55 181407878
>>1813920
>Ру-сегмент Scala с тобой в корне не согласен
Не очень знаком с ру-сегментом, даже скалалаз давно не слушал. Есть что почитать на эту тему?
>где ту же Akka поливают говном
То что в интернете все что угодно говном поливают - не новость. Не нужно из этого делать далеко идущие выводы.
>опыт работы с Kafka практически в обязательном порядке
Не толсти, кафка редко где нужна.
>>1813922 >>1813622
>если обосрались с джавой, то там уже проблемы на уровне хромосом CTO.
>с джавой говна поели, то можно сделать вывод, что уровень разработчиков там было довольно низкий.
Джава это залог успеха чтоле? Пишешь на ней и задачи сами собой решаются? Открою секрет, люди часто используют не мейнстримные языки именно из-за того что им надоело жрать на них говно.
Аноним 23/09/20 Срд 14:23:37 181415279
>>1814078

>Джава это залог успеха чтоле?

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



Аноним 23/09/20 Срд 14:25:57 181415780
>>1814078
>Открою секрет, люди часто используют не мейнстримные языки именно из-за того что им надоело жрать на них говно

ЭТО ПРЕКРАСНО, НО НАМ НУЖНО РЕАЛИЗОВАТЬ ЕРП СИСТЕМУ СУТЬ ТАКОВА ЕСТЬ БУХГАЛТЕРСКИЕ ПРОВОДКИ И ЕСЛИ ПОЛЬЗОВАТЕЛЬ ИГРАЕТ ЗА МЕНЕДЖЕРА, ТО БАЛАНСОВЫЕ СЧЕТА В ЛЕСУ СКЛАДЫ НАБИГАЮТ КОРОЧЕ ВОЗМОЖНОСТИ КАК В 1С
Аноним 23/09/20 Срд 14:42:58 181418481
>>1814078
>Есть что почитать на эту тему?
Достаточно открыть @scala_ru где общаются тимлиды и разработчики топовых компаний в СНГ и РФ.

>Не толсти, кафка редко где нужна.
Если мы отбросим Big Data на Scala и посмотрим на чистые бекенд позиции, то увидим, что там либо Akka, либо тайплевел с Kafka. Люди пишут микросервисы на тайплевел стеке, а для общения между этими микросервисами используется Kafka.
Есть истории, когда люди сидели на кластере из Akka, а затем переходили на связку typelevel + Kafka.
Кафка обеспечивает надежную доставку сообщений между сервисами.
В Java разработке она тоже повсеместно используется - пилятся сервисы на Spring Boot, а затем они связываются через Kafka.

>Джава это залог успеха чтоле?
Если грубо, то - да. Java это считай 50% успеха проекта. Это не только простой в освоении язык на котором может писать любая макака, но и десятки фреймворков за которыми стоят крупные компании и сотни библиотек на все случаи жизни. Большинство проектов основаны на Spring Framework, т.к. он позволяет тебе собрать каркас приложения за считанные минуты и начать накидывать бизнес-логику предоставляя различную функциональность через всевозможные модули. Ничего подобного в экосистеме Scala даже близко нет.
Я не говорю про простоту найма джава-разработчика, которых на рынке труда только в РФ - десятки тысяч. Это со Scala ты вынужден брать кого попало и учить на месте. С Java ты можешь выбирать лучших, т.к. пул разработчиков невероятно огромен.
Аноним 23/09/20 Срд 15:53:46 181426482
>>1814152
Готовые инструменты это замечательно, но помимо чисто технических аспектов есть еще и сложность доменной области. И проекты часто фейлятся из-за того что команда именно с ней не справляется, а не из-за того что в базу что-то записать не получилось или билиотеки не хватает. И вот хороший язык как раз позволяет писать логику понятно. Еще конечно случаются обсеры с архитектурой, например если пытаются в CQRS не подумав, или в 100 микросервисов, или, упаси Господи, какому-то долбоебу придет в голову связывать сервисы через Kafka. В общем такого чтобы обосрались просто из-за выбора языка я еще не встречал.
>>1814157
Ну так может 1С взять и все?
>>1814184
>@scala_ru
Зайду почитаю, чтоле.
>то увидим, что там либо Akka, либо тайплевел с Kafka
Да полно всего есть, Кафка далеко не везде. Ну и Акку с Кафкой часто видел, да и сам использовал.
>Кафка обеспечивает надежную доставку сообщений между сервисами.
Ты точно понимаешь что такое Кафка и что она отличается от очередей сообщений?
>Если грубо, то - да.
Все эти мифы про
> каркас приложения за считанные минуты
> и десятки фреймворков за которыми стоят крупные компании
уже в прошлом треде разобрали, не интересно уже.
Аноним 23/09/20 Срд 16:10:25 181427983
>>1814264
>В общем такого чтобы обосрались просто из-за выбора языка я еще не встречал.
Целую команду скалистов из озона на хуй выгнали и все переписали на Пщ.

>Ты точно понимаешь что такое Кафка и что она отличается от очередей сообщений?
Есть паблики, на которые подписываются клиенты. Ты туда складываешь сообщения и они доходят до получателя.

>Господи, какому-то долбоебу придет в голову связывать сервисы через Kafka.
Вот тебе история успеха, как команда свалила с Akka и переписала все на микросервисы + Kafka - https://youtu.be/_sIOwQdQPIQ?t=525
Аноним 23/09/20 Срд 19:34:27 181449484
>>1814279
>Целую команду скалистов из озона на хуй выгнали и все переписали на Пщ.
С чего ты взял что это связано именно языком? Истории миграции вообще интересные, можно почитать об этом кейсе?
>Есть паблики, на которые подписываются клиенты. Ты туда складываешь сообщения и они доходят до получателя.
Так обще можно о чем угодно сказать. Есть таблица в постгресе, кто-то туда кладет данные, а кто-то читает. Почти Кфака. У Кафки есть особенности, которые делают ее не слишком пригодной именно для использования как очереди сообщений, но очень классным распределенным логом событий.
>Вот тебе история успеха
Видел, как по мне это говорит только о том что ZIO вероятно пригодно к продакшену, а сырые акторы - неудобны, что впрочем достаточно известно. Если они организовали коммуникацию (именно коммуникацию, запросы-ответы, а не просто поток событий) между сервисами через кафку, ну что ж, земля пухом. Для этого должны быть какие-то очень серьёзные причины, которые я бы хотел узнать, будет очень интересно.
Аноним 23/09/20 Срд 22:53:52 181461285
>>1814279
Работаю в около биг дате.
Жидко обосрались с кафкой между компонентами и всё переделывали на http сервисы. Так как нужно было часто гонять большие сообщения между сервисами, а потеря одного сообщения ломала всё. При этом нам ещё надо было ответ отдать клиенту. Слишком поздно мы поняли что кафка не подходит для запрос-ответ систем.
Тот кто её привнес в проект конечно ушёл задолго до вскрытия проблем.

Теперь вижу кафку только как уведомлялку между интеграциями, для чего-то более серьёзного нужно писать овердохуя кода
Аноним 24/09/20 Чтв 04:40:20 181476286
>>1814494
>С чего ты взял что это связано именно языком?
>Команда борщехлебов рвала себе анус и безуспешно пыталась в этерпрайз, подсев на уши менеджеру, что "вот-вот и Scala всем покажет, ух покажет!".
>Менеджер видит, что работа стоит, выделенный бюджет тает на глазах, а все что он имеет - это команду великовозрастных ебланов, которые свои монадки додрочить не могут, чтобы наконец-то запустить пилот
>Вся команда борщехлебов идет на хуй и заместо нее нанимаются гоферы, которые в кратчайшие сроки запускают проект
Да, действительно, что же тут не так с языком, хмммм?!
Аноним 24/09/20 Чтв 04:42:54 181476387
>>1814612
>обосрались с кафкой между компонентами
>переделывали на http сервисы
>нужно было часто гонять большие сообщения между сервисами
>потеря одного сообщения ломала всё
Ты же в курсе, что в случае, если твой сервис, посылающий HTTP запрос умрет или пропадет соединение между двумя сервисами и твой запрос отвалится по таймауту, то ты его потеряешь навсегда?
Кафка же тебе позволяет гарантированно доставить сообщение в кластер, сохранить его на диск и так же надежно доставить до получателя. Сравнивать HTTP запросы и Kafka - как минимум странно.
Аноним 24/09/20 Чтв 11:00:08 181489488
>>1814264
>Ну так может 1С взять и все?

ЭТО СЛИШКОМ НИМОДНА МЫ ЖЕ СИРИУС ГАЛЕРА МЫ ДОЛЖНЫ ПРЕДЛАГАТЬ КЛИЕНТАМ УНИКАЛЬНЫЕ БИЗНЕС РЕШЕНИЯ.
Аноним 24/09/20 Чтв 11:30:35 181491589
>>1814762
Это твои фантазии или где-то можно получить более достоверную информацию об этом кейсе, чем от анонимуса с двача?
Суть в том что я не один проект сделал на Скале, и знаю еще больше успешных проектов как у знакомых, так и во всемирно известных компаниях. Так что я точно знаю что на скале можно писать очень быстро и качественно, хотя и допускаю что она может быть не оптимальным инструментом и некоторых ситуациях. И вот о таких случаях хорошо знать, чтобы не наступать на те же грабли.
>>1814763
Ты же в курсе, что в случае, если твой сервис, посылающий сообщение в Кафку умрет или пропадет соединение между сервисом и брокером и твой запрос отвалится по таймауту, то ты сообщение потеряешь навсегда?
>Кафка же тебе позволяет гарантированно доставить
Because Kafka is webscale.
>Сравнивать HTTP запросы и Kafka - как минимум странно.
Сравниваются способы организации коммуникации между сервисами. И Кафка - не самое подходящее решение. Казалось бы, почему не взять нормальную очередь сообщений, если обычные запросы не подходят?
>>1814894
Вот действительно сириус пацаны - https://habr.com/en/company/lsfusion/. Целый ЯП вместо 1С придумали.


Аноним 24/09/20 Чтв 11:50:53 181493290
Аноним 24/09/20 Чтв 12:07:56 181495591
>>1814915
>нормальную очередь сообщений
А ничего другого нормального и нет. RabbitMQ - это говно-говна, которое не умеет в кластеризацию (разваливается при split-brain) и херит данные, которые хранит в мнезии.

>можно получить более достоверную информацию об этом кейсе
Конкретно эта история затерялась за задворках scala_ru и scalaponv
Вот тебе еще история ребят, которые перешли со Scala на Пщ и горя не знают -
http://jimplush.com/talk/2015/12/19/moving-a-team-from-scala-to-golang/

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

Аноним 24/09/20 Чтв 14:36:23 181508992
>>1814955
> RabbitMQ - это говно-говна
> split-brain
Начинается, анонимус на двачах обсирает одну из самых проверенных в продакшене технологий. Во-первых, это может быть, а может не быть проблемой. Во-вторых, насколько я помню, стратегию обработки сплит-брейна можно конфигурировать. В-третьих, ты знаешь как Кафка сплит-брейн обрабытывает, или в чатике в котором ты вычитал про проблемы рэббита об этом не писали?
>А ничего другого нормального и нет.
Как минимум есть старый добрый ActiveMQ, NATS, SQS если на амазоне, если уж хочется велосипеды покрутить, можно что-то свое на ZeroMQ придумать, проще чем на кафке получится.
>Конкретно эта история затерялась за задворках scala_ru и scalaponv
Ну так и говори - я читал в каком-то чатике, что .... Не очень убедительно и полезно.
>Вот тебе еще история ребят, которые перешли со Scala на Пщ
Читал, у них там больше со scalaz проблема была и разными стилями. Ну и это 2015 год, эти уроки уже давно выучены.
>В одном случае ты кладешь мессендж в кафку и идешь дальше заниматься своими делами
И посылка в кафку может точно так же зафейлится, как и HTTP запрос.
>а в случае хтпп запроса - ты отправляешь его, ждешь ответ
В первом случае ты тоже должен ждать ответ, только он придет в виде сообщения в другом топике. После этого ты должен как-то сматчить запрос с ответом. Это можно реализовать, но достаточно сложно - не лучше ли позволить HTTP это сделать за тебя?
>В случае асинхронных запросов ты все равно жрешь ресурсы.
Соединение или что? С Кафкой ты его не держишь?
Аноним 24/09/20 Чтв 16:00:33 181516893
>>1814955
Это "говно говна" используют примерно все, лол. Просто как и у любой технологии у него есть свои ограничения. Конкретно раббиту, вроде бы, становится плохо при 300к сообщений в секунду (что-то такое я слышал от очень крупных ребят, которые имели его в продакшене), но при этом если у тебя есть такие нагрузки - ты или уже имеешь деньги на целый штат инженеров, чтобы тюнить его или переписать всё на гораздо более мудрёную кафку, или ты что-то сделал очень плохо и дидосишь сам себя.
А построение кластера и борьба со сплит-брейном - это сложная штука вообще всегда.
И да, раббит идеально подходит для простых проектов, потому что он прост в освоении и с ним легко работать. Кафка же сложная, как самолёт, с миллионом ручек, настроек и всякими зукиперами под капотом.
Аноним 24/09/20 Чтв 16:03:29 181517494
В чатиках говорят, что популярность scala падает, что scala используется в основном в data science (и то, потому что хадуп на ней написан) и как мейн язык она не очень, потому что очень узкая ниша.
Это правда? Она умирает или есть какие-то перспективы? (я слышал, хадуп написан на предыдущей мажорной версии скалы и, поскольку переписывать такую сложную хрень себе дороже, а хадуп - основной поставщик вакансий для скалистов, то новую скалу будет использовать заметно меньше народу)
Какие вообще подводные для вката?
Аноним 24/09/20 Чтв 16:04:00 181517695
>>1815168
Давай так - кролик разваливается при сплит-брейне и там нет никакой автоматики, которая бы собрала кластер обратно и отрезолвила сообщения между половинками. Все это нужно делать руками, включая перезапуск самого кролика. Поэтому люди уходят на кафку, т.к. там эти проблемы решены на уровне архитектуры.
Но если область твоих проектов - это какие-нибудь сельские интернет-магазины, которые хостятся на VPS за 300 рублей в месяц и их посещают полтора сельчанина, то да - кролик лучший выбор в качестве MQ.
Аноним 24/09/20 Чтв 16:09:59 181518996
>>1815174
Хадуп написан на Java. Apache Spark написан на Scala. Да, все верно говорят. 3/4 всех вакансий - это т.н. data science/big data/data engineer job, где Scala нужна на уровне DSL к Apache Spark. Остальные 1/4 всех вакансий это какие-нибудь мутные стартапы, которые пытаются в FP на котах, либо какие-нибудь залетные микрочелики, которые пытаются писать энтерпрайз на Akka, когда есть Spring.
Основные подводные заключаются в том, что без опыта в Java, ты вряд ли попадешь на позицию Scala разработчика, либо будешь сосать бибу первые 3-5 лет, пока выйдешь на адекватный уровень компенсации.
Большинство вакансий в РФ - это либо желтые банки (где царит своя, собственная атмосфера из тру ФП и наколенных поделок), либо компании поменьше, где эта Scala используется сбоку в маленьких командах (big data/akka).
Если хочется чего-то нового и не хочется побираться и нищенствовать, то попробуй Go - платят больше чем на Scala, куча вакансий, полно библиотек и фреймворков, отличная поддержка IDE и прочего тулинга, включая билд системы.
При этом учится он за месяц максимум. Дальше люди выдают боевой код.
Аноним 24/09/20 Чтв 16:12:09 181519097
>>1815176

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

Если много денег то берут вот такую хуету и забрасывают все эти ваши игрушки в долгий ящик:

https://www.ibm.com/support/knowledgecenter/SSMKHH/mapfiles/product_welcome.html
Аноним 24/09/20 Чтв 16:16:07 181519198
>>1815190
Зачем, когда в облаке уже есть все эти ваши очереди сообщений, через которые можно гонять сотни тысяч сообщений в секунду, отправляя их где-нибудь в Нью-Йорке и забирая в датацентре из Токио?
Аноним 24/09/20 Чтв 16:27:54 181519999
>>1815089
Так, понятно... Давай тогда тезисно:
- Scala используется преимущественно в big data (Apache Spark)
- За 11 лет существования так и не появилось нормальной поддержки со стороны IDE
- Билд тулы находятся в заднице по сравнению с Gradle/Maven
- Нет никаких киллер фич со стороны языка, которые бы сделали работу рядового разработчика проще и приятнее
- Нет никакой альтернативы библиотекам/фреймворкам из Java (Spring/Hibernate/Quarkus/etc). Все либо сырое, либо нужно пердолить очередную обертку самостоятельно
- Scala 3 окончательно добьет Scala, т.к. это по сути новый язык, а значит, что поддержка IDE откатывается на годы назад, библиотек нет, программистов нет, а те что есть - идут на хуй и все переписывается на Java/Go.
Аноним 24/09/20 Чтв 16:37:12 1815204100
Scala выпиливается усиленными темпами из всех продакшнов. Это мертвый язык, на который не стоит тратить ни секунды времени.

— Знаете, почему у LinkedIn много лет такой тормозной, глючный и неудобный сайт? Потому что они надолго увязли в Scala и до сих пор не могут оправиться — https://www.quora.com/Is-LinkedIn-getting-rid-of-Scala/answer/Kevin-Scott
— Twitter отказывается от Scala — https://www.quora.com/Is-Twitter-getting-rid-of-Scala
https://movio.co/blog/migrate-Scala-to-Go/
http://jimplush.com/talk/2015/12/19/moving-a-team-from-scala-to-golang/
http://uberblo.gs/2016/12/golang-is-really-awesome-and-why-it-beats-scala/jvm
Аноним 24/09/20 Чтв 16:52:18 1815209101
>>1815204
>It took some of us six months including some after hours MOOCs, to be able to get relatively comfortable with Scala. In contrast, we picked up ‘Go’ in two weeks. In fact, the first time I got to code some Go was at a Code Retreat about 10 months ago. I was able to code a very basic Mario-like platform game!

Nice, nice!
Аноним 24/09/20 Чтв 16:58:15 1815218102
>>1815204
>— https://movio.co/blog/migrate-Scala-to-Go/
Хуй знает. По мне так стоит посмотреть в сторону Go. Чувак описал буквально боль любого Scala разработчика. Нахуй себе волосы на жопе рвать, когда можно получать удовольствие от разработки?
Go звучит как история успеха.
Аноним 24/09/20 Чтв 17:07:57 1815233103
>>1815218
Го так-то норм, правда, лично мне там как раз недостаёт гарантий. Он в ряде мест слишком уж низкоуровневый и никак не страхует тебя от того, что ты забудешь проверить указатель перед разыменованием или не проверишь ошибку. Но при этом действительно очень простой, буквально "си с утиной типизацией и зелёными потоками".
Аноним 24/09/20 Чтв 17:13:55 1815243104
>>1815218
>процедурная параша из 80х без ничего
>поучать удовольствие от разработки

С goвном только только перед жатниками проповедовать.
Аноним 24/09/20 Чтв 17:21:51 1815248105
>>1815243
Просто у гошников есть куча интересной работы и зп в 300к а у тебя нет, вот и бесишься
Аноним 24/09/20 Чтв 17:22:06 1815250106
>>1815243
Ну, смотри. Haskell или какой-нибудь OCaml еще строже и предоставляют больше гарантий, только тулинг там никудышный и библиотек - хуй да нихуя. Пишут на них либо фанатики, либо какие-нибудь научные работники.
А нужен простой и понятный инструмент для решения типичных проблем с которыми сталкивается разработчик.
Аноним 24/09/20 Чтв 18:17:52 1815307107
>>1815248
Какая у гошников интересная работа? Этот недоязычек настолько невыразителен, что его применение в любом сложном домене на монолитном проекте неизбежно приводит к горам невменяемого быдлокода. Поэтому он подходит только для микросервисов, для плоской примитивной хуйни, исходя чисто из ограничений самого языка.
Может ли быть интересно писать сотни примитивной хуйни на 2.5 экшена и склеивать всё это воедино в основном девопс методами? Возможно, если ты студент или свитер.

П.С. вчера звали в калифорнийский е-комерс стартап, где они тоже стартанули на гоу, но потом решили что всё это хуйня, и без нормальной системы типов программировать нельзя и взяли скалу.
Аноним 24/09/20 Чтв 18:45:29 1815323108
>>1815250
Это принимается. С другой стороны, моделирование сложной предметной области на примитивном языке приводит к куче бойлерплейта с огромным пространством для потенциальных багов, особенно если в языке нет почти ничего для повышения сейвовости. В итоге, за счёт тулинга, инфраструктуры, малого порога вхождения, простоты самого языка ты действительно получаешь буст на старте, но при переходе в стадию продукта с поддержкой неизбежно ждёт возмездие, потому что одно дело накидывать goвнокод на стартапе, другое - менеджить крупную кодовую базу, которая прошла через кучу рук.
Scala как бы должна была стать посередине, с одной стороны дав инфраструктуру, с другой дав необходимые выразительные средства самого языка.

Ну и касательно изначального поста на который я ответил, фан от быдллкодинга на ЯП уровня бейсика может получать только вчерашний студент. Опытный разработчик либо вообще не получает никакого удовольствия, а только хочет побыстрее закрыть задачу в жире (типичный джява/пхп сениор), либо получает, но для этого нужен как минимум ЯП позволяющий ясно выражать абстрактные мысли, и go таким ЯП очевидно не является.
Аноним 24/09/20 Чтв 19:51:58 1815356109
>>1815176
Если ты думаешь что кафка как-то резолвит сообщения между половинками, то у меня для тебя плохие новости.
>там эти проблемы решены на уровне архитектуры.
Ну-ка расскажи, как по твоему мнению эта проблема решена в кафке, а мы посмеемся я-то знаю как, лол.
>>1815189
>без опыта в Java будешь сосать бибу первые 3-5 лет
Справедливости ради, переходить на новую платформу и изучать Скалу действительно сложно. Впрочем, если ты с С# или PHP захочешь на Java или Go переехать, тоже будет непросто.
>>1815199
Мы же про очереди сообщений говорили, разве нет? Ну а твоим тезисам (выдумкам):
> - Scala используется преимущественно в big data (Apache Spark)
Нет у меня такой статистики, но возможно.
>- За 11 лет существования так и не появилось нормальной поддержки со стороны IDE
Появилось. Тут спорить бесполезно, каждый может просто проверить.
>- Билд тулы находятся в заднице по сравнению с Gradle/Maven
Ну так используй мавен, в чем дело?
>- Нет никаких киллер фич со стороны языка, которые бы сделали работу рядового разработчика проще и приятнее
Есть, уже разбирали в прошлом треде.
>- Нет никакой альтернативы библиотекам/фреймворкам из Java (Spring/Hibernate/Quarkus/etc). Все либо сырое, либо нужно пердолить очередную обертку самостоятельно
Есть, и лучше. Я использовал обе экосистемы и работал с людьми которые их использовали. Тоже разбирали в прошлом треде.
>- Scala 3 окончательно добьет Scala, т.к. это по сути новый язык, а значит, что поддержка IDE откатывается на годы назад, библиотек нет, программистов нет, а те что есть - идут на хуй и все переписывается на Java/Go.
Я так не думаю: язык не новый, библотеки и идея уже подтягиваются. В любом случае, увидим через год.
>>1815250
> Пишут на них либо фанатики, либо какие-нибудь научные работники.
Либо компиляторы с криптой.
Аноним 24/09/20 Чтв 20:44:27 1815445110
>>1815323
Я бы очень хотел с тобой согласится, на самом деле. Только опыт показывает, что бизнес выигрывает от выкатки даже полусырых фич сейчас больше, чем от идеальных фич после и поэтому скорость найма обезъянок и выкатки говнофич - чуть ли не главное достоинство правильного айти стартапа.
Вот когда станет много денег - тогда можно будет и переписать. Только за такие деньги и с такой пользовательской базой уже все баги будут отловлены руками пользователей и обёрнуты в if'ы руками тех же обезьянок.
И я сейчас говорю даже не про го, а скорее про пехапе и plain js: я уже видел множество компаний, с разваливающимся спагетти-монолитом, которые были успешными финансово и им было вообще наплевать, что там работает. Переписывалось оно только и исключительно в том случае, когда всё ложилось от больших нагрузок и то часто дешевле плашку памяти купить или сервер мощнее, даже если там просто в цикле запросы в базу делаются.
К сожалению, качество не нужно практически никому кроме того, кто непосредственно с кодом работает. Пользователям кстати тоже не нужно, они очень консервативные и ленивые, им вообще не влом страницу обновить или вернуться через полчаса, они начинают отваливаться только если там действительно что-то ужасное.
Далее, можно было бы сказать, что такие языки как скала или хаскель должны помогать в тех областях, где вероятность ошибки критична, типа процессинга банковских транзакций - но я сам работаю в банке и знаю, что эти вещи элементарно пишутся на го и проблем с ними не возникает.
Далее, про го: да, мне хотелось бы больше гарантий и больше выразительности, но в реальности выгода от их использования неочевидна очень многим, потому что нормальные разработчики и так не забывают проверить указатель на nil и всё такое плюс пишут много тестов, на которых отлавливается подавляющее большинство глупых ошибок. Я вот вообще по tdd работаю.

Так что, к сожалению, мы живём не в идеальном мире и выразительность с мощностью и безопасностью нужны очень и очень мало кому. Особенно безопасность, гугл пароли для gmail до 2019 года в открытом виде хранил и всем было насрать, лол.
Аноним 25/09/20 Птн 07:54:23 1815631111
>>1815356
>Появилось. Тут спорить бесполезно, каждый может просто проверить.
Проверяй - https://youtrack.jetbrains.com/issue/SCL-18207

Остальное даже комментировать не хочу. Ты либо поехавший фанатик, либо на зарплате в JB/желтых банках.
Аноним 25/09/20 Птн 07:56:40 1815632112
>100 постов жирный тролль на самоподдуве тянет рандомные фразы из понва и смакует любой кейс где со скалой что-то пошло не так, в то время как сам пишет на пхп и жалуется что не может перейти на Scala

Хороший у вас тут тред. Ладно, скоро рабочий день начинается, пойду писать на Scala в прод за 4 средних зарплаты пхпшника.
Аноним 25/09/20 Птн 08:23:00 1815640113
>>1815632
>пойду писать на Scala в прод за 4 средних зарплаты пхпшника.
Ну расскажи-покажи! Ну расскажи-покажи!!
Аноним 25/09/20 Птн 14:47:13 1815859114
>>1815631
Ты и здесь обосрался, долбоеб. BSP - относительно недавняя разработка, как со стороны скалы, так в IDEA, так что баги там ожидаемы.
Для тех кто интересуестя скалой и просто мимокрокодилов: поддержка скалы и в IDEA хуже чем джавы, по вполне понятным причинам - джава приносит больше денег джетбрейнсу и проще как язык для анализа и компиляции. Я сам иногда сталкивался с тем что валидный код подсвечивается как некорректный и наоборот, а также что некоторые рефакторинги работают некорректно. С другой стороны, это и раньше нблаюдалось на коде использующем много магии системы типов (то есть 0.1% от всего кода, а во многих проектах 0%) и со временем ситуация улучшается (в 2013 действительно все было намного хуже). В любом случае, называть поддержку скалы не нормальной - не более чем троллинг, для каждодневной разработки ее хватает с головой.
>Ты либо поехавший фанатик
Да не сказал бы, просто пока Скала - самое удобное что есть на JVM.
>Остальное даже комментировать не хочу.
Слив засчитан. А мы еще даже на серьёзные темы вроде сплит-брейна говорить не начали, это тебе не какашками в ЯП бросаться, тут чтением чатиков не обойдешься.
>>1815445
В общем-то согласен, но вот это
>Только за такие деньги и с такой пользовательской базой уже все баги будут отловлены руками пользователей и обёрнуты в if'ы руками тех же обезьянок.
не вся правда. Проблема в том что софт развивается, и после определенного порога говнокода и количества ифов вносить измнения, не ломая уже сущесвующую функциональность становиться иногда невозможно, но чаще очень трудно, а точнее долго. А вот этого бизнес уже очень не любит.
>Пользователям кстати тоже не нужно, они очень консервативные и ленивые, им вообще не влом страницу обновить или вернуться через полчаса,
Так работает только если ты монополист.
>потому что нормальные разработчики и так не забывают проверить указатель на nil
Это сарказм?


Аноним 25/09/20 Птн 15:33:21 1815887115
>>1815859
> не вся правда. Проблема в том что софт развивается, и после определенного порога говнокода и количества ифов вносить измнения, не ломая уже сущесвующую функциональность становиться иногда невозможно, но чаще очень трудно, а точнее долго. А вот этого бизнес уже очень не любит.
Как бы да, но потихоньку рефакторится и всё такое. Таким изящным, каким он был бы на той же скале, код на го будет наверное никогда, но поддерживать +- приемлемую структуру и избегать соскальзывания в говномонолит можно очень долго. Это даже не вопрос языка, скорее умения писать достаточно абстрактно и знания, когда нужно немного порефакторить.

> Так работает только если ты монополист.
Неа, даже в нишевых продуктах. Понятно, что если у тебя хуи на главной странице или корзина грузится 30 минут, то никто туда не зайдёт, но таких ошибок обычно не совершают. А менее критичные типа всратой верстки, минутной прогрузки корзины или легких лагов обычно все игнорируют.

> Это сарказм?
Неа. Без шуток, я давно программирую на го и как правило перед использованием всё проверяется. Я согласен, что какой-нибудь maybe даёт больше гарантий и был бы лучше, но правда в том, что за последний год точно я не ловил nil pointer error ни разу (ну может во время тестов что-то падало, такое не запоминается).
Аноним 25/09/20 Птн 15:50:05 1815898116
Аноним 25/09/20 Птн 21:09:04 1816271117
>>1815640
Что тебе показать, дебич?
Аноним 25/09/20 Птн 22:33:40 1816344118
>>1815887
>Как бы да, но потихоньку рефакторится и всё такое.
Конечно, рабочий и даже поддерживаемый софт писали на намного более сложных в использовании языках чем джава и гоу. Просто я за то чтобы хоть чуть-чуть двигать индустрию в сторону более оптимальных подходов.
>Неа, даже в нишевых продуктах
В нишах как раз часто и возникают монополии. Но никто не будет ждать минуту пока загрузатся сайт, если рядом есть такой же, загружающийся за секунду.
>я давно программирую на го и как правило перед использованием всё проверяется.
Прямо в каждом методе? Это на уровне стайл-гайда у вас? В джаве/шарпе это не так распространено, и там NPE - наверное самая частая ошибка. В любом случае, такой подход имеет свою цену в плане боилерплейта, а глобально с ним можно очень далеко зайти - можно сказать что раст не нужен, нормальные разработчики не делают free after free и не допускают выхода за границы массивов, статические анализаторы кода не нужны, да и вообще нормальные разработчики не делают багов вне зависимости от языка.
Аноним 25/09/20 Птн 23:40:36 1816380119
>>1816344
> Конечно, рабочий и даже поддерживаемый софт писали на намного более сложных в использовании языках чем джава и гоу. Просто я за то чтобы хоть чуть-чуть двигать индустрию в сторону более оптимальных подходов.
Я тоже и излишняя примитивность го мне тоже кажется во многом ошибочной. Не во всём (в их подходе есть здравое зерно, надо сказать), но во многом. В областе дженериков - так точно, лол, благо что их таки введут в го2.

> В нишах как раз часто и возникают монополии. Но никто не будет ждать минуту пока загрузатся сайт, если рядом есть такой же, загружающийся за секунду.
я имел ввиду не монополии. Даже сраный интернет магазин, продающий матрацы, может позволить себе минутную загрузку корзины. Да, может существовать другой магазин, грузящийся за секунды и самая прошаренная часть аудитории уйдёт туда (до 20 лет, айтишники и то), но подавляющая часть - какие-нибудь бабушки, деревенские, рабочие с заводов и прочий пролетариат очень непритязательны, у них и так всё тормозит, потому что комп обвешан яндекс-барами и mailru-игорами, они разницы и не заметят.
Но это зависит от целевой аудитории, это 100%.

> Прямо в каждом методе? Это на уровне стайл-гайда у вас?
При использовании перед разыменованием, если параметр опциональный и ты не проверил его раньше.
Ну и всем известные правила вида "не пили сук на котором сидишь", "не передавай nil непонятно куда, если это явно не требуется" и тп. Может, звучит странно и небезопасно, но повторюсь - проблем с указателями у меня не было примерно никогда, при том, что я работаю в команде и мы пишем довольно много кода.

> В любом случае, такой подход имеет свою цену в плане боилерплейта, а глобально с ним можно очень далеко зайти - можно сказать что раст не нужен, нормальные разработчики не делают free after free и не допускают выхода за границы массивов, статические анализаторы кода не нужны, да и вообще нормальные разработчики не делают багов вне зависимости от языка.
Я осознаю, что такой подход небезопасен и ни в коем случае не говорю, что он правильный. И даже выше писал, что мне такое не очень нравится. Просто заметил, что при этом в реальной работе таких ошибок не настолько много, чтобы суровая необходимость в таком подходе чувствовалась. Поэтому многим отбитым гошникам и сишникам он кажется избыточным.
А линтер в го кстати очень мощный, много чего отлавливает, рейс детектор вообще огонь.
Аноним 26/09/20 Суб 06:07:00 1816473120
>>1815859
>поддержка скалы и в IDEA хуже чем джавы, по вполне понятным причинам
Причина ровно одна - действительно важные фичи на вроде рефакторингов, инспекций кода, поддержки всевозможных фреймворков и т.д. есть в Ultimate версии IDEA для Java. В Scala за 11 с лишним лет существования плагина ничего такого не появилось, ровно как и нормального анализа кода, который бы не подсвечивал все красным. А, ну и в Ultimate версии для Scala ничего нет. Именно поэтому все сидят либо на Community, либо на EAP. Иными словами - разработка Scala плагина не приносит JB ни копейки.
Аноним 26/09/20 Суб 12:31:11 1816549121
>>1816380
> В областе дженериков - так точно, лол, благо что их таки введут в го2.
Интересно, кстати, будет посмотреть насколько go2 останется простым языком. Очень часто бывает что решения приклееные сбоку оказываются сложнее чем если бы проблему решали в изначальном дизайне.
>Даже сраный интернет магазин, продающий матрацы
Тут остается надеятся что через какое-то время сайты-магазины можно будет создавать без помощи программистов, а они будут заниматься более сложными задачами.
>подавляющая часть - какие-нибудь бабушки, деревенские, рабочие с заводов и прочий пролетариат очень непритязательны
Они действительно непритязательны к производительности (до определенного предела), но часто чувствительны к плохим интерфейсам - видел как приложения из телефона удаляли после минуты использования, а баги, особенно связанные с проебом данных никому не нравятся, особенно в B2B приложениях. Ну и если тормозит не магазин, в который ты заходишь раз в год, а что-то чем ты пользуешься каждый день, тут и работяга с завода альтернативу искать начнет.
>если параметр опциональный
Ну это понятно. А что если нет? Обычно проблема с null возникает когда его передают вместо обязательного параметра, а туда он в свою очередь попадает как результат вызова какой-то другой функции. По сути, нужно проверять не столько переданые параметры, а скорее возвращаемые значения. Это еще осложняется тем что функция, которая раньше нулы не возвращала, может начать это делать без изменения сигнатуры. А значит, эти проверки нужно делать просто всегда или же рано или поздно получишь NPE. С другой стороны, может в го это как-то по-другому обходится, или эти логические ошибки все равно существуют, но проявляются в другом виде. А может вы просто контролируете 90% используемого кода, не интегрируетесь с большим количеством библиотек и ловите все тестами.
>>1816473
>Причина ровно одна
Пока я нашел ровно одну причину нелепости твоих высеров - не никогда не пользовался тем, о чем пиздишь. Этот пост только подтверждает мой вывод.
>действительно важные фичи на вроде рефакторингов, инспекций кода, поддержки всевозможных фреймворков и т.д. есть в Ultimate версии IDEA для Java
Ultimate версия для Java действительно дает поддержку фреймворков, все остальное доступно в CE. Еще многие языки доступны только в Ultimate, если мне не изменяет память Node.JS, Python, PHP, Go.
>А, ну и в Ultimate версии для Scala ничего нет.
Есть, как раз таки поддержка фреймворков, а именно Akka и Play.
>Иными словами - разработка Scala плагина не приносит JB ни копейки.
Иными словами ты думаешь что бизнес потратил 11 лет и кучу денег на то что им не приносит прибыль, хотя бы косвенно?

Аноним 26/09/20 Суб 17:29:37 1816886122
>>1798168 (OP)
На сколько хороша Scala в serverless? Как лучше всего собрать программу, чтобы не попасть на БАБКИ?
GraalVm - глюкодром и анальная лицензия от Оракула. Scala.js - еще один глюкодром, к которому подключается знание помоев в виде Node.js. Scala Native заброшен и по сути не имеет никаких байндингов к тому же AWS Lambda.
Аноним 26/09/20 Суб 20:15:32 1816994123
>>1816473
может потому что в жяве ты бойлерплейтишь и из-за этого тебе нужны рефакторинги сложные, а в скале бойлерплейта не так много из-за типов?
Аноним 27/09/20 Вск 01:54:55 1817114124
>>1816549
> Интересно, кстати, будет посмотреть насколько go2 останется простым языком. Очень часто бывает что решения приклееные сбоку оказываются сложнее чем если бы проблему решали в изначальном дизайне.
Ага, мне тоже интересно, во что в итоге это выльется.
> Тут остается надеятся что через какое-то время сайты-магазины можно будет создавать без помощи программистов, а они будут заниматься более сложными задачами.
Ну да. Только какой-нибудь pleer.ru (а сайт такого размера и сложности не так-то просто сделать "на цмске") может всё равно выглядеть всрато, обладать отстойным сервисом и при этом "жить".
> С другой стороны, может в го это как-то по-другому обходится, или эти логические ошибки все равно существуют, но проявляются в другом виде.
Ты наверное проводишь аналогии с джавой. В го можно передавать переменную по значению и тогда ты не сможешь передать вместо неё nil, а можно передать указатель на переменную и вот он может быть пустым. Но аргумента для передачи указателя может быть ровно два:
- или это опциональный аргумент и тогда его всё равно придётся проверять перед использованием;
- или мы специально передаём указатель вместо передачи по значению, чтобы не нагружать гц лишний раз (такое делается не всегда, а только если в каком-то месте на больших нагрузках гц проседает и приходится руками оптимизировать код) - но в таком случае ты всё равно будешь передавать аргумент вообще всегда и никогда не передашь nil, потому что ты знаешь, что он обязательный и указатель там чисто ради оптимизации.
Там есть отдельный момент, что вместо любого интерфейса (в смысле, когда вместо явного типа функция принимает интерфейс) можно передать nil и вот это жопа (и огромный камень в огород авторов го), потому что естественно никто в каждой функции не будет писать повторяющуюся лапшу типа if arg == nil return error - но реально это решается коллективным договором "никогда, вообще никогда не передавать nil вместо интерфейса". Звучит пиздец, конечно, но на самом деле это практика аналогичная "чисти за собой память" в си или "не делай die внутри библиотеки" вообще везде, просто никто никогда так не пишет, а если пишет - такой пакет никто не использует.
> не интегрируетесь с большим количеством библиотек
Их не так много, как в js, это да - но при этом почти все следуют тем же правилам, которые я описал выше, так что с этой стороны всё нормально.
> ловите все тестами.
Тестов пишем дофига, это верно, но даже не ради безопасности, а потому что так удобнее. Лень самому долбить в localhost джсончиками, когда тестируешь только написанный код. А так ты и проверяешь то, что только что написал - и на будущее тесты остаются. Хотя это настолько легко только потому, что у меня выстроена вся инфраструктура для тестов: под тесты создаются бд, миграции, вот это всё - и поэтому я реально только предсоздаю данные, шлю запрос и потом проверяю ассертами ответ.
И да, даже на тестах я не помню, чтобы были какие-то частые проблемы с указателями, значит, или не было совсем, или так редко и такие тривиальные, что в памяти не отложились.


Аноним 27/09/20 Вск 01:59:37 1817116125
>>1815356
> я-то знаю как, лол
Расскажи, пожалуйста, мне интересно
Аноним 28/09/20 Пнд 17:17:42 1818265126
>>1817114
>может всё равно выглядеть всрато
Да может. Вопрос в том почему нет конкурентов. Хотя может они и есть и отжирают у него аудиторию. Ну и у бизнеса могут быть другие преимущества - цены у магазинов и например количество уже существующих пользователей. В B2B с этим посложенее - если твои платные сервисы проебывают чье-то время или деньги, это не может продолжаться бесконечно (хотя может долго по разным причинам).
>никогда, вообще никогда не передавать nil вместо интерфейса
А что делать если тебе нужно вернуть значение которого у тебя нет? Нет пользователя в базе или ключа в мапе? Или не получилось выделить память, как в malloc? Почти во всех языках, которые я немного знаю (условно С, Python, C#, Java, Clojure), для этого обычно используется null и именно отсюда и вылезает пресловутая billion-dollar mistake. В С++ используют что попало, в Scala - Option или похожие типы. А в Go какой принят паттерн обработки таких ситуаций?
>Тестов пишем дофига, это верно, но даже не ради безопасности, а потому что так удобнее
Это радует, а то в 2020 все еще есть ебанутые, который именно что руками JSONы пуляют.
>>1817116
Гугли in-sync replica set и unclean leader election. Возникнут конкретные вопросы, спрашивай.
Аноним 29/09/20 Втр 11:34:51 1818719127
>>1798168 (OP)
Все, кто хотел вкатиться в Scala, рекомендую прочитать сегодняшний срач тимлидов крупных контор в scala_jobs, которые на пальцах объясняют, что перебежчиков, вкатунов и прочих мутных личностей им не надо. А нужны люди с опытом (минимум 1 год коммерческого опыта разработки), чтобы войти в Scala. При этом они подтверждают, что в Scala люди идут не за высокой зарплатой, а за возможностью работать над сложными задачами, которые, по какой-то причине, невозможно решить на Java.
Аноним 29/09/20 Втр 14:12:24 1818809128
>>1818265
> Да может. Вопрос в том почему нет конкурентов. Хотя может они и есть и отжирают у него аудиторию.
Всегда есть конкуренты. Но при этом практически невозможно захватить ровно 100% рынка, всегда будут недовольные, кому не понравился дизайн или просто кто в гугле не на ту ссылку ткнул. Так что в B2C ты не обязан даже быть лучшим - просто держи свой говносайтик и живи, пока твой доход меньше твоих расходов. Тем более, что там куча маркетинговых механизмов, скидочки, реклама, вся хуйня. Если у тебя говносайт - то тебе сложно стать лучшим, но это не означает, что ты умрёшь, короч.
> А что делать если тебе нужно вернуть значение которого у тебя нет?
Ага, через указатель, точнее, указатель с ошибкой: в го функция может возвращать несколько переменных (как правило это [pointer, error]) - и гошные линтеры умеют понимать, проверил ты это ошибку или используешь указатель "всырую".
Но даже если функция возвращает только указатель (хотя так обычно не делают), если это геттер, то ты же не дурачок и сразу напишешь что-то вида
```
val := GetVal()
if val == nil {
return err
}
// use *val
```
и убьешь возможную ошибку в зародыше.
Было бы лучше, если бы были к примеру юнион тайпы и в го можно было писать `func Foo() (value | error)`, но чего нет, того нет :(
Аноним 29/09/20 Втр 17:27:57 1818954129
>>1818719
>работать над сложными задачами, которые, по какой-то причине, невозможно решить на Java
Божечки, что же это за задачи такие-то?
Аноним 29/09/20 Втр 17:52:06 1818978130
>>1818954
Очевидно, написать кастомный scala-based-dsl.
Аноним 29/09/20 Втр 18:05:55 1818997131
>>1818954
this >>1818978 Типа сложный домен (обычно финансовый), где нужно накрутить побольше тайпклассов и упороться монадами на отличненько. Все как один негативно относятся к Akka/Play/Slick и говорят, что это "не тру скала" и что им "жаль" людей, которые тратят время на беттер джава подход, когда можно все тоже самое писать на котах.
Аноним 30/09/20 Срд 01:25:23 1819263132
>>1816886
Все хорошо с GraalVM, спроси у жейли в скалачяти.
Аноним 30/09/20 Срд 08:40:44 1819355133
>>1819263
>жейли
Жейли с Каем (Михаилом) - это как Весемир с Геральтом из мира Ведьмака. Они же ебанутые на всю голову.
Аноним 30/09/20 Срд 13:36:36 1819608134
А чо есть варианты со скалой в Украине? или лучше уже питон + го?
Аноним 30/09/20 Срд 13:59:24 1819647135
>>1819608
Немчинского послушай по Scala. Он дурного не посоветует. Там грамотный разбор, между прочим.
Аноним 30/09/20 Срд 16:50:04 1819800136
>>1818719
> сегодняшний срач тимлидов крупных контор в scala_jobs
Видимо потёрли уже, ничего не нашёл :(
Аноним 30/09/20 Срд 17:46:29 1819859137
>>1818978
>Очевидно, написать кастомный scala-based-dsl.
Что еще можно услышать в скала треде кроме - скала ради скалы.

Нет такой бизнес задачи написать кастомный scala-based-dsl, есть задачи где это один из вариантов решения. Но кастомный DSL можно много на чем написать, есть и котлин и груви, в конце концов ANTLR.


>>1818997
>Типа сложный домен (обычно финансовый), где нужно накрутить побольше тайпклассов и упороться монадами на отличненько.
У кого в руках скала - тому все кажется тайпклассами и монадами.
Аноним 30/09/20 Срд 18:19:30 1819884138
>>1819859
>У кого в руках скала - тому все кажется тайпклассами и монадами.
Эти разговоры не на пустом месте появились. Большинство бекенд вакансий - это коты и прочий тайплевел стек. А это тайпклассы через тайпклассы.

Ни спарк ни лайтбенд стек не признается в скала коммьюнити как тру-скала. Хотя вакансии по спарку еще присутствуют.
Аноним 01/10/20 Чтв 03:59:31 1820223139
image.png 97Кб, 2350x768
2350x768
image.png 47Кб, 1134x678
1134x678
>Ни спарк ни лайтбенд стек не признается в скала коммьюнити как тру-скала
Коммьюнити уровня чатиков в телеге?
Коты, как видишь, растут. Ну так выучи если работу не найти, делов-то.
Аноним 01/10/20 Чтв 04:06:55 1820225140
>>1819859
>Нет такой бизнес задачи написать кастомный scala-based-dsl
Там выше "сложными задачами, которые, по какой-то причине, невозможно решить на Java".
Как видишь, слова "бизнес", там нет.
01/10/20 Чтв 08:25:12 1820241141
>>1820225
>Там выше "сложными задачами, которые, по какой-то причине, невозможно решить на Java".
>Как видишь, слова "бизнес", там нет.
Там еще выше
>При этом они подтверждают, что в Scala люди идут не за высокой зарплатой, а за возможностью работать над сложными задачами, которые, по какой-то причине, невозможно решить на Java.
Как видишь там есть слово "работать", что подразумевает решение именно бизнес задач, а не скала ради скалы.
Аноним 01/10/20 Чтв 09:59:19 1820264142
>>1820223
>Ну так выучи если работу не найти, делов-то.
Ах если-бы все было так просто! Ведь в РФ никому не нужен перебежчик без коммерческого опыта в Scala. Ну и вакансии на котах меня ничуть не возбуждают. Ведь я могу лишь только догадываться сколько боли и унижения приходится терпеть рядовому программисту, которые в очередной раз пытается реализовать тайпкласс из котов, а идея все краснит!
Аноним 01/10/20 Чтв 20:38:00 1820766143
>>1820264
>Ведь в РФ никому не нужен перебежчик
Ищи работу не только в РФ.
Аноним 02/10/20 Птн 07:55:45 1821026144
>>1820264
>Ну и вакансии на котах меня ничуть не возбуждают
Ну и че ты в скалатреде забыл, если тебе ни betterjava ни ФП стек не нравятся, опущ? Иди на питоне пиши скрипты.
Аноним 02/10/20 Птн 09:29:41 1821039145
>>1821026
>betterjava
Отсутствие вакансий как класс. Общественное гонение на лайтбенд стек.

>ФП стек
Полторы вакансии в РФ, где нужно 3 года коммерческого опыта на котах и прочих фс2, минимум. Весь фп-стек - это леваки из тайплевела + пару отбитых кадров на вроде болгарина, который топит за дайверсити, и какого-то чела, которого поперли из твиттера и теперь он воюет с воображаемыми белыми супремасистами и пишет жысон парсеры.
Аноним 02/10/20 Птн 11:49:34 1821110146
>>1821026
Тааак, сейчас буду писать масштабируемые приложения на Скэйле!
@
Падажжиии, а почему ИДЕЯ краснит! Тааак...
@
Что же это такое, почему Скейла срет в хип! Падажииии!
@
Хм, а это что за закорючка?! Таааак!
@
Да как так то?! Почему всего 1к запросов в секунду! У на с же должно быть РЭКТИВ ПРАГРУММИНГ! Тааак, падажжии!
@
Михал Брсыч, ну дайте еще полгода - мы все на котлин перепишем и людей наймем!
@
Сап /pr, мне не перезванивают...
Аноним 03/10/20 Суб 23:34:25 1822473147
>>1813363
> Нет, не похуй. Менеджмент понимает, что если начать проект на непопулярной технологии, то это может загубить весь проект. Так случилось с Моим Складом. Пока его писали борщехлебы на Scala, то дела у компании шли так себе - новых сотрудников было тяжело нанять и они стоили каких-то безумных денег, продукт был забагован и вхождение в проект было тяжелым испытанием для новых программистов. Но вод пришел Козуля и переписал проект на Java и теперь разработчики находятся на раз-два, проект очистился от FP-дерьма и теперь все будет ништяк.

Я уж сильно извиняюсь, что отвечаю на пост далекой давности. Но блэт, какая же бредятина здесь написана. У МоегоСклада на Scala.js был написан только один маленький подпродукт (онлайн-касса), который не так уж сильно влиял, и говорить, что у компании шли дела плохо из-за этого - просто большая и наглая ложь. Основную прибываль в компании приносил сам МойСклад (невероятно, да), в котором скалы нет и использовался супер-древний полу-мертвый Java EE стэк (немножно вру, ибо капелька скалы в виде, например, джавовой обертки на скаловым персистентным вектором там была в коде). И лучше бы в МС хотя бы использовали Scala.js на фронте, ибо в реальности там используется для этого GWT, о котором ничего кроме кучи мата сказать вообще нельзя.

мимо бывший сотрудник МС, который ушел в скалу
Аноним 04/10/20 Вск 11:54:53 1822724148
>>1821039
Ты бот, который на кейворды триггерится? Или ты просто малолетний дебил, которому понабрасывать хочется?

- СКАЛА ГОВНО
- Ок, говно так говно, хуле ты в треде забыл?
- СКАЛА ГОВНО РАБОТЫ НЕТ
- Ну не нравится так пиши на пхп
- ГОВНО ГОВНО

Всем похуй, чел

Аноним 05/10/20 Пнд 17:08:02 1823793149
>>1798168 (OP)
Аналитика по Akka подоспела -

>Вот в акке ты что-то добавил и у тебя всё развалилось, и ты об этом не узнаешь
Аноним 05/10/20 Пнд 19:31:09 1823881150
Прохожу степик, беру спецкурс в унике и иду в жёлтый банк на 300кк/нс, подводные?
Аноним 05/10/20 Пнд 20:44:56 1823931151
>>1823881
> подводные?
На собеседовании тебя травят виабушники с котами на аватарках
Аноним 06/10/20 Втр 08:14:05 1824123152
>>1823881
Проходить курс от Олега стоит только в случае, если ты потом собираешься идти в финтех школу Тинькофф и являешься при этом студентом. Только учти, что туда подаются одни из лучших ребят, которые побеждают в межнарах и щелкают задачки с литкод уровня HARD как орешки перед завтраком. 300кк/нс тебе, конечно же, никто не предложит. Типичная вилка для рядового разраба с 3-5 годами опыта - 100-130к. Сам желтый банк теперь куплен Яндексом (на самом деле Сбербанком, который держит "49%" акций Я).
В зависимости от вакансии, тебя ждет либо скандальная бабенка, которая будет тебе выносить мозг, доказывая, что Option - это не монада. Либо будет челик из инвестиций, который обмазывается тофу и прочими поделками ирландских бездельников, которые дожидаются выдачи паспортов.
В любом случае, перспективы у тебя далеко не радужные.
Аноним 06/10/20 Втр 10:42:35 1824181153
>>1824123
> ирландских бездельников
С трактором на аватарке?
Аноним 07/10/20 Срд 16:56:31 1825302154
>>1798168 (OP)
Неистово проигрываю в голосинушку с вакансий, которые вкидывают в скала_джоубс. "до 200к!", "ищем строго сеньоров!", "5 лет на спарке!", "физмат или математическое образование!". Какие-то мутные конторки, онлайн-казино из Литвы, где заебанные жизнью крупье со слезами на глазах крутят рулетки. Какие-то "стартапы" из Эстонии и Финки, пытающиеся найти сенек на 2к баксов через ИП.
Все эти "вакансии" не имеют ничего общего с настоящей работой, которую можно лицезреть в про_джмджобс. Вот где работа так работа! Каждый день вкидывают по 5-7 новых вакансий и все как на подбор - адекватные требования, вилки от 150 до 400к и выше (для лидов и крутых парней). Все хорошо у джавистов. Одни скалисты работают не за зарплату, а ради интересных проектов и пердолинья монад.
Аноним 09/10/20 Птн 10:40:39 1826454155
>>1798168 (OP)
Очередная вакансия в скала_джоубс. Очередная компания пытается найти Apache Spark разработчика на вилку до 175к, лол.
Аноним 12/10/20 Пнд 09:50:58 1828332156
>>1798168 (OP)
Как начать писать пет-проекты? Прочел несколько книг, но все равно появляются моменты, когда я понимаю, что освоил не всю скалу. Понимаю, что без пет-проектов мое резюме даже рассматривать не станут, а на собеседованиях, скорее всего, будут попускать на алгоритмических задачках и каких-нибудь тонкостях языка на вроде линеаризации трейтов, например.
Аноним 12/10/20 Пнд 12:51:19 1828414157
15900179550350.png 506Кб, 653x995
653x995
>>1828332
О, да, знаю эту проблему. Творческий кризис.
Если в кратце, старайся почаще задаваться вопросом "хуйнянейм не существует, а было бы супер, если бы она была".
Возможно, на андройде нет клиента для твоего любимого сервиса?
Или один бот в телеграмме работает не так хорошо, как бы тебе хотелось (если он вообще есть)?
Или ты бы хотел, чтобы малинка крутила резитивный диммер на маслянном обогревателе?
Аноним 12/10/20 Пнд 13:29:48 1828448158
>>1828414
У меня нет проблемы с идеями проектов. Я боюсь, что мой код на Scala будет не оптимальным или всратым, в духе Java, т.к. я могу не знать каких-нибудь фишечек или паттернов, которые распространены в Scala-мире. Из-за этого у меня некого рода паралич, когда просто записываю и анализирую идеи (выбираю библиотеки и фреймворки, ищу аналоги и анализирую, что я мог бы улучшить, рисую архитектуру), но за написание кода так и не берусь...
Аноним 12/10/20 Пнд 13:32:19 1828449159
>>1828448
Попробуй вкатиться как стукнет совершеннолетие
Аноним 12/10/20 Пнд 13:39:43 1828459160
Аноним 12/10/20 Пнд 15:17:59 1828579161
>>1828449
Почему ты такой жестокий? Я гребу джавистом и хочу перейти в скалу. Вот из-за таких как ты, люди уходят из скала-коммьюнити.
Аноним 13/10/20 Втр 14:12:27 1829243162
>>1828579
У тебя на работе скорее всего есть куча штуковин, которые возможно многим лень сделать (ну или просто нахрен не нужно, а тебе может быть весело). Такие штуки и есть отличный плейграунд для маленьких пет-прожектов. Не факт, что кто-то будет использовать, не факт, что получится годно, но для игр с интересным стеком такие задачи прекрасно подходят.

Чаще всего можешь посмотреть в сторону CD (в очень многих проектах, особенно свежих, это целый простор для своих тулзов)
или, например, если сервис большой и публичный и с предыдущим пунктом все ок, можно написать какую-нибудь тулзу, играющуюся с АПИ. А может у тебя тестеры есть? Вот посмотри, что им не хватает.
Аноним 15/10/20 Чтв 18:17:17 1831407163
Приходите к нам в scala-коммьюнити, здесь вас ждут:

- Лысый рекламщик-нацист
- Психически неуравновешенный Мистер Коричневый
- Гей-пара из Ирландии
- Поехавший тимлид из желтого банка с аниме на аватарке
- Телеграм-пацаны с λ и [F] в именах
Аноним 15/10/20 Чтв 19:54:15 1831493164
>>1831407
Шавка Трэвиса? Это ты?!
Аноним 16/10/20 Птн 20:50:19 1832273165
image.png 1403Кб, 998x650
998x650
>>1824123
> Option - это не монада
Аноним 17/10/20 Суб 08:11:41 1832489166
>>1832273
Определение монады почитай, дружок. И какие лаус она реализует.
Аноним 18/10/20 Вск 01:32:43 1833247167
Аноним 18/10/20 Вск 03:57:31 1833292168
Аноним 18/10/20 Вск 08:39:30 1833338169
>>1832489
И какой же из законов нарушает опшн, еблан?
Аноним 18/10/20 Вск 08:54:13 1833340170
>>1833338
Еще раз - Опшн это монада и она следует лаус монады, а именно реализует методы мэп и флэтмеп и является тайпклассом.
Аноним 18/10/20 Вск 09:48:28 1833347171
image.png 1513Кб, 998x650
998x650
>>1833340
>лаус монады, а именно реализует методы мэп и флэтмеп и является тайпклассом.
Аноним 18/10/20 Вск 10:15:13 1833352172
>>1833347
Я тебе еще раз объясняю, что монада - это тайпкласс с методами мэп и флетмеп. Почитал бы красную книгу.
Аноним 18/10/20 Вск 10:30:46 1833356173
Аноним 18/10/20 Вск 12:59:11 1833398174
image.png 516Кб, 750x716
750x716
Аноним 18/10/20 Вск 13:57:28 1833456175
>>1833398
Открой любое пояснение, что такое монада и увидишь, что это тайпкласс с методами мэп и флетмеп.
Аноним 18/10/20 Вск 14:12:29 1833472176
>>1833456
>Открой любое пояснение, что такое монада
Но ведь монада - это коробка, из которой вантуз выталкивает значение...
Аноним 18/10/20 Вск 15:31:23 1833538177
e053d7ed34654fa[...].jpg 9Кб, 431x300
431x300
1c22f3a8336dad8[...].png 111Кб, 580x713
580x713
>>1833472
Каждый раз в голос.
Аноним 18/10/20 Вск 19:11:55 1833719178
>>1833456
Ты каждым постом мисконцептишь или путаешь вообще всё от теортиповых категорий до подходов к их реализации
Аноним 18/10/20 Вск 21:01:04 1833920179
>>1833456
Ващет монада определяется тайп конструктором М с двумя операциями:
return :: a -> M a
join :: M (M a) -> M a

где join можно заменить на bind

bind :: M a -> (a -> M b) -> M b
Аноним 19/10/20 Пнд 19:48:32 1834823180
>>1833456
Объясните уже кто-нибудь этому долбоёбу, что монада - это функтор T: K->K с двумя известными естественными преобразованиями, а все эти тайпклассы и мапы - это специфика реализации монад в конкретном ЯПе или даже библиотеке.
Аноним 20/10/20 Втр 18:59:03 1835568181
>>1834823
Ну ты еще скажи что монада это моноид в категории эндофункторов, в чем проблема?
Аноним 20/10/20 Втр 19:04:26 1835573182
>>1835568
Это уже лишнее. Мой поинт был в том, что монада - это концепция, а тайпкласс с методами - это какая-то конечная уебищная реализация.
Аноним 26/10/20 Пнд 10:17:58 1839941183
Здравствуйте.
Учусь на старшем курсе и задался вопросами. Есть ли смысл вкатываться в скалу через Олежа-банк в Екате? И смогу ли я потом перекатиться в другую компанию на скалиста? Ведь жёлтый банк вроде как на тофу пишет.
Аноним 26/10/20 Пнд 12:27:42 1840005184
>>1839941
>Учусь на старшем курсе
Нет, не стоит. Вкатывайся в джаву или питон.
Аноним 31/10/20 Суб 14:05:33 1844748185
>>1840005
Да, конкуренции меньше будет на скале. Пусть лучше подемпингует зпхи на Яве. Питонистам и так платят копейки.
Аноним 18/11/20 Срд 10:43:46 1859258186
изображение.png 114Кб, 1279x663
1279x663
изображение.png 58Кб, 1209x390
1209x390
изображение.png 58Кб, 985x410
985x410
Друзья, помогите, не знаю как такое загуглить.
У Apache есть либа kafka_2.12, я использую версию 2.3.1

В ней есть класс (Пик1)
Когда я подключаю как библиотеку в джава проект, я могу обращаться к этой штуке так: new RackAwareMode.Safe$()
Идея показывает байткод Пик2

Я попытался зашейдить эту зависимость с релокейтом ЗК, И теперь у меня нет доступа до Safe$ - не видно ее из джава класса + байткод стал другим (Пик3)

От чего это может зависеть? думал от таргет версии двм, но вроде как нет... Как такое гуглить?
Аноним 18/11/20 Срд 12:38:59 1859298187
>>1859258
Ух бля.
По идее делать new для обращения ко вложенным object тебе не нужно, гугли "scala static forwarders".
В остальном я хз, видимо зависит от того, как именно ты делаешь релокейт.
Но вообще, почему бы не написать код на скале, либо просто взять джавовый кафка клиент?
Аноним 18/11/20 Срд 15:39:48 1859371188
>>1859258
>>1859298
контекст: кровавый тырпрайз на джаве, а мне нужно обновить версию зукипера, при этом кафке нужна старая версия ЗК (Зукипер), поэтому я зашейдил кафка-зависимость и релокейтнул ЗК.

В итоге такой отвал жепы скалы случился.

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

способом тыка понял, что эта проблема появляется когда релокейт происходит
добавил в релокейт пакет, где лежит проблемный класс (kafka.admin) и все заработало.

Не знаю почему так :(
Аноним 18/11/20 Срд 17:15:01 1859442189
>>1859371
>>1859371
а нет я долбаеб, нихуя не заработало. я же импорты не поменял после релокейта сука. блять как же заебало
Аноним 18/11/20 Срд 19:30:49 1859507190
>>1859442
А ты шейдил бинарник кафки? Что-то по байткоду не видно, чтобы там что-то в другой пекедж уехало.
Аноним 19/11/20 Чтв 10:37:11 1859960191
>>1859507
да шейдил, но пекедж менял только у "org.apache.zookeeper",
"org.apache.jute"
Попробовал зарелокейтить аналогично все пакеты с префиксом "kafka" - не помогло, та же проблема :(

Я пользовался для шейдинга плагином https://github.com/johnrengelman/shadow
Щас посмотрел - там много окрытых ишью со скалой - видимо плагин криво работает с ней.

Может кто нибудь посоветовать плагин для шейдинга кафки? с учетом что там сорцы на скале.
у мавен шейд плагин тоже какие-то проблемы есть https://issues.apache.org/jira/browse/MSHADE-345
Аноним 19/11/20 Чтв 12:24:45 1860004192
>>1859960
>да шейдил, но пекедж менял только у "org.apache.zookeeper",
>"org.apache.jute"
Не понял, зачем ты менял пекдж у зукипера, если у тебя конфликт версий кафки?
Аноним 20/11/20 Птн 12:19:55 1860934193
>>1860004
зукипер в проекте должен быть новой версии, а кафка должна использовать старую
поэтому для кафки зашейдил старую, а в основном проекте поднял версию
Аноним 20/11/20 Птн 14:15:29 1861023194
изображение.png 9Кб, 414x110
414x110
изображение.png 24Кб, 303x251
303x251
>>1859371
короче деконплеировал бинарник самой либы kafka_2.12 (пик1) и то что у меня получилось зашейдить (пик2).

Почему-то плагин для шейдинга наколбасил для каждого вложенного object отдельный класс.

При этом джавовы конпелятор его не видит, иде показывает синтаксическую ошибку, когда пытаешься к нему обратиться. Но! Class.forName("kafka.admin.RackAwareMode$Safe$") работает.
ну и хуйня....
Аноним 20/11/20 Птн 15:37:48 1861110195
>>1861023
зашейдил с помощью maven shade plugin'а - абсолютно такая же проблема. может все таки я что-то не так делаю, а не плагины кривые...
Аноним 20/11/20 Птн 16:05:13 1861130196
Аноним 22/11/20 Вск 14:01:32 1862714197
>>1861023
1) Ты точно понимаешь как шейдинг работает?
2) Опиши граф зависимостей - что и в каком порядке ты компилируешь и собираешь.
Аноним 23/11/20 Пнд 16:39:43 1863796198
>>1861023
Есть вариант попробовать разные класслоадеры.
Аноним 25/11/20 Срд 13:15:01 1865312199
>>1862714
ну смотри как я понимаю
шейдинг - когда код зависимостей прямо запихивается в сам джарник, это удобно для развертывания приложения на серваке - чтоб все нужные зависимости нужных версий в самой джарке были
Во время шейдинга можно релокейтнуть классы в другой пекедж (т.о. изменить их FCN и импорты все соотв. в джарке поменять), таким образом можно позволить в рантайме иметь две версии одной и той же либы: джарка использует ту, которую сохранила и релокейтнула, а клиентский код, который подключил эту джарку как либу - может юзать другую версию

Аноним 26/11/20 Чтв 20:48:04 1866411200
>>1865312
Верно, только обычно шейдингом называют именно сборку с релокейтом. Если просnо запихнуть все зависимости в джарник, это не шейдинг. Теперь нарисуй граф зависимостей.
Аноним 27/11/20 Птн 18:18:58 1867101201
Есть тут еще живые? Вопрос от мимостудента. Создаю класс и передаю ему как аргумент pattern matching. Как уже в методах класса к нему обратиться и совершить там поиск? Нужно понять содержится ли в сопоставлении данный элемент или нет, заранее спасибо!
Аноним 27/11/20 Птн 18:59:45 1867144202
>>1867101
>Создаю класс
>передаю ему как аргумент
>pattern matching
Тебе бы у специалиста провериться. Боюсь, что программирование это не твое. Возможно, что будет лучше, если ты пойдешь работать кассиром или дворником.
Аноним 27/11/20 Птн 19:31:50 1867173203
>>1867101
Этот >>1867144 конечно токсик, но матчасть тебе действительно подтянуть бы
Аноним 27/11/20 Птн 21:32:50 1867275204
>>1867173
а что собственно не так?
Аноним 27/11/20 Птн 21:54:40 1867292205
>>1867275
Паттерн матчинг это фича языка, как ты можешь ее в класс передавать? Код показывай и скажи какие значения он должен возвращать.
Аноним 27/11/20 Птн 22:03:36 1867299206
Безымянный.png 53Кб, 1920x1050
1920x1050
>>1867292
Я не претендую на гениальный код, я всего лишь начинающий разработчик и могу ошибаться, вот код, слева реализация класса с одним методом(пока), справа основной фай. Реализую нечеткие множества. Паттерн матчинг прекрасно передается в класс и используется в методе(первый метод работает), в ином случае никак не могу обратиться к паттерн матчингу. В принципе по коду все понятно должно быть, создаем юниверс(общее множество элементов) и несколько нечетких множеств. Прошу сильно не ругаться
Аноним 27/11/20 Птн 22:04:23 1867301207
Безымянный.png 83Кб, 1920x1050
1920x1050
>>1867299
сейчас скину второй скрин снова, чет тут хуево показывается
Аноним 27/11/20 Птн 23:17:59 1867382208
>>1867301
У тебя FuzzySet принимает не "паттерн матчинг", а double или флоат, который и является результатом выражения с паттерн матчингом.
Аноним 27/11/20 Птн 23:20:28 1867389209
>>1867382
значит он получает несколько значений, верно? Если так, то как мне к ним обратиться в теле класса?
Аноним 27/11/20 Птн 23:28:50 1867407210
>>1867389
Извини, пропиздоглазил. Класс получает функцию int -> float, ее и можешь вызвать в теле класса.
Аноним 27/11/20 Птн 23:31:14 1867411211
>>1867407
могу, но как? в методе isEmpty это получается благодаря юниверсу и forall, но других вариантов я не нашёл вовсе
Аноним 27/11/20 Птн 23:31:55 1867412212
>>1867407
И да, класс получает не Int - double, а T - double
Аноним 27/11/20 Птн 23:36:54 1867415213
>>1867411
Не понял вопроса. Ты не знаешь как функцию вызвать? Или ты хочешь узнать ее область область определения?
Аноним 27/11/20 Птн 23:38:21 1867417214
>>1867415
Я хочу узнать как получить доступ к значениям, которые передаются при создании класса. Там есть закомментированный метод contain и я хочу понять есть элемент v в тех значениях, которые я передал в класс.
Аноним 27/11/20 Птн 23:42:51 1867421215
>>1867417
Ты в класс передал одно значение - фунцию.
Аноним 27/11/20 Птн 23:44:08 1867422216
>>1867421
Понял, тогда как мне обраться к этой функции для получения значений?
Аноним 27/11/20 Птн 23:45:13 1867424217
>>1867422
Вызвать ее внутри метода класса.
Аноним 27/11/20 Птн 23:51:32 1867429218
>>1867424
Вызвал, передаёт ее хэшкод. Как получить ее элементы? Просто вызов не совсем работает.
Аноним 28/11/20 Суб 00:52:29 1867473219
>>1867429
Что такое элементы функции? Покажи как ты ее вызываешь.
Аноним 28/11/20 Суб 07:30:00 1867539220
>>1867299
>>1867301
А ребята из Неофлекса в курсе, что ты тут двачуешь? И с каких пор они начали предоставлять некий тренинг для перекатывающихся в Scala? Они же ищут только матерых спецов на Java/Scala, чтобы пердолить проекты на аутсорсе.
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов