Этого треда уже нет.
Это копия, сохраненная 31 июля 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Scala #2 /scala/ 1798168 В конец треда | Веб
Scala сочетает объектно-ориентированное и функциональное программирование в одном выразительном, высокоуровневом языке.
Система типов Scala позволяет избегать ошибок в сложных приложениях, а рантаймы для JVM и JS позволяют строить высокопроизводительные системы с удобным доступом к огромной экосистеме библиотек.

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

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

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

Q: Хочу угорать по функциональщине и теории категорий
A: Посмотри на Хаскелль
2 1798171
>>1798168 (OP)
Предыдущий тред тонет тут >>1665014 (OP)
3 1798896
>>1798168 (OP)

>рантаймы для JS


Кому нужона скала на фронте?
И что там с компилятором, очередные свистоперделки поверх гугловского кложура? Он еще поддерживатеся вообще?
4 1798903
>>1798896

> Кому нужона скала на фронте?


Из отечественных юзеров "Мой Склад" использует (по крайней мере использовал год назад) для электрон-приложения

> Он еще поддерживатеся вообще?


Вполне. Почти все популярные библиотеки адаптированы для работы со scala.JS
5 1799071
>>1798168 (OP)

> Q: Какие либы НЕ брать?


> A: play, izumi, tofu



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

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


> A: Посмотри на Хаскелль



Да ты ж ебанутый.
6 1799896
Ребят, кто димсола и кота в овощной кидает?
7 1799962
>>1799896
У шизика совсем крыша потекла я смотрю. Своих одноклассников в треде ищет.
8 1800005
>>1799896

Кривда, я кидаю
9 1800086
>>1799962
В Москве есть замкнутая тусовочка Scala-разрабов из желтых банков.
Их особенность в том, что это такая самобытная секта - они пилят собственную библиотеку эффектов, и не замечают происходящего в коммунити за их пределами.
Короче, каноничные борщехлебы, только сидящие не на шее у мамки, а каким-то образом пробравшиеся в отделы разработки банков.
10 1800192
>>1800086

>Пробрались в банки


>Борщехлебы


Поражаюсь твоему отрицанию реальности.
11 1800311
>>1800192

Объективно, с точки зрения норм работодателя они пойзонус емплоерс, втащившие свой матан на прод и локнувшие этот прод на необходимость искать редких академиков с матаном головного мозга вместо индусов.
12 1800452
>>1800311
Значит они няши и сделали всё правильно.

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

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

мимо-фп-партизан
13 1800454
>>1800452

> умных людей


Лол, нет, такие же долбоёбы, только залифтили representableK монады себе в очелло
14 1800465
>>1800454

>вумники очки напялили сидят со своими мандадами, ни то что мы простые макакены чисто на спринге и не паримся еее)


Ммм, эта боль копчёного.
15 1800471
>>1800465
Чини детектор. Я не против ФП, я против того как эти долбоёбы наворачивают trait Transfer[T[_[_]], Link[_[_]], _[_]], Constraint[_[_]]]. Это реальный пример если что.
16 1801090
>>1800471
А что тут сложного, и похожего говно и в джаве много
17 1801101
>>1801090
Давай, объясни сходу, что это за тайпкласс, какие у него laws и как его лучше применять
сугакпорицает.jpg53 Кб, 599x500
18 1801316
>>1801101
Главный laws это то, что у твоей мамы ты родился не очень умным. Это обычный обычный трейт с тайп параметрами.
19 1801993
>>1800311
Не в курсе что именно они там делают, но что именно ты назывешь матаном? Любую абстракцию? Так почти любая библиотека и особенно фреймворк в любом языке дает тебе свои абстракции.
Кто такие академики? Люди, способные осилить эти самые абстракции? Все программисты этим занимаются каждый день ну уж точно когда приходят на новый проект.
>>1801101
Странно высрать рандомную строчку внутреннего кода и требовать по ней понять то что ты просишь. Тот анон наверное имел в виду что эта конкретная строчка понятна - есть какая-то передача данных, видимо но каналу с началом и концом и какими-то ограничениями. Все это параметризировно по типу эффекта, скорее всего, но сказать сложно без контекста проекта. Еще для меня не ясно что такое тип T - тип данных для передачи или что? Могли бы и попонятнее назвать.
Нужны ли эти абстракции и качственны ли они - другой вопрос.
20 1802034
>>1801993

> рандомную строчку внутреннего кода


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

> Нужны ли эти абстракции и качственны ли они

21 1802144
>>1802034
Дай ссылку на код, по одной строчке сложно понять качество. Может там scaladoc на 50 строчек над этим определением.

>это какой-то частный случай, который они пытаются выдать за нечто общее


Ты же понимаешь что наверное о чем угодно можно сказать "это частный случай чего-то более общего". Монада - частный случай моноида, если что. Ты о "матане" точно в негативном ключе говорил?
22 1802459
>>1802144
Расскажите, зачем дрочить монады и дырки, когда 3/4 вакансий на Scala - это неумелый пердолинг в "большие данные" на Apache Spark, а остальная четверть это дрочь акторов или какого-нибудь плей фреймворка?
23 1802461
>>1802459
Чтобы такие недоучки как этот >>1800452 могли потешить ЧСВ и сказать "смотри мам математика"
24 1802478
>>1802461
Но ведь я серьезно. Я листаю вакансии и чистые бекенд позиции это чья-то не очень удачная попытка запилить проект на малораспространненном стеке, когда на том же Spring это делается на раз-два, а разработчиков на несколько порядков больше.
25 1802789
>>1802459
Люди дрочат монады и дырки потому что им нравится теоркат. Я, например, ничего не дрочу, а просто использую абстракции по мере необходимости.
>>1802478
Научишь удачность проекта по тексту вакансии определять? Дай угадаю, алгоритм такой: есть скала - проект неудачный.
26 1803901
>>1800311
Ну значит рано или поздно их выкинут на мороз и наймут индусов за три копейки, чтобы переписать все на шарпе/джаве.
27 1803927
>>1800452

>Потом ещё спасибо скажут.


За что? Программист -- это commodity, дешевый расходный материал. Неважно на чем он пишет - на скалке или пыхе.

Главное, что двигает ИТ иднустрию - наличие большого количества дешевой рабочей силы. Если вдруг кодерки станут элитой, то это замедлит прогресс
28 1804039
>>1800452
Элита программистов должна сделать такие тулзы и языки, чтобы даже тупые макаки могли бы делать что-то работающее и полезное, пользуясь ими.
29 1804089
>>1804039 тебе сюда >>1736180 (OP) в добрый путь
30 1804102
>>1804089
Нет не мне. Я-то как раз Элита. Можешь мне поверить.
31 1804142
Есть реальная возможность вкатиться в скалу если до этого только на жс и реакте работал? Или лучше бросить эту идею и взять что более приземлённые типа го?
32 1804143
>>1804142
На Гоу ты хотя бы работу сможешь найти и вкатиться с JS на нее будет проще простого. На Скалу ищут только опытных разработчиков, которые до этого работали Java программистами.
33 1805881
Сап, скалолазы. Какие книги топ по скале? И стоит ли сейчас её изучать или дождаться уже третьей версии (слышал она будет примерно в конце 20го года)
34 1805930
>>1805881

>третьей версии


Она уже готова на 95%, но из литературы только дока и хуй вместо вменяемой поддержки IDE. Но если сильно интересно, то можешь взять Dotty и ковырять прямо сейчас. Лично я уже около года балуюсь дома.

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

>>1805881
можешь пока не переживать за дотти, учи что есть.
топ книги - functional programming от создателя (не обязательно целиком), от него же курсики по fp на курсере, scala for the impatient (чуть устарела вроде), твиттеровские ресурсы какие-то были неплохие.
37 1807396
>>1804143

> На Скалу ищут только опытных разработчиков, которые до этого работали Java программистами.



вкатился когда-то на первую работу скалистом-джуном, 0 опыта работы, так что это как минимум не невозможно, как в общем - хз.
38 1807428
>>1807391

>functional programming от создателя


Если ты имеешь Functional Programming in Scala, то ее писал не Мартин, а Рунар. Книга так себе, если честно. Начиная с 7 главы повествование идет в очень сумбурном стиле. Есть Functional Programming Simplified от Alvin Alexander - там по сути тоже самое, только написано более простым языком и примеры чуть ли не на пальцах разбираются.

>от него же курсики по fp на курсере


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

>scala for the impatient (чуть устарела вроде)


Довольно таки бодрая книжка. Сложно сказать, что-нибудь плохое про нее.
39 1807431
>>1807391

>doobie норм работает


Меня пугает то, что его разрабатывает один челик. Над сликом пахало целая команда, которая сидела на зарплате у Lightbend, но его это не спасло.

>да и любая стабильная java-либа с небольшой оберткой подойдет, на самом деле.


На сколько это Scala-way? Если писать обертки поверх джавовых библиотек, то можно ведь и головой двинуться. Одно дело, если ты используешь какую-нибудь Akka, из которой футуры торчат, а если ты на котах или зио пилишь бекенд?
40 1807451
>>1807431
IO.fromFuture(IO(здесь твоя фйюча))
41 1807742
>>1807428
Перепутал книгу Одерски и the red book видимо. Я говорил про первую, красная книга по желанию. От Александра не читал, думаю норм.

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

>книгу Одерски


Ну, это же типичный справочник по языку. Читать его скучно и там не разбираются ни типичные архитектурные приемы ни паттерны при работе на Scala. Красная книгу рекомендуется читать как введение для котов. Хотя я не уверен, что описанные там практики помогут тебе при работе с той же Akka, например.
image.png5 Кб, 264x143
43 1807898
>>1806953

>Slick мертв


?
44 1807899
>>1807898
https://github.com/slick/slick/issues/2126#issuecomment-674701468

>Slick is currently being maintained by its users who fix bugs and develop features that they need or want. As such, we don't have a roadmap or plans.

45 1807901
>>1807899
Ну то есть как многие опенсорс продукты, которые пилятся коммьюнити?
46 1807902
>>1807901
За крупными опенсорс продуктами обычно стоят крупные конторы на вроде VMware, JP Morgan, Apple, Twitter, Google и другие. И ключевые мейнтейнеры таких проектов либо работают в таких компаниях, либо наняты в виде внештатных работников. В любом случае - это люди на зарплате, которые пашут стандартную 5-дневку, где пилят "опенсорс проект, которые разрабатывается коммьюнити".
47 1808569
>>1807874

> Хотя я не уверен, что описанные там практики помогут тебе при работе с той же Akka, например.


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

> Ну, это же типичный справочник по языку. Читать его скучно и там не разбираются ни типичные архитектурные приемы ни паттерны при работе на Scala.


Мб, что бы сам посоветовал?
48 1808719
>>1808569

>Мб, что бы сам посоветовал?


Essential Scala
49 1809165
>>1803927

>Главное, что двигает ИТ иднустрию - наличие большого количества дешевой рабочей силы.


Только если называть движением повышение скорости высирания стартапного забагованного говнища, про 95% которого никто никогда не узнает, кроме заказчика и команды разработки. А те 5% что взлетят - или рухнут позже под тяжестью говнокода, либо не рухнут, но говном от этого быть не перестанут.

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


Интересы буржуйчика и качество софта - вещи ортогональные, иногда они совпадают, чаще - нет. Но вот интересы людей в целом - иметь качественный софт.
Я не против, чтоб всякий MVP хлам на выброс клепала индусня на питоне и гоу, но разработкой полезного прикладного софта для людей должны заниматься как минимум умные люди, которых ныне в IT сфере страшный дефицит.
49 1809165
>>1803927

>Главное, что двигает ИТ иднустрию - наличие большого количества дешевой рабочей силы.


Только если называть движением повышение скорости высирания стартапного забагованного говнища, про 95% которого никто никогда не узнает, кроме заказчика и команды разработки. А те 5% что взлетят - или рухнут позже под тяжестью говнокода, либо не рухнут, но говном от этого быть не перестанут.

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


Интересы буржуйчика и качество софта - вещи ортогональные, иногда они совпадают, чаще - нет. Но вот интересы людей в целом - иметь качественный софт.
Я не против, чтоб всякий MVP хлам на выброс клепала индусня на питоне и гоу, но разработкой полезного прикладного софта для людей должны заниматься как минимум умные люди, которых ныне в IT сфере страшный дефицит.
50 1809230
>>1809165

>разработкой полезного прикладного софта для людей


Это какой-такой софт ты называешь "полезным" и "для людей"?
51 1809232
>>1809165

>про 95% которого никто никогда не узнает


Достаточно посмотреть где используется всеми ненавистный Spring и какие проекты на нем реализуют, чтобы понять, что не обязательно дрочить анус котами и плакать кровавыми слезами из-за того, что ИДЕЯ код краснит, чтобы выдавать продукт, который будет приносить радость пользователям, а тебе - деньги.
52 1809246
>>1800471
Ты уверен, что второй тайп аргумент `Link` правильный? _[_]

Это разметка съела часть типа?
53 1809254
>>1808719
Да, читал её, отличная. По-моему оттуда же книжка про Cats стоит прочтения.

>>1809232

> дрочить анус котами и плакать кровавыми слезами из-за того, что ИДЕЯ код краснит


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

> какие проекты на нем реализуют


какие?
54 1809718
>>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 (правда без котов и прочего тайплевл стека).
54 1809718
>>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 (правда без котов и прочего тайплевл стека).
55 1810019
>>1809718

> Возможно ты не пишешь ничего сложнее хеллоуворлдов на пару строк


Пилю скалку в известном банке, тут немного не пара строк, но всё равно "пиздеца" прямо не ощущаю, как и ранее писал. Мб дело в настройках и мощностях, мб у всех разный порог пиздеца. Пользуюсь обычной комьюнити идеей на средней мощности воркстейшене на линуксе.

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


Всё так.

Яндекс, кстати, регулярно пишет-зовет на небигдатную скалу, видимо не только спринг у них.
56 1810055
>>1810019

>Яндекс


У них все проекты, которые входят в Вертикали написаны на скалке.
57 1810339
В общем только недавно узнал, что языки, где зарабатывают просто дохуя, по сравнению со всякими пхп и джавами. Это Эликсир, Руби, Скала, Го. Твердо решил перекатитьcя с пхп в один из них. Подсобите с выбором, в каком из них самые высокие зарплаты, но чтоб при этом работа вообще была ?
58 1810450
>>1810339
Не знаю как в скале но в руби работа есть, только вот хуй куда устроиться, везде миддлов с пятилетним стажем хотят.

Миморубист-вкатун
59 1810521
>>1810339

>Твердо решил перекатитьcя с пхп


Женя? Это ты в скаладжобс поливаешь говном пхп и хочешь перейти в скалу? Ты же понимаешь, что платят не за знание языка, а за экспертизу в предметной области и опыт разработки высоконагруженных проектов.
Учти, что те графики с зарплатами, где скала лидирует - это не более чем махинация со статистикой, т.к. в скале нет джюнов, а только сеньоры и принципалы.
60 1810667
>>1810521
Нет понятия "платят". Есть понятие вакансия. И в вакансиях пхп платят мало, полоток 300 тыщ, а в вакансиях скалы платят много, потолок 670 тыщ.
Это если говорить про удаленку из России

А вот тот факт, что в скале нет джун вакансий и невозможно вкатиться без 3+ лет опыта, конечно может меня остановить.
61 1811902
>>1807431

>Меня пугает то, что его разрабатывает один челик


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

>Над сликом пахало целая команда, которая сидела на зарплате у Lightbend, но его это не спасло.


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

>На сколько это Scala-way?


Вопрос не в этом, а в том насколько это нужно.
>>1806953

>Quill? Но это только DSL для написания SQL запросов.


Все из коробки работает, хотя можно и с Doobie подружить. Рекомендую, очень хороший проект, я его еще и с кассандрой и даже спарком использовал. Хотя возможно для новичков scalikejdbc понятнее будет, он простой (если все строго по примерам из доки делать и не стараться вникать как там этот DSL реализован) и на jooq похож. Обе либы, кстати, поддерживают асинхронную работу с постгресом, но я не знаю в каком состоянии эта функциональность, возможно альфа и это никогда изменится.
>>1808569
https://www.handsonscala.com
Сам не читал, но слышал положительные отзывы именно о том что тут разобраны реальные примеры. С другой стороны, автор использует свои библиотеки в книге. Это само по себе не плохо - они простые и позволяют сфокусироваться на языке и задачах, но если (скорее всего) в проде будут другие, придется их доучивать.
62 1812177
>>1811902

>входит в тайплевел стек


Туда много что входит, включая какие-то поделки от рандомных челиков.

>сам можешь подхачить что-то, не программист чтоле?


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

>он работает себе, пусть и не развивается активно


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

>https://www.handsonscala.com


>Сам не читал, но слышал положительные отзывы именно о том что тут разобраны реальные примеры.


Слышал ты из-за того, что этот хитрый китаец бегает по всем площадкам, где тусуются скала программисты и пиарит свою книжонку. Сама книга довольно посредственная и во многом опирается на поделки этого китайца, который изобретает очередной велосипед, которым пользуются полтора анонимуса.
63 1812287
>>1798168 (OP)
Откуда столько ненависти к Lightbend стеку? В основном это исходит из ру-сегмента скала коммьюнити. Большинство называет Akka, Play, Slick - легаси и рассказывает охуительные истории про то как "все компании" переходят на typelevel и горя не знают.
64 1812557
>>1812177

>Туда много что входит, включая какие-то поделки от рандомных челиков.


Там есть разделение на включенные проекты и incubator projects, doobie именно включен.

>Зачем мне что-то "хачить" в библиотеках?


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

>За многие годы работы джава программистом мне не приходилось


>что-то там править


Везет, мне и на джаве, и на С# приходилось. Судя по, например https://github.com/hibernate/hibernate-orm/graphs/contributors, сюда тоже контрибьютят люди не на зарплате.

>копаться в сорсах библиотек


А вот это вообще странно, очень часто по документации невозможно понять как точно работатет та или иная фича. Ну может тебе не нужно было.

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


50 багов. Это много или нет? Не знаю. По моему опыту 3-4 летней давности еще 2-ой слик был вполне работоспособным, но не слишком удобным в использовании.
Можешь, кстати, посмотреть на баги в Hibernate - там их сотни.

> Сама книга довольно посредственная


Ну вот теперь у меня еще один отзыв есть, негативный. Хотя я бы все равно советовал дать книге шанс - китаец хорошо пишет как минимум блог-посты.
65 1813169
>>1798168 (OP)
Подоспела качественная аналитики от инженера, который не может найти работу на Скале - https://habr.com/ru/post/520114/
66 1813241
>>1813169

>Scala мертва


>получил 4-5 офферов на Scala в нескольких Европейских странах


Как-то не очень вяжется.

>Подоспела качественная аналитики от инженера


>Раунд 1: Go vs Java


>Безоговорочно Go.


>мой опыт с ним составляет всего пару месяцев


На этом думаю стоит закончить, и не тратить время на очередную аналитику про микросервисы - ебанутые совершенно не понимают сколько проблем создает перенос вызова из памяти в сеть.
67 1813243
>>1813241
Гоу сочетает в себе простоту освоения (неделя-две) и удобство программирования. На Scala, пока не осилишь красную книгу и не прорешаешь все задачи без подглядывания в решение - можно даже и не начинать проект, т.к. все равно обосрешься без понимания комбинаторов, монад и типов высших порядков.
68 1813253
>>1813243
Гоу не так уж и легко освоить на уровне написания идиоматичного кода, особенно если до этого не работал с CSP-based системами и не привык к structural typing и это еще go2 не вышел, а удобно на нем программировать только тривиальные сетевые сервисы, которые легко создавать на любом достаточно распространенном языке вплоть до Хаскеля. Его преимущества в другом, а именно в рантайме, заточенном под определенные типы задач и унифицированном тулчейне.
69 1813258
>>1813241

>на очередную аналитику про микросервисы - ебанутые совершенно не понимают сколько проблем создает перенос вызова из памяти в сеть.


Ты совершенно напрасно драматизируешь. Микросервисы и serverless - это будущее разработки масштабируемых приложений. Проблема Скалы заключается в том, что за ней не стоит никакой крупной технологической компании, которая бы выпускала библиотеки/фреймворки, которые бы, в свою очередь, радикальным образом упрощали жизнь типичному разработчику.
Какое-то время люди были в восторге от Akka и Play Framework, но вскоре основательно поели говна с акторами (которые слишком поздно сделали типизированными и это так и не решило никаких основных проблем, а только добавило новых, в основном с деплоем новых версий сервисов в кластере). С Плеем так вообще смешно вышло - сейчас бы в 2к20 писать на толстом веб-фреймворке вместо того, чтобы отдельно выкатить фронт, который бы отдавался инжинксом и отдельно рест-бек на чем-нибудь легковесном.
В итоге, получили ситуацию, когда весь LIghtbend стек в скала-коммьюнити считается легаси и не рекомендован для новых проектов.
Остается typelevel стек. Но проблема тайплевела в том, что это не технологическая компания как редхат или оракл, а просто конгломерат из приходящих челиков, которые проталкивают свои мутные велосипеды в инкубатор и консалтеров, которые напилили всяких котов, сёрсе и прочих дубей и теперь пытаются выехать на поддержке и внедрении.
Это не идет ни в какое сравнение с тем же Spring за которым стоит VMware или Helidon за которым стоит Oracle или взять тот же Quarkus, который пилится с подачи Красношапки.
Т.е. не стоит сравнивать жалкие потуги скалистов, которые нажравшись дерьма на Akka, побежали пердолить микросервисы на котах и гонять месседжи через кафку, попутно объясняя менеджменту, что такое моноиды и как залифтить монаду себе в очко и почему это важно для проекта.
70 1813263
>>1813253

>Его преимущества в другом, а именно в рантайме


Да похуй на твой гоу рантайм, старина. Там до недавнего времени GC врубался по таймауту. Преимущество гоу в том, что можно взять условную похапэ-макаку и она через неделю будет выдавать код, который можно будет лить на бой. Код при этом получается однообразный и в нем нет никаких сюрпризов, когда нужно себе анус рвать, чтобы понять, как он работает.
За интересным рантаймом это тебе в Erlang/Elixir и виртуальную машину BEAM или взять тот же OCaml.
71 1813331
>>1813258
Я уже хотел было написать развернутый ответ про микросервисы и фреймворки, но после этого

>попутно объясняя менеджменту, что такое моноиды и как залифтить монаду


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

> весь LIghtbend стек в скала-коммьюнити считается легаси и не рекомендован для новых проектов.


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

>OCaml


Интересно, а что в нем особенного?

>преимущество гоу в том, что можно взять условную похапэ-макаку


Это миф, на уровне "хороший программист осилит любой язык за неделю, они все одинаковые". Языки разные, и научиться писать идиоматичный код за неделю не выйдет. Кроме того, не похоже чтобы на Go писали макаки, судя по тому сколько за него платят.

>когда нужно себе анус рвать, чтобы понять, как он работает.


Что интересно, самый запутанный код который я видел в жизни бы написан на С# в абсолютно процедурной парадигме - только циклы, рекурсивные вызовы и изменения переменных. Ничего такого же сложного в скале со всеми ее фичами я никогда не видел, так что думаю что сложность, привносимая самим по себе языком очень преувеличена (кроме С++, но это отдельная история).
72 1813363
>>1813331

>Менеджменту похуй на монады и технологии.


Нет, не похуй. Менеджмент понимает, что если начать проект на непопулярной технологии, то это может загубить весь проект. Так случилось с Моим Складом. Пока его писали борщехлебы на Scala, то дела у компании шли так себе - новых сотрудников было тяжело нанять и они стоили каких-то безумных денег, продукт был забагован и вхождение в проект было тяжелым испытанием для новых программистов. Но вод пришел Козуля и переписал проект на Java и теперь разработчики находятся на раз-два, проект очистился от FP-дерьма и теперь все будет ништяк.

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


Ну вот M2 стартанул на лайтбенде (акка), а потом раз, и теперь они ищут людей только на typelevel стек со знанием кафки. Тут уже вкидывали видео, где еще одна компания в ужасе съебала с акторов на тайплевел и кафку и горя не знает.
73 1813434
>>1813363
Сложность поиска людей конечно имеет значение, я скорее про технологии внутри одного языка говорил. Обьяснить разницу между lightbend- и typelevel-стеком менеджменту сложно, для них это сорта одного говна. Но lightbend продвинуть легче, если станет вопрос - мне вот недавно нужно было стек для нового проекта выбирать, я подумал-подумал над http4s + doobie, и решил что продвинуть akka-http + quill проще будет. Основные конкуренты были (и еще есть наверное) finagle и go, кстати.

> вот M2 стартанул


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

>компания в ужасе съебала с акторов на тайплевел


С акторов кто угодно съебет в ужасе, а вот akka-streams вполне себе прилично работают и имеют огромное количество коннекторов. Я не то чтобы гоню на typelevel, просто он не и близко не занимает той доли проектов, что lightbend.

>ищут людей только на typelevel стек


>со знанием кафки


Если они действительно ищут людей со знанием этих обеих технологий, то удачи, хех. Что в той, что в той очень мало кто разбирается, а пересечение вообще почти пустое множество.
74 1813460
>>1813363
Ага, помню обратную ситуацию в Приватбанке, когда в одном из отделов страшно обосрались со своей джявой, в этот день уволили нахуй СТО вместе с половиной джавадебилов, остальным был предложено изучить Erlang в кратчайшие сроки (к счастью простота языка позволяет) или съебать тоже. Дальше разработка в том отделе велась исключительно на Erlang правда с ним тоже в конечном итоге поели говна, очевидно надо было брать Haskell или на крайний случай Scala
75 1813622
>>1813460

>Приватбанке


>обосрались со своей джявой


Как вообще такое возможно? Ну т.е. если обосрались с джавой, то там уже проблемы на уровне хромосом CTO.
А технологии и стек - вообще дело десятое.
76 1813920
>>1813434

>Я не то чтобы гоню на typelevel, просто он не и близко не занимает той доли проектов, что lightbend.


Ру-сегмент Scala с тобой в корне не согласен. В их понимании Lightbend стек - это легаси и все адекватные компании сразу стартуют новые проекты на тайплевеле. Схожая риторика проскакивает и в зарубежном коммьюнити, где ту же Akka поливают говном и рассказывают как сладко живется на typelevel + Kafka.

>Если они действительно ищут людей со знанием этих обеих технологий


Сейчас как-бы 2к20 и от рядового бекендера требуют опыт работы с Kafka практически в обязательном порядке.
Никто не хочет пердолиться в кластеры или херачить микросервисы через какой-нибудь gRPC - все гоняют месседжы через кафку.
77 1813922
>>1813460
Ну так это известная история. Там же Максимка опердени на своем ёрланге ебал. По итогу все вылилось в то, что его возвышенный код никто не понял из команды и все пошло по пизде. Учитывая то, что они и с джавой говна поели, то можно сделать вывод, что уровень разработчиков там было довольно низкий.
78 1814078
>>1813920

>Ру-сегмент Scala с тобой в корне не согласен


Не очень знаком с ру-сегментом, даже скалалаз давно не слушал. Есть что почитать на эту тему?

>где ту же Akka поливают говном


То что в интернете все что угодно говном поливают - не новость. Не нужно из этого делать далеко идущие выводы.

>опыт работы с Kafka практически в обязательном порядке


Не толсти, кафка редко где нужна.
>>1813922 >>1813622

>если обосрались с джавой, то там уже проблемы на уровне хромосом CTO.


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


Джава это залог успеха чтоле? Пишешь на ней и задачи сами собой решаются? Открою секрет, люди часто используют не мейнстримные языки именно из-за того что им надоело жрать на них говно.
79 1814152
>>1814078

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



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

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



ЭТО ПРЕКРАСНО, НО НАМ НУЖНО РЕАЛИЗОВАТЬ ЕРП СИСТЕМУ СУТЬ ТАКОВА ЕСТЬ БУХГАЛТЕРСКИЕ ПРОВОДКИ И ЕСЛИ ПОЛЬЗОВАТЕЛЬ ИГРАЕТ ЗА МЕНЕДЖЕРА, ТО БАЛАНСОВЫЕ СЧЕТА В ЛЕСУ СКЛАДЫ НАБИГАЮТ КОРОЧЕ ВОЗМОЖНОСТИ КАК В 1С
81 1814184
>>1814078

>Есть что почитать на эту тему?


Достаточно открыть @scala_ru где общаются тимлиды и разработчики топовых компаний в СНГ и РФ.

>Не толсти, кафка редко где нужна.


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

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


Если грубо, то - да. Java это считай 50% успеха проекта. Это не только простой в освоении язык на котором может писать любая макака, но и десятки фреймворков за которыми стоят крупные компании и сотни библиотек на все случаи жизни. Большинство проектов основаны на Spring Framework, т.к. он позволяет тебе собрать каркас приложения за считанные минуты и начать накидывать бизнес-логику предоставляя различную функциональность через всевозможные модули. Ничего подобного в экосистеме Scala даже близко нет.
Я не говорю про простоту найма джава-разработчика, которых на рынке труда только в РФ - десятки тысяч. Это со Scala ты вынужден брать кого попало и учить на месте. С Java ты можешь выбирать лучших, т.к. пул разработчиков невероятно огромен.
82 1814264
>>1814152
Готовые инструменты это замечательно, но помимо чисто технических аспектов есть еще и сложность доменной области. И проекты часто фейлятся из-за того что команда именно с ней не справляется, а не из-за того что в базу что-то записать не получилось или билиотеки не хватает. И вот хороший язык как раз позволяет писать логику понятно. Еще конечно случаются обсеры с архитектурой, например если пытаются в CQRS не подумав, или в 100 микросервисов, или, упаси Господи, какому-то долбоебу придет в голову связывать сервисы через Kafka. В общем такого чтобы обосрались просто из-за выбора языка я еще не встречал.
>>1814157
Ну так может 1С взять и все?
>>1814184

>@scala_ru


Зайду почитаю, чтоле.

>то увидим, что там либо Akka, либо тайплевел с Kafka


Да полно всего есть, Кафка далеко не везде. Ну и Акку с Кафкой часто видел, да и сам использовал.

>Кафка обеспечивает надежную доставку сообщений между сервисами.


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

> каркас приложения за считанные минуты


> и десятки фреймворков за которыми стоят крупные компании


уже в прошлом треде разобрали, не интересно уже.
83 1814279
>>1814264

>В общем такого чтобы обосрались просто из-за выбора языка я еще не встречал.


Целую команду скалистов из озона на хуй выгнали и все переписали на Пщ.

>Ты точно понимаешь что такое Кафка и что она отличается от очередей сообщений?


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

>Господи, какому-то долбоебу придет в голову связывать сервисы через Kafka.


Вот тебе история успеха, как команда свалила с Akka и переписала все на микросервисы + Kafka - https://youtu.be/_sIOwQdQPIQ?t=525
84 1814494
>>1814279

>Целую команду скалистов из озона на хуй выгнали и все переписали на Пщ.


С чего ты взял что это связано именно языком? Истории миграции вообще интересные, можно почитать об этом кейсе?

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


Так обще можно о чем угодно сказать. Есть таблица в постгресе, кто-то туда кладет данные, а кто-то читает. Почти Кфака. У Кафки есть особенности, которые делают ее не слишком пригодной именно для использования как очереди сообщений, но очень классным распределенным логом событий.

>Вот тебе история успеха


Видел, как по мне это говорит только о том что ZIO вероятно пригодно к продакшену, а сырые акторы - неудобны, что впрочем достаточно известно. Если они организовали коммуникацию (именно коммуникацию, запросы-ответы, а не просто поток событий) между сервисами через кафку, ну что ж, земля пухом. Для этого должны быть какие-то очень серьёзные причины, которые я бы хотел узнать, будет очень интересно.
85 1814612
>>1814279
Работаю в около биг дате.
Жидко обосрались с кафкой между компонентами и всё переделывали на http сервисы. Так как нужно было часто гонять большие сообщения между сервисами, а потеря одного сообщения ломала всё. При этом нам ещё надо было ответ отдать клиенту. Слишком поздно мы поняли что кафка не подходит для запрос-ответ систем.
Тот кто её привнес в проект конечно ушёл задолго до вскрытия проблем.

Теперь вижу кафку только как уведомлялку между интеграциями, для чего-то более серьёзного нужно писать овердохуя кода
86 1814762
>>1814494

>С чего ты взял что это связано именно языком?


>Команда борщехлебов рвала себе анус и безуспешно пыталась в этерпрайз, подсев на уши менеджеру, что "вот-вот и Scala всем покажет, ух покажет!".


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


>Вся команда борщехлебов идет на хуй и заместо нее нанимаются гоферы, которые в кратчайшие сроки запускают проект


Да, действительно, что же тут не так с языком, хмммм?!
87 1814763
>>1814612

>обосрались с кафкой между компонентами


>переделывали на http сервисы


>нужно было часто гонять большие сообщения между сервисами


>потеря одного сообщения ломала всё


Ты же в курсе, что в случае, если твой сервис, посылающий HTTP запрос умрет или пропадет соединение между двумя сервисами и твой запрос отвалится по таймауту, то ты его потеряешь навсегда?
Кафка же тебе позволяет гарантированно доставить сообщение в кластер, сохранить его на диск и так же надежно доставить до получателя. Сравнивать HTTP запросы и Kafka - как минимум странно.
88 1814894
>>1814264

>Ну так может 1С взять и все?



ЭТО СЛИШКОМ НИМОДНА МЫ ЖЕ СИРИУС ГАЛЕРА МЫ ДОЛЖНЫ ПРЕДЛАГАТЬ КЛИЕНТАМ УНИКАЛЬНЫЕ БИЗНЕС РЕШЕНИЯ.
89 1814915
>>1814762
Это твои фантазии или где-то можно получить более достоверную информацию об этом кейсе, чем от анонимуса с двача?
Суть в том что я не один проект сделал на Скале, и знаю еще больше успешных проектов как у знакомых, так и во всемирно известных компаниях. Так что я точно знаю что на скале можно писать очень быстро и качественно, хотя и допускаю что она может быть не оптимальным инструментом и некоторых ситуациях. И вот о таких случаях хорошо знать, чтобы не наступать на те же грабли.
>>1814763
Ты же в курсе, что в случае, если твой сервис, посылающий сообщение в Кафку умрет или пропадет соединение между сервисом и брокером и твой запрос отвалится по таймауту, то ты сообщение потеряешь навсегда?

>Кафка же тебе позволяет гарантированно доставить


Because Kafka is webscale.

>Сравнивать HTTP запросы и Kafka - как минимум странно.


Сравниваются способы организации коммуникации между сервисами. И Кафка - не самое подходящее решение. Казалось бы, почему не взять нормальную очередь сообщений, если обычные запросы не подходят?
>>1814894
Вот действительно сириус пацаны - https://habr.com/en/company/lsfusion/. Целый ЯП вместо 1С придумали.
90 1814932
>>1814915

>Вот действительно сириус пацаны - https://habr.com/en/company/lsfusion/. Целый ЯП вместо 1С придумали.



Пиздец, одна история охуительнее другой:

https://habr.com/ru/company/lsfusion/blog/463095/

Думал, пиарить свою начальную стадию данинга-крюгера на хабре это совсем зашквар, но нет - пацаны шмагли.
91 1814955
>>1814915

>нормальную очередь сообщений


А ничего другого нормального и нет. RabbitMQ - это говно-говна, которое не умеет в кластеризацию (разваливается при split-brain) и херит данные, которые хранит в мнезии.

>можно получить более достоверную информацию об этом кейсе


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

>Ты же в курсе, что в случае, если твой сервис, посылающий сообщение в Кафку умрет или пропадет соединение между сервисом и брокером


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

> RabbitMQ - это говно-говна


> split-brain


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

>А ничего другого нормального и нет.


Как минимум есть старый добрый ActiveMQ, NATS, SQS если на амазоне, если уж хочется велосипеды покрутить, можно что-то свое на ZeroMQ придумать, проще чем на кафке получится.

>Конкретно эта история затерялась за задворках scala_ru и scalaponv


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

>Вот тебе еще история ребят, которые перешли со Scala на Пщ


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

>В одном случае ты кладешь мессендж в кафку и идешь дальше заниматься своими делами


И посылка в кафку может точно так же зафейлится, как и HTTP запрос.

>а в случае хтпп запроса - ты отправляешь его, ждешь ответ


В первом случае ты тоже должен ждать ответ, только он придет в виде сообщения в другом топике. После этого ты должен как-то сматчить запрос с ответом. Это можно реализовать, но достаточно сложно - не лучше ли позволить HTTP это сделать за тебя?

>В случае асинхронных запросов ты все равно жрешь ресурсы.


Соединение или что? С Кафкой ты его не держишь?
93 1815168
>>1814955
Это "говно говна" используют примерно все, лол. Просто как и у любой технологии у него есть свои ограничения. Конкретно раббиту, вроде бы, становится плохо при 300к сообщений в секунду (что-то такое я слышал от очень крупных ребят, которые имели его в продакшене), но при этом если у тебя есть такие нагрузки - ты или уже имеешь деньги на целый штат инженеров, чтобы тюнить его или переписать всё на гораздо более мудрёную кафку, или ты что-то сделал очень плохо и дидосишь сам себя.
А построение кластера и борьба со сплит-брейном - это сложная штука вообще всегда.
И да, раббит идеально подходит для простых проектов, потому что он прост в освоении и с ним легко работать. Кафка же сложная, как самолёт, с миллионом ручек, настроек и всякими зукиперами под капотом.
94 1815174
В чатиках говорят, что популярность scala падает, что scala используется в основном в data science (и то, потому что хадуп на ней написан) и как мейн язык она не очень, потому что очень узкая ниша.
Это правда? Она умирает или есть какие-то перспективы? (я слышал, хадуп написан на предыдущей мажорной версии скалы и, поскольку переписывать такую сложную хрень себе дороже, а хадуп - основной поставщик вакансий для скалистов, то новую скалу будет использовать заметно меньше народу)
Какие вообще подводные для вката?
95 1815176
>>1815168
Давай так - кролик разваливается при сплит-брейне и там нет никакой автоматики, которая бы собрала кластер обратно и отрезолвила сообщения между половинками. Все это нужно делать руками, включая перезапуск самого кролика. Поэтому люди уходят на кафку, т.к. там эти проблемы решены на уровне архитектуры.
Но если область твоих проектов - это какие-нибудь сельские интернет-магазины, которые хостятся на VPS за 300 рублей в месяц и их посещают полтора сельчанина, то да - кролик лучший выбор в качестве MQ.
96 1815189
>>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 и прочего тулинга, включая билд системы.
При этом учится он за месяц максимум. Дальше люди выдают боевой код.
97 1815190
>>1815176

>>1815168

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



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

https://www.ibm.com/support/knowledgecenter/SSMKHH/mapfiles/product_welcome.html
98 1815191
>>1815190
Зачем, когда в облаке уже есть все эти ваши очереди сообщений, через которые можно гонять сотни тысяч сообщений в секунду, отправляя их где-нибудь в Нью-Йорке и забирая в датацентре из Токио?
99 1815199
>>1815089
Так, понятно... Давай тогда тезисно:
- Scala используется преимущественно в big data (Apache Spark)
- За 11 лет существования так и не появилось нормальной поддержки со стороны IDE
- Билд тулы находятся в заднице по сравнению с Gradle/Maven
- Нет никаких киллер фич со стороны языка, которые бы сделали работу рядового разработчика проще и приятнее
- Нет никакой альтернативы библиотекам/фреймворкам из Java (Spring/Hibernate/Quarkus/etc). Все либо сырое, либо нужно пердолить очередную обертку самостоятельно
- Scala 3 окончательно добьет Scala, т.к. это по сути новый язык, а значит, что поддержка IDE откатывается на годы назад, библиотек нет, программистов нет, а те что есть - идут на хуй и все переписывается на Java/Go.
100 1815204
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
101 1815209
>>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!
102 1815218
>>1815204

>— https://movio.co/blog/migrate-Scala-to-Go/


Хуй знает. По мне так стоит посмотреть в сторону Go. Чувак описал буквально боль любого Scala разработчика. Нахуй себе волосы на жопе рвать, когда можно получать удовольствие от разработки?
Go звучит как история успеха.
103 1815233
>>1815218
Го так-то норм, правда, лично мне там как раз недостаёт гарантий. Он в ряде мест слишком уж низкоуровневый и никак не страхует тебя от того, что ты забудешь проверить указатель перед разыменованием или не проверишь ошибку. Но при этом действительно очень простой, буквально "си с утиной типизацией и зелёными потоками".
104 1815243
>>1815218

>процедурная параша из 80х без ничего


>поучать удовольствие от разработки



