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

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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

Яндекс, кстати, регулярно пишет-зовет на небигдатную скалу, видимо не только спринг у них.
Аноним 18/09/20 Птн 16:57:47 181005556
>>1810019
>Яндекс
У них все проекты, которые входят в Вертикали написаны на скалке.
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов