Pull to refresh
1
0
Александр @ShadowsMind

Java/Scala developer

Опять жидкие набросы на Scala от котлин-евангелиста. Это насколько же надо не мочь в фп или не желать разобраться, чтобы говорить что код на cats у каждого разраба свой. Или про макросы. Создается ощущение, что автор намеренно лицемерит или просто его мнение основано не на личном опыте, а из каких-то слухов в духе обсуждений скалы джавистами/котлинистами в телеграм-чатике pro.jvm.
Вот именно что «собирается», а не компилируется. Сравнение из разряда «моя подлодка плавает быстрее, чем ваш мотоцикл».
что было глотком свежего воздухе после битвы на мечах от 20 секунд инкрементальной и 20 минут полной компиляции в Scala.

Автор явно утрирует и набрасывает. Если речь идет о таком небольшом проекте, то компиляция в Scala тоже будет занимать секунды. Не знаю о каких 20 минутах с нуля и 20 секундах инкрементальной он говорит, когда лично у меня, полная перекомпиляция проекта в ~20kloc с обильным использованием имплиситов, макросов и вот этого всего + то же ранее упомянутое, переформатирование всех сорцев — занимает ~50 с. на обычном домашнем ноуте (scala 2.12.4 и sbt 1.0.3).
Основная технология (для транзакций и т.д.) у PayPal как раз таки «другой язык JVM» — https://www.lightbend.com/blog/how-reactive-systems-help-paypal-squbs-scale-to-billions-of-transactions-daily
Если Вы используете Scala в разработке, то чем не устроило решение на Akka HTTP? Веб-сокеты очень удачно ложатся на Akka Stream, а в Akka HTTP даже готовый route есть- handleWebSocketMessages, в который просто надо передать наш Flow[Message, Message]. В Actor Platform например так (там вообще один Flow используют и для TCP/IP, и для WebSockets — по мне очень удачное решение).
Как это не говорит, предложения с воздуха по Вашему берутся что ли? Все же просто — какой-либо бизнес выбирает Scala, пилят продукт, растут, ищут новых разрабов. Не пойму в чем тут плохость показателя — в IT всюду дефицит кадров, не успевают специалисты появляться настолько быстро, насколько этого требует рынок.
Не понимаю зачем нужны такие статьи, которые создают ложное представление о языке.

Например из цитаты platoff можно сделать вывод, что Scala выбирает неопытная молодежь, хотя на самом деле все с точностью до наоборот. Цитата Баруха тоже не к месту, с чего Вы взяли, что мнение человека из Java/Groovy-мира является экспертным относительно Scala?! (ничего не имею против Баруха, с удовольствием слушаю подскаст всей их тусовки «Разбор полетов», но у него нет экспириенса в этой нише и это просто мнение сбоку по факту). Приведенные рейтинги всяких Teobe, IEEE Spectrum и прочих вообще не отражают реальности: Matlab, R, Asembly выше в рейтинге чем Scala — ага, кулл стори… Судить о языке по количеству вбиваний в гугл и каких-то абстрактных статистик в вакууме — это полнейший бред.
Scala развивается громадными темпами, причем имеется в виду не только сам язык, но и экосистема и востребованность на рынке. Исходя из недавних отчетов stackoverflow.com scala-разработчики одни из самых довольных своей технологией + с одними из самых высоких заработков среди разработчиков. Похожие данные были и от Dou, которые тоже кстати напрямую работают с комьюнити(на Dou просто делаются опросы), а не как Teobe и КО, которые берут данные с потолка.

Создается ложное впечатление, что у Scala все плохо, но перспективы есть. Все совсем не так — для Scala эти перспективы уже настали, сейчас все отлично и продолжает набирать обороты. Эта статья была бы актуальна этак году в 2009ом, но ни как не в текущих тренда и спроса на биг-дейта, анализ данных, распределенных систем и прочего, в чем Scala преуспела.

В статье ни слова про уровень и количество конференций в ФП мире и в Scala в частности. Про положительный экспириенс фирм, которые используют Scala — недавно paypal выкладывали статью о том у них все отлично с Akka. Про крутые проекты/технологии, которые были реализованы на Scala — Spark, Akka, Kamon, Kafka и т.д. О том какие нововведения и перспективы ждут нас в ближайшем будущем — Scala 2.12, Dotty и прочее.

Спрос на Scala весьма хороший в текущих реалиях, о каких “разворотах в сторону Java” вообще идет речь? На Linkedin даже обычным Scala разработчикам постоянно приходят предложения, не говоря уже о Spark специалистах. Еще можно посмотреть тут и сделать выводы: https://jobs.functionalworks.com/