С goвном только только перед жатниками проповедовать.
105 1815248
>>1815243
Просто у гошников есть куча интересной работы и зп в 300к а у тебя нет, вот и бесишься
106 1815250
>>1815243
Ну, смотри. Haskell или какой-нибудь OCaml еще строже и предоставляют больше гарантий, только тулинг там никудышный и библиотек - хуй да нихуя. Пишут на них либо фанатики, либо какие-нибудь научные работники.
А нужен простой и понятный инструмент для решения типичных проблем с которыми сталкивается разработчик.
107 1815307
>>1815248
Какая у гошников интересная работа? Этот недоязычек настолько невыразителен, что его применение в любом сложном домене на монолитном проекте неизбежно приводит к горам невменяемого быдлокода. Поэтому он подходит только для микросервисов, для плоской примитивной хуйни, исходя чисто из ограничений самого языка.
Может ли быть интересно писать сотни примитивной хуйни на 2.5 экшена и склеивать всё это воедино в основном девопс методами? Возможно, если ты студент или свитер.

П.С. вчера звали в калифорнийский е-комерс стартап, где они тоже стартанули на гоу, но потом решили что всё это хуйня, и без нормальной системы типов программировать нельзя и взяли скалу.
108 1815323
>>1815250
Это принимается. С другой стороны, моделирование сложной предметной области на примитивном языке приводит к куче бойлерплейта с огромным пространством для потенциальных багов, особенно если в языке нет почти ничего для повышения сейвовости. В итоге, за счёт тулинга, инфраструктуры, малого порога вхождения, простоты самого языка ты действительно получаешь буст на старте, но при переходе в стадию продукта с поддержкой неизбежно ждёт возмездие, потому что одно дело накидывать goвнокод на стартапе, другое - менеджить крупную кодовую базу, которая прошла через кучу рук.
Scala как бы должна была стать посередине, с одной стороны дав инфраструктуру, с другой дав необходимые выразительные средства самого языка.

Ну и касательно изначального поста на который я ответил, фан от быдллкодинга на ЯП уровня бейсика может получать только вчерашний студент. Опытный разработчик либо вообще не получает никакого удовольствия, а только хочет побыстрее закрыть задачу в жире (типичный джява/пхп сениор), либо получает, но для этого нужен как минимум ЯП позволяющий ясно выражать абстрактные мысли, и go таким ЯП очевидно не является.
109 1815356
>>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

> Пишут на них либо фанатики, либо какие-нибудь научные работники.


Либо компиляторы с криптой.
110 1815445
>>1815323
Я бы очень хотел с тобой согласится, на самом деле. Только опыт показывает, что бизнес выигрывает от выкатки даже полусырых фич сейчас больше, чем от идеальных фич после и поэтому скорость найма обезъянок и выкатки говнофич - чуть ли не главное достоинство правильного айти стартапа.
Вот когда станет много денег - тогда можно будет и переписать. Только за такие деньги и с такой пользовательской базой уже все баги будут отловлены руками пользователей и обёрнуты в if'ы руками тех же обезьянок.
И я сейчас говорю даже не про го, а скорее про пехапе и plain js: я уже видел множество компаний, с разваливающимся спагетти-монолитом, которые были успешными финансово и им было вообще наплевать, что там работает. Переписывалось оно только и исключительно в том случае, когда всё ложилось от больших нагрузок и то часто дешевле плашку памяти купить или сервер мощнее, даже если там просто в цикле запросы в базу делаются.
К сожалению, качество не нужно практически никому кроме того, кто непосредственно с кодом работает. Пользователям кстати тоже не нужно, они очень консервативные и ленивые, им вообще не влом страницу обновить или вернуться через полчаса, они начинают отваливаться только если там действительно что-то ужасное.
Далее, можно было бы сказать, что такие языки как скала или хаскель должны помогать в тех областях, где вероятность ошибки критична, типа процессинга банковских транзакций - но я сам работаю в банке и знаю, что эти вещи элементарно пишутся на го и проблем с ними не возникает.
Далее, про го: да, мне хотелось бы больше гарантий и больше выразительности, но в реальности выгода от их использования неочевидна очень многим, потому что нормальные разработчики и так не забывают проверить указатель на nil и всё такое плюс пишут много тестов, на которых отлавливается подавляющее большинство глупых ошибок. Я вот вообще по tdd работаю.

Так что, к сожалению, мы живём не в идеальном мире и выразительность с мощностью и безопасностью нужны очень и очень мало кому. Особенно безопасность, гугл пароли для gmail до 2019 года в открытом виде хранил и всем было насрать, лол.
110 1815445
>>1815323
Я бы очень хотел с тобой согласится, на самом деле. Только опыт показывает, что бизнес выигрывает от выкатки даже полусырых фич сейчас больше, чем от идеальных фич после и поэтому скорость найма обезъянок и выкатки говнофич - чуть ли не главное достоинство правильного айти стартапа.
Вот когда станет много денег - тогда можно будет и переписать. Только за такие деньги и с такой пользовательской базой уже все баги будут отловлены руками пользователей и обёрнуты в if'ы руками тех же обезьянок.
И я сейчас говорю даже не про го, а скорее про пехапе и plain js: я уже видел множество компаний, с разваливающимся спагетти-монолитом, которые были успешными финансово и им было вообще наплевать, что там работает. Переписывалось оно только и исключительно в том случае, когда всё ложилось от больших нагрузок и то часто дешевле плашку памяти купить или сервер мощнее, даже если там просто в цикле запросы в базу делаются.
К сожалению, качество не нужно практически никому кроме того, кто непосредственно с кодом работает. Пользователям кстати тоже не нужно, они очень консервативные и ленивые, им вообще не влом страницу обновить или вернуться через полчаса, они начинают отваливаться только если там действительно что-то ужасное.
Далее, можно было бы сказать, что такие языки как скала или хаскель должны помогать в тех областях, где вероятность ошибки критична, типа процессинга банковских транзакций - но я сам работаю в банке и знаю, что эти вещи элементарно пишутся на го и проблем с ними не возникает.
Далее, про го: да, мне хотелось бы больше гарантий и больше выразительности, но в реальности выгода от их использования неочевидна очень многим, потому что нормальные разработчики и так не забывают проверить указатель на nil и всё такое плюс пишут много тестов, на которых отлавливается подавляющее большинство глупых ошибок. Я вот вообще по tdd работаю.

Так что, к сожалению, мы живём не в идеальном мире и выразительность с мощностью и безопасностью нужны очень и очень мало кому. Особенно безопасность, гугл пароли для gmail до 2019 года в открытом виде хранил и всем было насрать, лол.
111 1815631
>>1815356

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


Проверяй - https://youtrack.jetbrains.com/issue/SCL-18207

Остальное даже комментировать не хочу. Ты либо поехавший фанатик, либо на зарплате в JB/желтых банках.
112 1815632

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



Хороший у вас тут тред. Ладно, скоро рабочий день начинается, пойду писать на Scala в прод за 4 средних зарплаты пхпшника.
113 1815640
>>1815632

>пойду писать на Scala в прод за 4 средних зарплаты пхпшника.


Ну расскажи-покажи! Ну расскажи-покажи!!
114 1815859
>>1815631
Ты и здесь обосрался, долбоеб. BSP - относительно недавняя разработка, как со стороны скалы, так в IDEA, так что баги там ожидаемы.
Для тех кто интересуестя скалой и просто мимокрокодилов: поддержка скалы и в IDEA хуже чем джавы, по вполне понятным причинам - джава приносит больше денег джетбрейнсу и проще как язык для анализа и компиляции. Я сам иногда сталкивался с тем что валидный код подсвечивается как некорректный и наоборот, а также что некоторые рефакторинги работают некорректно. С другой стороны, это и раньше нблаюдалось на коде использующем много магии системы типов (то есть 0.1% от всего кода, а во многих проектах 0%) и со временем ситуация улучшается (в 2013 действительно все было намного хуже). В любом случае, называть поддержку скалы не нормальной - не более чем троллинг, для каждодневной разработки ее хватает с головой.

>Ты либо поехавший фанатик


Да не сказал бы, просто пока Скала - самое удобное что есть на JVM.

>Остальное даже комментировать не хочу.


Слив засчитан. А мы еще даже на серьёзные темы вроде сплит-брейна говорить не начали, это тебе не какашками в ЯП бросаться, тут чтением чатиков не обойдешься.
>>1815445
В общем-то согласен, но вот это

>Только за такие деньги и с такой пользовательской базой уже все баги будут отловлены руками пользователей и обёрнуты в if'ы руками тех же обезьянок.


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

>Пользователям кстати тоже не нужно, они очень консервативные и ленивые, им вообще не влом страницу обновить или вернуться через полчаса,


Так работает только если ты монополист.

>потому что нормальные разработчики и так не забывают проверить указатель на nil


Это сарказм?
115 1815887
>>1815859

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


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

> Так работает только если ты монополист.


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

> Это сарказм?


Неа. Без шуток, я давно программирую на го и как правило перед использованием всё проверяется. Я согласен, что какой-нибудь maybe даёт больше гарантий и был бы лучше, но правда в том, что за последний год точно я не ловил nil pointer error ни разу (ну может во время тестов что-то падало, такое не запоминается).
117 1816271
>>1815640
Что тебе показать, дебич?
118 1816344
>>1815887

>Как бы да, но потихоньку рефакторится и всё такое.


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

>Неа, даже в нишевых продуктах


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

>я давно программирую на го и как правило перед использованием всё проверяется.


Прямо в каждом методе? Это на уровне стайл-гайда у вас? В джаве/шарпе это не так распространено, и там NPE - наверное самая частая ошибка. В любом случае, такой подход имеет свою цену в плане боилерплейта, а глобально с ним можно очень далеко зайти - можно сказать что раст не нужен, нормальные разработчики не делают free after free и не допускают выхода за границы массивов, статические анализаторы кода не нужны, да и вообще нормальные разработчики не делают багов вне зависимости от языка.
119 1816380
>>1816344

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


Я тоже и излишняя примитивность го мне тоже кажется во многом ошибочной. Не во всём (в их подходе есть здравое зерно, надо сказать), но во многом. В областе дженериков - так точно, лол, благо что их таки введут в го2.

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


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

> Прямо в каждом методе? Это на уровне стайл-гайда у вас?


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

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


Я осознаю, что такой подход небезопасен и ни в коем случае не говорю, что он правильный. И даже выше писал, что мне такое не очень нравится. Просто заметил, что при этом в реальной работе таких ошибок не настолько много, чтобы суровая необходимость в таком подходе чувствовалась. Поэтому многим отбитым гошникам и сишникам он кажется избыточным.
А линтер в го кстати очень мощный, много чего отлавливает, рейс детектор вообще огонь.
119 1816380
>>1816344

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


Я тоже и излишняя примитивность го мне тоже кажется во многом ошибочной. Не во всём (в их подходе есть здравое зерно, надо сказать), но во многом. В областе дженериков - так точно, лол, благо что их таки введут в го2.

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


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

> Прямо в каждом методе? Это на уровне стайл-гайда у вас?


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

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


Я осознаю, что такой подход небезопасен и ни в коем случае не говорю, что он правильный. И даже выше писал, что мне такое не очень нравится. Просто заметил, что при этом в реальной работе таких ошибок не настолько много, чтобы суровая необходимость в таком подходе чувствовалась. Поэтому многим отбитым гошникам и сишникам он кажется избыточным.
А линтер в го кстати очень мощный, много чего отлавливает, рейс детектор вообще огонь.
120 1816473
>>1815859

>поддержка скалы и в IDEA хуже чем джавы, по вполне понятным причинам


Причина ровно одна - действительно важные фичи на вроде рефакторингов, инспекций кода, поддержки всевозможных фреймворков и т.д. есть в Ultimate версии IDEA для Java. В Scala за 11 с лишним лет существования плагина ничего такого не появилось, ровно как и нормального анализа кода, который бы не подсвечивал все красным. А, ну и в Ultimate версии для Scala ничего нет. Именно поэтому все сидят либо на Community, либо на EAP. Иными словами - разработка Scala плагина не приносит JB ни копейки.
121 1816549
>>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 лет и кучу денег на то что им не приносит прибыль, хотя бы косвенно?
121 1816549
>>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 лет и кучу денег на то что им не приносит прибыль, хотя бы косвенно?
122 1816886
>>1798168 (OP)
На сколько хороша Scala в serverless? Как лучше всего собрать программу, чтобы не попасть на БАБКИ?
GraalVm - глюкодром и анальная лицензия от Оракула. Scala.js - еще один глюкодром, к которому подключается знание помоев в виде Node.js. Scala Native заброшен и по сути не имеет никаких байндингов к тому же AWS Lambda.
123 1816994
>>1816473
может потому что в жяве ты бойлерплейтишь и из-за этого тебе нужны рефакторинги сложные, а в скале бойлерплейта не так много из-за типов?
124 1817114
>>1816549

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


Ага, мне тоже интересно, во что в итоге это выльется.

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


Ну да. Только какой-нибудь pleer.ru (а сайт такого размера и сложности не так-то просто сделать "на цмске") может всё равно выглядеть всрато, обладать отстойным сервисом и при этом "жить".

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


Ты наверное проводишь аналогии с джавой. В го можно передавать переменную по значению и тогда ты не сможешь передать вместо неё nil, а можно передать указатель на переменную и вот он может быть пустым. Но аргумента для передачи указателя может быть ровно два:
- или это опциональный аргумент и тогда его всё равно придётся проверять перед использованием;
- или мы специально передаём указатель вместо передачи по значению, чтобы не нагружать гц лишний раз (такое делается не всегда, а только если в каком-то месте на больших нагрузках гц проседает и приходится руками оптимизировать код) - но в таком случае ты всё равно будешь передавать аргумент вообще всегда и никогда не передашь nil, потому что ты знаешь, что он обязательный и указатель там чисто ради оптимизации.
Там есть отдельный момент, что вместо любого интерфейса (в смысле, когда вместо явного типа функция принимает интерфейс) можно передать nil и вот это жопа (и огромный камень в огород авторов го), потому что естественно никто в каждой функции не будет писать повторяющуюся лапшу типа if arg == nil return error - но реально это решается коллективным договором "никогда, вообще никогда не передавать nil вместо интерфейса". Звучит пиздец, конечно, но на самом деле это практика аналогичная "чисти за собой память" в си или "не делай die внутри библиотеки" вообще везде, просто никто никогда так не пишет, а если пишет - такой пакет никто не использует.

> не интегрируетесь с большим количеством библиотек


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

> ловите все тестами.


Тестов пишем дофига, это верно, но даже не ради безопасности, а потому что так удобнее. Лень самому долбить в localhost джсончиками, когда тестируешь только написанный код. А так ты и проверяешь то, что только что написал - и на будущее тесты остаются. Хотя это настолько легко только потому, что у меня выстроена вся инфраструктура для тестов: под тесты создаются бд, миграции, вот это всё - и поэтому я реально только предсоздаю данные, шлю запрос и потом проверяю ассертами ответ.
И да, даже на тестах я не помню, чтобы были какие-то частые проблемы с указателями, значит, или не было совсем, или так редко и такие тривиальные, что в памяти не отложились.
124 1817114
>>1816549

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


Ага, мне тоже интересно, во что в итоге это выльется.

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


Ну да. Только какой-нибудь pleer.ru (а сайт такого размера и сложности не так-то просто сделать "на цмске") может всё равно выглядеть всрато, обладать отстойным сервисом и при этом "жить".

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


Ты наверное проводишь аналогии с джавой. В го можно передавать переменную по значению и тогда ты не сможешь передать вместо неё nil, а можно передать указатель на переменную и вот он может быть пустым. Но аргумента для передачи указателя может быть ровно два:
- или это опциональный аргумент и тогда его всё равно придётся проверять перед использованием;
- или мы специально передаём указатель вместо передачи по значению, чтобы не нагружать гц лишний раз (такое делается не всегда, а только если в каком-то месте на больших нагрузках гц проседает и приходится руками оптимизировать код) - но в таком случае ты всё равно будешь передавать аргумент вообще всегда и никогда не передашь nil, потому что ты знаешь, что он обязательный и указатель там чисто ради оптимизации.
Там есть отдельный момент, что вместо любого интерфейса (в смысле, когда вместо явного типа функция принимает интерфейс) можно передать nil и вот это жопа (и огромный камень в огород авторов го), потому что естественно никто в каждой функции не будет писать повторяющуюся лапшу типа if arg == nil return error - но реально это решается коллективным договором "никогда, вообще никогда не передавать nil вместо интерфейса". Звучит пиздец, конечно, но на самом деле это практика аналогичная "чисти за собой память" в си или "не делай die внутри библиотеки" вообще везде, просто никто никогда так не пишет, а если пишет - такой пакет никто не использует.

> не интегрируетесь с большим количеством библиотек


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

> ловите все тестами.


Тестов пишем дофига, это верно, но даже не ради безопасности, а потому что так удобнее. Лень самому долбить в localhost джсончиками, когда тестируешь только написанный код. А так ты и проверяешь то, что только что написал - и на будущее тесты остаются. Хотя это настолько легко только потому, что у меня выстроена вся инфраструктура для тестов: под тесты создаются бд, миграции, вот это всё - и поэтому я реально только предсоздаю данные, шлю запрос и потом проверяю ассертами ответ.
И да, даже на тестах я не помню, чтобы были какие-то частые проблемы с указателями, значит, или не было совсем, или так редко и такие тривиальные, что в памяти не отложились.
125 1817116
>>1815356

> я-то знаю как, лол


Расскажи, пожалуйста, мне интересно
126 1818265
>>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. Возникнут конкретные вопросы, спрашивай.
127 1818719
>>1798168 (OP)
Все, кто хотел вкатиться в Scala, рекомендую прочитать сегодняшний срач тимлидов крупных контор в scala_jobs, которые на пальцах объясняют, что перебежчиков, вкатунов и прочих мутных личностей им не надо. А нужны люди с опытом (минимум 1 год коммерческого опыта разработки), чтобы войти в Scala. При этом они подтверждают, что в Scala люди идут не за высокой зарплатой, а за возможностью работать над сложными задачами, которые, по какой-то причине, невозможно решить на Java.
128 1818809
>>1818265

> Да может. Вопрос в том почему нет конкурентов. Хотя может они и есть и отжирают у него аудиторию.


Всегда есть конкуренты. Но при этом практически невозможно захватить ровно 100% рынка, всегда будут недовольные, кому не понравился дизайн или просто кто в гугле не на ту ссылку ткнул. Так что в B2C ты не обязан даже быть лучшим - просто держи свой говносайтик и живи, пока твой доход меньше твоих расходов. Тем более, что там куча маркетинговых механизмов, скидочки, реклама, вся хуйня. Если у тебя говносайт - то тебе сложно стать лучшим, но это не означает, что ты умрёшь, короч.

> А что делать если тебе нужно вернуть значение которого у тебя нет?


