Завтра ищешь в интернете книжку Programming in Scala. Похуй если ничего не поймешь. Затем идешь на scala-lang.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию скала кода - от EPFL естественно, чтобы от зубов отскакивало. Когда напишешь свой первый клон Twittera, по пути изучив основы дискретного и лямбда исчисления, скачиваешь и изучаешь любой асинхронный скала вебсервер, рекомендую Play!. Как переделаешь твиттер клон, чтобы выдавал по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop и Spark, сверхбыстрые асинхронные key-value хранилища, NoSQL и прочие мира открытого исходного кода приблуды. Отсос хиккующих питонистов / просто неудачников типа годаунов или рубифанбоев, сосут по жизни, не заставит себя ждать и уже через пол года ты будешь подворачивать штаны, есть маффины, запивая смузи и любая баба будет течь от упоминания твоей зарплаты.
Теперь, вдобавок к вышесказанному, ты можешь посрамить своими подвернутыми джинсами и своей великолепной ухоженной бородой ещё и замшелых ПЛИСоебов-свитеров в драных китайских ноунейм-джинсах и с неухоженными бородами старой закалки.
Ведь в твоем распоряжении Chisel - самый лучший HDL язык на основе Scala для разработки процессоров, видеокарт, майнеров криптовалют, машинного обучения и всего такого прочего.
>>1259320 (OP) > >Ведь в твоем распоряжении Chisel - самый лучший HDL язык на основе Scala для разработки процессоров, видеокарт, майнеров криптовалют, машинного обучения и всего такого прочего Не нужен, т.к. нет железа для тестирования.
I have to confess that I have never heard of Chisel HDL until I read this question two minutes ago. No offense to the selfless developers of this language/platform; but learning it is not likely to help you in your job search or even graduate school applications. I applaud your curiosity and eagerness to learn exotic new languages, but you would do better by sticking to Verilog for your design projects.
The industry uses Verilog and VHDL for RTL design and verification; and there is hardly any time or reason to switch to the language-du-jour. The candidates who have the most appeal to us are those who know the standard tools of the trade (Verilog, System Verilog, and a scripting language - most likely Perl. Perl is the glue that holds the chip industry together).
While you go on a tangent and spend your precious study time on learning Scala and implementing simulators in Chisel; your classmate Kumar will buy a used copy of Palnitkar's Verilog book for $5, learn the language inside out, solve the exercises, download a System Verilog tutorial to learn the basics. And when both of you show up for the interview; guess which one of you we will hire. In an ideal world, your curiosity and forays into exotic hardware description languages should mean something. But this is not an ideal world, and I need the new design engineer (Kumar, in this case) to start cranking out HDL one week after he starts.
Many people have successfully designed out of order CPUs in plain, old and boring Verilog and VHDL; and their implementations seem to be working fine ;-) I would suggest learning Verilog well, and perhaps getting a small FPGA board and learning how to synthesize your designs to familiarize yourself with the various constraints (timing, area etc.) in digital design. That alone should give you significant advantage in a job interview - you would be surprised how many candidates just freeze when we ask them to design a linear feedback shift register or clock synchronizer. And leave Chisel to grad students working on EDA tool development or programming languages.
1 абзац >никогда не слышал кококо а вот тепер прочитал кококо 2 абзац > Индустрия юзает плюсы, жабе в ней нет места никто не будет на ней писать, потому что все знают плюсы а жабу никто не знает > Индустрия юзает жабу , скале в ней нет места никто не будет на ней писать, потому что все знают жабу а скалу никто не знает > Вы находистесь здесь 3 абзац > пока вы учите скалку, васян по букварю выучит жабу и бкдет зарабатывать 300кк/c 4 абзац > ДИДЫ БАЙТЫ НА СЯХ ИБАЛИ, СЕГФОЛТЫ ЛАВИЛИ, КОД В ПРОЦЕДУРНУЮ ЛАПШУ ПРЕВРАЩАЛИ И ВЫ ДОЛЖНЫ КАК ДИДЫ. НИНУЖЕН ГЦ, УТЕЧКИ ПАМЯТИ ЭТО НОРМ КОКОКОКОКО
>>1259320 (OP) Так-так, а что если я захочу написать майнер на этом чизеле. Мне нужна будет тестовая плата с али, а когда захочу собрать готовый прибор для продакшена мне придется покупать какую-нибудь плату от интела, чтобы выжать все соки, если вы понимаете о чем я?
>>1259420 >Ну и майнеры писать под фпга, ну такое. Намного производительней будет Асикс.
Для не вкуривающих сообщаю - синтезабельный netlist (в данном случае - синтезабельный RTL Verilog-выхлоп) одинаково прекрасно "компилируется" что в прошивку FPGA что в ASIC-железо. Во втором случае ты отправляешь RTL-код на фабрику и там тебе его конпелируют/трассируют в железку с использованием тамошних библиотек стандартной cmos логики и высылают готовые кристаллы/корпусные изделия с ножками. Вся разница исключительно в стоимости - дорогая плата на топовых FPGA стоит макс полляма-лям дерева, в то время как партия кастомных кусков кремния обойдётся по цене примерно от стоимости нового X5 до стоимости нового роллс-ройса, в зависимости от техпроцесса/применяемого способа производства/количества функциональных елементов.
В любом случае FPGA - обязательный этап для прототипирования того, что ты впоследствии собираешься видеть в кремнии.
>>1259423 >а когда захочу собрать готовый прибор для продакшена мне придется покупать какую-нибудь плату от интела, чтобы выжать все соки, если вы понимаете о чем я?
То берешь свитера-махарайщикасхемотехника, умеющего в разводку плат и даешь ТЗ. Далее, герберы на фабрику китайцами и давай такой ими барыжить.
Ну и есть готовые pci-express платы не от китайцев.
>>1259425 Ну хууй знает. С этими вашими фэпэгэа нужно электротехнику, физику и математику на зубок знать. Лучше я круды буду на плэй фреймворке писать.
>>1259425 Слушай, ну за такую цену он совсем не нужен. Как же тогда ребята всякие майнеры на асиксах клепают и продают в розницу за несколько штук баксов?
>>1259990 Нормально все, че ты начал, в самом то деле?! Берешь значит чизел и начинаешь писать код майнера под какой-нибудь криптокоин. Затем засылаешь сгенереный код в Гуанчжоу, а тебе в ответ прилетает готовая плата с кремнием, ееее!
Тред дохлый был, а тут хоть появилась ёба-хуитка чтобы на скалке майнеры кремниевые писать, хуле бы не попиздеть.
Тем более направление перспективное - уже во всех кругах речь про реконфигурируемые под задау фпга-подобные железки идет.
А старые свитерские инструменты пиздец какие битоблядские (одна только декларация входных-выводных сигналов, которое в традиционных HDL никак не абстрагируется и в листнинге кода его 4 экрана шин и проводов вниз проматывать чтобы до логики добраться, а потом ещё и не запутаться. :
Синтаксис использования модулей там тоже настолько пиздец, что его не на языке пишут, а в визуальной хуитке проводами соединяют, потому что на HDL-языке это выглядит как нечитаемый пиздец. Опять же в чизеле функциональное комбинирование и типизацию вороха входных сигналов завезли.
В FPGA ФП и асинхронность такие что процессорохолопам и не снились. Потому что здесь они настоящие, а race conditions вполне такие физические - электронами по проводам через транзисторы.
>>1260166 Все так. Lombok - для того, чтобы не плодить геттеры, сеттеры и т.д. Лямбды есть, передавать лямбды в виде параметров методов можно. Стримы есть. Всякие Акка и Плэй фреймворк доступны из Java с Java API. Скала не нужна по своей сути. Это было бы актуально если бы развитие Java остановилось на Java 5. Но Java уже догнала по фичам скалу. Если хочется немного сахарка, то лучше взять Kotlin вместо скалы, т.к. ее разрабатывает крупнейщая компания по разработке инструментов для разработчиков. А Scala разрабатывает полтора человека из EPFL. Петрашко ушел в Страйп. Феликс Малдер ушел в Кларну. Прокопец тоже уже не работает над Скалой. Там остался Мартин и человека 3 вроде, кто активно контрибюьтит в дотти.
>>1260785 Бля а я только вкатился. Хуй знает, в кой то веки кодинг доставляет, Яву с ее говном не хочется. Что учить то. Заебала эта хуйня. Что там в трендах и чтобы интересно было?
>>1261075 Ты ни котлина, ни скалы не знаешь, если так говоришь.
>>1260950 Обязательно учи то, что тебе посоветуют в зекаче, и не учи то, про что в зекаче сказали плохо. Здесь все анонимные эксперты индустрии, просто нет смысла не доверять свою карьеру экспертам с сосача.
>>1261094 Ну так и правда не взлетает же. Пока вакансии есть но будут ли через 2 года хз. Впрочем, к тому времени все равно новое говно учить. Эх. По крайней мере скала интересная и увлекает кодинг, может хоть прокачаюсь.
>>1261154 > По крайней мере скала интересная и увлекает кодинг, может хоть прокачаюсь. А ведь Scala неплохо подходит для обучения программированию. В ней представлены все основные парадигмы, для наглядности REPL имеется, unit-тесты, систему сборки проекта можно пощупать, да еще и синтаксис не такой перегруженный, как в Java. Не врет Одерски, когда говорит, что Scala - это scalable language.
А у нас Java-программисты, перешедшие на скалу, не хотят слушать как лучше потому что "нечитаемо у вас", и вместо этого:
1) Хуячат свои иерархии абстракт классов; 2) Геттеры и сеттеры (тру стори); 3) DI на Guice; 3) Джавовые веб-фреймворки и json-сериализация на аннотациях.
>>1261576 Дай им послушать Брайана Гойца (архитектора джавы), он в нескольких видяхах называл макаками тех, кто хуярит геттеры и сеттеры в каждый класс. Хотя скорее всего им уже ничего не поможет.
>>1261577 >геттеры и сеттеры Никогда не понимал, нахуя они нужны полю, если не предполагается никакой пре или пост процессинг перед взаимодействием с этим полем.
>>1259320 (OP) Проблема скалы в том, что у нее нет ровным счетом никаких преимуществ перед Java. Простой синтаксис, гигантский пул разработчиков, 100500 библиотек и фреймворков на все случаи жизни - все это не про скалу.
>>1261881 ну я же писал, что для того, чтобы писать железки на скале нужно знать физику, математику и электротехнику. иначе не железка получится, а фигня.
>>1259320 (OP) Мне вот интересно, а на сколько применим FPGA в задаче распознавания образов? Скажем, собрать аналог findface и на железках обрабатывать процент совпадения по фоткам. Интересно как findface устроен изнутри. Если он ищет по профилям в социальных сетях (VK вроде), то наверное они краулером таскали фотки из альбомов и уж точно не хранят у себя на серверах "сырые" изображения. Т.е. если за эталон принимается к примеру фотка с аватарки (хотя это наверное тухлый подход, т.к. там может быть какая-нибудь нерелевантная фигня и лучше брать данные из профиля такие как возраст, имя, фамилия, пол и уже искать в альбомах подходящие лица) и дальше искать совпадения и наращивать возможные "отпечатки" конкретного человека. Нейросеть? Deep learning? Как здесь применима технология FPGA? Разве что только в реалтайме сигнал с камер обрабатывать и матчить по "базе", хм...
>>1262566 Офигенно применим, стоит только погуглить FPGA neural networks, там всё написано. Боюсь сморозить глупость канеш, но походу FPGA намного эффективнее, чем GPU для нейронок, т.к является более узкоспециализированным чипом. (при этом GPU дешевле из-за массовости производства и всё равно все свои нейронки будут учить на них)
>>1259320 (OP) Двач, у меня более приземлённый и более практический вопрос. Кто-нибудь разрабатывает на скале с докером? Сделал 2 докерфайла: один типо продакшен, мультистейдж билд, билдит проект через sbt assembly, копирует на чистенький jre контейнер и запускает -- всё волшебно; а вот второй, второй докерфайл для девелопмента, с ним что-то не идёт. Примаунтил папку с кодом, запускаю через sbt ~run. Код после каждого изменения билдится тааак долго, что ни о какой разработке даже и думать не приходится. Комп очень сильный, без докера код билдится долго, но терпимо, никаких ограничений на цпу/рам на контейнере не висит. В чём проблема то?
Окей, я нашёл косяк, вопрос снимается, всем спасибо. У меня апликейшен коннектился к брокеру сообщений и ждал привета, т.е то что я принимал за долгий билд было на самом деле нормальной работой программы.
>>1263739 Посмотрим, как ты закукарекаешь, когда в докере вылезет какая-нибудь бага, не проявляющаяся на твоей пекарне. Вам же, дурачкам, непонятно, что докер был создан для решения проблемы "works on my machine". Нет, блядь, не хочу нормально делать, хочу полдюжины разных окружений, чтобы с багами в покемоны играть, catch em all блядь.
>>1263257 >>1263352 >>1263739 Я на пет-прожекте стараюсь придерживаться ныне модной микросервисной архитектуры, поэтому у меня дофига небольших аппликух, которые генерируют ивенты и складывают в кафку, т.е для того, чтобы протестить мою обработку данных мне нужно запустить 5 контейнеров где-то (запускаю через докер-компоуз), каким боком это будет удобнее делать без докера я даже представить не могу, будет какой-нибудь костыльный баш скрыпт, при этом непонятно куда складывать переменные среды (да, у меня всё конфигурируется через них). Допускаю что я где-то чё-то делаю не так, но на текущий момент мне кажется проще разобраться с докером нормально, чем свой велосипед писать.
Про скорость: раньше я на питоне с докером писал, никаких отличий в скорости разработки не было вообще, нужно только сначала потратить время, чтобы настроить окружение нормально (временные затраты относительно небольшие), а потом всё абсолютно также по скорости хотя в питоне всё немного по-другому и тогда техлид помогал с этим всем дерьмом, а сейчас я 1на1 с докером, но, как другие аноны справедливо заметили, работает у меня = работает везде.
И быстрый вопрос: у меня внутри аппликухи бесконечный цикл, который ждёт сообщения от брокера, поэтому sbt ~run не может обновлять код на лету, он ждёт пока приложение закончит работу, но не может дождаться. Насколько я помню, веб-фреймворки типа Play или scalatra умеют делать hot swap (рекомпиляцию кода, не дожидаясь завершения приложения, т.к веб прилаги тоже работают в бесконечном цикле ожидая реквесты), как можно повторить такую функциональность, это какая-то фишка сбт, или нужно как-то цикл в основном коде прерывать время от времени?
>>1264208 Вот за это не люблю скалувсе языки кроме лиспообразных, потому что у них изначально модель выполнения не рассчитана на лайв апдейты, а все эти костыли с хотсваппингом в жвм именно что костыли и очень ограничены - лучше, чем save-compile-run, но ненамного
>>1264219 Попробовал sbt-resolver, что-то через раз он у меня резолвит, возможно это связано с тем, что idea на диск сохраняет как-то по хитрому, не знаю.
>>1264253 >>1263739 Я разобрался, так что чтобы обелить репутацию скалы и сбт скажу что я маунтил в докер только код, но нужно обязательно маунтить ещё библиотеки (/home/user/.ivy2) иначе sbt завёрнутый в докер будет их качать. Для "продакшен" контейнера использую sbt-assembly, который генерит жирный jar, все зависимости сразу внутри оказываются, а для дева я этот момент прощёлкал, отсюда и сверх долгое время на перезагрузку контейнера. Сейчас убрал sbt-resolver, запускаю код в контейнере через обычный sbt run (даже без ~), когда обновил код делаю docker-compose <container_name> restart. Работает идеально, время запуска нового кода секунд 10-15 (без докера примерно столько же).
>>1267289 Забыл подписаться, >>1264253-анон. Это я к тому, что в молодых, динамично развивающихся языков задержка при компиляции нового кода больше секунды (одной секунды) - это уже фи. А тут
>Работает идеально, время запуска нового кода секунд 10-15
>>1269361 Нормальный курс. Мне пришелся по нраву. В нем где-то 2/3 материала - вводная инфа по функциональной части, остальная треть - коротко о Scala вообще. Функциональщина, как я понял, раскрывается во втором курсе специализации, но его я только начал смотреть.
Чому фп такое мозголомное? Пришел с работы домой и три часа думал как сделать цепочку опшенов с флатмеппом на моей модели где сущностей хуй да нихуя. Еле удебил тимлида дать мне написать мимо-хеувину на скале, но уже не завидую тому, кому после меня в этом придется разбираться у нас все на жабе пишут
>>1271177 Тому що непривычно, через пару недель пройдет.
Если бы Скала была единственным языком, на котором мне приходится думать, я бы подумал, что функциональное программирование - плохая идея.Аноним10/10/18 Срд 12:27:30#94№1277247
>>1277247 Не смог в флатмапы, обосрался даже с сахарком, не нашёл теорем, про которые целая глава была в красной книге, потом обмазался имплиситами по самую лямбду и удивился когда всё пошло по пизде. Похоже на бред шизика, нахуя ты это принёс?
>>1277296 Тогда срочно выкидывайте cats, scalaz, shapeless, freestyle, monocle, monix, doobie, matryoshka и прочую функциональную хуйню. И переходите на Kotlin или Java-8. Ведь без всего этого Scala - это просто Java c лямбдами. А Java c лямбдами - это Java 8. Нахуя нужна Scala, если есть Java 8? >>1277366 https://eta-lang.org/ - it also runs on jvm ;) >>1277402 >Не смог в флатмапы Это Cкакала не смог в флатмапы, еджой ё трамполайнинг ор стек оверфлоу. >обосрался даже с сахарком В каком месте? >не нашёл теорем Глава-то есть, а теоремы где? >потом обмазался имплиситами Тайпклассов же нету, чем жопу вытирать предлагаешь? >Похоже на бред шизика Ну давай, опровергай по сути. Хотя, что с тебя взять? Лучше посмотрим на бред другого шизика по сути, о том, что в Скакале изменилось спустя 4 года после оригинального псота: https://failex.blogspot.com/2018/02/scala-fp-how-good-idea-now.html Ой, нихуя. Нет, но нютайпы хотя бы осилили (ведь говорили, что осилили)? Ой, опять https://failex.blogspot.com/2017/04/the-high-cost-of-anyval-subclasses.html
Короче, как-то слабо оправдываетесь. Давайте соберитесь и объясните, нахуя нужно ваше поделие? Вот вы вообще как-то систематически язык развивать собираетесь? Нахуя вы Dotty запилили, типа "Мартин, всё хуйня давай по новой!", теперь будет две Скалы как у питоноёбков?
И что за хуйня у вас там с макросами творится https://www.scala-lang.org/blog/2017/10/09/scalamacros.html ? Типа scala.reflect нахуй потому что Dotty в них не может, Idea тоже не может, поэтому Scalameta. Но теперь и Scalameta нахуй, переписываем всё по новой под scala.macros? Может уже подсмотрите, как правильно делать, чтобы не перехуячивать всю кодобазу по два раза за год?
>>1277502 > https://eta-lang.org/ - it also runs on jvm ;) Почему у меня на этом сайте не отображается курсор мыши? Это что, у ЖС-пидоров сейчас так модно верстать, мол, управляйся одной клавой, мудак?
>>1277869 Чернота, некоторые тянки, другое отребье примерно так и общаются. Особенно в мессенджерах всяких. Хуй поймёшь что оно высрало вообще, то ли это вопрос, то ли утверждение.
>>1261604 Я ПРОЧИТАЛ КНИЖКУ "ВЫУЧИ ДЖАВА ЗА 21 ДЕНЬ", ТАМ НАПИСАНО ЧТО НАДО ВСЕГДА ДЕЛАТЬ ГЕТТЕРЫ И СЕТТЕРЫ, И ВООБЩЕ ТЫ ЧО, САМЫЙ УМНЫЙ ЧТОЛЕ? ВСЕ ДЕЛАЮТ И ТЫ ДЕЛАЙ
>>1280545 Он там straightforward. Для меня даже некоторым удивлением было, что до сих пор врапперы руками пишут. Может быть просто ресурсов не хватает, или не в приоритете. Эту два человека запизденили примерно за год. Ну да, нет кодогенератора для импорта джава-классов, надо руками писать. Но на минуточку, может у них поважнее задачи были и они просто забили на кодогенератор? Хотя, если для тебя это mmission impossable, значит твой удел - клепать какое-нибудь говно на спринге. В конце концов люди делятся на тех, кто умеет программировать, и именно они создают новые фреймворки, библиотеки и языки программирования, и на говношлёпов, которые максимум что могут - это изучить по видеокурсам какое-нибудь менстрим-говно и повторить туториалы первых.
Не для кормежки зеленых, а ради просвещения анонов, которые не разбираются, отвечу. >>1277247 Оправдываться нехуя, критика по существу. Другое дело что это либо из-за исторических причин, либо из-за пресловутого FP-OOP fusion, либо из-за почти идельного интеропа с джавой. Тони Моррис это тоже давно комментил: http://blog.tmorris.net/posts/what-kind-of-things-are-easy-in-haskell-and-hard-in-scala-and-vice-versa/index.html Ключевые преимущества скалы на данный момент: 1) Интероп с джавой (посмотрел немного на eta, там сложнее на порядок) с возможностью использовать FP разной степени глубины. 2) Развитая экосистема скала-идиоматичных библиотек на разный вкус, протестированный за 10 лет компилятор и основные либы. 3) Спарк. На многих проектах используют скалу только из-за того что у спарка хороший API именно для скалы + её нужно знать чтобы в его нутре копаться. 4) Много людей таки её знают. Это дает эффект положительной обратной связи. >>1277502 >Нахуя вы Dotty запилили, типа "Мартин, всё хуйня давай по новой!", теперь будет две Скалы как у питоноёбков? Дотти это экспериментальная площадка как для новых фич, так и для реализации компилятора. Двух скал обещают не допустить, а как там получится - посмотрим. >И что за хуйня у вас там с макросами творится Экспериментальную фичу пытаются довести до ума. Что выйдет - хуй знает. Если знаешь как сделать правильно - напиши на contributors.scala-lang.org но лучше сначала почитай про проблемы которые люди решают, чтобы говна не пожрать. >>1280823 >Он там straightforward. Как долго ты использовал эту? Какой объем проектов и насколько много инеропа с джавой? >Но на минуточку, может у них поважнее задачи были и они просто забили на кодогенератор? А может и он не такой уже straightforward. Обычно между чем-то что работает в 90% случаев и тем что работает в 100% лежат десятки человеко-лет. Именно поэтому запиздячить язык, который подходит для задач тех кто его пилит можно вдвоем за год, а универсальным он не будет никогда. А может и будет - желаю эте всего наилучшего - это на самом деле очень интересный проект. >В конце концов люди делятся на тех, кто умеет программировать, и именно они создают новые фреймворки, библиотеки и языки программирования В контексте разговора это буквально значит следующее: если тебе не нравится язык, сделай тот что тебе по душе. О том что это десятки лет работы (даже если программист способен сделать язык), ты почему-то забываешь упомянуть. А те что является например специалистами по базам данных или распределенным системам - вообще говношлепы.
По вашему опыту,на Скале больше пишут как ООП и ФП языке? Хочу себе функциональщину, но боюсь что если на языке есть всякая хуйня типо циклов или мутабельных переменных, то ими обязательно будут пользоваться и толку.
>>1282881 Приведи примеры недостатков выражения тайпклассов через имплицитные параметры Мимо-джаваджун впервые решил попровать скала после хацкеля и джавы офк. Пока нравится
Я скалист, воин ФП в третьем поколении. Благодаря своему интеллекту я написал свою реализацию Future с особой жестокостью и теперь занимаю пост архитектора на своей галере. Мой месячный доход 20 000$, у меня две Теслы - серая и чёрная, просторная 4-х комнатная квартира в центре Москвы. Мои друзья исключительно функциональщики: прекрасные скалисты, хаскелитсы и растисты. Я не дружу с джаваблядями, потому что они почти поголовно мерзкое, подлое, никчёмное, трусливое говно. У меня нет никаких отношений с девушками-джавистками, я их бросаю сразу, как только привожу их пизду в непригодный для ебли вид. Хотел бы посмотреть на вас - тупых ООП-ных швалей отписавшихся в скала-треде, пиздите в интернете сколько хотите: про свою совместимость, про восьмую джаву и вары, но запомните - "увижу вас в реале - ВЫЕБУ вас в рот и втопчу в асфальт у вашего епама".
Посаны, у кого есть опыт фуллстэка на скале? Где-то год+ занимаюсь бэкендом на скале (play, akka, elasticsearch, все дела), скала мне нравится, но вот эта вся бэкендная область какая-то слишком задротская, а я хочу work-life balance, поэтому думаю на фулл стэк перекатиться и делать сайтики на расслабоне.
Расскажите про стэк, плз. Я представляю, что это play + scala.js + какой-нибудь js-фреймворк (в них вообще не шарю). Вакансии вообще есть?
>>1289249 >scala.js + какой-нибудь js-фреймворк Когда я последний раз ковырял scala.js подводный камень был в этом спаривании ежа с ужом. Нормально настроить процесс сборки - абсолютный пиздец.
Я бы для твоих задач четко разделял проект на 2 - фронт и бэк. Play темплейты, разумеется, нахуй. Я например, юзаю play как бэкенд с рестом/ws наружу и ангуляр с тайпскриптом на фронте. Все супер, брат жив. Ты, в свою очередь, можешь выбрать тот бэк и фронт, который тебе нравится. Инструмент для задачи, ну ты понял
забыл добавить, что по monix / cats согласен, это мастхев. Немного шейплесса в некоторых моментах не помешает, те же tagged types замутить. HTTP протокол у нас сейчас микросервисы не юзают, в других проектах использовался finch.
>>1304303 Потому что автор scalaz - ебанашка, в том, что он пишет, больше маркетинга чем технических аргументов. Уже одного этого достаточно чтобы не использовать эту хуйню.
>>1304306 Можешь например погуглить на реддите обсуждение бенчмарка, где scalaz IO уделал по производительности monix/futures - когда по факту его функционал был меньше и всё сравнение некорректно.
Поясните вкатывальщику за http4s, вроде популярный фреймворк по звёздам на гитхабе, но гайдов по нему 0, примеров 1.5 штуки. Только дока официальная, но полупустая какая-то.
Как я понял, это мини-фреймворк для микросервисов/апи? Можно на нем полноценный монолит захуярить, с шаблонизатором, орм, миграциями и всем таким без пердолинга, или мне за этим в плей? Раньше только на аспнет и ноджс писал немного
Монолит можно на чем угодно захуярить, но, мне кажется, плей лучше, потому что там есть conventions (например, все роуты описываются в файле routes, все делается через di и зависимости биндятся в модулях), за счет которых потом легче поддерживать код.
Но вообще, если ты хочешь писать монолитное веб-приложение, задумайся, туда ли ты вкатываешься.
>>1259320 (OP) Ребят ответьте пожалуйста на несколько вопросов. Сам я джаваскрипт разработчик и планирую изучить Скала. Кроме жс ничего не знаю. НУ разве что джава кор в теории. Ну так вот
1. Имеет ли смысл жс разработчику изучать Скала? 2. Стоит ли для начала подтянуть Джаву? Или для Скала разработчика не подразумевается автоматом знание Джавы? 3. На какую работу можно рассчитывать со знанием Скала? И как сильно отличаются у скалистов зарплаты в сравнении с другими отраслями и Джавой в частности?
>>1304303 документация лучше (вернее она просто есть)
>>1304304 он не ебанашка. Маркетинг у него есть, да. Но у него хотя бы есть продакшн опыт использования ФП, в отличие от typelevel ребят. Это хорошо видно было, когда они с налёту удалили `Timer.apply`
Что вообще изучить вкатчику, чтобы вкурить в БЕСТ ПРАКТИКИ и наиболее распространенные паттерны проектирования этой вашей скалы в частности, и ФП в целом? Нигде не могу найти ни информации сжато, ни роадмапа, ни учебника. Везде описываются какие-то базовые вещи уровня ООП, монады врайтер и имплиситов. А открываешь любой проект на гитхабе - и там куча вещей типа тэглесс финалов, DSL, и вообще просто непонятного непросвещенному уму. С чего углубляться, короче?
>>1306426 Для общего развития бекендеру заходят книжки типа domain driven design, clean architecture, но они к Scala не привязаны. Однако, тот же tagless final прямо отлично ложится на принципы CA.
скалолазы, я тут дочитал java in action и чот не могу нагуглить вопрос если все объекты в immutable то засовывая лист в функцию мы получим (допустим) новый лист в джаве вообще не рекомендуется создавать лишние объекты а тут прям на тебе как скала борится с этим оверхедом (если борется) я просто подумал мб там гарбаж коллектор какой особенный?
>>1306426 > Что вообще изучить вкатчику, чтобы вкурить в БЕСТ ПРАКТИКИ > tagless final > БЕСТ практики Прикалываешься? На практике нормальные люди не моделируют логирование с помощью монады, не собирают всю программу в одну ио-монаду, бросают эксепшены для unrecoverable errors. Ты монадный трансформер будешь раз в полгода использовать.
> А открываешь любой проект на гитхабе - и там куча вещей типа тэглесс финалов, DSL, и вообще просто непонятного непросвещенному уму. Ты имеешь в виду библиотеки? Ну это потому что есть разница между application developers и library developers. Когда ты пилишь либу, твоя цель - предоставить как можно более удобный api, а насколько она будет хитровыебанная внутри - неважно. К тому же идеальная либа - это либа в fp-стиле, которая не производит сайд эффектов в неожиданных местах и не бросает эксепшенов. Соответственно, в либах использование pure-fp-концепций оправдано.
Когда ты пишешь приложение для конечного пользователя, тебе важно, как оно работает и насколько просто поддерживать твой код. В данном случае pure fp - это не есть хорошо. Мутабельное состояние лучше моделировать через var, а не через стейт-монаду какую-нибудь. Представь, что у тебя какая-то система, состоящая из микросервисов. Микросервис - это по сути своей объект с внутренним состоянием. Какое тут может быть pure fp?
>>1309311 Начавший программирование с java 8 - это ты? Энивей orders.stream().map(Order::getProducts).flatMap(Collection::stream).collect(toList()); Выглядит куда более громоздко
>>1309155 это скорее негласное соглашение, когда дополнительные неявные методы не хотят добавлять в базовый класс, но которые делают работу с классом намного удобней. в стандартной библиотеке есть StringOps к примеру
>>1307899 >тебе важно, как оно работает и насколько просто поддерживать твой код. В данном случае pure fp - это не есть хорошо. Чет не догнал как второе утверждение вытекает из первого.
Код с варами легче поддерживать? По-моему, все наоборот.
>>1309316 на норм. всяко лучше чем было var products = orders.stream() __________.flatMap(o -> o.getProducts().stream()) __________.collect(Collectors.toList());
>>1259320 (OP) А ну ка поясните, почему скала не взлетела?
В жабе уже давно есть все, что в скале. А если хочешь не ставить точку с запятой в конце - придумали котлин. Неужели еще существуют люди, которые любят тратить время на мертвый язык?
>>1309633 >>1309649 >>1309650 Он прав. Скала по большей части держится за счет спарка и бигдаты. В остальном слишком сложный и запутанный язык, стремительно уходящий в академическое нечто для любителей илитного фп кода. Тогда как любому бизнесу нужно в первую очередь решать задачу наименьшими средстами - читай, понятный и эффективный язык, код которого легко поддерживать и дорабатывать и на которой легко найти людей. И этот язык не скала с ее имплиситами и 15 вариантами написания одного и того же, лол.
>>1309667 А сейчас ты мне покажешь где я говорил что в яве уже есть все из скалы. Но топ 1 фича скалы была в лямбдах, из за которой работать с RDD в том же спарке было гораздо удобнее, чем в яве. Сейчас еще и выведение забрали. Осталось в скале то что не слишком то решает и является предметом интереса полутора задротов, и то в основном ради ощущения илитности.
>Но топ 1 фича скалы была в лямбдах, Хуйня написана
>Сейчас еще и выведение забрали. Осталось в скале то что не слишком то решает и является предметом интереса полутора задротов, и то в основном ради ощущения илитности. Лолчто
>>1309674 Он все верно написал. Достаточно посмотреть на компании, которые "обожглись" при выборе Scala - 2GIS, Tinkoff, Revolut, Sberbank. Они так или иначе начинали разработку на Scala, но в один прекрасный момент поняли, что взять последнюю версию Java или новомодный Kotlin и не придется искать дорогих Scala разработчиков по полгода, а разрабатывать можно также быстро как и на Scala. В Kotlin завезли корутины, а в Java появился вывод типов. Ну и в качестве вишенки на торте - в следующем релизе Java подвезут Project Loom, который решит проблемы разработки многопоточных приложений под JVM. А всякие Спарки и Акки можно и из Java дергать.
>>1309721 Таким как он нужны коты и прочее говно чтобы быть не такими как все. А по факту даже у кафки, которая была писана на скале, апи явовское, лал.
Тред жиром затопило, нахуя вы кормите? >>1309723 >коты >не такими как все В голосину. Погугли хоть чуточку, прежде чем в треде толстить. Коты это такой же "хипстерский" инструмент как ворд или эксель. Удивить кого-то страшными монадами(с) у тебя получится только залётных из /b/, а Cats и вовсе сводят их использование до уровня копипаста.
>>1309745 >скалафанатик фапал на них Шизик, чё с него взять. >Твиттер И снова ты серишь не снимая штанов. У меня есть предложение, давай ты отдохнёшь, подготовишься получше, отмоешься от говна, а через пару недель вернёшься в тред и попробуешь заново?
Meh, первый ответ по ссылке - нет ресурсов переписывать - ошибся, сейчас бы по каждому мертвому языку все помнить, так ты сразу подключил свою быдло-риторику. Один хер практика показывает, что шкала нинужна. И кстати пруфает пост выше что лямбда были мейн фичей по сравнению с явой и на то время ее и правда называли второй джавой.
>>1309788 >академический язык Каргокультист, плиз. Как там сбт кстати, быстро компилирует? IDE уже завезли или все так же плагинчиками балуешься? Можешь не отвечать.
>>1305176 Ну я норм получаю на ноде. Но я бы и норм получал на скале :3 просто на скале кодить попроиятнее лично. Смотри чо по кайфу, это правда важнее.
>>1309721 >Tinkoff Блять, ну ты хоть инфу проверяй, в тинькове как минимум все API (это не считая спарков) на tagless final, котах и мониксах. Разрабы активно набираются, все довольны.
> Revolut Регулярно хантит скалистов и java to scala.
Я молчу, сколько мне западных рекрутеров в линкеде ломится с вакансиями. Короче, в этом треде одни пиздуны, но я забыл, кажется, где нахожусь.
>>1310799 >Я молчу, сколько мне западных рекрутеров в линкеде ломится с вакансиями. Как ты этого добился? У тебя много конекшнов? Работал в конторах на слуху?
Если не секрет, какое соотношение ремут/онсайт среди предложений?
>>1310804 >Если не секрет, какое соотношение ремут/онсайт среди предложений? Не читал, и не помню даже, упоминали ли это, пока всё равно не собираюсь уходить и просто сразу пишу вежливые письма с отказами. Мне кажется, ремоут достаточно часто предлагают. > У тебя много конекшнов? Ну, добавил всех, кого знал с универа и тп (человек 30 сначала) поставил место работы и скромный список технологий, даже на фотку пока забил, рекрутеры ежедневно ломятся (не все, правда, пишут). > Работал в конторах на слуху? В России на слуху, в остальном мире - хз.
>>1310799 >сколько мне западных рекрутеров в линкеде ломится с вакансиями Это ни о чем не говорит. Они пишут сотням людей кто более-менее подходит. Дальше тебя могут просто проигнорить, затопить на собеседовании, послать нахуй поняв что ты не имеешь американского/европейского гражданства.
>>1310799 Это не так. Все приведенные мной выше компании обожглись с использованием Scala и в спешном порядке переписывают все свои сервисы на Java 11/Kotlin. Scala не дает абсолютно никакого преимущества перед Java 11 или Kotlin. Pattern matching? Case classes? Первый не нужен - это доказали ребята из команды Kotlin и лично Бреслав, а второе реализовано в виде Lombok или data классов Kotlin. Стоит ли говорить, что производительность конечного кода в несколько раз выше на Java/Kotlin чем на Scala. Это я не говорю о тормозном плагине для IDEA, который с трудом пережевывает Scala код и хоть как-то пытается помочь разработчику в написании кода. Ну и тормозной компилятор и абсолютно дикий SBT, который даже в подметки не годится по сравнению c Gradle.
>>1310954 > Все приведенные мной выше компании обожглись с использованием Scala и в спешном порядке переписывают все свои сервисы на Java 11/Kotlin Именно поэтому тинкофф анонсировал бесплатный курс по скале и в интро говорит что "надеемся вы станете профи, мы вас ждем". Ага.
>Первый не нужен НЕТ И НИНУЖНО! У вас, жаваманек, и опшн был НИНУЖЕН, и анонимные функции НИНУЖНЫ, а как реализовали - первые побежали хвалиться какой язык пиздатый. Настолько нинужен, что в C#8 вводят его, полностью скопировав синтаксис скалы. Жиротроллю с /pr/ виднее, конечно, чем майкам, спору нет...
>ормозном плагине для IDEA Глючить может - да, но тормозной? Ты запускаешь на машине с 4 гигами оперативы?
>>1310972 Ну ты же сейчас можешь сравнить Scala и Java 11, верно? Нет никаких причин использовать Scala, когда в Java уже появились все киллер фичи Scala.
>>1311051 Ну послушай, кому нужны твои параметры через параметры? Бизнесу нужно чтобы ты REST контроллер смог налабать на спринг буте. Накидал сервис, который в базу будет ходить, ну и какую-никакую валидацию данных.
>>1310818 "Хантят" не только скалистов. Я бы назвал это "зазыванием", то есть тебе просто пишут что есть такая компания. Все песни про то что твой профиль привлек внимание, что мол мы ищем именно тебя и тд и тп - это всем так пишут, но берут 1-2 из десяток, а то и сотен кандидатов.
>>1311052 > Бизнесу нужно чтобы ты REST контроллер смог налабать на спринг буте. Накидал сервис, который в базу будет ходить, ну и какую-никакую валидацию данных. Твой уровень понятен, короче. Иди дальше сайтики клепай. Сайт обязательно заработает, только нужно написать AbstractSingletonProxyFactoryBean и пофиксить все NullPointerException'ы. мимо-другой-анон
>>1310954 Несмотря на действительную неидеальность скала-плагина и легкую постоянную ебанутость sbt, ты откровенно толстишь.
>>1311052 То есть ты не понимаешь, что все эти tagless final'ы это не задротам было нечего делать, а как раз попытки создать более гибкие, расширяемые и удобные способы описывать часто очень сложную бизнес логику (для этого самого серьезного бизнеса с заказчиками), чем, как анон >>1311648 мягко напомнил, принято обычно накидывать в условной жавке.
>>1311648 Постой. Мы говорим о крепком специалисте с 5 годами опыта в Java разработке. Какие еще тэглесс файнал? Набросал рест контроллер, с хайбернейтом поколдовал и порядок!
Что почитать по Akka для начала? У underscore нет ничего, а гугл выдаёт книги, которым лет 5. Пока остановился на Akka in Action, вроде 17ый год, но там 400 страниц.
>>1317575 А какой смысл в Акке если команда, которая ее пилит распадается на глазах? Совсем недавно из команды ушел ведущий разработчик Конрад КТОСО Малавски!
>>1259320 (OP) Хочу научиться мобильной разработке, но раздражает синтаксис джавы, все эти многострочные скобочки и прочее. На скале можно заниматься моб. разработкой?
>>1317693 У нас в компании переводят мобильные приложения на Kotlin. Он определенно для мобильных приложений больше подходит. Не могу сказать за Scala, но предполагаю, что это геморрой. Те проблемы что ты описал нормально решаются с помощью его помощью. Другое дело, что ты можешь посмотреть в сторону процессинга аннотаций в Java. Достаточно большую часть проблем с многословностью в Java можно решить так.
>>1317725 Да особо никак. Команда, которая пилит Scala 3 (Dotty) разваливается на глазах (Петрашко, Малдер, еще пара челов). Там скоро один Мартин будет колбасить. В продакшене использует полторы конторы и в основном в виде языка к Spark. Есть всякие извращенцы, которые пытаются использовать всю "мощь" ФП - всякие cats, scalaz и т.д., но рынку нужно, чтобы ты смог ловко накидать рест контроллер на спринге и правильно обработать запрос. А всякие фп со скалами не нужны.
А какие инструменты кроме акки есть, чтобы запретить одновременный доступ к критическому участку кода из разных тредов? Например, перед записью в бд мне надо проверить какие-то констрейнты. У меня есть актор, который инкапсулирует в себе состояние бд и принимает команды на изменение состояния. Таким образом решается проблема с конкарренси. А как без акки сделать? Synchronized, очевидно, не подходит, потому что я не хочу, чтобы треды лишний раз блочились.
На связи корзиночка-аутист-олимпиадник-программист-по-призванию, уже много лет со слабым успехом пытающийся вкатиться в коммерческое погроммирование. Раньше вебнёй миску супа зарабатывал, но она укатилась во фреймворкопарашу. На галерах долго не задерживался, им надо шустрые исполнители, хуячащие говнокод в продакшн в сжатые сроки, а я над каждой строчкой кода трясусь и могу часами тупить и воевать с ошибками и линтерами, плюс софт-скиллы никакие. Сейчас торчу в местной продуктовке уровня "Рога и копыта", пердоля йоба-алгоритмы на недоязычках, за которые Ъ-байтодрочеры не берутся, но с доходами тут вообще печально. Думаю куда-то перекатываться; осиливал Rust, но работы на нём реально ни хрена нету. Может, лучше скалку? На ней вакансии есть, хоть на многих и нужны сеньйоры-жабисты с 5+ лет опыта. Хочу сложную отрасль, где можно задействовать свой IQ и работать вдумчиво, но верно, без особой конкуренции с макаками, да причём удалённо.
>>1320110 Последний год (2017, начало 2018) ко мне сыплются контакты от рекрутёров, которые набирают команды ... либо для российских стартапов, либо, что чаще, для русскоязычных филиалов контор из USA. Эта информация (спрос на рынке) может кому-то оказаться полезной и интересной. Остановлюсь только на самой высокооплачиваемой части... Здесь есть 2 характерные области:
1. Машинное зрение, компьютерное обучение, проект OpenCV ... Здесь нужно хорошее знание а). математических основ, б). C++ & Python.
2. Телефонные станции Asterisk и (особенно!) FreeSWITCH ... в смысле именно не эксплуатационщики и интеграторы (это было и давно), а именно программисты, для разработки модулей расширения (см. VoIP сервера (PBX, SoftSwitch, IP-телефония)). По этой позиции предложения квалифицированным разработчикам доходят до $5000/мес. (раз тема про оплату ;-) ). Здесь нужно: а). Linux, б). C (классика, не C++) & Python & Lua в). инженерное понимание протоколов: SIP, RTP ... начала цифровой обработки сигналов.
P.S. Это именно последний год-два такая активизация. Раньше я как-то не наблюдал такой прыти в этих областях.
>>1324256 А скала для бэкенда сайтов, как вариант. Да и для фронтенда можно юзать, есть компилятор в JS и врапперы JS-библиотек в webjar. Цодингтимовцы вон игру браузерную на скалке пилят.
>>1324355 Частичное переписывание всякого энтерпрайзного жаболегаси на чём-то более моднявом, да чтобы оно при этом было совместимо с непереписанным жаболегаси.
>>1324256 Тот анон >>1324400 тралит, но доля правды в этом есть: большинство вакансий - это биг дата и спарк. Помимо биг даты скалу используют для всяких сложных распределенных систем (посмотри акку например). Для хуйни скалу не используют, потому что скалистам надо платить много денег, проще нанять джавистов или, если совсем низкое качество устроит, пхпшников каких-нибудь.
Сап Подкиньте ссылок с туториалами, пожалуйста По другим языкам постоянно вижу "пишем чат на жаве, бота на питоне, нейронку на cpp, игру на c# " и так далее Накидайте гайдов, плс
>>1343433 суть в том, что по запросу "scala tutorial" он выдает только видеоуроки по основам языка и текстовые учебники. Не работу над какими-то проектами типа того же чятика
>>1343429 Scala for the Impatient. Можешь еще навернуть курс по скале на степике от тинькофф. Курс от Одерски на курсере не бери - отобьет все желание изучать этот язык. И книгу Одерски лучше оставить на потом. Написана очень сухо и рассматривает очень много вещей, которые нужно разве что только в разработке библиотек. Наверни ту книгу от Хорстманна, которую я порекомендовал и параллельно курс на степике. Это даст хорошую вводную. А дальше можешь ковырнуть какой-нибудь фреймворк и налабать пет-проект.
>>1343789 Интересно, а у меня было обратное впечатление: "Scala for the Impatient" мне вообще не понравилась, а курс и книга Одерски мне понравились, написаны хорошо и без лишнего дерьма, чем-то похоже на курсы по математике или cs. Я скалу за то и люблю, что она основана на науке.
>>1343860 Курс сделан наспех. По-сути он просто передрал задачки из SICP и приправил материал своим бредом. То, что он несколько недель рассказывает с акцентом как в плохих фильмах про войну, можно уместить на паре десятков страниц книги. Книга слишком большая и охватывает каждый уголок скалы, что начинающему ни к чему. А Скала для нетерпеливых позволяет по-быстрому вкатиться в язык и начать лабать какие-нибудь свои простенькие сервисы. Но ты ведь сам понимаешь, что Скалу берут либо по ошибке, либо из-за небольшого ума. Используя современную джаву, можно написать любой по сложности сервис и при этом не нужно будет страдать от граблей скалы, которые так и поджидают на каждом углу.
>>1343864 Человеку нужно побыстрее вкатиться в скалу и начать клепать вебсервисы, которые будут плеваться джейсонами, а ты ему про монады рассказываешь. Ну охуеть теперь. Ты лучше чекни вакансию тинькоф банка в @pro_jvm.
>>1343887 > По-сути он просто передрал задачки из SICP и приправил материал своим бредом То, что ты называешь бредом, на самом деле является идеологией языка и конепциями, на которых основывается дальнейшее понимание.
> То, что он несколько недель рассказывает с акцентом как в плохих фильмах про войну Какое отношение акцент имеет к качеству материала?
> можно уместить на паре десятков страниц книги. Ну есть отличная книга "Scala by example" от Одерского, она короткая.
> Книга слишком большая и охватывает каждый уголок скалы, что начинающему ни к чему. Не каждый, конечно же. Насколько я помню, там даже про тайпклассы и монады ничего нет, книга как раз-таки для начинающих. Все главы кроме некоторых из последних там абсолютно необходимы.
> Человеку нужно побыстрее вкатиться в скалу и начать клепать вебсервисы, которые будут плеваться джейсонами, а ты ему про монады рассказываешь Ну извините, а как код писать? Future это монада, все библиотеки для жсона основаны на написании или автоматическом деривинге тайпклассов. Или ты предлагаешь Future не использовать, писать код синхронно, как на джаве, а в жсон сериализовывать с помощью джексона и аннотаций? Ну и зачем тогда скала нужна непонятно...
>>1343906 К чему все это? Ты же понимаешь, что за все эти годы, Scala так и осталась ничем иным как DSL к Apache Spark? Ее либо для ололо биг-даты в несколько терабайт используют, либо всякие маргинальные личности, которые пытаются поверх Akka написать криптоблокчейн и начать разводить честных людей на шекели? Хорошо, что в Java начали завозить новые фишечки каждые полгода и очень скоро в Apache Spark можно будет ходить из чистой Java. Хотя уже это можно сделать, благо у Apache Spark, и у всех популярных фреймворков, таких как Akka и Play Framework имеются Java API. Штудировать тонны литературы, разбираться во всех этих монадах и теории категорий, когда на той же самой Java 11 можно написать за пару вечеров без каких-либо проблем - ну незнаю, это по крайней мере странно. Меня удивляет тот факт, что бизнес в принципе готов выделять деньги на поиск и обучение Scala разработчиков. Платить им баснословные деньги и при этом не понимать, что на Java их проблемы решаются на порядок проще, без всех этих проблем со сборкой проекта (привет SBT!), тормозной компиляцией, неспособностью Intellij IDEA корректно переваривать исходники на Scala, тормозами в рантайме, т.к. из-за функционального подхода, который начинает генерировать просто килотонны мусора, который в свою очередь GC задыхаясь не поспевает убирать и начинается веселье в духе - поработали секунды две, STW, опять поработали две секунды, STW. Просто прекрасно!
>>1344484 Я же говорю, что это компании, которые выбрали этот язык по ошибке. И сейчас они ищут людей, которые все им перепишут согласно промышленным стандартам разработки Java Enterprise Edition. Ты какой-то недалекий, ну в самом деле!
>>1344489 >это компании, которые выбрали этот язык по ошибке Я сообщил об этом Олегу, он просил передать, что ты пидор тупой, чмо и проткнутый говна кусок.
>>1344374 Ты по-моему в каждом треде толстишь про DSL к Apache Spark. Или это просто какой-то тупой форс, который разные люди подхватили.
> Штудировать тонны литературы, разбираться во всех этих монадах и теории категорий > ну незнаю, это по крайней мере странно Ну то есть все сводится к тому, что твоей квалификации не хватает, чтобы писать на скале, и ты не хочешь ее повышать
> на Java их проблемы решаются на порядок проще Смешно просто. Даже отвечать не буду.
>>1344610 >в каждом треде Это один тред. Он в этом треде уже заливал ту же самую ахинею. А вы его кормите. Но мне на вопрос выше >>1341068 ответить не можете.
>>1344374 Вообще, мы обсуждали скальные туториалы, а ты каким-то образом перешел к > К чему все это? Ты же понимаешь, что за все эти годы, Scala так и осталась ничем иным как DSL к Apache Spark?
>>1346461 Один из разработчиков Scala. Позже работал над компилятором Scala в Twitter. Сейчас забросил скакалку и будет колбасить компилятор Swift и писать Tensorflow. -1 из команды Одерски. Малдер и Петрашко уже ушли. Осталось немного!
>>1343887 >Используя современный С++, можно написать любой по сложности сервис и при этом не нужно будет страдать от граблей джавы, которые так и поджидают на каждом углу.
Время пришло делать тонны нефти. Как лучше всего вкатиться в Скалу, есть какие-то жесткие подводные? Я человек трудолюбив, так что вынесу все анальные боли по мере изучения. Какие перспективы в работе? Что можно писать?
Если умеешь в хаскель и различаешь функтор от аппликативного функтора, то можешь сразу начинать с красной книги и пиздовать на собес в тинькоф\райф. У них там функциональная скала есть.
Если нет, то посмотри курс на курсере (можно только первые три, остальные два для бигдатошников). Далее куришь доку акки и опять же, идешь на собес в тинькоф\райф. У них и scala as better java есть.
Какие перспективы? Такие же как и джавистов.
Что писать? Высоконагруженные бекенды, биг дату на
>>1350391 >Какие перспективы? Такие же как и джавистов. Какие могут быть перспективы у Scala? Из команды Одерски один за одним уходят разработчики либо в коммерцию, либо переходят в другие языки как сделал Бурмако. Пиздец твоей скале.
>>1350402 Чувак шел на сениора в Новосибирский офис. Ему сказали, что по навыкам все ок, но такую высокую зарплату они не будут платить. Да и там хуета проект, если честно. Самописный BPM движок.
>>1350414 Ну подожди. У Тинька есть офис в Новосибирске. В нем же открыта вакансия Scala разработчика. Зарплатная вилка закрыта. Приходит чел, проходит собеседование, его не срезают на технической части. Подходит время обсудить зарплату и вот тут-то и выясняется, что 110 - это дохуя для сениора, когда какие-нибудь аутсорс-бодишоп шараги столько платят с порога. Вопрос - зачем ебаться со скалой, когда можно месить тоже говно, но на знакомой джаве и получать больше? Или все банки платят так мало?
>>1350425 Я это к тому, что твое слово, где ты говоришь, что миддлам дают >200к и слово того чувака равнозначны. Пока лично не сходишь - не узнаешь. Кто вас знает-то? Может вы оба пиздите. Но в банке работать - это такое себе.
>>1350418 >110 - это дохуя для сениора, когда какие-нибудь аутсорс-бодишоп шараги столько платят с порога В новосибе с порога тебе будут платить тыщ 30, это не москва
>>1350536 если ты идешь в скалу, не имея за плечами какого-нибудь опыта в разработке, то тебе будет сложнее найти работу. В Москве вряд ли больше 100к выбьешь в этом случае.
>>1350549 >будет сложнее Я уже понял про сложности. >больше 100к Ты понимаешь, что между 1 и 100к много чисел? Как мне поточнее узнать? Я смотрел вакансии джава джунов на хх, там вообще разброс, от 40к, где в требованиях "знать что такое класс и селект в SQL" до 100к, где требуют уже вышку и "уверенное знание SQL запросов". В среднем я так понял 60к это норм для ява ждуна. По скале такой инфы вообще нет, там мидлы и синьёры.
Анон, может ты знаешь че творится (или знаешь где почитать).
Есть некая строка в которой содержится ip девайся и диапазон открытых портов. Типа: "192.168.0.1 range 1024 65536 какой-то еще мусор"
Я хочу красивенько вытягивать диапазон портов при помощи паттерн матчинга. Написал право-ассоциативный экстрактор с именем portRange_: только вот он нихуя не работает. Поменял имя на аля оператор +@@: и запахало.
Не знаешь в чем разница тут между просто именем обжекта, заканчивающимся на двоеточие, и оператором, заканчивающимся на двоеточие?
>>1357407 Скала разбирает твой код как: > case (ip +: ports) portRange_: _ => Addr(ip, ports)
И у тайпчекера к тебе на этом месте появляются вопросы.
Почти уверен, что это из-за приоритета операций - у плюса он выше, чем у alphanumeric characters. Соответственно, с +@@: скобки сами расставляются правильно, в другом случае - не очень.
Если поставишь скобки вот так: > case ip +: (ports portRange_: _) => Addr(ip, ports) то всё сразу работает.
Но пожалуйста, не пиши никогда подобную скалу с ебанутыми операторами в продакшене, выглядят такие штуки очень хуево (ещё и в спеку языка лезть, чтобы разобраться). Как минимум для этой задачи оно нахуй не нужно.
>>1358124 > Вся суть Не понял, дорогой анон, в чем "вся суть"? "Почти уверен" - потому что не лез в спеку и не проверял приоритеты точно, но 99%, что они. Скала и без того достаточно сложный язык, а писать такие вещи, которые начинают зависеть от низкоуровневых особенностей (типа особенностей нейминга) - очевидный анти-паттерн. Поэтому всегда полезнее поставить лишние скобки, чем вспоминать приоритеты операций, несмотря на то, что это обычно первая глава любого учебника по языку.
В каком-нибудь тинькове за подобную магию тебя бы обоссали и заставили бы переписать на пару очевидных и читаемых методов, которые делают то же самое. Те же инфиксные экстракторы, например, уместны только тогда, когда то, что ты матчишь, логически разбирается как последовательность (::, #::, и т.п.) (https://danielwestheide.com/blog/2012/11/21/the-neophytes-guide-to-scala-part-1-extractors.html - Infix operation patterns)
>>1358459 Переусложненный язык, который нахуй не нужен. Писали бы на Java или Kotlin. Еще можно Clojure ебануть. А Scala просто хуета на постном масле, которой пердолятся не очень умные ребята. Работу работать нужно, а не ебаться с языком, лол.
Вот я точно так же думал, лет 5 назад. "Выдумали какую-то хуйню сложную. Зачем? Джаву ж изобретали как раз в том числе чтобы уйти от сложности плюсов. Язык программирования - это все лишь инструмент, он должен быть простым и понятным".
А щас на меня переодически кидают таски с одного джавишного сервиса, и у меня каждый раз дико горит от джавы.
>>1358611 Так все вместе подобрать даже сложно. На в скидку:
Боль с дата классами, когда тебе ради пятка полей надо сделать целый файл, в нем геттеры/сеттеры/хешкоды/иквалсы. Лобмок хоть и помогает частично, но во первых, его билдеры ужасны, во вторых в каждой команде всегда найдутся хрены, которые упираются против ломбока, словно им в жопу членом лезут
Очень куцый API стандартной билиотеки. Язык развивался, изменялся, а существующее API практически не трогали. В итоге толку от всех этих Optional штучек, если их разве что чуток добавили в API коллкций, и то вкраплениями. Про всякий API типа работы с XML я вообще молчу.
Какие-то половинчатые решения, аля добавить функциональные интерфейсы и стримы, но не добавить кортежи. И ебитесь как хотите со своими велосипедами.
Когда привык к паттерн матчингу, и вообще к тому, что конструкции возвращают значения, то код типа ниже уже разрдражает своей "разрозненностью": SomeType v; if (...) { v = ... } else { ... don some stuff v = ... }
Ну, а дальше еще Spring, который пока я его наблюдаю (вкатывался на версиии 2.5), превратился в огромную, медленную и бажную хуйню с кучей подковырок.
>>1358785 Это приятно, ни с чем не сравнить :) Особенно теперь, когда джун кодит на джаве уже 5 месяцев. Я говорю – жабу будем поддондонивать? Жабку-некрожабку? Он улыбается, радуется, аж подпрыгивает. Негенрит триста строчек геттеров-сеттеров и смотрит на меня? Правильно сделал? Я молчу, дразню его. Он плюх – try catch строк на сто – тим лид, а теперь так? С какой стороны жабу будешь дондонить? Уже весь в сомнениях, переживает, начинает кататься туда-сюда на стуле. Где? Где будут жабу дондонить? Ну где? Я смеюсь, дразню его, приговариваю – public static String myEmptyString = "";, try catch, на null проверочки, будем дондонить! Сажусь рядом. Он быстро открывает нужный IDE (eclipse), поджимает ножки, выставляет вперед ручки – иерархию классов делать. Все! На поддондоньку жабы рота построена, проект открывайте и поехали.
>>1358622 ну так фишка же не в чуть более богатом синтаксисе, а в том, что это функциональный язык на жвм. ты можешь комбинировать функции, в результате использовать функциональные структуры данных (та же монада) и писать более абстрактный код.
>>1359293 Блядь, Programming in Scala - 859 страниц. Охуеть какой не очень сложный язык. Ну и тот факт, что на скакалке не пишут хайлоад и лоу летенси системы говорит о том, что ты будешь лепить рест сервисы для какой-нибудь внутренней CRM на 100 запросов в секунду, лол!
>>1359613 В книге есть отдельная глава, которая объясняет как работает связный список в Scala. Целая, блядь, глава. Я читаю эту книгу уже несколько лет и все никак не могу закончить, потому что язык просто огромен и в нем столько неявных вещей, которые нужно держать в голове, что я просто охуеваю каждый раз, когда читаю ее или пытаюсь хоть что-нибудь написать на Scala!
>>1359627 Прочитал ещё первую редакцию. Нормально там всё читается. Там не столько про сам лист написано, сколько про основные идеи, которые можно потом где угодно применять. Взять тот же пример с имплементацией сортировки, там всё сразу и рекурсия, и паттернматчинг, и каррирование, и асимптотическая сложность. Но показано на примере, который не поймёт только даун. >пытаюсь хоть что-нибудь написать на Scala Чтобы писать круды всё это знать не надо.
>>1359652 >рекурсия, и паттернматчинг, и каррирование, и асимптотическая сложность ничего не понял из того что сейчас сказал. какая еще асимптотическая сложность? это где логарифмы нужно решать?
>>1359667 >ничего не понял Перефразирую. В этой книге описаны не только основные методы, но и некоторые тонкости. Если они тебе не нужны - просто пропускай. Но лучше почитай, некоторые термины там довольно легко объясняют, на мой взгляд. Если не нравится объём книги Одерски, можешь навернуть essential scala. >логарифмы нужно решать рукалицо
>>1359698 Какой в этом смысл, если в РФ полторы вакансии на Scala и те требуют от 3-5 лет промышленного опыта на этом языке и сопутствующей экосистеме?
>>1359292 Да,но и на джаве можно комбинировать композировать методы. Берешь Vavr и пишешь на джаве уже более функционально. Но потом смотришь какое уебанство выходит в коде, и понимаешь, что синтаксис все таки много значит :)
>>1359801 Но в джаве нет иммутабельности по умолчанию, так что все твои композиции назуй не всрались. Хотя в целом-то я с посылом твоего поста согласен.
>>1359830 >kafka В спешке переписывают на Java. Критические к перформансу части были написаны на Java изначально. Лидер элекшн вообще базируется на зукипере, который, сюрприз-сюрприз, написан целиком на Java.
>spark Та же самая история, что из со спарком. На Scala там только кривой API, который торчит наружу и немного скала кода внутри самого проекта. Остальное написано на Java.
Есть у кого книга Одерски Scala. Профессиональное программирование? Она есть здесь https://www.twirpx.com/file/2545980/ если есть доступ, скачайте и скиньте по братски.
>>1360193 Я ошибся в паре мест просто, печатал пока по телефону пиздел. val fap_levoy = fap(telebonk_levoy) _ val fap_pravoy = fap(telebonk_pravoy) _ Ну суть можно было уловить. Создаёшь функцию с двумя аргументами. Потом можно создавать на её основе другие, передавая в качестве одного из аргументов разные функции.
Чтобы программировать на Scala, знание java тебе не нужно. Однако следует помнить, что всё это бегает на JVM. Треды и тредпулы здесь жавовые, примитивы типа String - жавовые. Чаще всего тебе просто достаточно читать доку, не вдаваясь в код богомерзкой... Но она здесь. То же самое касается и либ жавовых. Мне за год работы не приходилось читать Java код. Но если пофантазировать, можно придумать кейсы, в которых это может потребоваться.
Сколько ни пишу, никак не могу привыкнуть к вырвиглазному синтаксису. Какая-то перловка. Чужой код все так же ужасен. Хороший код например в интерфейсах scalaz где больше сигнатур типов на отдельной строке, чем самого кода. Другая крайность когда пишут близко к джаве, например в akka, но тогда смысла писать на сцале все меньше, учитывая последние тенденции.
Забыл добавить, постоянная фрустрация оттого, что вся инфраструктура тормозит на некислом железе. Отдельный пиздец sbt.
Антоны, хелп ми плиз!Аноним16/03/19 Суб 10:05:51#360№1365248
Работаю Java Junior - ом 1) Сколько лет нужно по честному отработать для реального переката в Scala? Сам думаю нужно на уровне синьора. 2) Насколько рынок вакансий у нас есть? На слуху тиньков только 3) Для трактора мне кажется проще с Java будет, что думаете?
Сам маленько со скобочками на Lisp ковыряюсь, для вката в функциональщину
>>1365248 >1) Сколько лет нужно по честному отработать для реального переката в Scala? Хватит и года. Сеньором тебе быть не нужно. >2) Насколько рынок вакансий у нас есть? На слуху тиньков только Ну Тинькофф активнее всего в России продвигает скалу. У них и митапы, и для шокльников/студентов курсы и финтех школа. Особо усердных оттуда отбирают на стажировку или даже предлагают оффер. Да и работать там приятно. В остальном, зависит от города. В телеге подпишись на scala jobs и помониторь. Рынок небольшой, но нас ещё меньше. >3) Для трактора мне кажется проще с Java будет, что думаете? Сложно сказать на самом деле. Java макаку проще найти и у себя. Зачем кому-то риски с релокейтом кого-то там из какой-то там гваделупы? Ну если конечно ты не ахуевший специалист в своём вопросе. Ты специалист?
Есть проебы в синтаксисе, но основые проблемы в том, что инфраструктура пишется долбоебами. Оттуда sbt, горы говна в scala.collections, «dispatch periodic table», etc. Было бы намного лучше, если бы in-charge были такие люди как Li Haoyi, которые умеют делать БЕС ХУЙНИ.
В общем зарегался на курс на курсере по скале, который нашёл в этом треде. Начал делать первые же задания, где нужно было написать рекурсивные функции - сразу блять начались проблемы. Чувствую себя тупым. Сейчас я джава-макака и последний раз реализовывал какие-то подобные математические алгоритмы ещё универе и как же это даётся тяжело сейчас. Может посоветуете что почитать/порешать чтобы меньше тупить с написанием рекурсивных алгоритмов?хотя я уже настолько тупой что мне ничего не поможет))0
>>1366036 Дело привычки. Мне по началу тоже сложно давались рекурсии, сейчас же мне это кажется намного более удобным и натуральным, чем все эти for и while.
Нужно чуть больше практики - единственный совет. Напиши функцию, которая обойдёт List[Int] и просуммирует все элементы. Напиши такую же функцию для обхода бинарного дерева. Помни, что ты можешь объявлять вспомогательные функции внутри функций. То, что ты обычно изменяешь внутри тела цикла, в императивных языках, мы передаём в качестве аргумента рекурсивного вызова, естественно уже изменив значение.
def listSum(list: List[Int]): Int = { def listSumImpl(accum: Int, tail: List[Int]): Int = ???
listSumImpl(0, list) }
Если очень тяжело даётся, по началу не думай о tail-call оптимизации, например при реализации суммирования элементов бинарного дерева. Практикуйся, ебашь хакерранк и всё получится, анончик.
>>1366036 Для кложи есть http://www.4clojure.com/problems где все на практике очень классно малюсенькими порциями постепенно дается, попробуй поискать для скалы что-нибудь аналогичное
>>1367304 И то, и другое. Можешь дописывать 100500ю оптимизацию для ETL, а можешь пилить реализацию ML. Это не чистый дата саенс, но элементы этого есть
Поясните, за счет чего Скала может подыхать? Вот, скажем, у меня на работе микросервисная архитектура и сервисы на скале нагибают сервисы на других языках. Для менеджмента это знак того, что нужно уменьшать количество сервисов на тех других языках и увеличивать количество сервисов на скале.
>>1367947 А если скалы джва года опыта, а вообще 8? На какую зарплату можно рассчитывать, перекатываясь в ДС на Скала программиста но не спарк и не лохчейн.
>>1261604 Проще потом менять код. Типа сегодня ты просто отдаёшь значение поля, завтра проксируешь на другой объект, а послезавтра достаешь его из стораджа. И если оно сделано через геттер везде, то только в одноместен код менять прийдется.
>>1376705 Что значит "проще" когда все это делается нажатием одной кнопки идеешечки. Так же то что ты описал это потенциально ломающее изменение (когда вызывающий код ожидает поведения как при простом доступе к переменной, а вместо этого происходят всякие неведомые кульбиты вроде сетевых вызовов етц) и как следствие лучше чтобы оно было явным.
Да и тем более это обсуждалось 1-2 треда назад, к пришедшим выводам - что скала устаревает и поддерживать ее уже не возможно, как и искать разработчиков. Тот же котлин, смотрится куда симпатичней.
>>1376705 По факту так только конченые будут писать. Если ты делаешь User.getEmail, любой нормальный человек будет ожидать, что это тупо получение значения поля и никаких запросов к бд или еще куда-то там быть не может.
>>1377452 Но если ты все же хочешь, чтобы тебе нассали на ебало, скала тебе дает такую возможность. Компилятор на самом деле автоматически генерит геттеры и сеттеры и ты в любой момент можешь их переопределить не ломая существующий код. Это сделано, чтобы порадовать жабадебилов.
>>1382128 Рублей в месяц. Выплачивается следующим образом - половина тебе выплачивают в 15 числах текущего месяца, а остальное 5 числа следующего. А чего ты хотел? Ты же Hibernate и Spring не используешь, JBoss Application Server не развернешь и форму на PrimeFace не напишешь. За что тебе платить?
>>1382188 Что ты там пишешь? Я тебе еще раз повторяю, что без Spring Framework и Hibernate ты нихуя толкового не напишешь. А срать в хип своими чудесными коллекциями из Scala можешь в нерабочее время. Тут люди информационные системы разрабатывают, а не упражняются в том, кто более неразборчивый скала код напишет.
>>1382191 > без Spring Framework и Hibernate ты нихуя толкового не напишешь Полагаю ты никогда и не вылезал за пределы своего манямирка, обмазанного толстым коричневым слоем джавы. > Тут Тут скалатред, а у тебя либо синдром утенка, либо просто толстишь. > кто более неразборчивый скала код напишет А вот теперь все понятно, очередной неосилятор. Иди еще поаннотируй на свой спринг.
>>1385278 Так сеньор это больше про помидор общий уровень скиллов, а не стек технологий. Вообще по вакансиям вижу что в основном используют скалу как джаву, т.е. стек это akka и связанные технологии биг дату не берём, я сейчас про нормальный бэкенд. Изредка встречается функциональщина - cats, fs2, http4s. Я вот на своей РАБотке пытаюсь перекатывать всех на современный стек, но коллеги делятся на два лагеря - упоротые джависты-долбоёбы, которым только бы ignite и сервлеты воткнуть, и ебанутые функциональщики, которые ебошут lawless typeclass'ы просто потому что могут. Как это всё заебало.
>>1385278 Spring Framework, Hibernate, J2EE, JSF, JSP, Apache Tomcat, Oracle, Jasper Reports, Alfresco. Ну, если не знаешь Hibernate, то ты никакой не сеньор и даже не миддл, а так, джун-жулик!
>>1387119 При всем уважении, мсье, Jasper Reports - это перебор как бы. Та и Оракл на новых проектов уже врядли встретишь, скорее мускуль или постгре. Alfresco тоже редкоземельная штука как по мне. Скорее всякий AWS/Azure вздрочь лучше постигнуть в общих чертах.
>>1259320 (OP) Планирую перекатиться из Джавы в Скалу, т.к. заебли все эти хибернейты со спрингами и прочие энтепрайз помои. Видимо джава макак столько развелось, что теперь на собеседовании спросить описание методов какого-нибудь интерфейса из спринга или попросить перечислить все методы java.lang.Object считается за норму. Как обстоит дело с наймом Скала разработчиков? Все тот же пиздец или можно вытянуть собеседование на коммитах в попенсорс и собственных пет-проектах?
>>1389850 >Как обстоит дело с наймом Скала разработчиков Крутишь списки и деревья/объясняешь почему футура не монада на бумажке. >перечислить все методы java.lang.Object считается за норму Меня спрашивали подобное про case classы. Тустринг, хешкод, аплай, эквал.
>>1390559 Ты же понимаешь, что скала никому не нужна и все спешно переходят на Котлин? Даже Револют перешел на Котлин в новых модулях и спешно переписывает старый скала код.
>>1391968 К чему ты это высрал? Чувак написал, что вся коммуникация происходит в публичном поле, а ошибки признаются и исправляются. Может быть ты не на то сообщение дал ссылку?
>>1259320 (OP) Даже в этом треде уже чувствуется мертвенность шкалы. 5 сентября был создан тред, больше полугода, сказать что я смеюсь над вами это ничего не сказать.
Кокотлин за год успех 56к набрать реп, а шкала так с какого там года выпущена? Даже боюсь вспомнить, большинство итт даунов под стол еще не ходили, пока я писал манякруды для взлетевшей вчерашней жабы.
Впрочем, пока вкатишься вакансии уже будут закрыты и останется только кокотлин, который можно впендярить в моей проект на 1.6 и жить спокойно.
>>1394312 Что не так? Я тоже подумал сначала, что это опять пытаются диверсити продвигать. Но ведь там нет упоминания чёрных, кебабов. Это просто девственный скализозник ищет кому бы вечером под хвост присунуть.
Год учил джаву, работу не нашел. С одномесячным опытом жиэс нашел за пару дней. Но свою любимую джаву я то не забыл. Помню, как я пару бесонных ночей пытался осилить concurrency in practice в свои 17 лет И у меня было дикое желание выучить скалу. Вообщем, хочу применить скалку в в своём пет проекте, в связке с react+redux - как думаете, норм тема будет?
В шапке рекомендуется книжка "scala для нетерпеливых", - её будет достаточно прочитать для миддла, что бы вкатиться? Может лучше зайдет Programming in Scala? (есть ли она кстати на русском?)
~250 страниц programming in scala уже осилил, чистого времени около 6 часов затратил, я очень ленивый. После бэкграунда джавы, жиэс, ноды и немного питона всё это очень легко заходит(кто там обзывается, что фронтендщики геи, ничего не могущие), хотя заметно, что вышеупомянутая книга предназначено по большей части для джавистов, перекатывающихся на скалку. Скала как и ожидалась показалось мне интересной, как раз больше изучу фп, может быть на теоркат даже гляну(сегодня кстати ещё прочитал про линзы хаскеля, ибо в последнее время частенько слышал этот модный баззворд, а это оказалось очередной тривиальщиной), а больше всего меня привлекла модель акторов, интересно звучит, лол, да и вообще реактивное программирование, хотя так-то всего этого можно добиться и на ноде с жиэс(тот же rxjs + какой-нить нодовский nact)
А scala.js уже депрекейтед, как я понимаю? довольно вяло его контрибутят, да и не вижу, что бы его кто-то юзал на проде(разве что слышал, что где-то в сбербанке такое есть) Синтаксис кортежей олсо не понравился, и не совсем привычна фп тернарка, хотя привыкнуть можно, всё остальное заебись вроде. И чего вы все молчите, а?
>>1390398 Чому так? >Крутишь списки и деревья/объясняешь почему футура не монада на бумажке. Это же круто. Знания! Самое время открыть Кормена и Милевски, и подтянуть всю эту поебень.
>>1394773 >Вообщем, хочу применить скалку в в своём пет проекте, в связке с react+redux - как думаете, норм тема будет?
Какая разница, что брать в связке с реакт+редукс? Его можно брать в связке с чем угодно. Тема будет настолько норм, насколько хорошо у тебя получится сделать бэкэнд, очевидно.
Сам сейчас пилю react+redux на фронте, http4s на бэке, мне норм.
>>1395527 Тот анон ничего сложного же не сказал. Монады на практике - это несложно. Понять, почему футуры не монады - тоже несложно, да и важно. Можно вообще не знать за всякие линзы и эндофункторы и прекрасно пользоваться функциональной скалой. Крутить списки и деревья тебя и на джаве заставят в средней+ компании.
>>1396611 Да не, нахер это все. Вакансий на Scala хуй да нихуя, и везде нужен опыт промышленной разработки на всяких там Akka, Catz и прочие Monix с Play Framework. Ну и идут на такие вакансии обычно яйцеголовые парни из МФТИ или ИТМО, победители всяких олимпиад и т.д. Мне туда путь заказан. Как-нибудь на Java дотерплю.
>>1396686 Загуглил, как я и думал, выпала паста с лурка о хаскеле. Небось очередная хуита из тк, которая на практике на хуй никогда использоваться не будет. В этом проблема. Недавно смотрел видос Одерски Plain Functional Programming by Martin Odersky, даже он там про это говорил. Что ебучие хаскеле-шизики суют своё мёртвое говно везде где только можно. Мало того, что получается откровенное говно, многоуровневые флатмапы и/или сраные трансформеры, эту хуиту невозможно читать, нужен охуенный порог входа, чтобы это понять, так ещё это отпугивает ньюфагов. Тебе дали скалу, нет, блядь, не хочу, хочу монадки в каждой строчке, хочу сделать второй хаскель и сосать хуятину вместо работы.
>>1396902 Hey buddy, I think you've got the wrong thread, the Go-dibilov thread two blocks down. Если ФП тебе СЛОЖНА то зачем ты вообще выбрал Скалу? Иди вон в Го-тред, как раз язык для дибилов, ФП там не будет никогда потому что оно там невозможно. И да, даже в хаскелле никто не использует трансформеры, а многоуровневые флатмапы >>= всегда были плохим кодом. И никто не тащит в Скалку ФП из Хаскелля 1-в-1, всегда адаптируют для использования сильных сторон Скалы. Просто у тебя бугурт от того что ты ниасилил. Go thread two block
>>1396611 Двачую. Если ты хочешь нормальную, неблокирующую concurrency - ты берешь Futures. Потом осознаешь, что нахуя везде таскать () => Future[A], если можно взять нормальный cats effect или monix. Далее в твоем приложении появляется необходимость таскать какой-то динамический контекст, который не протащишь через DI - и если ты осилил потратить время на Reader Monad Pattern, ты понимаешь как это просто и охуенно, и берешь ZIO. Все эти плюшки так или иначе несут определенный профит, улучшают качество кода и ускоряют разработку, но неосиляторы продолжают кричать НИНУЖНА!!1, ну и пусть хуй сосут на своей джаве. В скала-тред то нахуя лезть?
>>1397771 Почитай что лысый пишет например http://degoes.net/articles/effects-without-transformers (он, конечно, тот ещё маркетолог, но тут идея здравая - и целиком спижжена из хаскелля, лол). Про чистые вычисления незнаю что сказать. В твоем примере я обычно использую Option с локальной (изолированной) мутабельностью. Снаружи чистый интерфейс, конечно же. Но думаю если сильно надо, то применять их проблем нет. Главное не строить основную логику приложения на них, типа ReaderT (StateT Ctx IO).
>>1396684 >akka, catz, etc >яйцеголовые парни из МФТИ или ИТМО я конечно с мфти, но это было обидно
в целом заметил, что если так уж сильно хочешь писать на scala/haskell/closure/etc, то попробуй найти вакансию в европке. как бы это не было парадоксально, но разрабов не хватает.
>>1404018 У меня нет разговорного английского. Да и кому нужен разработчик на scala/haskell/clojure/etc. если у меня нет коммерческого опыта разработки на этих языках?
>>1404018 Госпаде, это зелёный из соседнего треда "мы вам перезвоним". Он там постоянно жалуется, что 5 лет гребёт на джаве за 40к, какой он тупой, как ему тяжело, но искать другую работу он не хочет ведь туда возьмут только >победителей всяких олимпиад и т.д. Мне туда путь заказан. Просто игнорируйте его.
>>1404260 >Он там постоянно жалуется, что 5 лет гребёт на джаве за 40к В мухосранске 130к между прочим. Не могу осилить такие сложнейшие технологии как Play Framework и Akka. Имейте уважение. Я не тролль, все так и есть!
>>1404107 скала не такая уж и частая, но на джуниор позицию вполне могут взять и с джава опытом. причем могут даже взять с ебеней а-ля индия. только это с большими фирмами работают, которые могут сделать доки и оплатить трансфер
>>1259320 (OP) сейчас на работке вкатываюсь в скалу для общего развития. подскажите, в ОП-посте дана ссылка на "лучшую книгу по скале", но она 1 издания, хотя уже давно есть 2 издание. оно хуже или что?
>>1407644 >вкатываюсь в скалу Не трать попусту время на всякую ерунду, которую и в Java можно накодить. Лучше удели внимание языкам, которые действительно этого заслуживают - Erlang/Elixir/Clojure/Rust. А Scala все равно толком нигде не используется и компании, которые однажды попытались на ней что-нибудь написать, сейчас рвут на себе волосы и в авральном режиме переписывают все на Java 11.
>>1407782 >компании, которые однажды попытались на ней что-нибудь написать, сейчас рвут на себе волосы и в авральном режиме переписывают все на Java 11 эни пруфс?
>>1407794 Возьми тот же Revolut - один из самых дорогих и быстрорастущих финтех стартапов. Они бросили Scala и переписывают все на Java 11 или Kotlin. Scala ничего не может предложить кроме как неказистого и тормозного тулинга, супермедленной компиляции и сомнительными архитектурными подходами в плане языка. Все, что нужно 99% разработчикам уже есть в Java 11 и Kotlin.
>>1407796 > Scala ничего не может предложить ну когда в жаву завезут cats/scalaz, тогда и поговорим. к тому же, попробуй использовать жаву и акка/акка-стримс, я посмотрю когда ты себе волосы на жопе вырывать начнеш
>сомнительными архитектурными подходами в плане языка подробности в студию
>>1407819 На Java есть супербыстрые библиотеки и фреймворки, которые обгоняют твои скакалковы поделия на несколько порядков. Ведь Скала только и знает, что гадит в хип и тормозит что есть мочи!
>>1259320 (OP) Что нынче используют в Scala для разработки REST сервисов? Через что ходят в базу? Как там Scala.js поживает? Уже можно пробовать или все еще сыро?
>>1407966 >для разработки REST сервисов akka-http (если хочется еще и стримы подключить)/play framework (если хочется все из коробки)/scalatra (видел пару раз в проде, обычно если небольшой сервис без нагрузки)
>Через что ходят в базу scalikejdbc/doobie/slick
>Как там Scala.js поживает хз, не видел нигде в проде. видел с экзотики видел только elm
>play framework Ерунда какая-то. Какие-то темплейты а-ля JSP фигачить, лол. Сейчас 2019 год. Подобный подход, когда у тебя в проекте темплейты страниц на каком-нибудь JSP или Tapestry лежат был актуален в году эдак 2010.
>akka-http Выглядит поинтереснее. Правда, у ни на сайте написано, что это довольно низкоуровневая библиотека и никак не полноценный фреймворк по типу Spring Boot, когда можно за пару минут собрать REST сервис, упаковать его в джар архив вместе с каким-нибудь Tomcat или Netty, который будет заниматься обработкой HTTP запросов.
>>1259320 (OP) Как так вышло, что SBT - неюзабельно говнище, в котором ни то что разобраться, пользоваться невозможно? Чем нынче собирают проекты на Scala? Gradle?
>>1408473 play framework - он скорее похоже на django. работа с хттп (можешь хтмл, а можешь и просто rest), базой, конфигурации, етц - все уже настроено
akka-http - это не низкоуровневая библиотека. низкоуровневая netty к примеру
>>1408473 Почему Twirl ерунда? Нормальный шаблонизатор. Просто сейчас в эпоху SPA и рестовых бэк-эндов, шаблонизаторы как таковы выглядят чутком архаично. Ну, подключай play-json и вперед.
SpringMVC тоже как бы раньше работал с JSP на ура. И я еще помню времена спринга 3-го, когда надо было джэксон вью резолвер объявлять, и никаких @RestController аннотаций и в помине не было. Иначе дефолтная рендерилка через JSP.
>>1410030 в jvm мире все работают через драйвер jdbc (если мы говорим о базах конечно), потому что интерфейсы jdbc - это часть стандартного java api. если что-то работает не через jdbc - это полностью отдельная история с одтельным api/доками/класами/етц (например, https://github.com/alaisi/postgres-async-driver)
мало кто из супортеров либ для скалы хочет заморачиваться с чем-то специфичным
>>1414819 Функционал там эквивалентный тому, что написан для Scala, только вот занимает он в 2 раза меньше места. Импорты - это хуйня. На это даже можно не обращать внимание.
>>1414851 Ерунду же говоришь! Скакалка все равно ничего не может предложить. Это просто академический язык, на котором тренируются студенты Одерского. Даже недавний мажорный релиз ничего не привнес в язык. Так и останется игрушкой для студентов из EPFL, пока они не защитят свои PhD и не уйдут в коммерцию и перейдут на нормальные языки, как это сделал Малдер Феликс, Рунйар Брансон, Конрад КТОСО Малавски и многие другие.
>>1417794 Уже нигде. Нужно было раньше вкатываться, когда компании нанимали скала джунов. Это было в начале 2000-х. Теперь всем нужны крепкие сениоры и тимлиды у которых минимум 5-7 лет опыта в Scala/Akka/Cats/Monix.
>>1423134 Да, есть много вакансий, которые так и называются "Java to Scala developer". Плюс, если у тебя просто есть опыт программирования, то устроиться на другую работу будет легче, хоть на Хаскеле устраивайся.
>>1425529 Ты же не собираешься устраиваться во все 37 компаний сразу, верно? Тебе нужна только одна из них. И поверь, когда ты знаешь на достойном уровне Haskell или, например, Scala, то вопрос о трудоустройстве у тебя не будет стоять. При таких скиллах можно спокойно работать на удаленке за баксы. С той же джавой у тебя в большинстве случаев только офис и только фултайм.
Лучшая книга по Скале: http://www.ozon.ru/context/detail/id/31921731/
Учебник по Скале на русском: http://twitter.github.io/scala_school/ru/index.html
Второй учебник по Скале на русском: http://twitter.github.io/effectivescala/index-ru.html
Курс по fp на Скале для слоупоков: https://www.coursera.org/course/progfun
Список годноты: https://github.com/lauris/awesome-scala
Презентации летнего ScalaDays: https://www.parleys.com/channel/53a7d269e4b0543940d9e535/presentations?sort=views&state=public
Два недавних форка компилятора, один от тайплевела и второй от баттхертнутого:
https://github.com/typelevel/scala (https://github.com/typelevel/scala/wiki/Differences)
https://github.com/paulp/policy
Завтра ищешь в интернете книжку Programming in Scala. Похуй если ничего не поймешь. Затем идешь на scala-lang.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию скала кода - от EPFL естественно, чтобы от зубов отскакивало. Когда напишешь свой первый клон Twittera, по пути изучив основы дискретного и лямбда исчисления, скачиваешь и изучаешь любой асинхронный скала вебсервер, рекомендую Play!. Как переделаешь твиттер клон, чтобы выдавал по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop и Spark, сверхбыстрые асинхронные key-value хранилища, NoSQL и прочие мира открытого исходного кода приблуды. Отсос хиккующих питонистов / просто неудачников типа годаунов или рубифанбоев, сосут по жизни, не заставит себя ждать и уже через пол года ты будешь подворачивать штаны, есть маффины, запивая смузи и любая баба будет течь от упоминания твоей зарплаты.
Теперь, вдобавок к вышесказанному, ты можешь посрамить своими подвернутыми джинсами и своей великолепной ухоженной бородой ещё и замшелых ПЛИСоебов-свитеров в драных китайских ноунейм-джинсах и с неухоженными бородами старой закалки.
Ведь в твоем распоряжении Chisel - самый лучший HDL язык на основе Scala для разработки процессоров, видеокарт, майнеров криптовалют, машинного обучения и всего такого прочего.
https://chisel.eecs.berkeley.edu/
На этом языке написана реализация самого хайпового свободного процессора последних лет - RISC-V.
https://github.com/freechipsproject/rocket-chip