Вообще лучше смотреть кейноты ФП и Scala конференций, чтобы понимать что происходит в ФП и Scala-мире, а не из слов людей знающих о продакшене на Scala чуть меньше чем совсем ничего, набрасывающих и делающих выводы на основе Teobe-рейтингов и говорящих о “смерти” языка из-за обычного переименования Typesafe -> Lightbend…
Вот еще хорошее видео, с объективной оценкой о том “Какое место Scala занимает в IT-индустрии” — https://www.youtube.com/watch?v=jTomnoJ3TyQ
Забыл упомянуть: БД — PostgreSQL. Обычный JDBC драйвер(есть просто postgresql-async, возможно он быстрее), для пула коннектов — HikariCP. Никаких доп флагов для JVM не выставлял.
У меня есть совершенно другие цифры: вытаскиваем сущность из 12 полей, маппаем в DTO объект, сериализуем в json: ~15ms. Ах да, там еще jwt токен декодится(HmacSHA512) и мапается из json-строки в объект. Стек: Akka HTTP 2.4.8, Slick 3.1.1, Spray Json 1.3.2. Если пооптимизировать и «прогреть», то будет еще шустрее. (это не Java, а Scala, но какая разница если ранается под JVM).
А Ваши цифры и выводы без информации о том как и на чем было написано не нужны никому… Если уж хотите поевангелировать Go, то делайте это нормально. А то одолели уже эти околохоливаные посты/комменты гоферов и постоянный наброс на вентилятор.
Да, в курсе того, что Netty как депенденси только в remote (а cluster в свою очередь от remote зависит). И про то, что они постепенно от нее избавятся тоже слышал (толи в gitter'е, толи на одной из конференций кто-то упоминал). Просто хотел упомянуть этот факт, надо было сразу уточнить.
Кстати, а разве Play в свою очередь не делает потуги в сторону того, чтобы полностью заменить Netty на Akka? По крайней мере где-то упоминалось, что они планируют, если я не ошибаюсь.
Откройте для себя Akka (она кстати поверх Netty работает), там создать сервер слушающий TCP/UDP/Web-soket'ы — это дело пары минут. Там вам и прозрачная модель работы с многопоточнотью, и обсолютно никаких блокировок, и поддержка кластера «из коробки» и еще куча плюшек.
Мне лично Go тоже нравится, игрался с ними недельку после рекомендации знакомого, но для себя не нашел не одного плюса относительно тех задач, которые мне приходится реализовывать на Java, темболее последний год с небольшим работаю со Scala — тут даже сравнивать бесмысленно.
Т.е. в конторах пишущих игры ААА класса сидят дурачки, которые не знают, о том что программист на Go производительнее программиста на Java?! Тогда уж «в разразе Вашей задачи Вы пишущий на Go произовдительнее себя же пишущего на Java».
«я слепил чего-то там на java и оно держало всего 300 коннектов, переписал на go — стало держать 2.5к» (с)
Ничего не имею против Go, но давайте поговорим о Ваших опытах с Java.
Есть куча суццесс стори задач схожих с вашей — сверера для мультиплеерных игр. Возьмем на пример Riot Games и их League of Legends, где на секундочку, онлайн в пики достигает 5 миллионов юзеров. Понятное дело там у них маштабирование и прочее, но если бы у них сервер держал 300 коннектов, то никаких денег бы не хватило, будь Ваши слова хотя бы отчасти правдой.

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

Из всей статьи полезный и осмысленный только вывод…
Еще один «булщит-рейтинг». Не один из этих рейтингов никогда не будет отражать полной картины.
Судить об том насколько язык популярен и востребован надо совершенно иным способом — непостредственно опрашивать самих разработчиков, IT-компании и прочее. Из таких наиболее правдивых рейтингов мне показался рейтинг от dou, там хоть цифры наиболее проадивые, а не какойто асбтрактный «spectrum rating»: % от рынка, индекс удовлетворенности, работают/планируют в след.проекте/мечтают и т.д…
А если судить по рейтингу со статьи, то выходит, что R/Matlab специалисты в разы востребованее чем те же Scala разработчики — ну смешно же.
Спасибо за статью. Тоже в свое время похожим образом проходило мое знакомство со Slick.
Не так давно наткнулся на альтернативу — Quill (getquill.io). По ощущением от знакомства с технологией в рамках одного вечера — концепция похожая, но проще. Особенно понравилось то, что при компиляции получаем мессейджы о том, какой запрос у нас в итоге сбилдился. Думаю, для простых проектов подойдет лучше чем Slick.
богословское образование действительно расширяет кругозор несколько шире среднего технаря или гуманитария

Ну конечно, куда нам технарям в «ширине» сознания до людей, которые из кулл-стори о летающем дядьке в облаках построили колосальных размеров бизнес без конкуренции, с невероятно преданными евангелистами…
Ожидал от статей от Wix большего… 3 статьи и все вода.
Знаком с творчеством Роберта Фриппа. У него невероятное звукоизвлечение, даже на концертных записях звучит очень круто, да и вообще у King Crimson очень необычная музыка.
Этот топ просто чье-то субьективное мнение в разрезе того, насколько богат музыкальный кругозор высказывающегося.
Если судить в разрезе техничности, сложности, скорости, то Technical Death и Progressive Death жанрам практически нет равных. Соляки Necrophagist, Death, Ouroboros, Obscura, The Faceless и др. тому доказательство.
И да, говоря о гитарной музыке, не упомянуть таких гениев современности как Анди Джеймс и Патрик Кэрролл(Buckethead) как минимум странно… Уважаю старую школу гитарной музыки, но список составлен явно олд-фагами...
2.12 будет в этом году. Думаю 2.13 alfa тоже в этом году сможем увидеть.

Information

Rating
Does not participate
Location
Усть-Каменогорск, Восточно-Казахстанская обл., Казахстан
Date of birth
Registered
Activity