Ага, через указатель, точнее, указатель с ошибкой: в го функция может возвращать несколько переменных (как правило это [pointer, error]) - и гошные линтеры умеют понимать, проверил ты это ошибку или используешь указатель "всырую".
Но даже если функция возвращает только указатель (хотя так обычно не делают), если это геттер, то ты же не дурачок и сразу напишешь что-то вида
```
val := GetVal()
if val == nil {
return err
}
// use *val
```
и убьешь возможную ошибку в зародыше.
Было бы лучше, если бы были к примеру юнион тайпы и в го можно было писать `func Foo() (value | error)`, но чего нет, того нет :(
129 1818954
>>1818719

>работать над сложными задачами, которые, по какой-то причине, невозможно решить на Java


Божечки, что же это за задачи такие-то?
130 1818978
>>1818954
Очевидно, написать кастомный scala-based-dsl.
131 1818997
>>1818954
this >>1818978 Типа сложный домен (обычно финансовый), где нужно накрутить побольше тайпклассов и упороться монадами на отличненько. Все как один негативно относятся к Akka/Play/Slick и говорят, что это "не тру скала" и что им "жаль" людей, которые тратят время на беттер джава подход, когда можно все тоже самое писать на котах.
132 1819263
>>1816886
Все хорошо с GraalVM, спроси у жейли в скалачяти.
133 1819355
>>1819263

>жейли


Жейли с Каем (Михаилом) - это как Весемир с Геральтом из мира Ведьмака. Они же ебанутые на всю голову.
134 1819608
А чо есть варианты со скалой в Украине? или лучше уже питон + го?
135 1819647
>>1819608
Немчинского послушай по Scala. Он дурного не посоветует. Там грамотный разбор, между прочим.
136 1819800
>>1818719

> сегодняшний срач тимлидов крупных контор в scala_jobs


Видимо потёрли уже, ничего не нашёл :(
137 1819859
>>1818978

>Очевидно, написать кастомный scala-based-dsl.


Что еще можно услышать в скала треде кроме - скала ради скалы.

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

>>1818997

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


У кого в руках скала - тому все кажется тайпклассами и монадами.
138 1819884
>>1819859

>У кого в руках скала - тому все кажется тайпклассами и монадами.


Эти разговоры не на пустом месте появились. Большинство бекенд вакансий - это коты и прочий тайплевел стек. А это тайпклассы через тайпклассы.

Ни спарк ни лайтбенд стек не признается в скала коммьюнити как тру-скала. Хотя вакансии по спарку еще присутствуют.
139 1820223

>Ни спарк ни лайтбенд стек не признается в скала коммьюнити как тру-скала


Коммьюнити уровня чатиков в телеге?
Коты, как видишь, растут. Ну так выучи если работу не найти, делов-то.
140 1820225
>>1819859

>Нет такой бизнес задачи написать кастомный scala-based-dsl


Там выше "сложными задачами, которые, по какой-то причине, невозможно решить на Java".
Как видишь, слова "бизнес", там нет.
sage 141 1820241
>>1820225

>Там выше "сложными задачами, которые, по какой-то причине, невозможно решить на Java".


>Как видишь, слова "бизнес", там нет.


Там еще выше

>При этом они подтверждают, что в Scala люди идут не за высокой зарплатой, а за возможностью работать над сложными задачами, которые, по какой-то причине, невозможно решить на Java.


Как видишь там есть слово "работать", что подразумевает решение именно бизнес задач, а не скала ради скалы.
142 1820264
>>1820223

>Ну так выучи если работу не найти, делов-то.


Ах если-бы все было так просто! Ведь в РФ никому не нужен перебежчик без коммерческого опыта в Scala. Ну и вакансии на котах меня ничуть не возбуждают. Ведь я могу лишь только догадываться сколько боли и унижения приходится терпеть рядовому программисту, которые в очередной раз пытается реализовать тайпкласс из котов, а идея все краснит!
143 1820766
>>1820264

>Ведь в РФ никому не нужен перебежчик


Ищи работу не только в РФ.
144 1821026
>>1820264

>Ну и вакансии на котах меня ничуть не возбуждают


Ну и че ты в скалатреде забыл, если тебе ни betterjava ни ФП стек не нравятся, опущ? Иди на питоне пиши скрипты.
145 1821039
>>1821026

>betterjava


Отсутствие вакансий как класс. Общественное гонение на лайтбенд стек.

>ФП стек


Полторы вакансии в РФ, где нужно 3 года коммерческого опыта на котах и прочих фс2, минимум. Весь фп-стек - это леваки из тайплевела + пару отбитых кадров на вроде болгарина, который топит за дайверсити, и какого-то чела, которого поперли из твиттера и теперь он воюет с воображаемыми белыми супремасистами и пишет жысон парсеры.
146 1821110
>>1821026
Тааак, сейчас буду писать масштабируемые приложения на Скэйле!
@
Падажжиии, а почему ИДЕЯ краснит! Тааак...
@
Что же это такое, почему Скейла срет в хип! Падажииии!
@
Хм, а это что за закорючка?! Таааак!
@
Да как так то?! Почему всего 1к запросов в секунду! У на с же должно быть РЭКТИВ ПРАГРУММИНГ! Тааак, падажжии!
@
Михал Брсыч, ну дайте еще полгода - мы все на котлин перепишем и людей наймем!
@
Сап /pr, мне не перезванивают...
147 1822473
>>1813363

> Нет, не похуй. Менеджмент понимает, что если начать проект на непопулярной технологии, то это может загубить весь проект. Так случилось с Моим Складом. Пока его писали борщехлебы на Scala, то дела у компании шли так себе - новых сотрудников было тяжело нанять и они стоили каких-то безумных денег, продукт был забагован и вхождение в проект было тяжелым испытанием для новых программистов. Но вод пришел Козуля и переписал проект на Java и теперь разработчики находятся на раз-два, проект очистился от FP-дерьма и теперь все будет ништяк.



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

мимо бывший сотрудник МС, который ушел в скалу
148 1822724
>>1821039
Ты бот, который на кейворды триггерится? Или ты просто малолетний дебил, которому понабрасывать хочется?

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

Всем похуй, чел
149 1823793
>>1798168 (OP)
Аналитика по Akka подоспела -

>Вот в акке ты что-то добавил и у тебя всё развалилось, и ты об этом не узнаешь

150 1823881
Прохожу степик, беру спецкурс в унике и иду в жёлтый банк на 300кк/нс, подводные?
151 1823931
>>1823881

> подводные?


На собеседовании тебя травят виабушники с котами на аватарках
152 1824123
>>1823881
Проходить курс от Олега стоит только в случае, если ты потом собираешься идти в финтех школу Тинькофф и являешься при этом студентом. Только учти, что туда подаются одни из лучших ребят, которые побеждают в межнарах и щелкают задачки с литкод уровня HARD как орешки перед завтраком. 300кк/нс тебе, конечно же, никто не предложит. Типичная вилка для рядового разраба с 3-5 годами опыта - 100-130к. Сам желтый банк теперь куплен Яндексом (на самом деле Сбербанком, который держит "49%" акций Я).
В зависимости от вакансии, тебя ждет либо скандальная бабенка, которая будет тебе выносить мозг, доказывая, что Option - это не монада. Либо будет челик из инвестиций, который обмазывается тофу и прочими поделками ирландских бездельников, которые дожидаются выдачи паспортов.
В любом случае, перспективы у тебя далеко не радужные.
153 1824181
>>1824123

> ирландских бездельников


С трактором на аватарке?
154 1825302
>>1798168 (OP)
Неистово проигрываю в голосинушку с вакансий, которые вкидывают в скала_джоубс. "до 200к!", "ищем строго сеньоров!", "5 лет на спарке!", "физмат или математическое образование!". Какие-то мутные конторки, онлайн-казино из Литвы, где заебанные жизнью крупье со слезами на глазах крутят рулетки. Какие-то "стартапы" из Эстонии и Финки, пытающиеся найти сенек на 2к баксов через ИП.
Все эти "вакансии" не имеют ничего общего с настоящей работой, которую можно лицезреть в про_джмджобс. Вот где работа так работа! Каждый день вкидывают по 5-7 новых вакансий и все как на подбор - адекватные требования, вилки от 150 до 400к и выше (для лидов и крутых парней). Все хорошо у джавистов. Одни скалисты работают не за зарплату, а ради интересных проектов и пердолинья монад.
155 1826454
>>1798168 (OP)
Очередная вакансия в скала_джоубс. Очередная компания пытается найти Apache Spark разработчика на вилку до 175к, лол.
156 1828332
>>1798168 (OP)
Как начать писать пет-проекты? Прочел несколько книг, но все равно появляются моменты, когда я понимаю, что освоил не всю скалу. Понимаю, что без пет-проектов мое резюме даже рассматривать не станут, а на собеседованиях, скорее всего, будут попускать на алгоритмических задачках и каких-нибудь тонкостях языка на вроде линеаризации трейтов, например.
15900179550350.png506 Кб, 653x995
157 1828414
>>1828332
О, да, знаю эту проблему. Творческий кризис.
Если в кратце, старайся почаще задаваться вопросом "хуйнянейм не существует, а было бы супер, если бы она была".
Возможно, на андройде нет клиента для твоего любимого сервиса?
Или один бот в телеграмме работает не так хорошо, как бы тебе хотелось (если он вообще есть)?
Или ты бы хотел, чтобы малинка крутила резитивный диммер на маслянном обогревателе?
158 1828448
>>1828414
У меня нет проблемы с идеями проектов. Я боюсь, что мой код на Scala будет не оптимальным или всратым, в духе Java, т.к. я могу не знать каких-нибудь фишечек или паттернов, которые распространены в Scala-мире. Из-за этого у меня некого рода паралич, когда просто записываю и анализирую идеи (выбираю библиотеки и фреймворки, ищу аналоги и анализирую, что я мог бы улучшить, рисую архитектуру), но за написание кода так и не берусь...
159 1828449
>>1828448
Попробуй вкатиться как стукнет совершеннолетие
160 1828459
>>1828449
Понятно
161 1828579
>>1828449
Почему ты такой жестокий? Я гребу джавистом и хочу перейти в скалу. Вот из-за таких как ты, люди уходят из скала-коммьюнити.
162 1829243
>>1828579
У тебя на работе скорее всего есть куча штуковин, которые возможно многим лень сделать (ну или просто нахрен не нужно, а тебе может быть весело). Такие штуки и есть отличный плейграунд для маленьких пет-прожектов. Не факт, что кто-то будет использовать, не факт, что получится годно, но для игр с интересным стеком такие задачи прекрасно подходят.

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

- Лысый рекламщик-нацист
- Психически неуравновешенный Мистер Коричневый
- Гей-пара из Ирландии
- Поехавший тимлид из желтого банка с аниме на аватарке
- Телеграм-пацаны с λ и [F] в именах
164 1831493
>>1831407
Шавка Трэвиса? Это ты?!
image.png1,4 Мб, 998x650
165 1832273
>>1824123

> Option - это не монада

166 1832489
>>1832273
Определение монады почитай, дружок. И какие лаус она реализует.
167 1833247
>>1832489

>лаус


>реализует

168 1833292
>>1833247
ЛАУС!
169 1833338
>>1832489
И какой же из законов нарушает опшн, еблан?
170 1833340
>>1833338
Еще раз - Опшн это монада и она следует лаус монады, а именно реализует методы мэп и флэтмеп и является тайпклассом.
image.png1,5 Мб, 998x650
171 1833347
>>1833340

>лаус монады, а именно реализует методы мэп и флэтмеп и является тайпклассом.

172 1833352
>>1833347
Я тебе еще раз объясняю, что монада - это тайпкласс с методами мэп и флетмеп. Почитал бы красную книгу.
173 1833356
>>1833352
Потёк
image.png516 Кб, 750x716
174 1833398
175 1833456
>>1833398
Открой любое пояснение, что такое монада и увидишь, что это тайпкласс с методами мэп и флетмеп.
176 1833472
>>1833456

>Открой любое пояснение, что такое монада


Но ведь монада - это коробка, из которой вантуз выталкивает значение...
177 1833538
>>1833472
Каждый раз в голос.
178 1833719
>>1833456
Ты каждым постом мисконцептишь или путаешь вообще всё от теортиповых категорий до подходов к их реализации
179 1833920
>>1833456
Ващет монада определяется тайп конструктором М с двумя операциями:
return :: a -> M a
join :: M (M a) -> M a

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

bind :: M a -> (a -> M b) -> M b
180 1834823
>>1833456
Объясните уже кто-нибудь этому долбоёбу, что монада - это функтор T: K->K с двумя известными естественными преобразованиями, а все эти тайпклассы и мапы - это специфика реализации монад в конкретном ЯПе или даже библиотеке.
181 1835568
>>1834823
Ну ты еще скажи что монада это моноид в категории эндофункторов, в чем проблема?
182 1835573
>>1835568
Это уже лишнее. Мой поинт был в том, что монада - это концепция, а тайпкласс с методами - это какая-то конечная уебищная реализация.
183 1839941
Здравствуйте.
Учусь на старшем курсе и задался вопросами. Есть ли смысл вкатываться в скалу через Олежа-банк в Екате? И смогу ли я потом перекатиться в другую компанию на скалиста? Ведь жёлтый банк вроде как на тофу пишет.
184 1840005
>>1839941

>Учусь на старшем курсе


Нет, не стоит. Вкатывайся в джаву или питон.
185 1844748
>>1840005
Да, конкуренции меньше будет на скале. Пусть лучше подемпингует зпхи на Яве. Питонистам и так платят копейки.
186 1859258
Друзья, помогите, не знаю как такое загуглить.
У Apache есть либа kafka_2.12, я использую версию 2.3.1

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

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

От чего это может зависеть? думал от таргет версии двм, но вроде как нет... Как такое гуглить?
187 1859298
>>1859258
Ух бля.
По идее делать new для обращения ко вложенным object тебе не нужно, гугли "scala static forwarders".
В остальном я хз, видимо зависит от того, как именно ты делаешь релокейт.
Но вообще, почему бы не написать код на скале, либо просто взять джавовый кафка клиент?
188 1859371
>>1859258
>>1859298
контекст: кровавый тырпрайз на джаве, а мне нужно обновить версию зукипера, при этом кафке нужна старая версия ЗК (Зукипер), поэтому я зашейдил кафка-зависимость и релокейтнул ЗК.

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

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

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

Не знаю почему так :(
189 1859442
>>1859371
>>1859371
а нет я долбаеб, нихуя не заработало. я же импорты не поменял после релокейта сука. блять как же заебало
190 1859507
>>1859442
А ты шейдил бинарник кафки? Что-то по байткоду не видно, чтобы там что-то в другой пекедж уехало.
191 1859960
>>1859507
да шейдил, но пекедж менял только у "org.apache.zookeeper",
"org.apache.jute"
Попробовал зарелокейтить аналогично все пакеты с префиксом "kafka" - не помогло, та же проблема :(

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

Может кто нибудь посоветовать плагин для шейдинга кафки? с учетом что там сорцы на скале.
у мавен шейд плагин тоже какие-то проблемы есть https://issues.apache.org/jira/browse/MSHADE-345
192 1860004
>>1859960

>да шейдил, но пекедж менял только у "org.apache.zookeeper",


>"org.apache.jute"


Не понял, зачем ты менял пекдж у зукипера, если у тебя конфликт версий кафки?
193 1860934
>>1860004
зукипер в проекте должен быть новой версии, а кафка должна использовать старую
поэтому для кафки зашейдил старую, а в основном проекте поднял версию
194 1861023
>>1859371
короче деконплеировал бинарник самой либы kafka_2.12 (пик1) и то что у меня получилось зашейдить (пик2).

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

При этом джавовы конпелятор его не видит, иде показывает синтаксическую ошибку, когда пытаешься к нему обратиться. Но! Class.forName("kafka.admin.RackAwareMode$Safe$") работает.
ну и хуйня....
195 1861110
>>1861023
зашейдил с помощью maven shade plugin'а - абсолютно такая же проблема. может все таки я что-то не так делаю, а не плагины кривые...
196 1861130
>>1861110
Сделать таск в SBT, который шейдит эту ебучую кафку и вызвать этот таск из градла как показано здесь https://stackoverflow.com/questions/51793555/how-can-i-call-an-sbt-task-from-gradle

пиздец остановите меня кто нибудь, скажите что есть способ легче
197 1862714
>>1861023
1) Ты точно понимаешь как шейдинг работает?
2) Опиши граф зависимостей - что и в каком порядке ты компилируешь и собираешь.
198 1863796
>>1861023
Есть вариант попробовать разные класслоадеры.
199 1865312
>>1862714
ну смотри как я понимаю
шейдинг - когда код зависимостей прямо запихивается в сам джарник, это удобно для развертывания приложения на серваке - чтоб все нужные зависимости нужных версий в самой джарке были
Во время шейдинга можно релокейтнуть классы в другой пекедж (т.о. изменить их FCN и импорты все соотв. в джарке поменять), таким образом можно позволить в рантайме иметь две версии одной и той же либы: джарка использует ту, которую сохранила и релокейтнула, а клиентский код, который подключил эту джарку как либу - может юзать другую версию
200 1866411
>>1865312
Верно, только обычно шейдингом называют именно сборку с релокейтом. Если просnо запихнуть все зависимости в джарник, это не шейдинг. Теперь нарисуй граф зависимостей.
201 1867101
Есть тут еще живые? Вопрос от мимостудента. Создаю класс и передаю ему как аргумент pattern matching. Как уже в методах класса к нему обратиться и совершить там поиск? Нужно понять содержится ли в сопоставлении данный элемент или нет, заранее спасибо!
202 1867144
>>1867101

>Создаю класс


>передаю ему как аргумент


>pattern matching


Тебе бы у специалиста провериться. Боюсь, что программирование это не твое. Возможно, что будет лучше, если ты пойдешь работать кассиром или дворником.
203 1867173
>>1867101
Этот >>1867144 конечно токсик, но матчасть тебе действительно подтянуть бы
204 1867275
>>1867173
а что собственно не так?
205 1867292
>>1867275
Паттерн матчинг это фича языка, как ты можешь ее в класс передавать? Код показывай и скажи какие значения он должен возвращать.
Безымянный.png53 Кб, 1920x1050
206 1867299
>>1867292
Я не претендую на гениальный код, я всего лишь начинающий разработчик и могу ошибаться, вот код, слева реализация класса с одним методом(пока), справа основной фай. Реализую нечеткие множества. Паттерн матчинг прекрасно передается в класс и используется в методе(первый метод работает), в ином случае никак не могу обратиться к паттерн матчингу. В принципе по коду все понятно должно быть, создаем юниверс(общее множество элементов) и несколько нечетких множеств. Прошу сильно не ругаться
Безымянный.png83 Кб, 1920x1050
207 1867301
>>1867299
сейчас скину второй скрин снова, чет тут хуево показывается
208 1867382
>>1867301
У тебя FuzzySet принимает не "паттерн матчинг", а double или флоат, который и является результатом выражения с паттерн матчингом.
209 1867389
>>1867382
значит он получает несколько значений, верно? Если так, то как мне к ним обратиться в теле класса?
210 1867407
>>1867389
Извини, пропиздоглазил. Класс получает функцию int -> float, ее и можешь вызвать в теле класса.
211 1867411
>>1867407
могу, но как? в методе isEmpty это получается благодаря юниверсу и forall, но других вариантов я не нашёл вовсе
212 1867412
>>1867407
И да, класс получает не Int - double, а T - double
213 1867415
>>1867411
Не понял вопроса. Ты не знаешь как функцию вызвать? Или ты хочешь узнать ее область область определения?
214 1867417
>>1867415
Я хочу узнать как получить доступ к значениям, которые передаются при создании класса. Там есть закомментированный метод contain и я хочу понять есть элемент v в тех значениях, которые я передал в класс.
215 1867421
>>1867417
Ты в класс передал одно значение - фунцию.
216 1867422
>>1867421
Понял, тогда как мне обраться к этой функции для получения значений?
217 1867424
>>1867422
Вызвать ее внутри метода класса.
218 1867429
>>1867424
Вызвал, передаёт ее хэшкод. Как получить ее элементы? Просто вызов не совсем работает.
219 1867473
>>1867429
Что такое элементы функции? Покажи как ты ее вызываешь.
220 1867539
>>1867299
>>1867301
А ребята из Неофлекса в курсе, что ты тут двачуешь? И с каких пор они начали предоставлять некий тренинг для перекатывающихся в Scala? Они же ищут только матерых спецов на Java/Scala, чтобы пердолить проекты на аутсорсе.
221 1870007
Сап аноны, я ещё не сталкивался с Scala, занимаюсь сейчас Java, но необходимо scala за короткое время обозреть/понять на уровне основ и чтобы можно было эти знания применять. Можете посоветовать сурс какой-то или книжечку, думаю тут есть люди с опытом которые могут помочь направить меня в верное направление, данке
222 1870094
>>1870007
Не нужна тебе Скала.
223 1870100
>>1870094
Да что ж у вас за коммюнити-то такое раковое, у скалистов. Ведро змей.

>>1870007
Functional Programming in Scala попробуй. Говорят что сложная, но я хз, по моему обычная книга.
224 1870114
>>1870100

> Да что ж у вас за коммюнити-то такое раковое


Это ты ещё в телеграм-чатики модерирующиеся виабушниками из желтого банка не заходил, уровень токсичности OVER9000.
Потом они ещё удивляются, почему никто не хочет использовать их поделки тофу
225 1870357

> занимаюсь сейчас Java, но необходимо scala за короткое время обозреть/понять на уровне основ и чтобы можно было эти знания применять



кто ж это в скалко-комьюнити так заходит? так тебя сразу определят в джявачерта и будут соответствующим образом относиться всегда
правильно заходить через хаскiль, чтобы все сразу поняли что ты правильный пацан
нужны знания хотя бы уровне осиленной тайпклассопедии, устройства основных либ и умения применять цацкель на практике
лишнего лучше не припёздывать, а то если фраернёшься адванседом и не вывезешь, то потом ещё хуже, чем джявочертом сидеть
ну и про свой старый опыт как ты там на джяве спринг лизал тоже помалкивай офк
пис
226 1870437
я >>1870007
уже понял что тут за децибелов джавистов держат, я не в теме, почему так происходит? Интересно стало)))))
227 1870513
>>1818719

>дут не за высокой зарплатой, а за возможностью работать над сложными задачами


Классика, лол.
Работа за идею, горящие глаза, умным деньги не нужны и так далее.
228 1870612
>>1870513
Ты, для начала, пройди 4 алгоритмические секции в Вертикали, да за канкурэнси и модель памяти расскажи. А потом посмотрим, брать тебя на 30к или нет.
229 1870662
>>1870114
Самое дружелюбное коммьюнити из телеграмных, чел
230 1870668
>>1870662
То самое коммьюнити, где один вайс си-ти-оу хвастался как они пересели на базель, и как у них все заверте...
А потом выяснилось, что под базель нет и десятой доли плагинов, да и поддерживается он так себе. И теперь вайс си-ти-оу, запрягает команду, чтобы те метнулись кабанчиком и вернули все взад?
231 1870835
>>1870612

>пройди 4 алгоритмические секции в Вертикали, да за канкурэнси и модель памяти расскажи


Подобное является впечатляющим для скалистов?
232 1870929
>>1870835
Джависты проходят одно собеседование и влетают на царские 200к минимум.
233 1871421
>>1870007
Я лет 6-7 назад заходил из С# через Scala for the Impatient. Сейчас есть второе издание, оно наверное тоже не совсем актуально, но для твоих целей должно подойти.
234 1872596
>>1798168 (OP)

>Q: Какой стэк библиотек взять?


>A: cats, http4s, doobie, circe, ZIO


Почему, когда я открываю HH.ru, то вижу вакансии либо на Apache Spark, либо на Akka?
235 1872744
>>1872596
ну Акка очень неплоха, отработал на проекте больше года где все было на акке, мне понравилось. Это нормальные вакансии.
А вот с спарком лучше не сунутся туда. Так как сейчас надо овер дохрена макак которые все говно которое писали с 2003 на мап редюсе, сейчас переписывают на спарк, так как быстро и молодежно. и спарк писали на скале, значит нам надо скала девы. хотя им надо обезьяны знающие спарк. рекрутеры это не понимают поэтому ищут скалистов. Попал в такой местяк где хотели под шумок заставить выучить спарк и пойти на бигдату.
236 1872750
Больше 3 лет с скалой. Всякие монады, хуяды, функторы, знаю и использую.
Хочу для себя поучить что-то интересное необычное. Из вариантов хаскель, идрис( но я так понимаю без хаскеля смысла нет макаться), эрланг, кложур, и возможно дотти.
Что имеет смысл попробовать? Цель - узнать всякие приколюхи которые глубокие по концепции. Например как в скале сделали с имплиситами, и таким корявым образом сделали тайпклассы из хаскеля.
237 1872767
>>1872744
А что был хоть за проект на Акке? Я куда не приду - везде либо от нее отказываются, либо говорят, что это легаси и сейчас все пилят микросервисы на котах/зио и связывают их через кафку.
238 1872775
>>1872767
гемблинг, вся бизнес логика была на модели акторов. Ну либы для функционального у нас тоже были, типа котов, шейплесов.
Та все так говорят, но я хз, может есть проблемы с перформансами. Некотрые жалуются что тяжело разбираться. Но надо просто привыкнуть к модели. Мне нравилось что тестировалось очень хорошо. плюс у акки есть типизиованые актеры. с персистансом хорошо сделано. Но если бы я начинал делать свой проект то явно не на акке, а скорее на зио и всяких модных вещах
239 1872812
>>1872775

>гемблинг


Сразу вспоминаю ЭволюшнГейминг и того бравого парня, который рассказывал как на Акке жить тошно и как они все лихо переписали на зио с котами, а поверх посыпали кафкой.
240 1873095
Что почитать по жаве для базы под скалу?
241 1873315
>>1873095
Смотря откуда перекатываешься. Поди PHP какой-нибудь.
243 1873345
>>1873340
Где можно спиздить? И стоит ли книга того?
244 1873551
>>1873315
Из любительского ковыряния и редких макакинг заказов
>>1873340
Даже не задумывался, что может быть книга по жвмязык + сама жвм, лол
Книжка вроде не ищется, но по такой тематике поищу что-нибудь. спасибки
245 1873596
>>1870437
так потому что так и есть. часто джависты это тупые вкатывальщики без какого либо интереса к программированию. так как если бы оно их интересовало, они бы смотрели на разные подходы. разные языки. и тогда точно бы небыли бы джавистами.
246 1873644
>>1873596
Беда только в том, что на Scala в РФ пишет полторы помойной конторы, которые считают за честь, что ты у них будешь писать на поделии свихнувшегося немца из Швейцарии.
247 1873676
>>1872750
Варианты такие:
- clojure - макросы, трансдьсеры, CSP
- agda/coq/TLA+ - формальные доказательства/завтипы
- rust - new generation байтоебство
- prolog - логическое прогрмаиирование
А я вообще для себя решил что после после понимания основных парадигм слишком задрачивать их дальше смысла особо не имеет - нужно изучать что-то более фундаментальное (в моем случае распределенные системы).
248 1873688
>>1873676
Распределенные системы отлично пишутся на связке котов/зио + кафка, между прочим.
249 1873695
>>1873644
тебе патриотизм не позволяет писать не в рф? или не на рф компанию?
250 1873696
>>1872750

>с имплиситами, и таким корявым образом сделали тайпклассы из хаскеля


Как будто тайпклассы были изобретением разработчиков хаскеля
И что в них корявого, если реализация с самого начала называется имплисит?
251 1873714
>>1873696

>Type classes were first implemented in the Haskell programming language after first being proposed by Philip Wadler and Stephen Blott as an extension to "eqtypes" in Standard ML,[1][2] and were originally conceived as a way of implementing overloaded arithmetic and equality operators in a principled fashion

252 1873721
>>1872750
Ну имплиситы вещь весьма выразительная, с ними можно делать вещи, которые даже в хаскеле нельзя, но и говна с ними поесть можно, поэтому в скала3 их будут менять.
253 1873742
>>1873714
Я имел в виду общий концепт ад-хок перегрузки с группировкой типов в классы, а не одну из его реализаций
В момент приведения типы в скале ничем не отличаются от типов в хаскеле, только всё остальное время твои яйца не зажаты пьюр-фп костылями
254 1874007
>>1873695

>Халло!


>Ай воркд он таск 953 энд ай хэв э куэстшон


>Хау ду ай коннект ту датабасэ, плэз?



Если ты учился в школе с углубленным изучением английского и тебя родители натаскивали, то да, проблем устроиться в подобные конторы не будет. А так будешь мычать как побитая собака на собеседовании с рекрутером, вспоминая слова.
Ну и не забывай, что там, за забором, столько первоклассных разработчиков, что ты должен быть литерали гением, чтобы с ними конкурировать.
255 1874104
>>1874007
ладно, тогда сиди в рашке и не пизди, если не можешь выделить 200 долларов в месяц и пойти на курсы английского, или даже нанять репетитора. и за год уже говорить в 5 раз лучше.

А еще пиздят на хохлов, тут каждый 2 кто не совсем даун, или уже перекатился или перекатывается, или сидит дома и пиздячит на пиндосов.
256 1874113
>>1874104

>на курсы английского


Это где собирают группу в 10 человек на одного препода и тот пытается со всеми поговорить и что-то там объяснить за 40 минут?
257 1874129
>>1874007
Ну так таким нужно английский, а не скалу учить. И знать его нужно на уровне что быть понятым, а не идеально использовать речевые обороты и знать нюансы синонимов (хотя и желательно).

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


1) Первоклассных не хватает. Работодатели за них конкурируют, а не наоборот.
2) У тебя точно есть конкурентное преимущество - цена.
>>1874113
Это по-разному. За пару лет активного изучения (курсы, сериалы в оригинале, грамматика по учебникам) вполне можно подтянуть до сносного уровня. Лет семь назад я за полгода разговорный язык с околонулевого подтянул до достачного для работы (ну это я, среднестатистическому двачеру как раз года два нужно будет).
258 1874136
>>1874129
Я коплю деньги на препода с айталки, с которым можно было бы качать разговорную практику
259 1874724
Лучше бы собрали группу из 10 вкатывальщиков
260 1876032
>>1798168 (OP)
В чем смысл переката в Scala, если в скала канале вкидывают один раз в месяц полудохлую вакансию на 160-200к на хадуп, спарк?
261 1876091
>>1876032
у меня в линкед стабильно в неделю 3-4 вакансии.
262 1876308
>>1876091
На буржуев работать за баксы? Ну так для этого нужно уметь в разговорный английский и знать Akka.
263 1876407
Можете скинуть мемную пасту про функторы в стиле темной башни?
264 1876796
>>1876032
В 2020 году никакого смысла перекатываться в скалу нет.
Этот хайп из овер.

Скала - одно из самых больших разочарований прошедшего десятилетия.
265 1876808
>>1876796
Подтверждаю.
Зычно проиграл на всю квартиру с этого высера - https://developer.lightbend.com/docs/akka-platform-guide/index.html
Такая-то нелепая попытка примазаться к тематике микросервисов.
266 1876833
>>1876032
Порог входа невысок, если ориентируешься в фп с тайпклассами можешь попробовать как простую альтернативу жаве
267 1877061
>>1876796
О да, перекатываться нужно именно в хайповые технологии. Что за дауны здесь сидят.
268 1877075
>>1877061
Перекатываться нужно в то за что деньги платят.
269 1877084
>>1877061
Чувак, причём тут хайп?
Скала просто закончилась.

Изначально было принято несколько принципиальных провальных архитектурных решений, и итог был, в общем-то, предрешён.
270 1877108
>>1877084

>принципиальных провальных архитектурных решений


Например?
271 1877156
>>1877108

Например, делать процедурный сахар для джавы и фп 2 в 1.

По итогу хайпанула скала именно из за сахара и как только появился более переслащеный в лице котлина тут же стала не нужна.

А фп не развивалось никак.
272 1877163
>>1877075
слыхал неплохо дают бабок если быть жопной проституткой. Не хочешь попробывать?
273 1877165
>>1877084
я хз где вы видите что все закончилось. мне постоянно кидают вакансии, да, из них 40% это спарки. Куча людей работает, куча стартапов запустилось, плюс минус живое комьюнити, в раз 100 приятней чем в жабе. Люди развивают свои библиотеки, делятся знаниями.

может в россии и закончилось, но явно не в мире
274 1877170
>>1877165
добавлю, а не выстрелила потому что-пиндосы в своем большинстве крайне ленивые и не склонны к изменениям в карьере. был на проекте где люди работали по 20-25 лет в одной компании. и пришли туда как перл, потом переучивались на скалу. и таких 60%.
они не будут вкатываться с джавы на скалу.
наше снг комьюнити чаще всего готово в жопу давать за долларовые зарплаты, и им вообще похуй на чем писать, они пишут зарплаты прогромистов, видят что на жабе выхлоп один из самых высокий. на обжектив С и свифт сложнее вкатываться.
В итоге на скалу перекатились только ебнутые, которым не сидится на месте.

КОмпании которые примазались к "хайпу" в 2012-13 начали ахуевать, где им искать работяг на вашу это скалу. а остальные посмотрели на этих дураков и решили даже не макаться. Так как джава-макаку найдешь за пол часа, а хорошего специалиста за месяц-2. Порочный круг рынка, поэтому в нулевых было 2 базы или мускл(бесплатный) или оракл. так как на оракл ты найдешь всегда людей. и все ребята которые хотели идти в дба знали, что выучишь оракл, найдешь работу.
275 1877766
>>1877156
Если какой-то придурок с двача считает что какое-то решение провальное, то так очевидно и есть. Особенно если его уровень - рассуждения о переслащености языка и о том что фп в скале не развивалось никак.
>>1877170

>не выстрелила


Я вот что понять не могу - что для вас было бы выстрелила? Иметь такой же уровень использования как у джавы или что?
>>1877075
Ну это хорошая причина для преката, но я-то отвечал на пост в котором слова хайп и перекат в одном абзце стоят.
276 1877887
>>1877766
выстрелила, это значит как кубер, что его каждая собака использует, или как реакт, или как например как котлин, графкьюл, сваггер.

или технологии которые не стали топ запрашиваемым, а заняли свою нишу, например, спарк, го, кафка.
А скала по факту для бизнеса не нужна, и даже вредна. И проекты на скале сейчас ,или от энтузиастов, которым нравится фп и скала, или от "дураков" которые на нее перекатились/стартанули в 2012-2015 и думаю как найти людей.
277 1877911
>>1877887
Олег же пишет инвестиции и рассказывает про вэлью. Есть еще пара ирландских проходимцев, которые создают инструменты для вэлью. Ну и лысый из брейзерс тоже не отстает и толкает свои курсы и собирает на патреоне по 10к грина в месяц.
278 1878011
>>1877887

>или от энтузиастов


Ну так работать стоит только на таких проектах.
Там как минимум учитываются интересы дев-отдела, а значит есть понимание его важности, важности культуры разработки и т.д.
279 1878099
>>1878011
Конечно, полностью с тобой согласен. Но большинство(95%) пришли работать девами за бабки. Есть товарищ, прога ему всегда как и мне нравилась, занимались олимпиадным. Но сейчас, он хочет, до усрачки, попасть в топ компании типа амазона, гугла, фейсбука, САП , в любую залупу, главное чтобы было много людей, и он так и оценивает все компании, мол, "200 человек, ну что за говноеды, вот у гугла 10 милиардов к людей работает", мотивируя тем что там он поднимется по лестнице и будет получать очень дохуища бабок. Ну и таких дохуя.
280 1878581
>>1877887

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


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

>или технологии которые не стали топ запрашиваемым, а заняли свою нишу, например, спарк, го, кафка.


Ну вот и скала заняла свою нишу - лучший язык для JVM для тех кто понимает как ее использовать.

>А скала по факту для бизнеса не нужна, и даже вредна


Мне кажется или ты по кругу в своих рассуждениях ходишь? Скала не выстрелила потому что вредна, а то что она вредна подтверждается тем что не выстрелила? Ты все-таки можешь сказать что такое выстрелила, не на примерах, которые больше на список текущих хайповых технологий похожи, а определение которое можно применить к любой технологии?
281 1878681
>>1878581
я сразу написал что это замкнутый круг

Я не понимаю предмет спора и что ты хочешь доказать. хочешь сказать что скала популярная в бизнесе, ну ты тогда не прав. У нее хорошее комьюнити, она развивается, много хороших идей есть. Но бизнесу она не надо, так как заебешься искать людей.
282 1878717
>>1878681

>я сразу написал что это замкнутый круг


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

>Я не понимаю предмет спора и что ты хочешь доказать


Я ничего не хочу доказать. Ты (или кто-то еще) высрал фразу скала не выстрелила. Я хочу понять что под этим имеется в виду.

>Но бизнесу она не надо, так как заебешься искать людей.


Слишком сильное обобщение. Все что мы можем обоснованно заявлять - скала менее популярна чем джава, а потому на нее труднее искать людей. Все остальные обобщения - фантазии, пока не приведены факты и непротиворечивые рассуждения, а реальная ситуация зависит от конкретных обстоятельств.
283 1878729
>>1878681
Ошибка в том, что «бизнес» это слишком общее понятие.
Я знаю лично несколько контор, которые работают исключительно на ФП-стеке, в том числе на скале, и вполне себе успешно живут в своей нише, оставаясь конкурентноспособными. Да, их меньшинство, но это тоже «бизнес». Поэтому если пишешь что «скала бизнесу не нужна», нужно указывать какому именно. Супер-крупные компании как раз могут себе позволить (и позволяют) экспериментировать сколько угодно с каким угодно стеком, так как кадрового голода не испытывают, а бюджеты и количество разрабов позволяют спавнить сколько угодно экспериментальных проектов, контрибьютить в опенсорс и т.д.
Стартапу тоже всё равно на чём стартовать, тут даже чем хайповее или необычней - тем лучше. Средние и большие конторы тоже разные бывают, типичные снг-галеры заточены на максимальные охваты, поэтому фокусируются на консервативном стеке, чтобы с одной стороны иметь как можно больше заказов, а с другой чтобы была возможность быстро захайрить нужно кол-во рабов из местных. И то, даже там завозят пару скалистов, чтобы не пропускать скала-заказы, когда они всё таки случаются. Но ещё сейчас есть много чисто виртуальных полностью ремоут-контор, которые собирают людей со всего мира, поэтому проблема захайрить людей у них особо не стоит. Так же есть масса консалтеров, с CTO на своей стороне, где выбор технологии полностью зависит от них, которые берут только те проекты, которые соглашаются на их правила разработки. Все они существуют и некоторые функционируют десятилетиям.
284 1879649
А я вот читал блог Элвина и мне по кайфу, даже писать свой откровенно идеальный код на скалке понравилось. И клал я на то, что сбт собирает это пол года на моем калькуляторе.

Но:
1. горело жопьё с токситиси чатов скалки, видимо поцы оттудава внебрачные сыны старого пердуна мартина которые звали не маму и папу при рождении а монады и моноиды очень умные и не для меня сравни с рукомьюнити раста -это как жопа и палец
2. как котик плакал сру вакансий: либо какие-то адепты, либо вечер в типа большую дату

Короче для меня ru Scala environment - so-so. А язык прикольный, вписался бы в какую-нибудь опенсорс компашку долбачей но без желтого налета и был бы рад как слон, но нiт яких хлопцев.
285 1879835
>>1879649
Вкатывайся в англоязычное коммьюнити (реддит, гиттер) если владеешь языком.
В телеграм-чатики по Скале не заходи, там тусуются одни и те же долбоёбы. Мне вот с ними на работе приходится общаться, с постоянным А КАК В ТАЙПЛЕВЕЛ СТЕКЕ КАКАТЬ и прочими фразами уровня /b/
286 1880033
>>1879835

сил тебе, Иисус все видит

вообще не понимаю нахерас работать с командой с которой некомфортно? Да в кудепсту их, пусть там в говне своем варятся сами.
287 1882880
>>1870612
За 30к могу дать ботинки полизать вашей хрюше.
Слоуответ
288 1883211
>>1877887

>как кубер, что его каждая собака использует



>>1878581

>Особенно кубер, лол - пиздят о нем много, а используют единицы



и оба мимо. k8s много где, но не везде используют. k8s используют в больших компаниях, тк в этом случае это значительно упрощает жизнь компании. каждая тима, которая деплоит свои приложения, не изобретает свой (кривой) способ деплоймента
289 1884964
>>1883211
Да ясен хуй что много где используют. В абсолютных числах и хаскель наверное много где используют. Я про процент от тех кто о нем пиздит.
290 1893781
Есть кто работал в желтом банке и может пояснить за подводные и стоит ли туда идти?
291 1893823
>>1893781

> кто работал в желтом банке


В каком из?
В любом случае, что там что там обычноработа, без особых подводных, но детали конечно зависят от того, в какую команду попадешь.
292 1898222
>>1879649

> Вечер в дату


Проигрункал в голосину
293 1911525
>>1893781

>желтом банке


>пояснить за подводные


Пойдешь в один желтый банк - встретишь тимлида-анимешника, который упарывается тру эфпе и пердолит свои, никому ненужные, библиотеки.
Пойдешь в другой желтый банк - попустят на собеседовании, да так попустят, что выбежишь весь взмыленный и помчишь в свою съемную однушку, чтобы поскорее принять душ.
294 1913974
>>1911525
Всё так. Только в другом желтом банке тоже используют ненужные библиотеки из первого желтого банка, т.к. это считается тру фп и как раз поэтому на собеседованиях попускают всех кто не согласен
295 1914001
>>1880033

>сил тебе, Иисус все видит



"и подошли к нему кНижники и фарисеи и вопрошали" (с) евангелие от
296 1914665
>>1893781
На мой взгляд сейчас в обоих желтых банках самые сильные команды скалистов в рашке. Но я ни в одном из них не работал, не знаю, есть ли подводные. ИМХО обычная банковская работа должна быть и з.п. должна быть средняя по рынку.

Еще они там большие фанаты ФП, причем странные фанаты. Типа считают, что ФП - это круто само по себе. Поэтому давайте писать монады на Скале и пихать zio куда не поподя. А то, что в Скале ФП - не пришей кобыле хвост, их как-то особо не волнует.

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

мимо из зеленого
297 1914951
>>1914665

> пихать zio куда не поподя


Сама по себе ZIO неплохая вещь, считай что это такие продвинутые Future'ы.
Однако, в жёлтобанках(тм) за использование просто ZIO тебя обоссут, потому что (по мнению отдельных упоротых персонажей) нельзя завязываться на конкретную реализацию IO-монады, грубо говоря, ты должен абстрагировать использование ZIO и писать всю бизнес-логику в абстрактном виде.
Дальше - больше, весь мир для таких целей использует cats-effect, но эта тусовочка не особо вдавалась в мотивацию и идеи положенные в основу этой библиотеки/стека, вместо этого они просто заявили что "тайплевел-стек говно", и сделали свою, более лучшую нет либу tofu, в которой идея абстрагировать конкретные типы возведена до абсурда.
И даже хуй бы с этими упоротыми челиками с их психическими расстройствами, но эта около-Московская тусовочка настолько токсичная, что за любое отличное мнение тебя просто загнобят (если ты уже там работает) либо попустят на собеседовании, как писали выше.
298 1915213
>>1914951

>Сама по себе ZIO неплохая вещь


Лол, базаришь. Я сам в ФП лет как 10. Вкатился на самом хайпе. Коты и ZIO - это попытки натянуть сову на глобус ФП на Скалу. ZIO лучше котов. Сам её использую просто потому, что мне так хочется. Раньше котов использовал. Тоже просто потому, что мне так хотелось. Но реальных причин этого делать в Скале нет в 98% приложений.

Что касается упоротых фанатов - я слушал их выступления. Есть хорошие работы, уважаю. Если ты фанат ФП, то почему не желтые? Быстро вкатишся, быстро прокачают. У меня минимум 2 сотрудника съебали к желтым, оба по итогу очень довольны.

tofu - нет не слышал. Вообще, срать на Скале ФП-либами - такое себе. Но раз они высрали, это уже говорит об уровне их культуры кодинга. И говорит о том, что культура есть.

И да, cats - говно (про tofu не знаю, возможно такое же говно, просто сбоку). Zio - говно (потому что сама Scala - говно, но лучше zio на этом говне уже не придумать). ФП на Скале - не нужно.

Но если ты молодой специалист, который угорел по ФП, то желтые - не говно. Причем оба желтых. И мне нет смысла их рекламировать, я сам из зелёных, как уже раньше писал.
299 1915284
>>1915213

>ФП на Скале - не нужно.


lol'd
300 1915290
https://hh.ru/vacancy/41739360

> Чем тебе предстоит заниматься:


> изучением решения на Scala и переписыванием его на Java



Ну вот, ещё одна фигня-для-засирания-интернетов-рекламой переходит на надёжный и проверенный стек вместо хипстерского ФП
301 1915291
>>1915284
Просто ты не умеешь использовать CompletableFuture, править баги многопоточности и делать new Thread {}!
302 1915327
>>1798168 (OP)
Не слушайте этого - >>1915290
Вкатывайтесь в Скэйлу. Вам все условия для этого обеспечили - https://fintech.tinkoff.ru/study/fintech/scala/
Даже если не найдете работу, то вырастите как инженер и на крайняк сможете колесить по миру и вызволять гарнiх дiвчiн из лап мужей тиранов - https://twitter.com/Oleksandra_A/status/1351287068681515012
303 1915344
>>1915327
Ну Дегоус давно зашкварен всякой политотой лол
18AA4D8A-7E75-4C46-87F1-E423F2B44987.png8 Кб, 225x225
304 1915369
>>1915213

> cats - говно


> Zio - говно


> сама Scala - говно


> ФП на Скале - не нужно.



> я сам из зелёных


Мы заметили.
305 1915398
>>1915344
Отхватил жирный контракт на запил BPM движка на Скэйле, между прочим - https://twitter.com/jdegoes/status/1349369761570947073
Будет вам функциональная камунда, лол.
306 1916735
>>1798168 (OP)

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


>A: Посмотри на Хаскелль



как такое можно пейсать? это диверсия же.
307 1916744
>>1916735
Потому что Haskell - это флагман мира ФП.
Pure FP, без поддержки оопе, мутабельности, интеропа с двявой и всей связанной с этим тяжёлым наследием и наркоманией, так что всё честно.
308 1917325
>>1914665

> мимо из зеленого


Что у вас там по зарплатам?
309 1918169
>>1916744

> Haskell - это флагман



конечно. только почему-то весь энтерпрайз юзает Скалу.

Х-ль был нормальным языком в 98-м, но с тех пор заметно устарел.
А Скала шагает в ногу со временем, Дотти будет (уже есть) на порядок круче вашего Х-ля.
310 1918259
>>1918169

> Дотти будет (уже есть) на порядок круче вашего Х-ля


Когерентных тайпклассов - НЕТ
Вывода констрейнтов для GADT - НЕТ
Тайп тегов - НЕТ
Зато есть питоносинтаксис им. Одерски и сотни багов
311 1918264
>>1918259
Нормальной IDE, которая не краснит код за 12 лет - НЕТ
Жим штанги, поедание хинкалей и покуривание кальяна - ДА
312 1918307
>>1918264
Зачем вы обсуждаете Х-ль? Его нет.
313 1918337
>>1918264

>Жим штанги, поедание хинкалей и покуривание кальяна


>обсуждаете Х-ль


Ты не в теме, чел.
314 1918345
>>1918337

я не в зеленой банке, лол.

штангу свою обычно выпячивал один (не будем упоминать всуе) Х-лист.
315 1918658
>>1915291
Ой, будто бы конкурентность - это такая неебаться проблема и будто бы вещи типа Zio её ой как хорошо решают. Про многопоточность я вообще молчу (ты, кстати, перепутал многопоточность с конкурентностью).

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

Те, кто помоложе и поживее - больше поднимают. Фокус сейчас на датасаентистов. Хотя какие-нибудь джавакодеры критических сервисов поднимают не меньше датасаентистов, но там работа менее интересная и со своей спецификой.

Думаю, максимум - это должность исполнительного директора и 500 р. Есть ребята, которые и в 25 лет это делают. Но я с ними общался, они реально умные и заряженные, я прекрасно понимаю, почему они могут 500 рублей зарабатывать, а я столько не смогу.
316 1918669
>>1915369
Нет, ну серьёзно, с чем ты из этого не согласен? Я вообще не представляю, какие профиты может дать cats. Он просто неюзабелен в текущих реалиях. Zio - юзабелен. Но с кучей оговорок. А профитов, опять же, не много. Почему не надо писать на Scala в FP-стиле я уже тут тысячу раз разбирал, не хочу делать это еще раз. Просто изучи нормальный FP-язык и посмотри, чем Scala от него отличается.
317 1918672
>>1915344

>Дегоус давно зашкварен


Кста, что за драма вокруг Дегоуса? Он у себя в твиттере пишет, что он весь дохуя толерантный, не токсичный и геев уважает. Я особо не следил, но подозреваю, что драмы в Scala-сообществе, это как драмы в европейских странах - люди просто с жиру бесятся и за неимением реальных проблем придумывают интрижки из нихуя.
318 1918679
>>1918669

> Я вообще не представляю, какие профиты может дать cats


Рискую начать срач, но тем не менее. Как ты будешь решать такую задачу:
Твоё приложение это некий HTTP-сервер. Ему нужно ходить к другим сервисам по HTTP и например к базе данных. Если клиент твоего сервиса отвалился, нужно канцелить все подзапросы к базе/другим сервисам, корректно закрывая соединения и другие ресурсы, а если ошибка прилетела от апстрима, ретраить её на другой инстанс.
В джава-мире это решается примерно никак. Максимум какой-нибудь fault-tolerance от нетфликсовых либ прикрутят, но чаще просто хуй забьют. Или поставят сервис-меш и будут надеятся что ресурсы внутри приложения не будут течь.
На акке ты охуеешь писать стейт-машины для этого добра.
На фьючерах не пробросишь кэнсел.
В cats-effect + fs2 это делается сравнительно легко.
319 1918687
>>1918169

>почему-то весь энтерпрайз юзает Скалу


Потому что ФП - это не энтерпрайз. И Скалы там с гулькин хуй, кстати.

>Х-ль был нормальным языком в 98-м


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

Более-менее нормальный GHC - это где-то начиная с 8-й версии. После появления Stack, либ Сноймана и прочей инфраструктуры. Вообще, хороший Haskell - это только самый новый Haskell. Старую версию ты даже устанавливать заебёшся, не говоря уж про то, чтобы что-нибудь с ней сделать.

>А Скала шагает в ногу со временем


Не. Скала - cripple by design. Дотти уже 100 лет пилят и никак допилить не могут. И, скорее всего, Дотти так и не станет продолжением Скалы. Будет альтернативный язык, вроде Питон-2, Питон-3.

Как раз Хаскель, в отличие от Скалы, развивается гармонично, потому что там за дизайном следят. Чем Дотти может быть лучше Хаскеля, я вообще не знаю. Тем, что там есть интеграция с JVM? Но JVM - это как раз против принципов ФП. Т.е. в языке пытаются решить изначально неразрешимую задачу. Поэтому всё будет на костылях и странных дизайнерских решениях, продиктованных существующей платформой, а не тем, как надо делать язык правильно.
320 1918716
>>1918679

>В cats-effect + fs2 это делается сравнительно легко.



Согласен. Но это очень частная задача, под которую effect и fs2 заточены.

>На фьючерах не пробросишь кэнсел.



Ну я же говорю, что это частная задача. В Джаве отменяемые фьючерсы сделали. Ждём, пока интегрируют со Scala-future (если интергируют вообще). Но это - марахайка. Кстати, effect и Zio - такие же марахайки, которые ничего магического не делают. Просто умеют останавливать интерпретатор между отедльными эффектами. И асинхронные исключения в Haskell - это тоже марахайки. Они тоже ничего магического не делают, у них просто есть шанс прервать исполнение программы не между биндингами, а при обращении к мусоросборнику. Но если ты пишешь высокопроизводительное приложение на Haskell, ты же не хочешь, чтобы оно теребило мусоросборник, ты пишешь его так, чтобы всё оптимизировалось в минимальный цикл. И там никакой кэнсел работать не будет.

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

Т.е. да, есть красивая обёртка. Но если кодить по хардкору, там внутри она не многое даёт, там разбираться надо. Поэтому самые высокопроизводительные приложения написаны, внезапно, не на Скале и не Хаскеле, а на тупой Джаве и С++, где всем этим говном страдают вручную. Потому что им в любом случае или вручную страдать, или это просто такой же замуд, как в нетфликс, который так же может не сработать, если ты всё вручную не проверил.
321 1919337
>>1918687

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



Вы путаете язык и тулчейн.
Да, Майкрософт инвестировала в развитие тулчейна в районе 2000-2010, когда Х-ль как язык собственно стагнировал, но зато его форсили наёмные маркетологи Майкрософта, и сформировали в результате субкультуру хипстеров-фрикциональщиков, которые сами не знают, чем хорош их Х-ль, а просто самоидентифицируются по принципу "мы не такие как все". типа готы от программирования, ага.
322 1919340
>>1918687

>Как раз Хаскель, в отличие от Скалы, развивается гармонично, потому что там за дизайном следят. Чем Дотти может быть лучше Хаскеля, я вообще не знаю.



Вот не знаете, а говорите, замечательно.
Проблема Х-ля в том, что в него напихали овер дохуа расширений системы типов, которые в совокупности не консистентны. В результате в скомпилированном коде местами невозможно обойтись без динамической проверки типа. Соответственно, есть примеры кода на Х-ле, который тайпчекает статически, но выдает ошибку типов в рантайме. Если вы об этом не осведомлены, то сожалею. И чем это отличается от JS, например? Так что современный Х-ль не лучше JS, а его фанбои - не лучше JS-макак, даже если они привыкли возносить молитвы статической типизации. Х-ль 98 был торт, а нынешний уже нет.

Теперь посмотрите на Дотти. В ней специально урезали ситему типов, чтобы достичь гарантированной консистентности. Она типобезопасна не хуже System F, она никогда не выдаст ошибку типов в рантайме.

Получается, что Скала за это время наверстала упущенное, зато Х-ль деградировал.
323 1919518
>>1919340

> есть примеры кода на Х-ле, который тайпчекает статически, но выдает ошибку типов в рантайме


Пруф или пиздабол.
И unsafeCoerce и другие unsafeSomething не считаются
324 1919925
>>1919518

>И unsafeCoerce и другие unsafeSomething не считаются



эта новость стара, как мир, и про нее не слышали, наверное, только сами Х-листы.

https://migmit.dreamwidth.org/39346.html

но проблема не только отдельном в примере такого кода.
вопрос глобальный - как может возникнуть рантайм ошибка типов, если язык со статической типизацией? а он не совсем со статической, лол.
проблема в том, что система типов на поверхности языка отличается от системы типов внутри (Core). как следствие, статические гарантии высокого уровня отличаются от реальных гарантий скомпилированного кода. как следствие, компилятор в некоторых случаях ВЫНУЖДЕН вставлять динамическую проверку типа там, где гарантий Core не хватает. в результате код выполняется частично как динамически типизированный. это будет с любым кодом, содержащим некоторые сочетания расширений. а поскольку анон в своем коде будет использовать 100500 библиотек, которые используют 100500 расширений, то результат всегда будет такой.

с JVM точно такие же проблемы, если что.
но Дотти хотя бы не допускает глюков на верхнем уровне языка.
325 1919930
>>1919925
Твоей ссылке 8 лет, с тех пор появились type roles и этой проблемы уже нет.
То есть ты вообще не в курсе куда и как развивался Хаскелль за последние годы, но кукарекнуть про несовместимые расширений и райнтайм ошибки типов надо, да.
Иди нахуй с таким уровнем аргументов обмудок тупой
326 1919936
>>1919930

>райнтайм ошибки типов


останутся, пока есть Core
327 1920016
Сап, двач. Мимо бекенд петушня php/node.

Хочу вкатиться в скалу и работу. Чё посоветуете?(кроме самовыпила)
328 1920027
>>1920016
Бочку.
329 1920126
>>1798168 (OP)

>рантаймы для JVM и JS позволяют строить высокопроизводительные системы с удобным доступом к огромной экосистеме библиотек.


>Q: Какие либы НЕ брать?


>A: play, izumi, tofu, джавовые фреймворки


Как вам живётся с такой шизофренией?
330 1920153
>>1920126
В котлине вон тоже двоемыслие, рекламируют полную совместимость с экосистемой джавы и при этом пилят свои котлиновские велосипеды. Болезнь всех убийц джавы, как-никак.
331 1920200
>>1920126
Библиотеки берите, фреймворки не берите.
332 1920230
>>1918716

>Т.е. все эти штуки тебе предлагают просто красивую семантику


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

>от того, как бы ты это делал на Джаве


потому что аккуратно чекать флаги в цикле и прерывать вейты очень непросто. Люди все время off-by-one ошибки допускают, а ты про wait говоришь.
Разбираться что дает cancel в разных абстракциях нужно, но это часть понимания семантики. Разобраться с особенностями реализации нужно чтобы понимать какие проблемы с производительностью могут быть или как обойти уже существующие.

>кодить по хардкору


>самые высокопроизводительные приложения


High-load это спектр. На биржах, где тебе нужно вкладываться в миллисекунды, люди кодят по хардкору и выжимают все из железа. В каком-нибудь сервисе на 100к запросов в секунду тебе уже нужен асинхронный IO, но еще можно позволить себе променять быстродействие на четкую семантику библиотек.
333 1924000
Пишу уже несколько месяцев код на скале и хаскеле, делаю это не на работе(на которой джава и питон), читаю иногда каких-то людей из скала, хаскель сообществ. Конечно код пишется интересно, понятно чем ФП привлекает, писать код увлекательно. Но у меня постоянно возникает ощущение, что люди в этом фп, решают вообще не те проблемы, которые решать важно, мб я где-то не там нахожу информацию о них или действительно в ФП мире это норма дрочить на монады, линзы, теор кат и пр. вещи, которые вроде как должны облегчать решать проблемы с кодом, но при этом не использовать эти инструменты для решения реальных проблем(реального мира, а не тех, которые фп само себе создало). Почему если это так удобно и классно на джаве/плюсах/го/питоне написано овердохера полезных вещей вроде баз, оркестраторов, хадупов, меседжброкеров, веб серверов, поисковых движков и пр. А на скале написан только Спарк и акка из того, что решает какие-то реальные проблемы и в них от ФП и нету ничего особо. Зато есть библиотека каких-то костылей(кэтс), которая считается классной в этом мире. Мне конечно писать код нравится на ФП языках, но это все выглядит как решение искусственно созданных проблем. Мб я что-то не знаю и действительно есть какие-то полезные ФП языки, полезность которых подтверждается проектами на них, либо я не туда смотрю, просветите.
334 1924233
>>1920153
Потому что экосистема джавы - говно и юзать её в скале, кложе и т.д. - неидеоматично.
335 1924551
>>1798168 (OP)
https://techcrunch.com/2021/01/28/fintech-darling-nubank-raises-blockbuster-400m-series-g-at-25b-valuation/

Бразильский клон Тинькофф-банка гребет баксы самосвалами и зогхватывает мир. А в чем отличие? Да только в том, что Тинькофф-бэкенд на сабже, а нюбанк - на кложе+датомик.

Передайте этот пост Олегу, это очень важно.
336 1924774
>>1924000

> что люди в этом фп, решают вообще не те проблемы, которые решать важно


Есть разные виды проблем, и все они важные, и все так или иначе решаются во всех языках.
1) Проблемы программирования (сюда же входят проблемы порожденные языком или парадигмой). Сюда относятся библиотеки-улучшения стандартной библиотки (думаю есть в любом языке, в джаве это например apache-commons или guava, в скале - cats/zio), разработка библитек для уменьшения боилерплейта (lombok в джаве, shapeless в скале), а также разработка паттернов использования языка (в ООП это практически неформализуемо в виде библиотке, поэтому эти подходы изложены в GoF и других книгах по OOD, в ФП их частично можно выразить тайпклассами). Поскольку скала с ФП позволяет создавать намного более высокоуровневые абстракции, в ней есть больше библиотек для этих проблем, и это хорошо потому что в других языках эти проблемы есть, но их каждый раз нужно решать заново.
2) Инфраструктурные проблемы - хадупы, брокеры и все остальное. Это прямо пропорционально возрасту языка и количеству программистов на нем. Еще нужны библиотеки для взаимодействия со все этим добром, асинхронщины и сериализации и всего остального (вот они в скале есть). Кроме того, скале зачастую не нужны свои инфраструктурные библиотеки - netty работает отлично, хадуповские классы используют из спарка и т.д. Можно сразу использовать язык для
3) проблем бизнеса. Тут-то для написания поддерживаемого кода тебе и приходят на помощь наработки из п. 1)
337 1924945
>>1924000
Пока скалисты рассуждают как им читать .properties файлы и лифтить монады в очелло, джависты уже запускают очередной микросервис и рубят капусту.
338 1924946
>>1924551
Ты не сравнивай местечковый банк, который отмывает грязные деньги в странах Латинской Америки, с детищем Олега - проект тревел-инвестиции.
339 1924997
>>1924945
Пока джависты неделями выжигают глаза xml-ем и рассуждают как им добавить 99й слой абстракции с помощью AbstractSingletonProxyFactoryBean, пхпшники и гошники уже запускают очередной микросервис и рубят капусту.
340 1925128
>>1924997

>пхпшники


graceas, плез :)
341 1925387
>>1924946

>не сравнивай банк


>с детищем Олега


вы еще скажите, будто сам банк - это детище Олега
342 1925453
>>1924774

> 3) проблем бизнеса. Тут-то для написания поддерживаемого кода тебе и приходят на помощь наработки из п. 1)


Тем не менее туча бизнесов как работали на императивных языках так и работают, а функциональные языки им только проблемы создают с их способностью писать высокоуровневые абстракции и невозможностью из-за этого масштабировать команду и заменять в ней людей. Само ФП создает не только проблемы для программистов, которые они решают абстракциями, так и бизнесам, которые пытаются людей обучать ему, если уж попали в ФП. А обучить человека хреначить на скале\хаскеле дело хлопотное и у него должна быть изначально предрасположенность к этому, иначе его просто не убедить, что ФП - это полезно.
Ну и вообще за 20 лет можно было бы кроме библиотек с тайпклассами хотяб ide сделать, которая не краснит. Про билд тул у меня такое же впечатление, но с ним я скорее всего не разобрался пока нормально.Тоже дополнительные проблемы.
343 1925474
>>1925453

>ide сделать, которая не краснит


пробую дотти ни единого разрыва не краснит
344 1925652
>>1925453

>как работали на императивных языках так и работают


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

>функциональные языки им только проблемы создают с их способностью писать высокоуровневые абстракции


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

>невозможностью из-за этого масштабировать команду и заменять в ней людей


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

>у него должна быть изначально предрасположенность к этому


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

> Про билд тул у меня такое же впечатление


Да мавен используй и не еби мозг. Можешь еще mill попробовать, он как раз из-за усталости от sbt сделан.
345 1925768
>>1925474

>дотти


>ide


лiл, вкатышь путается в языках и средах разработки!
346 1926365
>>1925768
вы на дотти пишете без иде?
347 1926554
Вкатился в функциональщину, когда мозг привык к композиции функций и point free стилю, осенило. Стал писать код лучше, на работе внедряю ramda.js. Продолжаю вникать дальше, уже охуел от элегантности монад и кажется ФП картина в голове немного складывается.

Вот думаю что пора отстраняться от JS и попробовать какой-то язык посерьезнее, с большим упором на ФП и с возможностью переката поэтому Хаскель не хочется рассматривать чисто из практической точки зрения. Стоит ли в Скалку вкатываться? Подводные камни? да, я хочу услышать позитивные ответы в Скала треде от скалистов

Другой вариант, который мне кажется реалистичным, это Эликсир.

Стаж 4 года, работаю на фронте и есть опыт работы на беке Руби.
348 1926596
>>1925453
Анон, ты как и многие опять поддаешься на провокации местных борщехлебов. ФП - это не тайпклассы и ебля монатками в очко. ФП - это тупо референциально транспарентные функции и иммутабельные данные. Когда у тебя у композитных объектов такая же семантика (эквивалентность, изменямость), как например у чисел. х = 2, потом х = 3. Икс изменился, а число 2 как было числом 2, так и осталось. И теперь генерализируй эту семантику на бизнес-объекты. Все, в этом и заключается ФП. Это уже лет 10 как common wisdom, что с такой семантикой в общем случае работать проще. Все новые языки и технологии(!) ориентируются на нее по дефолту. Вот и все, это и есть ФП. В расте фп, в джаве фп. Везде фп. Кроме тех мест, где оно дает большой оверхед по памяти\производительности, т.е. там, где надо ебаться в байтики. Но иногда и там можно.

А то, что местные фанатики тебе рассказывают - это на 20% полезные, но не критичные штуки (дело вкуса), а на 80% - маркетинговый буллшит и бойлерплейт, потому что тут так принято.

Добра, анон!
349 1926612
>>1926596

>референциально транспарентные функции


А как ты будешь соблюдать чистоту в языке с сайд эффектами без монад, или ещё чего ядрёнее типа афинных/линейных типов, что именно должно тебе поможет позволить изолировать чистую часть программы от сайдффектной на уровне типов, если не это?

пора бы уже начать пиздить за использование лингвистического термина reference transparency применимо к программированию, где он полностью теряет смысл
350 1926619
>>1926612

>А как


Просто и без задней мысли, я же не шизоид с ОКР.

>reference transparency применимо к программированию, где он полностью теряет смысл


Бред. Лень объяснять.

В любом случае, я свой пост адресовал конкретному анону, а не местным господам борщехлебам. Не вижу смысла устраивать очередной унылый одинаковый срач, кому-то нравится арбуз, кому-то - свиной хрящ. Я просто довел до анона информацию, что фп != борщи.
351 1926644
>>1926619

>Просто и без задней мысли, я же не шизоид с ОКР.


Ясно, то есть никак.

>Бред. Лень объяснять.


https://stackoverflow.com/a/9859966

>Я просто довел до анона информацию, что фп != борщи.


Это называется дезинформация.
Если ФП - это ФВП, замыкания + парочка стандартных комбинаторов, то 95% менйстрим программирования это ФП, даже пхп.
Но если ты уж начал говорить про чистоту, то нормальная система типов, позволяющая сэйвово разделить чистую программу и эффекты есть лишь кое-где и является тем, что ты определяешь как "борщи".
352 1926645
>>1926644
>>1926619
Челик начинает вкатываться в ФП, видит некоторые полезные для себя вещи и некоторые непонятные.
Но вместо того чтобы продолжить разбираться в мат.части, он решает для себя что есть "ФП" а есть ненужные "борщи", ведь проще назвать кого-то борщехлебом и смишно пошутить про "монады в очелло", чем пытаться найти профиты в "борщах".
353 1926701
>>1926645
>>1925652
>>1926619
Профиты "борщей" я понимаю, но всё-таки насколько в целом парадигма сильнее императивного подхода я понимаю только в теории. Планирую пописать какой-нибудь велосипед на скале/хаскеле, чтобы все-таки иметь какой-то опыт к чему-то приближенному к реальной жизни, пока я только книжки читал, да курсы проходил, там упражнения конечно показывают полезность ФП, но все это выглядит как что-то вырванное, отдельное.

Всем спасибо за ответы.
354 1926730
>>1926644
Лол, Антон ДэГузло пытается оправдать свои попытки залифтить монаду себе в очелло!
355 1926919
>>1926644
Не знаю, что в словах "мне неинтересно в очередной раз иметь тот же самый срач с юным адептом борщей" тебе непонятно.

>>1926645
Вообще мимо.

>>1926701
Для души бери х-ль и кложу\эликсир, чтобы ощутить все грани. Скалка объективно неактуальна, а чисто для изучения подхода в ней слишком много семантического шума.
356 1926977
>>1926919

> мне неинтересно! слышите, вообще не интересно!


> скала неактуальна! мне это неинтересно но я пришел вам написать что она неактуальна!

357 1927130
>>1926919

>Для души бери х-ль


>Скалка объективно неактуальна


слова настоящего латентного хаскелиста?
358 1928105

>Не заходил в тред полгода


>Местная истеричка все еще детектит меня в каждом втором посте


Смешно.

Антон Де Гузло
359 1928885
>>1928105
Так вот кто в овощной кидает!
360 1932016
>>1928105

>Антон Де Гузло


>Челы-дяди, а как залифтить монаду себе в очелло?!


лiл!
361 1938197
Посоны, наверное тупой вопрос, но я не шарю в java экосистеме.

в sbt у меня два таргета:

lazy val lib = (project in file("."))
lazy val app = (project in file("app"))
.aggregate(lib)
.dependsOn(lib)

app зависит от lib

в app я при помощи runtime рефлексии хочу создавать классы из lib.

для этого думаю заюзать ClassFinder

import org.clapper.classutil.ClassFinder
val finder = ClassFinder()
finder.getClasses()

если выполнить данный код в lib, то все ок, я вижу классы определенные в lib
если выполнить этот код в app, то я не вижу классы из lib.

Что в sbt поправить, чтобы классы из lib так же были видны?
362 1938256
>>1938197

>в app я при помощи runtime рефлексии хочу создавать классы из lib.


1) Не страдай хуйней (рефлексией), а лучше опиши что именно ты хочешь сделать с точки зрения бизнес-логики. Скорее всего есть вменяемое решение без рефлексии или на крайняк либа которая уже это делает за тебя.
2) Словами описывать такие проблемы бесполезно. Чтобы хотя бы надеяться на помощь, кидай проект на гитхабе.
363 1938266
>>1938256

>лучше опиши что именно ты хочешь сделать с точки зрения бизнес-логики.


Вот тут чел описывает ровно ту проблему, которую я пытаюсь решить - https://stackoverflow.com/questions/27756064/java-register-available-classes-to-list-automatically

У меня конечно не монстры с пауками, но суть та же. Хочется иметь возможность просто добавлять новые классы, а приложение, которое бы эти классы использовало - чтобы само узнавало об их сущестовании ( например по специальным аннтоациям или еще как, не суть важно )

>2) Словами описывать такие проблемы бесполезно. Чтобы хотя бы надеяться на помощь, кидай проект на гитхабе.


Да, видимо придется чет такое сделать
364 1938490
>>1938197
Помогло добавление
fork in run := true
в зависый project
366 1939022
>>1938595

>обезьяне_вместо_дубины_дали_ружье.тхт

367 1939094
>>1938595
Никогда оверинжиниринга в джаве не видел? Для насмешки над ним даже enterprise fizz buzz придумали.
368 1939121
369 1939942
>>1915327
Дегос же гей-медведь. Что еще лучше.
370 1941914
>>1798168 (OP)
Поздравляю, скаланы! ДелиМобиль наконец-то съехал со Скэйли и все переписал на Kotlin + Arrow. Теперь компания не в опасности!
371 1941995
>>1941914

>Arrow


Коты, только хуевей. В Kotlin без эмуляции тайпклассов и нормального паттерн-матчинга НЕ НУЖНО.
372 1942066
>>1941995
Чел, людям проект нужно запустить и деньги зарабатывать, а не в котов пердолится и думать каким лучше залифтить монаду себе в очелло как Антон Де Гузло
изображение.png236 Кб, 590x818
373 1942104
>>1942066
Пикрил счастливый адоптер Arrow.
374 1942199
>>1942104
Чел, прекращай себя закапывать...
375 1944959
Прочитал книгу Одерски programming scala ( до этого еще его курс на coursera прошел ). Что лучше дальше почитать?
изображение.png508 Кб, 638x485
376 1945103
>>1944959
Scala with Cats.
377 1945662
>>1944959
Почему ты решил вкатываться именно в scala? Ты джавист?
Scala-Гопник.jpg263 Кб, 1280x960
378 1945671
>>1945662

>Почему ты решил вкатываться именно в scala? Ты джавист?

379 1945781
>>1945662
Джавист? Боже упаси. Я на плюсах пишу.

А так я скорее в функциональщину сейчас вкатываюсь, вкатился бы лучше в хачкель ( или хотя б F# ), но вакансий нет, только борщ, приходится вот в скалу
380 1945967
>>1944959
Functional Programming in Scala
Ещё можно одноименный курс на курсере пройти с Одерским.
381 1946466
>>1944959
Вакансии на HH.ru, конечно же. Когда осознаешь, что без многолетнего опыта вкатиться в скэйлу не выйдет, то переходи в котлин или оставайся в джаве - там хотя бы деньги платят. В Скейле же IDE код краснит и очень странные кадры работают
382 1946589
>>1946466

>В Скейле же IDE код краснит и очень странные кадры работают


это какой-то местный мемасик?
383 1946673
>>1946589
Попустись! Все проклинают Сугака из-за того, что IDEA краснит Скала-код! Краснит даже на простых кейсах. А еще все тормозит и отжирает просто неприличное количество памяти!
image.png313 Кб, 488x552
384 1947068
Зачем виабушник накручивает свой чатик ботами?
385 1947688
Укатился из скалы в хаскель год назад. Пишу на самом охуенном языке в мире. Сижу без работы. Брат есть, батя говорит.
386 1947693
>>1946466

>без многолетнего опыта вкатиться в скэйлу не выйдет


Вот это кстати чушь, я вкатился с опытом скалы 1 мес. Контора была хорошая, но не сильно притязательна, потому что скалистов нихуя нет в природе.
387 1947737
>>1947693
Чел, ты только не ври окружающим, окда? Даже помоечный динс воротит нос от перекатщиков и требует коммерческий опыт от 2 лет на скэйле. Что уж говорить о тиньке или райфе, которые такой анал-карнавал устраивают на собеседовании, что закачаешься. Они также требуют коммерческий опыт от года на скэйле. И да - пердоленье спарка не считается за скэйла опыт.
388 1947740
>>1947688
Гранин? Это ты?! Ты же контрактник на Хаскелле, который никогда и нигде не работал и пописываешь книжечки про хэйскэлл
sage 389 1947753
>>1947737
>>1947740
Ясно, тут тоже одни шизы сидят.
Пойду ка я обратно в инвестач.
390 1947838
>>1947068
Чел, данный паблик как и продджвм держат гуга и димсоул - контрактеры за 300кк в наносекунду. Им незачем нагонять ботов.
391 1948230
>>1947737

> Даже помоечный динс воротит нос


Почему помоечный?
392 1948250
Сап, двач я не тян.

Интересуюсь Скалой и ФПхой вообще. Я яростно не люблю ООП классическое, программирую на Go. До этого писал на крестах.

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

Вопрос, можно ли вкатываться в скалу не залезая в этот явовый стек вообще?
393 1948266
>>1948250
Да, можно. Это в котлин без джавы не вкатишься. А в скэйле своего добра полно и можно обойтись без знания джавы. Только учти, что IDEA (единственная IDE, которая худо-бедно работает со скэйла) нещадно краснит код и отжирает просто гигабайты памяти и загружает твой процессор до отсечки.
394 1949027
>>1948230
Потому что не взяли туда анона, очевидно
395 1952008
Изучаю скалу. Захотелось попробовать сделать набор обобщенных геометрических классов. С алиасами на самые распространенные варианты: Int и Double

Это норм подход - https://ideone.com/Fu1mXc ?
Где вообще почитать про дизайн и best practices при создании пользовательских библиотек в scala ?
397 1952632
>>1952048
Ну и зачем ты скинул потуги Де Гузла?
398 1952859
>>1952632
Чел, неси деньги и вникай как проектировать действительно качественный код на скэйла
399 1952973
Что это за говно вместо синтаксиса?
400 1953168
>>1798168 (OP)
Верно ли я понимаю, что Cats для либералопедерастов-SJWшников, а ZIO для правильных пацанов?
401 1953248
>>1952973
По-моему охуенно.
Главное чтобы не как C-style параша или петухон.
402 1953318
>>1952973
Найс-найс. Сколько теперь ждать, чтобы идея перестала краснить? Еще 10 лет? Сугаку работы привалило, лол. Может сможет себе квартирку в Хамовниках взять.
403 1955290
Наверное еще один тупой вопрос, но может и нет. Сходу чет не нагуглил

1) в scala for comprehension всегда транслируется в вызовы map, flatMap, и withFilter, правильно?

2) map ( и flatMap ) на выходе создают новую коллекцию. Если новая коллекция не нужна, то предполагается вызывать map либо у iterator либо у view, правильно?

Соответственно вопрос:

Следует ли из пункта 1) и 2), что в for comprehensions стоит использовать iterator или view для того, чтобы избежать overhead'а от создания ненужных новых коллекций при вызовах map и flatMap

т.е. что-то типа

for{
x <- xs.iterator
y <- ys.iterator
} yield x + y

Или это все не нужно и никакого оверхеда не будет?
404 1956215
зачем нужен sbt когда есть скажем mill ?
405 1957920
>>1956215

>mill


Что там по Гонконгу? А как на счет Тибета?
406 1960814
Есть задача: https://adventofcode.com/2015/day/4

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

Я сделал реализацию в которой берется некоторый chunk чисел ( скажем по 100 тысяч ), этот chunk делится на меньшие диапазоны, количество которых равно числу ядер и каждый диапазон заворачивается и вычисляется в Future. Далее все аггрегируется через Future.foldLeft и если не находится ни одного результата, берем следующий chunk и т.д.

Получилось вроде неплохо, практически линейный рост производительности по числу ядер. Но стало интересно может как-то подекларативнее можно все это сделать? Через parallel collection какой-нибудь или еще как.
407 1962035
>>1798168 (OP)
Ваши оправдания?
408 1966159
>>1962035
Не потрудишься пояснить что эти графики значат и дать ссылку на источник?
409 1966671
Аноны, а нахуя нужен sbt? Вот у меня на текущем месте работы используется Gradle для билдинга скалы и в нем все легко и понятно, любые вопросы гуглятся, в билд скриптах используются нормальные английские слова вместо иероглифов. А с sbt как только появлялась задача сделать что-то сложнее добавления зависимости начиналась такая ебля...
410 1966681
>>1966671
Добавлю, что gradle используется во всем jvm-коммьюнити, поэтому можно переиспользовать опыт огромного комьюнити. Да, я люблю typed functional programming и считаю что это самый правильный способ разработки, но писать блид скрипты на груви или котлине - это не так уж страшно, все-таки билд скрипт это не основной код приложения.
411 1966780
>>1966671 >>1966681
Основной плюс sbt в том что он сделан специально для скалы и поэтому из коробки поддерживает кросс-компиляцию, и в меньшей сетепени в том что это де-факто стандарт опенсорса на скале. По поводу иероглифов - в последних версиях sbt с этим стало намного лучше.
А вообще последние два года использую maven со скалой и наверное предпочел бы его любой билд-туле основаной на тьюринг-полном языке, будь то sbt, gradle или lieningen.
412 1970688
В чем проблема написать сложность алгоритма в доке по коллекциям? вот ну скажем у diff, union и intersect?
я бы ожидал линейную сложность у сортированных коллекции и n log n у несортированных. А как в scala? А ХУЙ ЗНАЕТ. Может там вообще квардратичная? И как вообще вот хоть что-то писать с использованием алогоритмов стандартных коллекций? Все что здесь не перечислено - https://docs.scala-lang.org/overviews/collections/performance-characteristics.html использовать на свой страх и риск?
413 1971633
>>1970688
Проблемы, которые пришли мне в голову за 30 секунд размышлений:
1) Как только ты вносишь эту информацию в доку, это становится частью API, так что менять реализацию становится сложнее.
2) Это банально долго, коллекций и операций много, а тебе нужно описать их декартово произведение.
3) Операции типа intersect принимают другую коллекцию на вход, а значит сложность алгоритмам может зависть от ее реализации.

>А как в scala? А ХУЙ ЗНАЕТ


Исходники находятся в одном клике от тебя.

>как вообще вот хоть что-то писать с использованием алогоритмов стандартных коллекций?


1) Не заморачиваться - коллекции в 90% случаев настолько мелкие, что не важно что там внутри, а в 9% работают так как ожидается.
2) В последнем 1% - делать бенчмарки. И их нужно делать даже если в доке написаны все временные сложности - константы, взаимодействие с кешем и GC, а также баги реализации никто не отменял.
414 1971939
>>1971633

>делать бенчмарки


Лол, какие бенчмарки, чел? Кабан наседает и требует быстрее закрывать эпики. А ты там про какие-то бенчмарки рассказываешь
415 1972120
>>1971939
Ну не делай, лол, чел. Только тогда не нужно давать никаких оценок производительности. Если пользователи начнут жаловаться на тормоза - кабан откроет эпик, а ты его закроешь. Не начнут - поздравляю, ты попал в 99% задач, для которых не нужны бенчмарки.
416 1972124
>>1971939
Ну так зависит от объемов данных и нагрузки в проде.
Если там данных кот наплакал, то просто хуеришь максимально простую наивную реализацию, чтоб она была максимально читаема и очевидна и пусть там будет хоть 1000% неоптимизированнонго оверхеда.
Дальше у вас очевидно есть метрики, мониторинг, алерты и когда станет очевидно что нужна оптимизация - заводится отдельный тикет и в рамках него уже сидишь замеряешь и выбираешь ОК вариант.
Если данных много, то нужно объяснить, что можно сделать быстро и будет тормозить, а можно сделать хитро чтоб не тормозило, но нужно время на бенчи, тестирование на соотносимым с продом по объёму датасате и тд.
417 1972169
>>1971939
Ох уж этот дивный мир жава энтерпрайза.

>>1972124
Ага, а потом как начали лить трафик (даже тупо запостив какой нибудь высер на хабре), и получается классическая ситуация:
а) Если сервер выделенный — то он падает нахуй;
б) Если облако, то бизнес теряет 5-10 твоих зарплат пока кто нибудь не спохватится, и ты идёшь нахуй, лол.
418 1972754
анон, дай совета по скаловому рынку
я мидл плюсовик, есть маза на работе перейти в команду скалолазов
полный стек хз, но там какой-то фрейм на базе акки, вроде лагом, и катс

Я там потом не охуею работу искать через годик после такого перехода?
419 1972902
>>1972169
Нахуя ты токсишь, душное пидрило?

Очевидно, если резкое повышение нагрузки/объёмов возможно и имеет шансы больше определенного процента - то переходим к пунктику два (бенчи и тестирование). Но это не тебе, программистишке ебаной, решать, твоя задача уведомить ПМа, а решение, исходя из рисков будет принимать менеджер. Потому что страдать маняоптимизациями (тратить время и ухудшать код) некоторые долбоебы просто любят, как и делать «заделы на будущее», а причину придумать они всегда сумеют, даже если ее вероятность меньше долей процента и вся понаписанная хуита никогда не понадобится.
Осло, кекнул с хуйни про хабр, чем там нагрузка повысится, открытием индекс пейджа и регистрациями? Ну так маняоптимизации мерджа коллекций где-то в доменном коде - это последнее что тебе поможет.
420 1972916
>>1972754

>плюсовик


айс, айс, это ты?
421 1973038
>>1972754
Смысл переходить есть, как минимум чтобы попробовать совершенно другой подход к разработке (ГЦ + ФП vs ручное управление памятью + ИП). Поскольку ты мидл, то скорее всего в возрасте когда можно и нужно пробовать как можно больше разных подходов и областей, чтобы потом определиться со специализацией, ну и для расширения кругозора. Я сам перешел на Скалу в подобных условиях лет 7 назад и ни разу не пожалел.
По поводу работы - если ты толковый, то и на плюсы вернуться сможешь, и на скале найти что-то, да и на джаву будет намного проще перейти, если захочешь.
Единственное чего не советую - прыгать каждый год с проекта на проект. Обычно негативные последствия решений проявляются не сразу, то есть долгий опыт работы над одним проектом ценнее короткого. Больше 3-4-х лет работать тоже не стоит - взгляд замыливается.
>>1972169
а) Приделывайте ограничение запросов в том или ином виде.
б) Обычно кластер масштабируется до определенного предела.
Вообще, чтобы не ходить нахуй, советую почитать - https://www.amazon.com/Release-Design-Deploy-Production-Ready-Software/dp/1680502395
422 1973635
>>1972916
нет
>>1973038

>скорее всего в возрасте когда можно и нужно пробовать как можно больше разных подходов и областей


тоже нет(
423 1973712
>>1973635
Ну, если тебе больше 30 и ты еще мидл, то наверное имеет смысл углубляться в то чем ты сейчас занимаешься, а не размениваться на скалу.
424 1973731
>>1973712
я вайтишник, два года назад вкатился вообще (да, в плюсы, лол, это отдельная история)
сейчас ищу куда двигаться дальше, охота пошляться по разным проектам, нахапать опыта и не поесть говна на галерах типа епама
скала интересна тем, что на ней как и на жаве ща пилят бекенд и прочие микросервисы для веба, и с этим опытом можно уже катиться дальше будет
425 1974808
Я джун. Меня не берут в джаву и котлин, теперь вкатываюсь в скалу
426 1979325
>>1970688
Так а тебе не проще сорцы прочитать и по сорцам понять какая сложность? По идее все что нужно описано в книге Криса Окасаки Pure Functional Data Structures. Если интересуют классические мутабельные структуры данных, то очевидный Кормэн.
427 1979408
>>1974808
Рано, ты еще должен был попробовать пхп и джаваскрипт
428 1983611
>>1966159
tl;dr:
пик слева - кодовая база здорового взрослого человека
пик справа - кодовая база пердолемакаки, где каждые полгода половина всего кода выкидывается и переписывается заново (попутно ломая все на своем пути)
429 1983614
>>1973038
Я бы на твоем месте тактически перекотился но вообще ты немного странный!
430 1983650
Вопрос, если я начну учить жабу, после скалу и спарк, это будет логичное развитие скилла или нет? Мне в шараге говорят, что "забей на жабу, учи питон как все". Но разве питон адекватный прекурсор для скалы? Ведь его свобода синтаксиса позволяет делать вещи, которые в других языках считаются ошибками. Взять то же наследование, оно в питоне есть, но его почти не используют. Из-за динамической типизации очень легко сломать код при наследовании, сложных иерархий в нём не делают.
431 1983693
>>1983650
Логичное. Также логично выучить питон и PySpark, без скалы и джавы. Правда рано или поздно тебе придется разбираться с тем как устроен спарк и JVM, а значит на каком-то уровне скалу нужно будет знать, но это не сложно - спарк написан достаточно понятно даже для не-скалистов. Или не придется, но тогда у тебя будет очень низкий потолок по ЗП, если не занимаешься data science конечно.

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


Поэтому я не буду работать с PySpark даже если мне очень хорошо заплатят разве что на позиции, которая не предполагает написание кода.
>>1983611
Или слева завершенный проект, а справа - проект стартапа. Или справа scalafmt меняли несколько раз. Или справа не боятся рефакторить из-за системы типов, а слева невозможно функцию переименовать без поломанного прода. Давай ссылку уже, что ты мозги ебешь.
>>1983614
Куда перекатился? Почему странный? Ты точно мне отвечаешь?
432 1983710
>>1983693
Опция выучить питон и пайспарк "просто" - действительно есть. Просто я не хочу в питон залезать вообще. Я глянул видео Дерека про скалу (которое по Scala for the Impatient Хорстманна), мне кажется, что скала это замечательно в пределах её назначения.
433 1983731
>>1983710
Скала это возможно лучший язык в мире но это не точно если можешь позволить себе JVM, но начать лучше с питона. Сможешь намного раньше начать набираться реального опыта - и язык проще, и вакансий много (может даже больше чем на скале даже для спарка). А скалу потом выучишь.
434 1983751
>>1983710
>>1983731
Справедливости ради на питоне (и еще на жс) конкуренция такая, что я ебу алибабу. А скала няшна. Плюс питошка нихуя общего со скалой не имеет. Но да, скала не бегинерфрендли язык, не надо ее брать своим первым. Прогерской девственности лучше лишаться через жабу ящитаю. Жаба это топ. Ну или учить сишарп, если веришь что в 2021 мелкомягкие могут и умеют.
435 1983935
Хуй знает анон, если у тебя мозг под Скалу заточен - то сразу на ней и начинай писать, тебе только легче будет. Если не заточен - то она тебе только страдания принесет, будешь ебаться с DSLями все время и ниче не понимать.
436 1983957
>>1983751
Джава тоже для новичков так себе, это довольно сложный язык и особенно экосистема. Языки для новичков: паскаль, схема, питон. С# тоже сложный, но в с ним уже идет целая экосиситема и даже IDE, так что начинать гораздо легче чем с джавой.
>>1983935

>если у тебя мозг под Скалу заточен


Да нет такого, особенно у новичков. Могу поверить что мозг затачивается под что-то с чем ты 10 лет подряд работаешь, но это скорее негативный эффект.
437 1983966
>>1983935

>мозг под Скалу заточен


Вот когда завезут IDE, которая не краснит код и не жрет гигабайты оперативки на простейших кейсах при этом отжирая процессорное время словно я там интернет архивирую, вот тогда и приходите со своей скэйлой.
438 1983987
а oткуда этот мем пошел что "идея краснит код"?
или это один и тот же шиз срет?
439 1984029
>>1983987
Чел, ты что-нибудь сложнее хеллоу ворлда запускал на скэйле в IDE? 10 топовых инженеров ЖетБрейнс за 12 лет не смогли сделать так, чтобы IDE не краснила код.
Или ты Энтони Дэ Гузлоу и ищешь как залифтить монаду себе в очелло?
440 1984037
>>1983957

> > если у тебя мозг под Скалу заточен


> Да нет такого, особенно у новичков


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

Вот ты много индусов скалистов видел? Я, например, видел их только в бигдате и они там говнокодят что пиздец. В функциональном программировании я индусов вообще не видел. Потому что в ФП нужно думать и нормально все делать, а не абы как.
441 1984159
>>1984029
Как будто Metals не краснит.
442 1984474
>>1984037

>для этого ты должен структурно мыслить


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

>гуманитарный склад мышления


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

>Вот ты много индусов скалистов видел


Не работал с индусами, ничего не могу сказать. Зато не раз видел лютый говнокод на скале, который затыкали палками еле-еле, но который работал. На питоне было бы ровно то же самое, а в некоторых случаях и лучше просто из-за того что, например, там акторов нет.
443 1984626
>>1984474
Расскажи поподробнее, плз, что такое структурное мышление.
444 1984706
>>1984626
Я бы сказал, не претендуя на полноту и выверенность определения, что это способность выявлять причинно-следственные связи.
445 1984810
>>1984474

> Это нужно для любого программиста. Люди без этого навыка просто профнепригодны.


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

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


Ну вот я про что и говорю, говнокод на питоне или на джаве мэйнтейнить легче, чем говнокод на скале. Если у человека в голове каша, но он на скале такое высрет (особенно на акке), что сам через год не поймет и 20% написанного. На питоне или джаве его код тоже будет уебищный, но понять будет намного легче чем какой-нибудь асинхронный акторный ад с кучей concurrency багов.
446 1984824
>>1984626
Я бы сказал, что это способность подобрать абстракции и составить их них систему таким образом, чтобы:
1. В описании системы не было неоднозначностей
2. Можно было математически доказать, что эта система удовлетворяет свойствам, ради которых она задумывалась

Можно сказать, что структурное мышление это что-то вроде способности формулировать и доказывать теоремы
447 1984877
>>1984810

>Неправда


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

>инструменты для хуевых программистов


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

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


Я в общем-то согласен, но нужно понимать что это следствие именно мультипарадигменности скалы. Отсюда два вывода:
- говнокод на хаскеле более поддерживаемый чем на питоне
- если же говнокод на скале написан в одном стиле, то я бы предпочел его говнокоду на питоне как минимум из-за системы типов - ради уверенности во время рефакторинга в неговнокод.
В любом случае, это не имеет отношения к тому заточен подо что-то мозг или нет - это характеристики самих по себе инструментов.
>>1984824
Можно и так сказать, но проблема с этим определением в том что на практике оно не нужно - никто ну, почти не доказывает математически свойства программных систем.
448 1985994
>>1983693

>Куда перекатился? Почему странный? Ты точно мне отвечаешь?


Проебался, отвечаю тому же анону, которому отвечаешь ты.

>>1983693

>Или слева завершенный проект, а справа - проект стартапа.


Это кодовые базы реализации языков (кложи и скалы соответственно).
449 1986086
>>1985994

>Это кодовые базы реализации языков


А, ну тогда не удивительно. Хики считает кложуру более-менее завершенным проектом и вообще у них не слишком времени на ее разработку. Поэтому у них достаточно строгий подход к взаимодействию с комьюнити:
https://www.reddit.com/r/Clojure/comments/a0pjq9/rich_hickey_open_source_is_not_about_you/
У этого есть как позитивные стороны, так и негативные, например core.async стагнирует:
https://twitter.com/timbaldridge/status/1066050438338756608?lang=en
Я не знаю как именно ведется разработка скалы, но не думаю что они именно переписывают компилятор постоянно - он более-менее в состоянии поддержки, все новое в дотти делают. Хотя, опять же, не знаю сколько кода поменяли когда добавляли поддержку 8-ой джавы или коллекции переделывали.
me-2019-04-10-small.jpg23 Кб, 200x268
450 1986097
>>1984037

>В функциональном программировании я индусов вообще не видел.


Шрирам Кришнамурти преподаёт ФП очень хорошо, и он индус.
https://cs.brown.edu/~sk/
451 1986234
>>1983987

>один и тот же шиз срет


This
452 1986257
>>1986086

>Я не знаю как именно ведется разработка скалы


Примерно так:

>хуяк-хуяк


>а, бля... ну ладно, тогда нахуй это


>хуяк-хуяк



>не думаю что они именно переписывают компилятор постоянно


>дотти


Нутыпонел.
Ну а так речь не только о компиляторе, о стдлибе тоже, коллекции те же. И не только код, но и совместимость.

>https://twitter.com


Так там про стороннюю библиотеку же речь. Алсо анончик, пожалуйста копипасти с твиттера, этот говносайтик недавно окончательно заблочил кучу браузеров по желанию левой пятки, так что через альтернативные фронтенды открывать приходится.Скорей бы эту помойку заблокировали, эхх...
453 1986258
>>1986097
PLAI вроде тоже индус написал (или это он и есть?)
454 1986259
>>1986258
Он и есть
455 1986591
>>1986257

>Примерно так


Понятно, ты тоже не в курсе.

>Нутыпонел.


Не понел. Дотти - исследовательская площадка, там не то что переписывали код, а фичи выкидывали и добавляли постоянно. Одерски не считал скалу завершенным проектом, как минимум пока не сделал ее на базе DOT-calculus. Может и сейчас не считает.

>И не только код, но и совместимость.


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

>Так там про стороннюю библиотеку же речь.


Не совсем. Это часть стандартной библиотеки. Нажми Show replies и прочитай тред до конца.

>Since that moment no major updates have been made to core.async. Where "major update" means anything that isn't a semantic bug or a dep update. The library has utterly stagnated.


Как человек, который немного использовал core.async и еще больше выслушавший критики, могу сказать что лучше бы они меняли в нем побольше кода.
456 1986760
>>1986591

>Дотти - исследовательская площадка


Как и скала в целом как бы

>Это абсолютно ортогональные вещи


На практике у переписывальщиков и на компатибилити всем похуй

>Не совсем. Это часть стандартной библиотеки.


Нет, это сторонняя библиотека, которую просто хиккимори-контора типа поддерживает

>могу сказать что лучше бы они меняли в нем побольше кода


Что конкретно? Утечки вроде пофиксили
457 2011152
Чому шапка такая фиговая? Где книжки/источники, FAQ's?
458 2012763
>>2011152
Скалисты скрытный народец, и делится своими секретами очень неохотно.
459 2020911
На РАБоте перевели на другой проект, а тут Scala (Akka HTTP). Как теперь жить с этим после Спринга...
460 2025434
>>1984159
Неужели краснит?
461 2026314
>>1798168 (OP)
Обоснуйте, нахуй вообще эта ваша скалка нужна? Ну типа есть жава, есть кложа, есть хачкель, есть раст. Нахуя ещё один язык программирования без задач?
462 2026477
>>2026314
Не заебало?
463 2027349
>>2026314

>жава


Много слов, не функционально

>кложа


нет типов

>хачкель


СЛИШКОМ много математики

>раст


Ты б еще C++ написал
464 2027839
>>2027349
F#
/thread
465 2027893
>>2020911
Акка такая плохая?
466 2030921
Че притихли там скала3 вышла
467 2031185
>>2030921
IDEA перестала краснить код и жрать гигабайты памяти на простых проектах?!
469 2032030
>>2032024

>Optional braces that supports a distraction-free, indentation sensitive style of programming


Братишка, я тебе питончика принёс!
470 2032117
>>2032024
Сколько времени потребуется лучшим инженерам из JetBrains, чтобы написать новый плагин для совершенно нового языка Скэйла 3? Напоминаю, что им не хватило 11 лет, чтобы IDEA перестала краснить код Scala 2.
471 2032162
>>2032117

>Сколько времени потребуется лучшим инженерам из JetBrains, чтобы написать новый плагин для совершенно нового языка Скэйла 3? Напоминаю, что им не хватило 11 лет, чтобы IDEA перестала краснить код Scala 2.


Очевидно, что им нахер не упёрся этот полудохлый язык с 3,5 пользователями. Они отдали плагин в попенсорс - кому красит бери да фикси. А у них Котлин 1.5, каждые полгода новый релиз Джавы, новая IDE на подходе.
472 2032381
>>2032117

>Скэйла


>краснить код



Что это за унылое говно
Это один и тот же шиз пишет?
473 2032386
>>2032381
Ты фруктов поел? Кальян покурил? 150 кг от груди пожал? Манты поел? В Шемкент съездил?
474 2032436
>>2032386
Какие-то ебанутые мемы у вас
475 2032504
>>2032386
Я б съездил в Шымкент, выглядит классным городом.
476 2032506
>>2032386
Что не так с мантами?
477 2032531
>>2032506
Ну ты сначала 150 кг пожми хотя бы на 10 раз, затем в кальянной посиди часок-другой, а потом мы на тебя посмотрим как ты осилишь хотя бы 10 кг мант.
478 2032573
>>2032531
Я столько не вылеплю
479 2033282
>>2032531
Вы там своей функциональщиной совсем себе мозги прожгли?
480 2060430
>>1809718

>VS Code обычный текстовый редактор


По мне так это наоборот хорошо.
Я даже 2/3 фич идеи (и вообще любой IDE) никогда не юзал.
481 2060732
>>1798168 (OP)
Последнее время начало с этой ваше скалы аж подташнивать. Когда натыкаюсь на нее когда хочу приобщиться к всяким ебаморфизмам и прочим высоким еба материям и по каким то необъяснимым причинам автар выбирает не специально выверенный и рассчитанный под высокие еба материи хачкель.
По началу мне просто было немного некомфортно от скала-синтаксиса ну и от того что то что на хачкеле делается в x строчек на скалке занимает 3-5x строчек. Но жить можно, вон скобко дауны так вообще выписывают сотни своих скобочек и в хуй не дуют.
Но недавно я заглянул в новости из скала-мирка и основательно прихуел. Оказывается я не единственный кому скала-синтаксис был не по нутру, но даже ее создателям он не очень. Ну они и нахуевертели отступов как в пердоне и всякие end-хуемое. (Вместо того чтобы по человечески вынести тайп-хинты в отдельную строку; ну может еще через десяток лет и до этого дойдут) Я как бы и не против этих нововведений в принципе, но менять синтаксис языка когда на нем уже написаны миллионы строк - они что там совсем ебанулись что ли?
Ну а вообще, синтаксис это верхушка айсберга. Думаю что на самом деле корень проблем состоит в том что основа языка (dot) появилась так же ретроспективно. В то время как языки здорового человека брали отточенный десятилетиями лямбада-калькуль и уже двигались от него.
Что скажете в защиту этого поделия?
482 2060783
>>2060732
Никто ничего не скажет в защиту, упоротые скалисты могут только пассивно-агрессивничать, в открытом конфликте уходят в игнор; для всех остальных скала это очевидно ретроспективный говноязык уровня джаваскрипт, который используется потому что сначала был на хайпе, а потом стало поздно что-то переписывать и теперь нужны специалисты по укрощению этого говна. Такая же история у руби.
483 2060794
>>2060732

>Что скажете в защиту этого поделия?


С хаскелем работу не найти
484 2067291
Какая же sbt параша ёбаная.
Уёбищнее тулы никогда не видел.
485 2072047
>>2067291
Ты Maven и Gradle не видел.
486 2072057
>>2067291
>>2072047
Беседа scala-господ, лол
image12 Кб, 545x169
487 2084345
>>1798168 (OP)
Заебали вакабу свою шатать, з-макакичи. я знаю, ты сюда заходишь

Алсо в сообщении об ошибке запятая лишняя (и в целом построение фразы хуевое) - программист текст писал, да?
488 2086122
Scala 3 гайды полностью охватывают язык? Или стоит пройти материал по второй и потом "миграцию на 3"?
489 2086315
>>2086122
В Scala 3 book полностью новые фичи и старые
https://docs.scala-lang.org/scala3/book/introduction.html
490 2095911
Нужна ли математика для пердолинга на скале ? думаю поковырять её, но мат знаю на уровне школы.
491 2095960
>>2095911
Нет, даже теория типов не нужна
0560488740deb2434042b8b7e856cd12.jpeg62 Кб, 474x650
492 2103049
Сап, Scala-бояре
У меня примерно ноль знаний, поучите меня немного?

Суть задачи:
Есть linkedList из объектов Item, например. С полями: дата выпуска, тип, цена, серийный номер.
Например, таких объектов воткнуто в список 10 (не спрашивайте почему там LinkedList, надо так)

Мне нужно схлопнуть объекты по типу. Например, объектов дано 10, а типов всего 3. Т.е. из 10 объектов сделать 3 объекта.

Принцип схлопывания:
1. дату берем самую раннюю
2. тип одинаковый( по нему и скхлопываем же)
3. цену складываем из всех схлопнутых
4. серийник берем любой (например, первый попавшийся)

До чего я дошел:

val itemsMap = list.groupBy(_.type)

Сунул в мапу, сгруппировал.

Теперь понимаю, что reduce нужно сделать чтобы values схлопнуть, но я не могу понять как мне это оформить.
Помогите, плез

С меня как обычно
493 2104008
Че, пацаны, мертвый тред?
494 2104985
>>2103049
<code>
case class Smth(tp: String, a: Int, price: Int, sn: String)
</code>

<code>
lst.groupBy(_.tp).mapValues(_.reduce((a,b) => Smth(a.tp, Math.min(a.a, b.a), a.price + b.price, a.sn)))
</code>
495 2105074
>>2104008
котлен убил скалу
496 2111849
ВКАТЫВАЮСЬ
497 2112180
Поясните за скалу 2\3
Слышал о йоба фреймворке Акка, но она походу ещё не запилина под 3
Искать что-то с поддержкой 3 или сидеть на 2? Как вкатывальщику
sage 499 2112479
>>2112180
Тройка будет сырой ещё долго, пока что это версия для ёрли-адоптеров, энтузиастов и просто любителей тыкать палочкой новое, обычнолюди для прода её не возьмут, надо ещё пару лет минимум чтоб дозрела.
Касательно Акки, акка - это говно, не трать на неё своё время, jvm не создана для акторов, сразу смотри Cats Effects и ZIO или Monix.
Тред утонул или удален.
Это копия, сохраненная 31 июля 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски