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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
8 Кб, 635x282
Scala #633151 В конец треда | Веб
Очередной тред про самый лучший язык для JVM.

Лучшая книга по Скале: 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 и прочие мира открытого исходного кода приблуды. Отсос хиккующих питонистов / просто неудачников типа годаунов или рубифанбоев, сосут по жизни, не заставит себя ждать и уже через пол года ты будешь подворачивать штаны, есть маффины, запивая смузи и любая баба будет течь от упоминания твоей зарплаты.
#2 #633214
>>633032
Поддвачну, пожалуй.
>>633037
Переусложнённая хуета. Что в ней нужно новичку, так это пожалуй только лямбды, но они есть и в 8-й джаве и питоне. Всё остальное представляет интерес разве что для хаскеллистов, которым не дают писать на Хаскеле на работе.
#3 #633215
Хаскель на порядок проще из-за отсутствия ебучего наследования и костылей JVM никогда не думал, что напишу что-то подобное.
>>633223
#4 #633218
>>633214

> только лямбды


В голос с дебила.
>>633426
#5 #633220
>>633214

>лямбды


>в питоне


How about "no"?
>>633573
#6 #633223
>>633215
Хаскель вообще простой язык, разве что комьюнити любит играть в алгебраистов.
А у скалистов принято городить сложности ради сложностей.
>>633249
#7 #633249
>>633223
Потому что скала изначально язык от студентиков для студентиков, которым нравится ласкать себе анус о 9000 перегруженных операторов и СУПИР систему типов.
#8 #633260
>>633037
Нормально вкатываются в скалу после хоть какого-то опыта в нормальном статически типизированном ЯП или опытом в ФП.
Также вангую в тебе очередного вкатывальщика без вышки (иначе не задавал бы такие вопросы), так что ты просто нихуя не поймёшь, когда начнёшь "учить" скалу по книжке.
>>633410
#9 #633264
в джаве шарю на уровне червя-пидора, можно спокойно учить скалу не зная джава?
>>633369>>650793
#10 #633369
>>633264
Можна.
#11 #633410
>>633260
Отлично вкатился без вышки, после джявы и C++.
>>633427
#12 #633426
>>633218
Продемонстрируй нам свой интеллект, недебил.
#13 #633427
>>633410

>после джявы и C++


Я об этом и писал.
>>633430
#14 #633430
>>633427
Но скала проще чем джява и тем более C++, если бы я знал про её существование то вкатился бы сразу в неё.
>>633782
#15 #633573
>>633220
Там даже keyword lambda есть эти лямбды говно а не лямбды
>>633670>>686597
#16 #633670
>>633573

>Там даже keyword lambda есть


Лол, похуй вообще

>эти лямбды говно а не лямбды


this
#17 #633766
Уехал писать на Scala в Новую Зеландию пару месяцев назад. Для этого отказался от оффера в Нидерландах. До этого звали в Германию, но я так и не доделал визу.

Крутой язык, много платят, есть спрос на рынке.
#18 #633772

>Уехал писать на Scala в Новую Зеландию пару месяцев назад.


>Для этого отказался от оффера в Нидерландах.


Кек, дебил.
#19 #633775
>>633772
Я был морально не готов платить 48% налогов после 30 лет и учить странный полунемецкий язык.
>>633942
#20 #633781
>>633772
В Зеландии природа лучше
>>712378
#21 #633782
>>633430
Проще?
>>633794
#22 #633794
>>633782
Разумеется
>>633807
#23 #633807
>>633794
Чем, кроме типовыводилки и нескольких паблик классов в одном файле?
>>633810>>633816
#24 #633810
>>633807
Тем, что позволяет намесить говна в жопе больше, чем C++.
#25 #633816
>>633807

> типовыводилки и нескольких паблик классов в одном файле


На такую толстоту даже отвечать не буду
>>634379
#26 #633942
>>633775

>48%


Три года кенисмигрантских льгот, а там и с офшором бы что сообразил. Ходи теперь вниз головой хуле.
>>634374
#27 #634374
>>633942
Да ну нахуй, хочу получать нормальную зп и не ебаться с оффшорами (прям призрак рашы ей богу) :)

Тут заебато. Правда сено во рту у всех (последствие разведения овец), поэтому даже местные свой акцент не понимают.
#28 #634379
>>633816
Ну да, скажи что implicit'ы и higher-kinded типы с аппликативными функторами - это очень просто. Или val и var? Наверное, проще. Но только дебил будет это сравнивать с Java говоря, что Java сложнее.

Так что там проще-то?
>>634524
#29 #634389
>>633772
Наоборот, всё правильно сделал. Евросовок - говно ебаное, а Новая Зеландия, наверное, последнее нормальное место на земле.
#30 #634471
Есть ли живые проекты кроме экзамплов на этом эпик без стеба вине - https://github.com/ochrons/diode? Чет искал - не нашел, в принципе уже и сам разобрался.
>>634503>>634525
#31 #634503
>>634471
Что такое живые проекты? Библиотеки или проекты?
>>634506
#32 #634506
>>634503
Приложения на этой либе
#33 #634524
>>634379

>Ну да, скажи что implicit'ы и higher-kinded типы с аппликативными функторами - это очень просто


Благодаря всем этим "сложным" вещам, на скале приложение, требовавшее до этого тысячи бойлерплейта и AbstractSingletonProxyFactoryBean, пишется в 3.5 строчки, именно поэтому скала проще.
>>634526>>634529
#34 #634525
>>634471
Нах она нужна если есть Akka Streams?
>>634530
#35 #634526
>>634524
Проще ровно до того момента, когда что-то ломается. Не понимая, как это работает - ты продолжаешь писать на Java, полагая что пишешь на Scala.

А если ты понимаешь как это работает, то нихуя не проще. Проще - накатать бойлерплейт и не знать проблем с неправильно отсортированными implicit конвертерами.
>>634527
#36 #634527
>>634526

>Проще - накатать бойлерплейт


Ясно, уносите мартышку.
#37 #634529
>>634524
Да и это не проще, это - короче. Просто - это когда думать почти не нужно. Берешь код и копипастишь, с небольшими правками для себя. Когда этим обезьяны заниматься могут.
#38 #634530
>>634525
Нах она нужна если есть пенопласт?
сам то понял, что написал?
>>634531
#39 #634531
>>634530
да, я дебил. это другое
#40 #636615
Что стоит сделать чтобы попробовать весь тайпсейф стек + аэроспайк и кассандру? А то через полтора месяца собираюсь пройти стажировочку, хочу попробовать сам, сначала разобраться.
Твитор клон, его и на пыхе сделать можна?
>>637041
#41 #637041
>>636615
Борду
>>637261
#42 #637261
>>637041
/r/ Ъ-макабу на ирланге Швеция-куна. Может что-то позаимствую.
>>637388
#43 #637386
Скаланы, я тут недель покурил субж и ебнулся на отличненько, спасибо тому анону, который посоветовал scalajs вместо мелкосовто ТайпСкрипта.
223 Кб, 1092x952
#44 #637388
>>637261
бля, запостил раньше времени. Внимание, вопрос почтенной публике:
Есть ли какой-то (каноничный) способ короткой записи лямбд вида v => v, или v => True, или v => False, ну типа тех, которые вроде нейтрального элемента в теории групп.
>>637403>>637404
#45 #637403
>>637388

> v => v,


identity

> или v => True, или v => False,


_ ⇒ True
>>637408
#46 #637404
>>637388
identity, true, false. Не?
>>637415
#47 #637408
>>637403
Спасибо
#48 #637415
>>637404
ага, так
#49 #637509
Вчера пробовал эту вашу Скалку, хотел сделать список, содержащий Int или Double, а sum types, оказывается, в вашем недоязыке-то и нет! И конпелятор мне тут пишет "так, это у тебя List[AnyVal]". Вообще охуеть.
#50 #637534
>>637509

> сделать список, содержащий Int или Double


откуда ты такой дибил к нам пришел?
>>637536>>637554
#51 #637536
>>637534
Из динамикодрисни, очевидно же.
#52 #637554
>>637534
А как это идиоматично в Scala сделать?
>>637597
#54 #637625
>>637597
Злые вы, сразу нубу гвоздь в мозжечок вбиваете этим вашим шейплесс
http://stackoverflow.com/a/3508555
>>637628>>637647
#55 #637628
>>637625
А что мешает просто в язык добавить type MyType = A | B | C ?
#56 #637629
>>637628
То, что это, блядь, скала. Слишком просто - значит неинтересно.
#58 #637647
>>637628
Добавят в dotty.
Пока идиоматично сделать sealed trait и case classы. Если хочется повыёбываться, сделай как >>637625 предложил. Если выёбываться хочется сильно, а компилировать код долго, то юзай shapless (>>637597) или сам это реализуй: http://milessabin.com/blog/2011/06/09/scala-union-types-curry-howard.
>>637656
#59 #637656
>>637647
Вот, только хотел написать, что вроде планируют запилить. Даж в ссаном тайпскрипте есть.
#60 #637698
>>637628
В Scala.js такая хуйня есть, попробуй оттуда выдрать
#61 #637816
>>637628

Это нельзя сделать на JVM, в scala.js это тип-интринсик компилятора и работает толко за счет того, что все типы стираются в js.Any
>>637863
#62 #637863
>>637816
А тип листа в жвм не стирается? По сути это всего лишь сахар для конпелятора, типа чтоб СТАТИЧНЕНЬКО, а так-то можно сделать List[Any] и потом хуярить match/case.
>>637934
#63 #637934
>>637863
Мы о разных вещах говорим, тут и спора никакого нет. Union-types в ванильной скале хорошо реализуются обертками или боксингом с паттерн-матчингом по забоксеным значениям (case/instanceof), не вопрос. Другое дело, что в js любые значения по определению являются union-types. Для того, чтобы можно было передавать функциям при интеропе типизированные объекты, не имеющие общего предка кроме js.Any, и сохранить тайпчеки на стороне scala-кода, не указывая js.Any как тип параметра, ввели такой костыль, который просто стирается.
#64 #639097
>>637509
Ну, для двух типов есть Either, а так sum type будут вводить в 2.12 вроде
#65 #649737
Бамп треду про лучший язык для JVM!
>>649755
#66 #649755
>>649737
Это Clojure.
>>649813
#67 #649813
>>649755

> Clojure.


Мертворожденный кал
#68 #649817
>>637509
надеюсь ты сдохнешь от рака жопы в этом году, гнида тварь
>>649831
#69 #649831
>>649817
Представься, мразь.
#70 #649835
А много на скале в реальной жизни пишут?
#71 #649842
>>649835
Что значит много? Я только на ней и пишу хуй знает, много или нет например, а кто-то вообще не использует.
#72 #649844
>>649835
Если ты про индустрию, а не админов локалхоста, то чуть больше, чем на Хачкиле, скажем так.
>>649887
#73 #649873
>>649835
In April 2009, Twitter announced that it had switched large portions of its backend from Ruby to Scala and intended to convert the rest.[79]

Gilt uses Scala and Play Framework.[80]

Foursquare uses Scala and Lift.[81]

SpinGo uses Scala and Akka.[82]

Coursera uses Scala and Play Framework.[83]

The Guardian newspaper's high-traffic website guardian.co.uk[84] announced in April 2011 that it was switching from Java to Scala,[85][86]

The New York Times revealed in 2014 that its internal content management system Blackbeard is built using Scala, Akka and Play.[87]

The Huffington Post newspaper started to employ Scala as part of its contents delivery system Athena in 2013.[88]

Swiss bank UBS approved Scala for general production usage.[89]

The BitGold platform was built entirely on Scala and Play Framework.[90]

LinkedIn uses the Scalatra microframework to power its Signal API.[91]

Meetup uses Unfiltered toolkit for real-time APIs.[92]

Remember the Milk uses Unfiltered toolkit, Scala and Akka for public API and real time updates.[93]

Verizon seeking to make "a next generation framework" using Scala.[94]
#73 #649873
>>649835
In April 2009, Twitter announced that it had switched large portions of its backend from Ruby to Scala and intended to convert the rest.[79]

Gilt uses Scala and Play Framework.[80]

Foursquare uses Scala and Lift.[81]

SpinGo uses Scala and Akka.[82]

Coursera uses Scala and Play Framework.[83]

The Guardian newspaper's high-traffic website guardian.co.uk[84] announced in April 2011 that it was switching from Java to Scala,[85][86]

The New York Times revealed in 2014 that its internal content management system Blackbeard is built using Scala, Akka and Play.[87]

The Huffington Post newspaper started to employ Scala as part of its contents delivery system Athena in 2013.[88]

Swiss bank UBS approved Scala for general production usage.[89]

The BitGold platform was built entirely on Scala and Play Framework.[90]

LinkedIn uses the Scalatra microframework to power its Signal API.[91]

Meetup uses Unfiltered toolkit for real-time APIs.[92]

Remember the Milk uses Unfiltered toolkit, Scala and Akka for public API and real time updates.[93]

Verizon seeking to make "a next generation framework" using Scala.[94]
>>649888
#74 #649887
>>649844
Ну хачкиль это совсем до свидания
#75 #649888
>>649873
а в рашке?
>>649895>>728094
#76 #649895
>>649888
Тинькофф.

Короче, замена раби (как и ява замена пхп) для бохатых компаний.
>>649904
#77 #649904
>>649895
Но у Руби же плохо с производительностью и ее используют больше для прототипов. Скала такая же?
>>649921>>649948
#78 #649921
>>649904
Нет. Первое тоже нет.
#79 #649948
>>649904
Относительно явы скала тоже проигрывает в производительности, так что в какой-то степени.
>>650006
#80 #650006
>>649948
Пруфы? Тесты? Интриги, расследования?
>>650036
#82 #650041
>>650036

>Идиоматик скала


И чо? Тебе на жабе идиоматичные индусы без плетки такого напишут. Императивный джавалайк код, проложенный, в нужных местах, работает со сравнимым быстродействием, что тебе еще нужно, смерд?
>>650042>>650062
#83 #650042
>>650041

>, проложенный, в нужных местах,


, проложенный в нужных местах,
лишняя запятая прилипла, соре
#84 #650046
>>650036
И вообще иди нахуй, синтетический.
#85 #650062
Ух, блядь, завоняло-то как старым дерьмом. Уноси отсюда своего пидора старого, пусть дальше пишет как с васьками-дружками в своих Нижних Васюках поёбывался при совке.

>>650041

>Императивный джавалайк код, проложенный, в нужных местах, работает со сравнимым быстродействием, что тебе еще нужно, смерд?



Проложенный в нужных местах через JNI C++-код в Java проекте работает со сравнимым быстродействием, что тебе еще нужно, смерд?

Проложенный в нужных местах С код в C++ проекте работает со сравнимым быстродействием, что тебе еще нужно, смерд?

Проложенные в нужных местах ассемблерные вставки в С коде работают со сравнимым быстродействием, что тебе еще нужно, смерд?

Сам понял тупость сказанного? "Идеоматик" средства языка - это именно средства предоставляемые языком, а не его прародителем.
В любой задаче всегда удобно использовать средства языка, и всем приматам пишущим на скале как и на других высокоуровенных языках абсолютно похуй, будет их функция работать на 2 мс быстрее. Не им же в конце-то концов банк по 3 недели после НГ деньги переводит.
>>650072>>650084
#86 #650072
>>650062
Проложенный в нужных местах через JNI C++-код в Java проекте работает со сравнимым быстродействием, что тебе еще нужно, смерд?

Залупа на воротник. Выигрыш если и есть, то мизерный. Про Си с асмом расскажешь посонам у падика.

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



Естественно, на абстрактные миллисекунды на реальном проекте всем похуй. Есть требования - с определенным набором данных код должен успевать отработать за определенное время. Идиоматичный код отрабатывает (а он отрабатывает в 99% случаев) за нужное время — заебись, нет — начинаем искать боттлнеки, и что-то менять.
>>650088
145 Кб, 999x555
#87 #650084
>>650062

Он еще и на зоне сидел, если не врет:

> Ну и взяли меня наконец. Литература там, то да се. "Зияющие Высоты", "Архипелаг", тут же и фотопленка моего изготовления - статья готова. Им-то нужен был Револьт - но на Револьта никто не показывал. Да и не Револьт вовсе мне книжки давал, без него хватало народу. Книгоношу нашу, Маргариту, тоже, конечно, схватили; на нее в Питере настучали. А на меня - по месту жительства, в Сыктывкаре. Одно время, в начале 90-х, модно было расспрашивать, а кто конкретно стучал? А зачем это вам, чтобы чувствовать себя на высоте, как бы встать рядом с теми, кто сидел, и пальцем показывать на предателей?



> Так вы хотите знать, кто предал? Да ведь вы и предали-с. Вы продали меня за относительно уютную квартирку, за стабильную получку два раза в месяц, за возможность видеть своих детей каждый вечер и отправить их летом в пионерлагерь, за обыкновенную свою жизнь - вы и продали. Вы молчали, когда нас арестовали, когда на собраниях про нас выдумывали всякую гадость, когда вас спрашивали о характере знакомства, а вы говорили, что после окончания ВУЗа ничего обо мне не слышали. Вы и предали. А кто еще? Урнышев? Что Урнышев мог предать, если он был по другую сторону невидимой баррикады? А предали - вы. И меня, и себя.



> Да ладно, дело прошлое. После почти года тюрьмы меня отправили в ссылку в Качканар, Свердловской области. Конечно, времена другие; жена со мной развелась, просто потому что я ей всю жизнь испортил. Папа-коммунист тут был ни при чем, не больно-то она к нему прислушивалась. Просто. Я только о себе и думал, а о семье не думал - вот в чем моя проблема. Семья, конечно, моего поступка не забыла, и дочь меня так и ненавидит до сих пор. Ну, это как бы положено, эдипов комплекс, я же тоже своего папу мента ненавидел лет так до тридцати с лишним.



> Математикой в Качканаре я как-то не занимался. Не совсем понятно, почему - время-то было, работал истопником, сиди всю ночь да строй свои коммутативные диаграммы. А нет, не тянуло. Может, конечно, Людка отвлекала от высоких тем. С Людкой не до математики было - у нее рот не закрывался, и все ей смешно. Почему я Людку оставил в Качканаре, почему ее с собой не взял? Думал, наверное, так: нельзя зверка из заповедника в город везти, заболеет зверок в городе и умрет. Демагогия на самом деле. Просто не к лицу, признался бы уж прямо.



http://patryshev.com/literatura/volum2/istoria_zisni.html
145 Кб, 999x555
#87 #650084
>>650062

Он еще и на зоне сидел, если не врет:

> Ну и взяли меня наконец. Литература там, то да се. "Зияющие Высоты", "Архипелаг", тут же и фотопленка моего изготовления - статья готова. Им-то нужен был Револьт - но на Револьта никто не показывал. Да и не Револьт вовсе мне книжки давал, без него хватало народу. Книгоношу нашу, Маргариту, тоже, конечно, схватили; на нее в Питере настучали. А на меня - по месту жительства, в Сыктывкаре. Одно время, в начале 90-х, модно было расспрашивать, а кто конкретно стучал? А зачем это вам, чтобы чувствовать себя на высоте, как бы встать рядом с теми, кто сидел, и пальцем показывать на предателей?



> Так вы хотите знать, кто предал? Да ведь вы и предали-с. Вы продали меня за относительно уютную квартирку, за стабильную получку два раза в месяц, за возможность видеть своих детей каждый вечер и отправить их летом в пионерлагерь, за обыкновенную свою жизнь - вы и продали. Вы молчали, когда нас арестовали, когда на собраниях про нас выдумывали всякую гадость, когда вас спрашивали о характере знакомства, а вы говорили, что после окончания ВУЗа ничего обо мне не слышали. Вы и предали. А кто еще? Урнышев? Что Урнышев мог предать, если он был по другую сторону невидимой баррикады? А предали - вы. И меня, и себя.



> Да ладно, дело прошлое. После почти года тюрьмы меня отправили в ссылку в Качканар, Свердловской области. Конечно, времена другие; жена со мной развелась, просто потому что я ей всю жизнь испортил. Папа-коммунист тут был ни при чем, не больно-то она к нему прислушивалась. Просто. Я только о себе и думал, а о семье не думал - вот в чем моя проблема. Семья, конечно, моего поступка не забыла, и дочь меня так и ненавидит до сих пор. Ну, это как бы положено, эдипов комплекс, я же тоже своего папу мента ненавидел лет так до тридцати с лишним.



> Математикой в Качканаре я как-то не занимался. Не совсем понятно, почему - время-то было, работал истопником, сиди всю ночь да строй свои коммутативные диаграммы. А нет, не тянуло. Может, конечно, Людка отвлекала от высоких тем. С Людкой не до математики было - у нее рот не закрывался, и все ей смешно. Почему я Людку оставил в Качканаре, почему ее с собой не взял? Думал, наверное, так: нельзя зверка из заповедника в город везти, заболеет зверок в городе и умрет. Демагогия на самом деле. Просто не к лицу, признался бы уж прямо.



http://patryshev.com/literatura/volum2/istoria_zisni.html
#88 #650088
>>650072

>Залупа на воротник.


Мамаше твоей тупой.

>Выигрыш если и есть, то мизерный.


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

>Про Си с асмом расскажешь посонам у падика.


Ну так это сравнение, дефектное. Хотя твой мозг даже си не потянул бы.

>за определенное время. Идиоматичный код отрабатывает (а он отрабатывает в 99% случаев) за нужное время — заебись, нет — начинаем искать боттлнеки, и что-то менять.


>за определенное время


Что и требовалось доказать, ведь мы как никак изначально говорили что это медленное дерьмище. Если уж возникает ботлнек на продакшен серверах (а у всяких банков на хорошее железо деньги есть) - такой язык дефакто медленное дерьмо.
>>650099>>650111
#89 #650099
>>650088

>Гуглу расскажи


Мамкин максималист? Про принцип Паретто слышал?

В банке не работал, а под программно-аппаратные изделия писал, да, пример оттуда.
>>650112
#90 #650111
>>650088

>такой язык дефакто медленное дерьмо


Ага, медленное дерьмо коррелирует с ЯП, лол
>>650114
#91 #650112
>>650099

>Мамкин максималист?


Конечно. Ещё и технофашист.

>Про принцип Паретто слышал?


Конеш. Только учитывая разную специфику проектов он варьируется в них так же, как и звучит.
>>650113
#92 #650113
>>650112
Вот и хорошо, ты сам признал, что выигрыш имеет место в корпорациях масштаба гугла. Интересное наблюдение, и скорее всего, бесполезное.
>>650120
#93 #650114
>>650111
Если на других яп один алгоритм реализованный идиоматичными средствами будет ощутимо быстрее - да, медленное дерьмо и %название_яп% становятся почти синонимами.
>>650123
#94 #650120
>>650113
Эээ, нет, я признал что я не терплю говна, а не то что это справедливо только к гуглу. На большей эффективности (в плане перформанса) могут выиграть не только гиганты, но и стартапы, и даже дядя-вася написавший %шареваренэйм% менее требовательным к железу.

Недавно на медиуме мелькала статья о челике, который писал что-то там о экономии на железе своего бомжестартапа благодаря C++. Аналогичных истории о том же Go - жёпой жуй.
>>650130>>650139
#95 #650123
>>650114

>Если на других яп один алгоритм реализованный идиоматичными средствами будет ощутимо быстрее


То такую реализацию никто не будет использовать. Как, например, никто не будет писать рекурсивные реализации сортировок, хотя это красиво и напрямую мапится в математическое определение.
>>650145
#96 #650130
>>650120

>экономии на железе своего бомжестартапа благодаря C++


Отлично, у чела было свободное время, которое он сконвертировал в вертикальную масштабируемость своего стартапа. Ты ведь понимаешь, что вначале он упрется в производительность бомжежелезки, а затем в производительность одной ноды, любой доступной в настоящее время конфигурации? При условии роста нагрузки, естественно.
>>650145
#97 #650139
>>650120
Я бы скорее взял такую шкалу: скриптота - vm - нэйтив код. Внутри одного уровня производительность критично не различается (речь здесь не идет про маргинальщину), бери что удобнее.
#98 #650145
>>650130

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


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

>То такую реализацию никто не будет использовать.


Нуу.. На раби с питоном тоже пишут и крупные сервисы (хотя там дело именно в скорости разработки). Так что зависимость популярности от производительности сомнительна.
>>650147>>650149
#99 #650147
>>650145

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



Где-то на этом моменте у стартапа возникают интересные вопросы с деплой автомейшн, сопровождением, набором кадров. И скорее всего просёр по экономике из-за завязки на маргинальщину.
>>650153
#100 #650149
>>650145

>уу.. На раби с питоном тоже пишут и крупные сервисы



Руби, Питон, пхп.. Львиная доля запросов дальше мемкеша не пройдет.
>>650153
#101 #650153
>>650149

>Руби, Питон, пхп.. Львиная доля запросов дальше мемкеша не пройдет.


Значит докупятся ещё 5-6 серверов, чо.
>>650147

> возникают интересные вопросы с деплой автомейшн


Какие?

>сопровождением, набором кадров


Скажи ещё что на скале больше людей пишут, или что у неё приток больше. Если относить по размерам к какому нибудь рынку Java/C# - она ещё большая маргинальщина, чем даже C стандарта 89 года.
>>650158
#102 #650158
>>650153

>она ещё большая маргинальщина, чем даже C стандарта 89 года.


Смешно же. Прямо сейчас можно взять хипстора, который будет поначалу писать как на джабе с сахарком. Спец, который будет писать на под веб на Си, притом писать непадучий безопасный код - я хз, где брать такого единорога.
>>650179
#103 #650179
>>650158

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


Не, хипсторов и прочую поеботу я бы не рискнул допускать до функционального языка. А писать на скале как на яве не получится никак. Здесь шутка про ++ и + и их типобезопасность, нытьё про хвостовую рекурсию и кучу прочего.

>Спец, который будет писать на под веб на Си, притом писать непадучий безопасный код - я хз, где брать такого единорога.


Кроме C подойдёт и любой C++ программист.
Именно парочку спецов найти вполне можно, а дальше сгодятся и макаки которые будут коммитить только через кодревью, как и везде.
>>650195
#104 #650182
>>650036
Я хуею с такого сравнения. А ничего, что в Java сортируется массив, а в "Idiomatic Scala" — односвязный список?
>>735505
#105 #650195
>>650179
Отлично. В обоих случаях имеем одного-двух рокстаров и отряд мартышек.

>будут коммитить только через кодревью


Человеческий фактор же, однажды очередная мартышка закоммитит очередной null pointer dereference, срыв стека и т.п.
>>650214
#106 #650214
>>650195
Однажды мартышка закомитит
val chlen_lenght = List('1', '2')
val hui = "5" + chlen_lenght
И получит еботню в виде 5list(1,2).
Или ещё где-то видел такую вещь, что .toSet возвращал нормальный результат, а .toSet() - Boolean.
Господи, да любое взаимодействие с явакодом требует кучи преобразований структур данных и не редко вызывает NPE.

Это так, к слову о человеческом факторе. Скала - не ява, и мартыханов с легким сердцем на неё сажать не получится.
#107 #650216
>>650214
Отсюда преимущество: приходя на проект на скале, ты скорее всего будешь работать с умными людьми, а не тупыми макаками.
Уже видел несколько проектов, которые начинали на скале именно потому, что она работает как фильтр от обезьян.
>>650281
5952 Кб, Webm
#108 #650233
— Одну минуту, — громко произнес Патрышев, — прежде чем продемонстрировать вам способ поедания борща, о котором все вы, как будто, позабыли, я должен опорожнить свой кишечник.

Вот каким образом развратник приступил к омерзительной операции. Его окружили четверо скала-петухов: один держал наготове большой ночной горшок, второй взял зажженную свечу и подставил ее поближе к анусу, чтобы было лучше видно происходящее, третий сосал ему член, четвертый, перекинув через руку белоснежное полотенце, целовал Ганди в губы. Тот, опершись еще на двоих педерастов, поднатужился, и как только появилось невероятное количество дерьма, которое обыкновенно и регулярно выдавал хозяин параши, учитывая страшное количество поглощаемого им борща, тот петух, что держал горшок, принялся восхвалять экскременты. «Какое прекрасное скала-дерьмо! — восклицал он. — Ах, господин мой, какое превосходное говно! Как красиво вы испражняетесь». Когда дифирамбы закончились, педераст, вооруженный салфеткой, языком очистил преддверие ануса, а горшечник подставил содержимое горшка под нос Ганди и опять громогласно восхвалял его. После этого мощная струя мочи ударила в рот сосателю, который тут же проглотил всю жидкость, полотенце завершило то, что не мог сделать язык, и четверо скала-петухов, оставшись без дела, долго сосали поочередно язык, фаллос и задний проход распутника.
(Автор этого поста был забанен. Помянем.)
>>650258
sage #109 #650258
>>650233
Высрался, уебок? Полегчало тебе? Нет? Попробуй в следующий раз поударяться головой о стену.
>>650270
446 Кб, 599x527
#110 #650270
>>650258

> боль JVM-мартыхана

>>650284
#111 #650281
>>650216
Ну теперь буду знать как объяснять дырки в других языках, лол.
sage #112 #650284
>>650270
Забавно серишь и обмазывешься, братишка. В /b/ или /po/ тебе были бы рады.
#113 #650322
>>650214

>5list(1,2)


Это не проблема, на самом деле. В haxe то же самое - на выходе получается строка, и тайпчекер начинает ругаться.
>>650451
#114 #650451
>>650322
И ради того чтобы больше мартых вспороло себе живот они оператором ++ складывают содержимое листа в строку.

То, что в хаксе есть то же самое - не значит что это не проблема, лол. Это проблема скрещивания java-like паттерна с перегрузкой операторов (которые, чтобы одерску выебали, не ограничены вообще никак).
>>650782>>650786
#115 #650782
>>650451
Оно просто не сконперируется, тебе же ответили.
#116 #650786
>>650451
Кстати, в Scala нет перегрузки операторов.
#117 #650793
>>633264
Сеньёр девелопер в треде, я спокоен
>>650813>>735605
#118 #650813
>>650793
Промазал? Промазал.
#119 #650819
>>650214

> Однажды мартышка закомитит


> val chlen_lenght = List('1', '2')


> val hui = "5" + chlen_lenght


> И получит еботню в виде 5list(1,2).


А что он должен был получить по-твоему? Ошибку конпеляции? Но ведь тогда мартышкам будет больно, строки не посклеивать(((
>>650822
#120 #650822
>>650819
Именно ошибку конпиляции и получит. val hui не пролезет в сигнатуру метода zalupa.chlenomer: Int
>>650824
#121 #650824
>>650822
А если это String то пролезет. Я бы всё-таки запретил складывать строки с хуйнёй, для этого есть s"${huita}"
#122 #650826
>>650824
А если String, то значит это не ошибка, а так задумано.
#123 #650829
>>650824
Я бы тоже конкатенацию запретил.
#124 #651077
>>650824
Если это String, то туда не пролезет List("5", '1', '2'). И я надеюсь, что в скалке можно задавать строки обеими кавычками, иначе вообще хуй знает, что автор этого кода хотел сделать.
>>651180
#125 #651148
>>633151 (OP)
Поясните за совместимость.

Как скала компилируется?
а) Scala --> Java byte code
б) Scala --> Java --> Java byte code

Предстоит работать с узкоспециализированным фреймворком под JVM, про поддержку Скалы ничего не известно. Может оказаться так, что я не смогу Скалу использовать?
#126 #651161
>>651148
В байт-код
>>651190
#127 #651166
>>651148
Скалу использовать сможешь в любом случае. Временами будет неудобно, когда из джавы нужно дергать скала-код и наоборот, в основном из-за преобразований типов.
>>651190
#128 #651180
>>651077
По обещаниям это типобезопасный язык - такой хуйни быть не должно.
На практике - http://ideone.com/NQDUXH

>>651148
Если нету офф. поддержки - лучше не еби мозги и не примешивай скалу (разве что только в местах не связанных с фреймворком). Работать с чем-то явным кроме стандартной библиотеки достаточно больно - уродливые конструкции и постоянные перегоны типов, убивающие нахуй производительность и память, NPE и прочая поебота.
Из самой явы - а если фреймворк чисто явный без неё не обойтись - использовать код скалы просто пиздец как больно, см. гугл.
#129 #651190
>>651161
>>651166
>>651180
Ок, спасибо ребят.
Буду тогда жаву использовать, чтобы мозги не трахать себе и коллегам.
Годный тред у вас.
#130 #651191
>>651180
А ты как хотел. В первом случае неявное приведение к String, во втором — расширение строки на Seq. В реальном коде от такого можно огрести только если слепо полагаться на вывод типов и не продумывать интерфейсы. За программирование без проектирование интерфейсов принято бить канделябром.
#131 #651352
>>651180

>По обещаниям это типобезопасный язык - такой хуйни быть не должно.


Ты в List[Any] что угодно запихнуть можешь, о какой типобезопасности речь идет?

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


Какие уродливые конструкции? Зачем перегонять типы, можно просто джавовые использовать? Про NPE вообще пушка, как будто в джаве их не будет. В скале хотя бы null'ы из библиотеки можно в Option'ы завернуть. Обёртки и для перегонов типов актуальны, кстати, тут нужно на влияние на производительность смотреть.
В общем, в 2016-ом единственная причина не использовать Скалу - недостаток программистов и/или неуверенность в них.
>>651489
#132 #651489
>>651352
Я не >>651180, но иди-ка ты нахуй.
Сам-то пробовал мешать скалу с джавой или писать на скале под джавовый фреймворк?

Очень блядь охуенно удобно передавать List[Int] в джавовый метод, ожидающий Collection[Integer]:
ololo.setIds(ids.map(_.asInstanceOf[Integer]).asJava)

А особенно я люблю, когда нужно передать лямбду.

Щас ты, конечно, предложишь обмазаться имплиситами с головы до ног, на что я тебя обозву червем-пидором и пошлю еще дальше нахуй, потому что сам в таком коде разбирайся, сука.
>>651886>>651906
#133 #651512
>>651180

>На практике


Теперь создай функцию, которая принимает List[Char] (или это String у вас?), и попробуй передать в неё "lol" + kek.
#134 #651886
>>651489

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


Нет, не предложу, я же не даун.
Предложу:
1) Сделать так чтобы значение ids имело тип Collection[Integer]
2) Вынести преобразование типов в обёртки, то есть метод setIds принимал List[Int] + null'ы туда же
Или еще что-то зависящее от конкретного случая.
#135 #651906
>>651489

> А особенно я люблю, когда нужно передать лямбду.


Жди 2.12

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


Неосилятор закукарекал.
#136 #651909
>>633151 (OP)
Scala - это когда здравый смысл подсказывает, что можно использовать продвинутый язык, но опыт в энтерпрайзе подсказывает, что "серьёзный" язык должен обязатель быть с привкусом говна.
Scala - это когда когда в промышленных библиотеках эмулируются наиболее сложные паттерны Хаскеля посредством ональных трюков, при том что даже в самом Хаскелле, заточенном под эти паттерны, они считаются сложными и применяются ограниченно и с крайней осторожность в библиотеках с тегом experimental.
Scala - это способ выебнуться, "потому что можем!" Похуй, насколько сложно этим пользоваться, насколько не подходит это языку, но ведь можем же! В лечении зубов через ональное отверстие Скала на первом месте.
Scala - это фанбои, которые открыли для себя тайпчекер и теперь тайпчекают, скажем, диррективы в спрее (где всё равно практически невозможно ошибиться, а война с тайчекером - там боль на ровном месте), но при этом пишут безтиповую акку.
Scala - это когда паттерны динамического языка засовывают в статический (акка), в результате программист вынужден пидорасить классы для входящих и исходящих сообщений, которые нигде не используются. Ну т.е. взяли всё худшее из динамических языков (отсутсвие типизации), смешали со всем худшим из статических языков (необходимость явно описывать типы), получилась типичная библиотека Scala.
Scala - это безумное время компиляции, и безумный расход памяти при исполнении. И еще - Scala это один из немногих языков, где как нехуй делать получить null pointer exception, при том, что null-ов в Скале вроде как нет. Ну просто из-за особенностей порядка инициализации полей.
Scala - это когда eDSL-ем на порядок сложнее пользоваться, чем самим языком, для которого этот eDSL построен (см. slick). Scala, это когда язык с менее продвинутой системой типов (C# LINQ) делает всё то же самое существенно удобнее, чем более "продвинутая" Скала.
Scala - это когда надо освоить Хаскель на продвинутом уровне, чтобы программировать на Скале. Scala - это когда у высококлассных хаскеллитов есть шанс разобраться во всех её изъёбствах опираясь на свой бекграунд, а вот как поступать быть обычному программиту, который всю жизнь на Джеве программировал, с этим криптохаскелем, совершенно не понятно, и скалафанбоев, похоже, не ебёт.
Вот это и есть Скала, это вот всё.
#136 #651909
>>633151 (OP)
Scala - это когда здравый смысл подсказывает, что можно использовать продвинутый язык, но опыт в энтерпрайзе подсказывает, что "серьёзный" язык должен обязатель быть с привкусом говна.
Scala - это когда когда в промышленных библиотеках эмулируются наиболее сложные паттерны Хаскеля посредством ональных трюков, при том что даже в самом Хаскелле, заточенном под эти паттерны, они считаются сложными и применяются ограниченно и с крайней осторожность в библиотеках с тегом experimental.
Scala - это способ выебнуться, "потому что можем!" Похуй, насколько сложно этим пользоваться, насколько не подходит это языку, но ведь можем же! В лечении зубов через ональное отверстие Скала на первом месте.
Scala - это фанбои, которые открыли для себя тайпчекер и теперь тайпчекают, скажем, диррективы в спрее (где всё равно практически невозможно ошибиться, а война с тайчекером - там боль на ровном месте), но при этом пишут безтиповую акку.
Scala - это когда паттерны динамического языка засовывают в статический (акка), в результате программист вынужден пидорасить классы для входящих и исходящих сообщений, которые нигде не используются. Ну т.е. взяли всё худшее из динамических языков (отсутсвие типизации), смешали со всем худшим из статических языков (необходимость явно описывать типы), получилась типичная библиотека Scala.
Scala - это безумное время компиляции, и безумный расход памяти при исполнении. И еще - Scala это один из немногих языков, где как нехуй делать получить null pointer exception, при том, что null-ов в Скале вроде как нет. Ну просто из-за особенностей порядка инициализации полей.
Scala - это когда eDSL-ем на порядок сложнее пользоваться, чем самим языком, для которого этот eDSL построен (см. slick). Scala, это когда язык с менее продвинутой системой типов (C# LINQ) делает всё то же самое существенно удобнее, чем более "продвинутая" Скала.
Scala - это когда надо освоить Хаскель на продвинутом уровне, чтобы программировать на Скале. Scala - это когда у высококлассных хаскеллитов есть шанс разобраться во всех её изъёбствах опираясь на свой бекграунд, а вот как поступать быть обычному программиту, который всю жизнь на Джеве программировал, с этим криптохаскелем, совершенно не понятно, и скалафанбоев, похоже, не ебёт.
Вот это и есть Скала, это вот всё.
>>651923>>756507
#137 #651923
>>651909

> боль неосилятора


Кек.

> акка


Для кого akka-streams сделали? А ну пошёл говно чистить

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


Манямирок, вкатился в скалу почти без опыта в джяве.
>>651931>>651996
#138 #651931
>>651923
Akka-streams - это тот случай, когда akka-долбоёбы героически решают созданную ими же проблему отсутсвия back-pressure и отсутсвия типизации посредством написания могущественного фреймворка над лучезарным фреймворком. Короче, сами создали проблему, сами её и порешали спустя три года, "яичко испечет да сам и облупит." Охуенные самодостаточные программисты.
>>651935
#139 #651935
>>651931

> пок пок кукареку мне лишь бы кукарекать


Понятно
>>651939
#140 #651939
>>651935

>мне лишь бы кукарекать


Ничего страшного, просто ты петух)
>>651991
#141 #651991
>>651939
Лол, опущенное чмо с петушиной аватаркой продолжает копротивляться.
#142 #651996
>>651923
Двачую, на мерзкой джабе не писал не дня, сразу взял скалу.
>>652000
#143 #652000
>>651996
*ни дня
#144 #660919
нафаня в треде
правда ли что с появлением java 8 смысл существования скалы уничтожился?
>>660926
#145 #660926
>>660919
В скале конечно смысла не много кроме мастурбации на самого себя, но нет, лол.
>>660927
#146 #660927
>>660926
то что появился функционализм в жаве8 разве не убивает ли жанр конкурентов жавы на этом поприще(котлины, скалы)?
или в чем тогда смысл скалы(искренне был уверен что это такая ФП-джава и все)
>>660935>>663921
#147 #660935
>>660927

>то что появился функционализм в жаве8 разве не убивает ли жанр конкурентов жавы на этом поприще(котлины, скалы)?


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

>или в чем тогда смысл скалы(


Как и любого функционального языка - если у тебя есть ахуенная команда сеньёров помидоров - делать быстро ахуенные продукты (как это получилось у Тинькофф-а). Если у тебя её нету - делать нерабочее говно, которое никогда не выйдет в продакшен и дрочить на свою самооценку за мамкиным борщём.
>>660938>>663921
#148 #660938
>>660935
спасибо! ухожу греть борщ
#149 #663921
>>660927
Не убивает, чуть-чуть ранит только.
http://fsharpforfunandprofit.com/posts/is-your-language-unreasonable/
>>660935
Два чаю.
#150 #670477
Есть одна древняя cms на жаве и есть одна пхп макака на которую скинули задачу поправить одну хуйню. Хуйня находится в skala файле, и нужно этот скала файл как нибудь отдебажить. Но тут есть одна проблема, я до этого ни разу не работал с жавой и всем, что с ней связано, и я блядь даже понятия не имею как эту хуйню отдебажить. Исходников самой cms нет, а компиляция scala файлов запускается из админки с неизвестными мне параметрами. Так вот, возможно ли как нибудь вручную добавить breakpoint? А может в skala есть что нибудь похожее на вардамп?
>>670492
#151 #670492
>>670477
Чё? В IntelliJ IDEA брейкпоинт ставишь и жмёшь дебаг
>>670508
#152 #670508
>>670492
Я походу недостаточно понятно объяснил, извиняюсь. Если я правильно понимаю, для того чтобы IntelliJ IDEA смог зафиксировать брейкпоинт, нужно чтобы он этот файл скомпилил. Но в моем случае это не возможно, так как долбаная cms компилит все skala файлы сама и собирает их в один jar файл, который потом и юзает. Сам я никак собрать этот файл не могу, так как в него собирается овер дофига skala файлов разбросанных по всему проекту.
>>670600>>670786
#153 #670600
>>670508
Сейчас поймал себя на мысли что за 3 года работы со скалой пользовался дебаггером раз 10 наверное, в основном когда с рефлексией что-то делал. Прочитай код, пойми его и поменяй. Зачем сразу в дебаггер лезть? Работаем методом тыка?
#154 #670786
>>670508

> долбаная cms


Ну запусти её из под IDE в дебагере. Или сделай хуйню вроде https://stackoverflow.com/questions/21114066/attach-intellij-idea-debugger-to-a-running-java-process
36 Кб, 600x600
#155 #673005
Как комьюнити относится к kotlin? (без сырказма)
#156 #673008
>>673005
На ведре позитивно, но пока 2.5 конторы юзают его для продакшена, на бэкенде нахуй никому не уперлось.
>>673155
#157 #673028
>>673005
Хороший кетчуп, мясо им поливаю, вкусно.
#158 #673155
>>673008
1 контора
#159 #673279
>>673005
Сначала котлин заинтересовал, есть несколько вещей, которые выглядят приятнее чем в скале, но когда попробовал - разочаровался. Имхо, основной недостаток - это отсутствие паттерн-матчинга, а из этого уже вытекают хуита вместо опшнов, бесполезные дата-классы и костыльная "деструктуризация" и т.д.
Ну и плюс недоделанные коллекции, местами ебнутый синтаксис (делегация через by не читается вообще, а костыль с ее использованием для ленивости - всем костылям костыль), слишком много новых ключевых слов для простых вещей.

Единственное применение, которое я вижу котлину сейчас - это андроид, пока его не перевели на OpenJDK (то есть через пару лет и в этой нише котлин будет не нужен).
На сервер-сайде же уже полным ходом юзают восьмую джаву, при том многие индусы и ее лямбды восприняли в штыки как что-то слишком сложное, так что котлину с его "типа лучшая джава"-ориентацией ничего не светит. Те же, кого джава реально не устраивает, уже перешли на скалу и смотрят на котлин с недоумением.
>>673385
#160 #673385
>>673279

> пока его не перевели на OpenJDK


Ты правда думаешь что Java 8,9,... будет лучше котлина?
Уже давно кто хотел перешли на retrolambda и все равно это жалкая тень котлина.

Тем более 99% девайсов не обновятся до нового андроида, а их нужно поддерживать.
>>673438
#161 #673438
>>673385

> Ты правда думаешь что Java 8,9,... будет лучше котлина?


Не лучше, но для большинства - достаточно.

> Тем более 99% девайсов не обновятся до нового андроида, а их нужно поддерживать.


Ну да, не обновятся. Просто отомрут за пару лет так же, как умерли девайсы на 2.х, в которых у Стринга были не все методы. Гугл может даже просто добавить поддержку java8 в компиляторе, не меняя формат байт-кода, и добавить compatibility library с новыми классами, как когда-то сделал с фрагментами, тогда счастье восьмерки снизойдет даже на Jelly Bean.
>>673518
#162 #673518
>>673438

> Ты правда думаешь что Java 8,9,... будет лучше Scala?


Не лучше, но для большинства - достаточно.

/тред
>>673571>>674060
#163 #673571
>>673518
Нет. Ниша тех, кому недостаточно, как раз занята скалой. А вот котлин опоздал.
#164 #674060
>>673518
Скала вообще другой язык, делящий с джявой только виртуальную машину
>>674182>>674214
#165 #674182
>>674060
Двачую этого. Индусы и в жяве лябды в штыки восприняли - ведь СЛОЖНА. Ни о какой пересекающейся области речи идти и не может.
#166 #674214
>>674060
Тричую, нафиг нам совместимость с жабой, еще зашкваримся об нее.
Лучше все проекты/библиотеки с нуля перепишем.
>>674361
#167 #674361
>>674214
Как ты мог заметить, петух, совместимость де-факто только в одну сторону, чтобы можно было безболезненно забрать библиотеки с джявы и выкинуть её нахуй.
#168 #676677
Если я на уроках математики спал, мне в скалу лезть вообще не стоит?
>>676854
#169 #676854
>>676677
Откуда вообще взялся пиздёж про то что программирование связано с математикой?
>>677002
#170 #677002
>>676854
Ну функциональное программирование это не классы наклепать и уйти кофе пить.
>>677013
#171 #677013
>>677002
И чем оно сложнее?
#172 #677031
Где можно использовать скалу? Что надо попутно учить чтобы найти удаленку?
То есть мне понятно где можно использовать Джаву (тырпрайз, андроид, бекенд), пхп, руби, питон. А вот скалу где?
>>677224
#173 #677224
>>677031
Везде

>тырпрайз, андроид, бекенд, фронтенд


Разве что драйвера и ОС не напишешь
#174 #677401
Денис пидораска.
#175 #681171
Бумп
#176 #684006
Доброго времени суток треду, есть здесь кто-то кто работал с play+akka+slick+oracle+postgresql?

Суть вопроса такова. Если примеров для использования slick в play хоть завались и ничего сложного в этом в принципе нет, то что касается SLICK EXTENSIONS, в частности com.typesafe.slick.driver.oracle.OracleDriver то здесь начинаются проблемы. Может кто-то поделиться годным мануалом по эксплуатации или хотя бы указать направление в котором копать.

Заранее спасибо.
>>684025
#177 #684025
>>684006
Ну наверно надо вписать что-то вроде
import slick.driver.OracleDriver.api._
А дальше писать ту же хуйню что и для других баз
>>685226
#178 #685226
>>684025
Боюсь, что нет. Как минимум TableQuery не получится проинициализировать. И описание таблицы не сделаешь, т.к. нет типичныхметодов, как для открытых драйверов бд.
На данный момент закостылил объектом с java методами и необходимой обёрткой, но всё же хотелось бы иметь гомогенную механику работы с бд.
>>685496
#179 #685496
>>685226
Их вроде делают опенсорсом, наверно тогда же будет и документация http://slick.typesafe.com/news/2016/02/01/slick-extensions-licensing-change.html
#180 #685757
Озадачился вопросом необходимости IO монады в императивных/мультипарадигмальных языках.
После прочтения этого http://blog.higher-order.com/assets/scalaio.pdf и этого https://apocalisp.wordpress.com/2011/12/19/towards-an-effect-system-in-scala-part-2-io-monad/ вроде сложил в голове определённую картинку. Но всё равно не покидает стойкое ощущение того, что за всеми красивыми словами типа "Separation of I/O code from logic" и "Algebraic reasoning" на деле не стоит нихуя и мне просто предлагают бесплатно попердолиться с обмазыванием всего Real World кода в IO.

Ну и опять же, на реализации в виде
class IO[A](run: () => A)
ещё все понятно, типа все потенциально грязные действия делать отложенными и запаковывать в IO контейнер, пробрасывая их наверх. В идеале main - единственное место где будет выполнено unsafePerformIO, где все эти экшоны и будут запущенны. Ну это в теории. А на практике непонятно как скалац разрулит все эти отложенные экшоны по требованию и вообще непонятно нахуй это всё надо.

Ещё более я охуел, когда увидел реализацию типа
class IO[A] (run: RealWorld => (A, RealWorld))
это что они предлагают RealWorld везде таскать с собой, как с линейными/афиными типами? ЭТож тупо неудобно нахуй.

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

В общем, есть тут те кто активно юзают IO монаду в скале чтоб пояснить мне долбоёбу с вертушки в щи как это всё говно по уму делается и так ли вообще эта IO монада нужна?
>>686057>>686473
#181 #686057
>>685757
А в скале ленивое IO?

мимо не могу в скалу из-за уродливого синтаксиса
#182 #686114
Как вы на скале вообще пишете? Зашёл в местную доку, и понял что кому–то таки удалось высрать что-то страшнее C++.
>>686188>>686473
sage #183 #686188
>>686114
Мартин старался
#184 #686473
>>685757
Нет смысла использовать IO в скале. Основная причина в том что тебе придётся весь библиотечный код (что на джаве написанный, что на скале) обмазывать обертками, чтобы понимать где возращается T, а где IO[T]. По той же причине scalaz Task мало где используется, но там хотя бы можно написать преобразования из Task во Future и наоборот.
Еще одна причина в том что если у тебя много действий в IO у тебя из-за вложенных flatMap'ов переполнится стекэто может случиться и с любой другой монадой, но в IO/ST проблема более вероятна. Разруливается trampolining'ом, но это очевидно не эффективно.
Третья причина - чистый IO это не scala-way. Не нужно делать из скалы хаскель или джаву или еще какой язык. Хочешь побыть пуристом - просто используй Хаскель, там вся инфраструктура под это заточена.
>>686114
Скала на порядок проще C++ как по стандарту, так и по использованию, а использование библиотек проще чем кажется.
#185 #686597
>>633573
От кейворда вся польза в том, что аргументы для распределений называются lambd вместо lambda. Когда нужна функция с замыканием, все равно приходится писать def.
>>686982
#186 #686982
>>686597

>24/01/16


Ну нихуя ты археолог. Лямбды и замыкания - всё-таки разные вещи.
#187 #687503
Анон, вкатываюсь в скалу, подскажи где совсем плохо и вообще допускается ли такое писать. В какую сторону копать? Скалу для нетерпеливых штудирую.
Собственно паста:
http://pastebin.com/gK6YpvSd
>>687523>>687590
#188 #687523
>>687503
Откуда вкатываешься? Где это еще до сих пор не знают об автоформаттере?

{
case s => Future(s)
case _ => Future("Error")
} - это лол. Эррора не будет никогда, ведь на s заматчится что угодно. flatMap и map здесь лучше заменяить на for comprehension, станет сразу понятнее что здесь происходит.

Переменные f, q, s, i = очень, блядь, информативные имена.
class smsApi - хули имя класса с маленькой?
Почему getState растянул на три строки? def getState(arg: String) = ""
Вместо try { ... } catch { вернуть волшебную константу } лучше использовать Try и матчить Success/Failure.
if (map.contains(value)) { doSomething(map(value))} else {...} - тоже не scala way. Лучше map.get(value).map(blabla).getOrElse(...)

Гугли цикл статей "Neophytes guide to scala", там описывается как избежать ровно таких костылей, как у тебя.
>>687541
#189 #687541
>>687523
Вкатываюсь из скриптоты. Опыта чуть больше двух недель. Курс нагуглил. Полуркаю. Спасибо.
#190 #687590
>>687503
Я бы написал нечто вроде такого (пример не скомпилится): http://pastebin.com/K1nw23KG.
Что не так:
- ты используешь DI, но руками соаздешь инстанс smsApi (нужно инжектать через конструктор контроллера)

- имя класса с маленькой буквы smsApi (вспомни/почитай жаба код конвеншн)

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

- парсинг json-a в модель делается через BodyParsers: https://www.playframework.com/documentation/2.5.x/ScalaBodyParsers. Примерно так:
def modelParser[M](implicit r: Reads[M]) =
parse.using[M] { implicit request =>
val errorParser = parse.error[M](Future.successful(BadRequest("")))

request.contentType.map(_.toLowerCase) match {
case Some("text/json") | Some("application/json") =>
jsonParser[M]
case _ =>
logger.warn(s"Couldn't parse request. Invalid content type. " +
s"Request: $request. Headers: ${request.headers}")
errorParser
}
}

- бесполезный кусок кода, который ничего не делает:
val q = f.flatMap {
case s => Future(s)
case _ => Future("Error")
}

- invalidReq. Вместо этой функции нужно заимплементить кастомный ErrorHandler: https://www.playframework.com/documentation/2.5.x/ScalaErrorHandling
#190 #687590
>>687503
Я бы написал нечто вроде такого (пример не скомпилится): http://pastebin.com/K1nw23KG.
Что не так:
- ты используешь DI, но руками соаздешь инстанс smsApi (нужно инжектать через конструктор контроллера)

- имя класса с маленькой буквы smsApi (вспомни/почитай жаба код конвеншн)

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

- парсинг json-a в модель делается через BodyParsers: https://www.playframework.com/documentation/2.5.x/ScalaBodyParsers. Примерно так:
def modelParser[M](implicit r: Reads[M]) =
parse.using[M] { implicit request =>
val errorParser = parse.error[M](Future.successful(BadRequest("")))

request.contentType.map(_.toLowerCase) match {
case Some("text/json") | Some("application/json") =>
jsonParser[M]
case _ =>
logger.warn(s"Couldn't parse request. Invalid content type. " +
s"Request: $request. Headers: ${request.headers}")
errorParser
}
}

- бесполезный кусок кода, который ничего не делает:
val q = f.flatMap {
case s => Future(s)
case _ => Future("Error")
}

- invalidReq. Вместо этой функции нужно заимплементить кастомный ErrorHandler: https://www.playframework.com/documentation/2.5.x/ScalaErrorHandling
>>687593>>687604
#191 #687593
>>687590
Блядь, распидорасило код и ссылки. Надеюсь, суть уловишь:
http://pastebin.com/K1nw23KG
https://www.playframework.com/documentation/2.5.x/ScalaBodyParsers
>>687595
#192 #687595
>>687593
Спасибо, и это пораскуриваю.
#193 #687604
>>687590

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



Ещё вот такой вопрос. Если я предполагаю что действий будет достаточно много, а условие таково, что они завёрнуты в json как лучше поступить? Просто я предполагаю, что если у меня роуты представлены точкой входа для api в контроллере, то не придётся писать портянку разных роутов на все случаи жизни. Я не утверждаю, что так верно, просто интересно.
>>687610
#194 #687610
>>687604
Тебе все равно где-то придется мапить строковое название экшна на некоторый метод. Либо через роуты, либо фабрикой как у тебя. Я бы предпочел это делать через роуты и убрал название экшна из json-а.
>>687628
#195 #687628
>>687610
Если у твоего приложения единая точка входа, и туда шлются все запросы и нет возможности на это повлиять, то можно изъебнуться с Play Http фильтрами и редиректить запрос на нужный роут. Можно поставить какой-нибудь прокси сервер, который будет парсить json и, в зависимости от экшна, слать запросы на нужные роуты.
>>687638
#196 #687638
>>687628
Фактически я переписываю на scala приложение, которое писалось ранее. Идея была в том, что существует несколько приложений, которые общаются друг с другом и с клиентом по унифицированному RFC JSON, как средство доставки используется HTTP и WS(там где нужна дуплексная связь). Они висят в разных контроллерах как независимые приложения. На каждый контроллер свои маршруты: маршруты которые генерируют на выходе html для авторизованного и не авторизованного пользователя и маршруты которые используются для RFC JSON собственно, так же, для авторизованного и не авторизованного пользователя. В целом такой подход вроде бы больше всего похож на микросервисы. Возможно этим объяснится такой странный подход.
>>687642
#197 #687642
>>687638
Понятно. Я почему-то подумал, что ты в качестве обучения разрабатываешь какое-то новое приложение и нет жестких ограничений по протоколам. В твоем случае можно и фабрику оставить или использовать один из перечисленных выше приемов (или придумать что-то новое).
>>687643
#198 #687643
>>687642
В принципе можно сказать, что и для обучения. Т.к. до тех пор, пока я не буду уверенно себя чувствовать в scala и вообще понимать что происходит, ни о каком переезде на прод речь безусловно не идёт. То, на чём я писал себя исчерпало, да и возможность сейчас есть переползать сюда. Ещё раз спасибо за ответы.
#199 #687948
Тем временем
https://scala.epfl.ch/
#200 #688017
Где можно посмотреть примеры идиоматичного scala-кода?
#201 #688802
>>688017
На курсах Одерского
#202 #688813
>>688017
Одерский вот здесь рассказывает когда какой подход применять: https://www.youtube.com/watch?v=kkTFx3-duc8
Есть классные статьи именно об идиоматичном использовании скалы "Neophtyte's guide to scala".
Вот статья вроде выглядит полезной, но я ее пока не читал: http://www.lihaoyi.com/post/StrategicScalaStylePrincipleofLeastPower.html
>>689572>>696540
#203 #689153
>>688017
исходники shapeless
>>689250
#204 #689250
>>689153
Спустил HList тебе за щеку, изучай исходники.
>>689267
#205 #689267
>>689250
Идиоматично ты должен был не спустить, а сконкатенировать.
>>689275
#206 #689275
>>689267
Проиграл. Внимание, серьезный вопрос - shapeless - это такой местный троллинг нубов? он ведь вроде как если не предан анафеме анонами из числа создателей компилятора, то, как минимум, сильно нерекомендован
>>689281
#207 #689281
>>689275
С чего бы им предавать его анафеме? shapeless - просто пример впихания в скалу не совсем впихуемого. HList - просто типобезопасный список произвольной длины. Скала такое не умеет искаробки, вот и изъёбывался профессор джва года, целое паблисити себе сделал на такой-то хуите. Ну и наговнокодил в процессе ояебу.
>>689285>>689572
#208 #689285
>>689281
Типобезопасный гетерогенный список произвольной длины.

Нет, не анафеме, просто весьма авторитетные деятели часто пишут - сто раз подумайте, прежде чем начать использовать эту ъуйту.
>>689290>>689572
#209 #689290
>>689285
Использовать-то почему бы и не, все равно почти всё compile-time.
>>689572>>689576
#210 #689572
>>689285
Типобезопасный гетерогенный список произвольной фиксированной длины.
>>689281

>профессор


Кто это? Разве Miles Sabin профессор?
>>689290
Слишком мощная штука, см. >>688813

>http://www.lihaoyi.com/post/StrategicScalaStylePrincipleofLeastPower.html

#211 #689576
>>689290
Почему бы не сделать C++ по затратам времени на компиляцию из жвм язычка.
#212 #691645
Тут есть аноны, кто пользовался Scala IDE для средних / крупных проектов ? На сколько хуже Scala плагина для IDEA ?
Стоит ли вообще скачивать и запускать это поделие (перекатился с эклипса на идею около 3-х лет назад) ?
#213 #693397
>>691645
Попробуй и узнаешь
#214 #693877
>>691645
работает кое-как на самом деле но идею не щупал
#215 #693954
>>691645
Почему бы не использовать Intellij IDEA?
>>694154
#216 #694154
>>693954
Я и использую. Просто подумал, раз Scala IDE официально поддерживалась тайпсейфом, то они могли сделать неплохую бесплатную IDE.
А по поводу IDEA - JetBrains охуел. Не успел приобрести подписку на 15 версию и попользоваться 3 месяца, как выпускается 2016 версия и будьте добры приобрести новую подписку.
409 Кб, 1000x625
#217 #694456
>>694154

> Не успел приобрести подписку на 15 версию и попользоваться 3 месяца, как выпускается 2016 версия и будьте добры приобрести новую подписку.


Всё правильно сделали, тупого гойского лоха грех не наебать.
>>694952
#218 #694478
>>694154
Для вас уже весь джетбрейнс покрякали вплоть до крякнутого локального сервера, а вы все ноете
>>694572>>694952
#219 #694555
>>694154
Ташемта подписка от 15 работает на 16. Через год только, если зажать 50 баксов, придётся крякнуть откатиться на 15.
>>694952
#220 #694572
>>694478
Кстати, а стоит ли обновляться если я использую 0.идея.ланьюс.ком? Эту хуйню не пофиксили?
>>694603
#221 #694603
>>694572
Да какая разница что там пофиксят, её за 15 минут снова взломали бы.
>>694952
#222 #694952
>>694456 >>694555 >>694478 >>694603
Вся суть скала-питухов - нет денег даже на иде.
>>694957>>695506
#223 #694957
>>694952
Вся суть местных – ломать бесплатный продукт за тим-фичи которыми всё равно не будешь пользоваться.

И да – идея по сравнению с эклипсом сосёт как по возможностям работы с кодом, скорости работы и багам в indelij-евском скалаплагине, как эклипс сосёт по ущербности своего гуя.
>>694978>>695502
#224 #694978
>>694957

>тим-фичи


Типа database плагина, да

>багам в indelij-евском скалаплагине


Тут его автор пробегал, говорит, скала говно, он бы лучше котлин пилил. Но, видимо, не дали, поэтому ненавидит свою работу и старается нассать клиентам в суп как может.
>>695015>>696135
#225 #695015
>>694978

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


Наш человек.
мимо
#226 #695502
>>694957

> Вся суть местных – ломать бесплатный продукт за тим-фичи которыми всё равно не будешь пользоваться.


Жалкие самоутешения пользующегося огрызком.
#227 #695506
>>694952

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


Ясно
>>695699
#228 #695699
>>695506
Они же из питерских, этим все отдают деньги.
#229 #695806
котаны, есть код с книжки

[code lang="scala"]
object Demo {
def map[A, B](xs: List[A], f: A => B): List =
for (x <- xs) yield f(x)
def flatMap[A, B](xs: List[A], f: A => List): List =
for (x <- xs; y <- f(x)) yield y
def filter[A](xs: List[A], p: A => Boolean): List[A] =
for (x <- xs if p(x)) yield x
}

[/code]

почему flatMap возращает список, а не список списков?
>>695901>>696111
#230 #695901
>>695806
Ну наверно потому что в этом суть префикса flat?
#231 #696111
>>695806
Наркоманские у тебя книжки. Зачем они делают def map(xs, f) = xs map f ?
>>696132
#232 #696132
>>696111
Упоролся? В книжке приведен эквивалентный код для map flatMap filter, чтоб нубам не было нипонятно шо це за магия такая.
>>696525
#233 #696135
>>694978

>Тут его автор пробегал


>JetBrains


>сосач


Ага, а военачеры уверены, что к ним забегает Рогозин и иногда Димон. ебаные накроманы-аутисты
>>696221>>711189
#234 #696221
>>696135
Так над ним рандомный макак работает, ебанашка.
А здеся и следы разных знаменитостей бывали, ничего удивительного в этом нету.
>>696357>>696361
#235 #696357
>>696221

> рандомный макак


> макак


Ага, макак писал парсер языка, хитровыебанней крестов по синтаксису и семантике, макак писал плагин, который разбирает цепочки map filter fold и прочего, и адекватно предлагает упрощенные варианты выражений. И вообще статический анализ в нем очень нехуевый. Макак. Не думаю, что даже единицы из зекача так живут.
>>696451
#236 #696361
>>696221

>следы разных знаменитостей бывали


Лол. Профиль Дмитрия Маликова с жидхаба?
#237 #696451
>>696357
Ты так говоришь, будто осиливший Ахо уже никогда не зайдёт на зекач даже просто чтоб кого-нибудь обоссать и самовыразиться. и да, хуле там синтаксис, парсер и AST уже есть в родном конпеляторе
#238 #696525
>>696132
Типа, нуб лучше понимает for comprehension, чем map flatMap filter? Да ну нахуй.
>>696584
#239 #696540
>>688813
Чё он шпарит с акцентом? Я думал он американец.
>>696804
#240 #696584
>>696525
for comprehension можно объяснить на пальцах, и далее, используя этот концепт, показывать более сложные сущности.
#241 #696804
>>696540
Немец же, ебан
#242 #698818
>>633214
Однострочные лямбды на пидоне, молодец, умница, а теперь иди нахуй.
#243 #699049
Сижу как сыч без документации. Поставил scala плагин на idea, скачал sdk, там внутри есть все джарки с документацией, но идея ее не показывает. Происходило ли с тобою такое анон?
>>699425
#244 #699425
>>699049
Ты используешь сбт? Включил "скачивать документацию и исходники"?
>>699503
#245 #699503
>>699425
Нет, выбрал в списке вариантов просто scala(там было и сбт), странно что доки вроде как прикреплены к скала сдк(если отредактировать зависимость scala sdk в идее), а идея все равно хуй показывает инлайн документацию.

Сейчас создал sbt проджект, нихуя ваша симпл тул засрала папку с проектом. Но сейчас доки показывает и вообще походу тула весь scala sdk еще выкачала, похуй что у меня уже установлено.
#246 #700742
Так, парни, изучаю Functional streams , бывший скалаз-стримс https://github.com/functional-streams-for-scala/fs2

Есть идеи че б написать что б на практике навыки применить:
>>700921>>704986
#247 #700921
>>700742
Там знак вопроса конце потерялся.
#248 #704986
>>700742
Кластер метапарадигм
#249 #705351
Можно ли за выходные более менее освоиться с основами языка?
Знаю только питон и джаваскрипт.
#250 #705410
>>705351
Можно, если найдёшь годное интро не найдешь нихуя
#251 #705413
>>705351
Были бы за плечами лиспохаскелеокамлы, или хотя бы мозгоплавящее говно вроде плюсов - освоил бы. А так за выходные ты разве что статическую типизацию потыкаешь.
#252 #705548
>>705351
Синтаксис освоишь, учи, пробуй.
#253 #706671
Есть один метод
test(thing: Openable)
Openable - трейт.
Есть классы Book и Door реализующие этот трейт.
Как в методе проверить, не Book ли thing.
Вкатываюсь с шарпа, заметил отсутствие опретатора is.
>>706680>>707438
#254 #706680
>>706671
Паттернматчингом
#255 #707438
>>706671
Если тупо в одном ифе проверить, то thing.isInstanceOf[Book]
Для более общих вещей таки паттерн-матчинг предпочтительнее.
#256 #708896
Анончики, есть поле с размерами sizeX и sizeY и массив кортежей (x,y) которые должны быть на поле, нужно весь field конвертировать в строку чтобы строки поля разделялись \n, а в нужных коордионатах стояли *. Написал функцию на этом божественном языке, но чуичка что быдлокод и можно сделать проще@лучше
http://pastebin.ru/PbjfoN51
Подскажи более грамотное решение анон.
>>709853
#257 #709853
>>710520
#258 #710520
>>709853
Спасибо анон, в самую суть.
#259 #711189
>>696135
И хуле такого? У меня несколько одногруппников работают в джетбрейнс, один из них котлин делает. Основной пропихиватель котлина, Андрей Бреслав, был учителем в моей школе. Мир тесен. Вполне могут двачевать.
#260 #711230
>>711189
Далеко не все знают про двачи, а тем более, заходят. Ждать, что твой школьный учитель заходит в /зк/ - что ждать Димона в /вм/-е
#261 #711285
>>711189
Спасибо, Анон, теперь я знаю, что в сторону Котлина можно не смотреть.
#262 #711286
>>711189

> один из них котлин делает


Тащи его сюда, у меня куча вопросов есть про язык
>>711306
#263 #711292
>>711189

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


>Основной пропихиватель котлина, Андрей Бреслав, был учителем в моей школе


Один из этих пидоров форсит своё поделие на весь зекач. Передай обоим, что они заебали.
>>711306
#264 #711306
>>711292
Нет, это я >>711286
И я вроде бы много раз говорил что работаю Android разработчиком, а JB не занимаются мобилками.
>>711307
#265 #711307
>>711306

>анонимная имиджборда


>я много раз говорил


Да ты же поехавший.
#266 #712102
Скаланы, есть один объект: Any (десериализован из xhr), в может быть структура {user: {email: "текст сообщения об ошибке валидации"}}, и может и не быть (хрен там знает, что выдаст бекенд). Как мне сделать сопоставление с образцом и выдернуть .user.email? Можно ли это сделать паттернматчингом, или нужно пердолиться с Dynamic или рефлексией?
>>712105>>712119
#267 #712105
>>712102

> Any


Что, простите? Не может быть объектов такого класса.
Чем десериализуешь? Где код?
>>712123
#268 #712119
>>712102
А в чем проблема десериализовать сразу в нужный класс?
>>712124
129 Кб, 1144x670
#269 #712123
>>712105

>e.xhr.response


Вот здесь scalajs.dom.raw.js.Any

>@ScalaJSDefined


>trait Any extends scala.AnyRef



Его я и пытаюсь как-то деструктуризировать.
>>712131
#270 #712124
>>712119
Можно, но ко мне уже приходит десериализованное значение внутри AjaxException (типа js.Any)
#271 #712131
>>712123
Ну боя, там же в документации написано, что это может быть String, ArrayBuffer или Blob, в зависимости от того что указано в responseType.
Очевидно у тебя String и тебе нужна библиотека uPickle от китайца, чтобы собрать из жсона кейс класс.
>>712138
#272 #712138
>>712131
Да, лоханулся, там обычная строка, думал какая-то магия json уже распарсила за меня.

>Нужна библиотека uPickle от китайца


Именно ей пользуюсь.

Всем спасибо.
#273 #712223
Можно ли компилировать скалу не в JVM файл, а сразу в исполняемый, как Си например?
#274 #712230
>>712223
Нет (хотя хуесосыч из последнего выпуска девзена который работает с Одерски говорит что такой сайд проект есть и им занимается какой-то хохлюн).
>>712239
43 Кб, 702x120
#275 #712239
>>712230
Блядская макаба с блядским спамлистом
>>712269>>712615
#276 #712269
>>712239
Потому это и сайд проект, который делает левый челик, а не сам Одерски с командой. По тому что помню из подкаста - говорилось что просто будет классно иметь такую возможность и где нибудь юзать скалу на десктопе, не больше.
47 Кб, 444x331
#277 #712272
>>712223
Скорее вопрос надо ставить "Можно ли компилировать байткод в натив?".
Называется это Ahead of Time компиляция, на картинке актуальные проекты.

Компилировал в RoboVM код на Java/Kotlin в нативные консольные приложения OS X.
>>712275>>712276
#278 #712275
>>712272
Блядь, что? RoboVM может компилить в десктоп? Я думал только iOS/Android. А под винду может?
>>712322
#279 #712276
>>712272
Gcj вроде закрыли.
#280 #712322
>>712275
На сколько я знаю только в iOS и Mac OS X консольные приложения (может и в Swing можно, но я не пробовал).
Там прям в RoboVM Studio есть такой шаблон, видимо для тестирования сделали.
#281 #712326
>>712223
Кстати в Java 9 обещали сделать "Java Native".
Так что через пару десятков лет, это будет "из коробки".
#282 #712330
Соу, анон поясни за язык
Почему бест JVM, почему не Kotlin и почему не сама Java
>>712347
#283 #712347
>>712330

>почему не сама Java


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

>почему не Kotlin


Новомодная хипстерская игрушка без задач, о которой не вспомнят через пару лет.
>>712361>>712367
#284 #712361
>>712347
Как и скала собственно.
#285 #712367
>>712347

>Мамкин эксперт вещает

#286 #712378
>>633781
В Зеландии погода - то как везде в Нидерландах. Ну или как в Дании.
>>712379>>712616
#287 #712379
>>712378
Суровый климат викингов?
#288 #712383
>>633151 (OP)
Фанфик на тему хаселла - вот что есть скала.
>>712406
#289 #712406
>>712383
Скала полноценно заменяет джяву даже и без функциональщины, а вот хачкиль няшную как-то неоче.
>>712609
#290 #712609
>>712406
Нет, спасибо - я лучше котлин выберу и подожду пока хачкиль подтянется.
#291 #712615
>>712239
В джяваскрипт конпелируется, значит и в натив можно. Только гц нужен.
>>712722
#292 #712616
>>712378
Нидерланды это гейропа, а не ламповый остров в жопе мира.
#293 #712722
>>712615
Все, что робит унутре жвм-песочницы - безусловно. Но жабка еще может лезть наружу через FFI/JNI. И еще эммитить байткод в рантайме. Все совсем не однозначно.
>>712995
#294 #712995
>>712722
Ну так сначала стоит сделать для "песочного" кода, а потом думать о костылях для остальной хуйни.
#295 #715620
https://speakerdeck.com/heathermiller/academese-to-english-a-practical-tour-of-scalas-type-system

Scala is famous in part for having one of the richest type systems of all mainstream programming languages today. Despite its reputation, Scala’s type system remains one of the most under-documented and jargon-heavy aspects of Scala.

This talk will turn the academese into English, providing an example-rich tour of Scala’s type system, covering all the things that make people call it “powerful”. This talk isn’t about showcasing a bunch of challenging little logical puzzles with types; on the contrary, this talk is about showing practical uses of Scala’s type system, making it work for you and your users. We’ll see how we can use it to improve usability by reducing boilerplate, meanwhile keeping code type-safe. We’ll touch on the practical parts of Scala’s type system, all through examples.
#296 #718139
Осваиваю скалку, но туплю почему параметры функции контрвариантны. Если у наследника есть какой-то допметод, который используется в функции, то разве если передать предка не случится хуита? Что я упускаю анон?
>>718244
#297 #718244
>>718139
Получится. Поэтому вместо функции которая принимает наследника, можно использовать функцию которая принимает предка, но не наоборот: вызывающий код сможет дать всю необходимую инфу, вся она есть у наследника, который в свою очереь есть у вызывающей стороны. Это и есть контрвариантность.
>>718258
#298 #718258
>>718244
Спасибо анон, теперь дошло
#299 #718292
Есть у кого-нибудь akka in actions или reactive design patterns для невозбранной закачки?
sage #300 #718440
Почему скала-сообщество такое ебанутое, аггресивное и вечно недовольное?
>>718443>>720524
#301 #718443
>>718440
Ты про себя что ли?
#302 #720524
>>718440
Функторы и монады вызывают неприятные ощущения пониже спины. Вначале. Потом приятные.
>>720561
#303 #720561
>>720524
Но ведь это в другом треде любят заинжектить монаду в функтор.
#304 #720651
В общем я разочарован. На скале тупо никто не умеет программировать, думаю даже Ордерский это понимает. Просто чтобы писать на этом языке идеоматично, так "как задумывалось", не достаточно просто что-то там изучать и практиковать. Нужно постоянно держать баланс сил и быть ёбаным избранным.

Ведь кто программирует на скале?
Вариант 1: В аутсорс парашу уровня люксофта стали чаще заходить запросы на проект на скале и менеджеришки смекнули натаскать пару своих индусов на это дело, чтоб не упускать заказы. Берут самую опытную явамакаку, говорят "Раджешь, пришло твоё время". Тот садиться и за две недели проходит интенсивный курс по книге "скала для жабадебилов" хорстмана. И начинает писать. Пишет он на скале как на яве с синтакс сахаром. Нахуй это всё надо, когда есть такой-то говноподсластитеть как котлин, нипанятна, но в целом все довольны.
Вариант 2: Хаскелист в надежде всё же найти работу с дрожащими от нервов губами изучает скалу. Устраивается он или нет в конечном итоге не важно. Важно что его это всё не устраивает, ведь он же познавший высшие истины пурист алгебраист, а тут какое-то императивное сайдэффектное непотребство. И начинает он натаскивать в проекты всякие скалазы, писать свои едсли делая из скелы новый хаскель. Выходит всё конечно уёбищно, с кучей синтаксического шума, никому кто не в теме не понятно, но заато теперь как в цацкиле.

Вариант 3: Чел решил что он понял что имел в виду Одерски, посмотрев курсеру и прочитав книжечку от сэнсея. Уверовал, что ему дано стать мастером парадигмального дуализма. Вот только вышло наоборот и в результате он стал смешивать худшие стороны вместо лучших.

Смогут ли эти трое работать в одной команде, поддерживать друг за другом код не разбив друг другу ёбычи? Маловероятно. Понимаете о чём я говорю? Это пиздец. Чтобы программировать на этом говне так как надо, нужно быть избранным, брать лучшее в разных местах и объединять в одном. Ну нахуй. Желание доказать, что можно смешать разные парадигмы в одной, получив удобный инструмент, а не громоздкое говно - это то ради чего всё это создавалось. И нихуя не вышло.
#304 #720651
В общем я разочарован. На скале тупо никто не умеет программировать, думаю даже Ордерский это понимает. Просто чтобы писать на этом языке идеоматично, так "как задумывалось", не достаточно просто что-то там изучать и практиковать. Нужно постоянно держать баланс сил и быть ёбаным избранным.

Ведь кто программирует на скале?
Вариант 1: В аутсорс парашу уровня люксофта стали чаще заходить запросы на проект на скале и менеджеришки смекнули натаскать пару своих индусов на это дело, чтоб не упускать заказы. Берут самую опытную явамакаку, говорят "Раджешь, пришло твоё время". Тот садиться и за две недели проходит интенсивный курс по книге "скала для жабадебилов" хорстмана. И начинает писать. Пишет он на скале как на яве с синтакс сахаром. Нахуй это всё надо, когда есть такой-то говноподсластитеть как котлин, нипанятна, но в целом все довольны.
Вариант 2: Хаскелист в надежде всё же найти работу с дрожащими от нервов губами изучает скалу. Устраивается он или нет в конечном итоге не важно. Важно что его это всё не устраивает, ведь он же познавший высшие истины пурист алгебраист, а тут какое-то императивное сайдэффектное непотребство. И начинает он натаскивать в проекты всякие скалазы, писать свои едсли делая из скелы новый хаскель. Выходит всё конечно уёбищно, с кучей синтаксического шума, никому кто не в теме не понятно, но заато теперь как в цацкиле.

Вариант 3: Чел решил что он понял что имел в виду Одерски, посмотрев курсеру и прочитав книжечку от сэнсея. Уверовал, что ему дано стать мастером парадигмального дуализма. Вот только вышло наоборот и в результате он стал смешивать худшие стороны вместо лучших.

Смогут ли эти трое работать в одной команде, поддерживать друг за другом код не разбив друг другу ёбычи? Маловероятно. Понимаете о чём я говорю? Это пиздец. Чтобы программировать на этом говне так как надо, нужно быть избранным, брать лучшее в разных местах и объединять в одном. Ну нахуй. Желание доказать, что можно смешать разные парадигмы в одной, получив удобный инструмент, а не громоздкое говно - это то ради чего всё это создавалось. И нихуя не вышло.
#305 #720997
>>720651
Так-то да, во многом прав. Только

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


>И нихуя не вышло


слишком пессимистичный взгляд. Если немного включать голову, все получится.

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


Нужно чтобы в команде было 1-2 таких и чтобы они пиздили тех кто отходит от курса партии.
#306 #721037
>>720651

>Вариант 1


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

Чтоб стать избранным надо просто обмазаться хаскелем, на котором не сможешь писать как на уютной сишке\яве и научиться прогать чисто в функциональным стиле. Ну, а если пришел с качкеля, то "спуститься" на уровень индусов, облепиться императивом с сайд эффектами и спагетти, нырнуть в мир состояний, деадлоков и гонок.
В обоих случаях на выходе должен получиться тот самый избранный, который сможет в дуализм. Другое дело что типичный программист, который пошел в отрасль потому что платят на 50 зеленых больше чем санитарке в поликлинике, не захочет.
#307 #721056
>>720651
При этом вариант 1 - самый рабочий. Если взгнуть на код Kafka или Spark, то там именно что better java.
>>721153>>721326
#308 #721153
>>721056
В спарках таки код оптимизируют по максимуму, там это важнее чем красивость и функциональность.
>>721326
#309 #721326
>>721056>>721153
Ну можно и так сказать, даже не смотря на оптимизации. Хотя и там джава настолько better, что уже не джава.
#310 #721353
#311 #721427
>>633151 (OP)

>самый лучший


>для JVM


Вообще-то самый лучший язык для JVM это Clojure. В вот тут любой адекватный анон скажет: "Да как же так, Clojure - это лиспоговно, лиспоговно в принципе не может быть хорошим!" И он будет прав, да, лиспоговно не может быть хорошим. Но ведь "самый лучший язык для JVM" не означает "самый лучший язык". И даже не означает "хороший язык". Для JVM в принципе нет хороших языков, это просто выбор между сортами говна. И ирония заключается в том, что среди этих сортов говна говнолисп, внезапно, оказался лучше говноскалы.

Я не призываю программировать на скобочном говне и не оправдываю его и не пытаюсь доказать, что оно достойно изучения. Просто в говноедском мирке JVM такая забавная фигня приключилась.
>>721532
#312 #721532
>>721427
Тебя в детстве насиловали разработчики JVM?
>>721548>>721602
#313 #721548
>>721532
Имхо они своей JVM "изнасиловали" не одно поколение программистов.

мимо android девелопер
#314 #721559
Мамкин борщехлеб, чем тебе JVM то не угодила?
#315 #721581
>>721559
Вангую что,

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

#316 #721602
>>721532
Если при тебе кто-то скажет, что бас-гитары "Урал" - это говно, которое подходит только для того, чтобы отбиваться от зомби в случае зомби-апокалипсиса, ты ответишь, что его изнасиловали разработчики бас-гитары "Урал"?
>>721625
#317 #721605
>>721559
С чего ты взял, что JVM, мне не угодила? Я просто рассказал, как забавно там дело обстоит с языками.
#318 #721616
>>721559
затирает типы, фризит программу, отжирает дохуя памяти, всё валяется в одном хипе, не умеет в автоматическое распараллеливание чистого кода, уёбищный менеджмент памяти вообще, у тредов и объектов разное время жизни, вообще нихуя не сделано на уровне вмки для поддержки распределёнки/конкурентности, нет REPL'а и хот код реалоада из коробки, вообще какой-то неадекватный abstraction penalty, короче вмка для всего сразу и нихуя толком

понятно, что эти проблемы частично решаются на прикладном уровне написанием всяких костылей сериализаторов/десериализаторов, ринг-буферов деструпторов, фреймворков типа аки и прочим, но все равно обычно выходит говно
>>721617>>721620
#319 #721617
>>721616

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


И тут внезапно неуловимо запахло борщом.
>>721621
#320 #721620
>>721616

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


А кто умеет? Где можно на это посмотреть?
#321 #721621
>>721617
Да каким борщем блять. Просто модель памяти в жам построена таким образом, что ни о каких распараллеливания на уровне вмки речи быть не может. Потому что в флагманском языке даже не задумывалась семантика для определения куска данных как иммутабельного или каких-то там чистых функций.
Ну то есть какой нибудь компайлер скалы по идее может сгенерить явно параллельный код, так как в скалке то эта сематика есть, но всё это не так у просто, возможны множество багов и проёбов по скорости, т.к. не понятно как оно ляжет на вмку, особенно если в одной приле крутятся куски и явы и скалы.
#322 #721623
>>721620

>А кто умеет? Где можно на это посмотреть?


Двачую. Ей богу качкель только свой не кидай.
#323 #721625
>>721602
Ну если он будет специально искать гитаристов использующих "Урал", чтобы прийти к ним на сходку, и долго рассказывать что они говноеды а "Урал" говно, то да.
#324 #721708

>Скала тред


>Фанаты JVM, слепленной чтобы на ней крутить Кобол нашего времени



мда, дожили
#325 #721741
>>721620
Сдается мне вы беседу с философским зомби ведете.
#326 #721744
>>721620
Основные плюсовые компиляторы (clang, gcc, intelcpp) хотя и достаточно криво, код получается не переносимый между ними и писать всё равно код нужно как мультипоточный, что-то слышал про хацкел.
>>721791
#327 #721791
>>721744
Слышал он. Слышал звон, да не знает где он.

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

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


с помощью

> плюсовые компиляторы (clang, gcc, intelcpp)


чего jvm

>не умеет в


?
>>721825
#328 #721825
>>721791

>с помощью


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

>чего jvm


Не, вась, ты ебанутый или что? Жвм как не умела в фичи которые "просто работают" так и не умеет.
>>721832>>721854
#329 #721832
>>721825

> >с помощью


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


Ссылочку на пример пожалуйста
>>721841
#331 #721842
https://en.m.wikipedia.org/wiki/Automatic_parallelization_tool
В примерах куча тулз для си и фортрана.
#332 #721854
>>721825
Лично читал код jvm изучая какие конвеерные интринсики используются. Java умеет в оперативную трансляцию с использованием SIMD инструкций. Например http://bugs.java.com/view_bug.do?bug_id=6340864
Это если говорить про

> автоматическое распараллеливание


в таком контексте.

Возможности конечно не те что у GAP и вообще у нативных платформ - но это уже и не про автоматическое распараллеливание.

Eбанутый здесь ты маня. Охлади свой пыл, быдлан.
>>721906
#333 #721863
>>721841
Но ведь это не распараллеливание.
>>721878>>721904
#334 #721878
>>721863
Почему? Вполне себе распараллеливание - на уровне обработки cpu.

Просто та маня чистоту кода приплела к чему - то и это могло ввести в заблуждение.
>>721885
#335 #721885
>>721878
Но это оптимизация операций с числами, а не распараллеливание кода.
>>721905
23 Кб, 459x278
#336 #721904
>>721863

>Но ведь это не распараллеливание.


>Automatic parallelization distributes sequential code into multi-threaded code. It automatically generates parallel (multi-threaded) code for specific loop constructs using the gomp library.


>В дополнение к оптимизации кода высокого уровня, компиляторы Intel® позволяют проводить автоматическую параллелизацию с поддержкой OpenMP. При автоматической параллелизации компилятор находит циклы, которые могут безопасно и эффективно выполняться параллельно, и генерирует многопоточный код. OpenMP позволяет программистам выражать параллелизм с помощью директив компилятора и прагм С/С++.

>>721910>>721917
#337 #721905
>>721885
Маня, сперва кумекай, потом кукарекай.
>>721918
#338 #721906
>>721854

> Java умеет в оперативную трансляцию с использованием SIMD инструкций.


>Eбанутый здесь ты маня. Охлади свой пыл, быдлан.

>>721910
#339 #721910
>>721904
>>721906
Т/е по существу дела - ничего? Отчего то я не удивлён.
>>721919
#340 #721917
>>721904

> specific loop constructs


> Many loops cannot be vectorized including loops with complicated control flow, unvectorizable types, and unvectorizable calls


Подставляй ротешник.
>>721922>>721930
#341 #721918
>>721905
Покумекал тебе за щёку.
#342 #721919
>>721910
Отчего-то я не удивлён гибгостью манямирка жяважывотного, который приплёл к автораспаралеливанию SIMD и начал кукарекать что его жэвээм умеет в это особенно учитывая что компилятор его языка настолько убогий, что любой синтасический сахар убивает нахуй перформанс. А потом пытается аккуратно слиться. переведя стрелки, но ты обосрался вась. Будь добр аргументировать, либо не толстей.
#343 #721922
>>721917
А ты чего ожидал? Что он вообще всё за тебя напишет? Может у тебя ещё статические анализаторы кода любые ошибки в алгоритмах ловят?
>>721925
#344 #721925
>>721922
Распараллеливание кода это например когда произвольный код размазан на %колво_ядер_цп% потоков, аля параллельные коллекции, акка, и т.п., а здесь всего лишь пачки чисел обрабатываются особым образом (оптимизация байтоебства), про код и параллельность и речи не идёт.
>>721929
#345 #721929
>>721925
О, SIMD-жывотное опять в треде. Ты как там? Норм с дцп живётся?
>>721935>>721936
#346 #721930
>>721917
Поциент, никто в здоровом уме не пишет видеокодеки медиапроцессоры и тп на java.

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

Конечн, особо охочие товарищи могут на прикладном уровне использовать библиотеки векторизации - в том числе расчеты на gpu. Но это исключительное битоебство.

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

Если ты это не способен понять - печально.
>>721935
#347 #721933
Есть ли в скале жизнь за пределами энтерпрайза? Прикладное, геймдев, веб?
>>722296
#348 #721935
>>721929
Таблетки принял?

>>721930
Но ведь это ты кукарекаешь, что в жвм надо добавить магическое распараллеливание, шизик.
#349 #721936
>>721929
Я за того анончика. Или ты или другой анонас что - то мычал про чистый код - что дать впечатление о разговоре про параллельность за счет вычисления в отдельных потоках.

В процессе выпытывания сокровенных технологий автоматической параллелизации - выяснилось что речь о конвееризации.

За тем поциенту пояснили за то, что где её целесообразно просунуть - там она используется (в jvm).
>>721941
#350 #721941
>>721936

>с что - то м


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

>За тем поциенту пояснили за то, что где её целесообразно просунуть - там она используется (в jvm).


Пояснили за акку и прочую еботу, автоматического разбора на потоки в "ванильной" жвм я что-то не нашёл.

Сука, беседа утонула в 10 непонятных анонах, путающих друг друга с другими анонами. Ладно, идите нахуй, тут не реально ссать прямиком кому-то на ебало, я закругляюсь.
>>721951
#351 #721951
>>721941
Читать научись, дурень, и следить за нитью беседы.

Потом возвращайся за серебряной пулей автоматической параллелизации.
#352 #722296
>>721933
В вебе есть Play Framework например. На нем даже иногда фриланс какой-то можно найти. У него есть апи и под джаву, и под скалу.
#353 #723580
А с чего лучше начинать учить Скалу?
>>723596>>723685
#354 #723596
>>723580
С коре Ява хорстмана.
Затем его же скала для нетерпеливых.
Без кореявы в скале печально будет
>>723601
#355 #723601
>>723596
А нафиг мне Джава если я Скалу учу =D
>>723605
#356 #723605
>>723601
Толсто.
Или пошел нахуй или учи яву пидор
>>723611
#357 #723611
>>723605
Что за тупость если я хочу плюсы учить ты меня отправишь С учить? а если кложу тоже Джаву? или тебе Оракле проплотила чтоб их говно продвигать ?!?
>>723717
#358 #723685
>>723580
С официальной документации
>>723702
#359 #723702
>>723685
Да ну? а может еще скажешь где она а то как то я не додумался да этого, а может еще скажешь как поставить скалу?

А если серьезно, читаю "Scala for the Impatient" если кто то знает что то еще годное кидайте
>>723971
#360 #723717
>>723611
Дык он-то прав. Если ты нюфаг – лучше не смотри в сторону скалы, а иначе синтаксис особой роли не играет – самое главное это экосистема и тулкит, который весь явный.
>>723751>>723790
#361 #723751
>>723717

>самое главное это экосистема и тулкит, который весь явный


Весь скальный тащемта
#362 #723790
>>723717
Ну я же не без знаний вкатился, пишу на другиз ЯП, на говна джаве не хочу писать (бывала дело писал на этой шняги, но знать не знаю) из за этого выбрал Скалу (мог кложу выучить или груви)
>>723849>>724122
#363 #723849
>>723790
Всё зависит от задач: планируешь писать хуйлоад/искать работу на скале – всё равно нужно дрочить именно явовские контейнеры и прочее г-но, учишь "для души" – можешь вообще на императивщинуб хуй класть.
>>723987
#364 #723971
>>723702
Ну вот и соснешь, когда дойдешь до контейнеров.
#365 #723987
>>723849

>писать хуйлоад/искать работу на скале – всё равно нужно дрочить именно явовские контейнеры


Для хайлоада придется пидорасить байтики офф-хип, как байтослесари.
#366 #724122
>>723790

>на говна джаве не хочу писать


И не нужно. Учить нужно JVM, библиотеки и тулы для неё, а не джаву, грубо говоря. Лучший способ изучать - написать маленький проект, тесты, метрики для него, побенчмаркать что-то.
скалаёб-перекатился-из-сишарпа
>>724138
#367 #724138
>>724122
Наташа?
>>724204
#368 #724204
>>724138
Твоя мамаша)
>>724209
#369 #724209
>>724204
Неа, она спит, я точно знаю.
#370 #724262
Есть на скале какое нибудь шаблонное задание для новичков? В вебе вон твиттер пишут все начинающие. А на скале что?
>>724405>>724494
#371 #724405
>>724262
Борду.
#372 #724494
>>724262
Твитор с Akka, Play, Slick ещё попробуй Apache Spark, Cassandra
>>724495>>724736
#373 #724495
>>724494

>Apache Spark, Cassandra


>задание для новичка


>localhost


Чота проиграл
>>724526
#374 #724526
>>724495
Лучше уж сначала поковырять на локалхосте
#375 #724736
>>724494
в это кстати уже играл, хотя сам Спар не поднимал но вот Hadoop собирал, и потом ставил разные сборки
#376 #727898
Читаю книгу с оп-поста, scala для нетерпеливых, и вот у меня вопрос мне можно всю книгу тестить примеры в REPL или перекатиться в какую ту IDE? Если да то какую?
>>727946
#377 #727946
>>727898
Можешь без иде, там все задание - однофайловые. Но точно не в репле.
Знаешь жаву?
>>727987
#378 #727987
>>727946
Немного, а что?
>>728104
#379 #728094
>>649888
Тинькофф, Qiwi делает потуги
#380 #728104
>>727987
Вернись в яву.
Скала говно без будущего.
В 9 явке закроют рефлексую и ансэйф и скалопидоры соснут
>>728126>>729175
#381 #728126
>>728104
ява - болото без будущего
даже гугол вон ищет ей замену в своём ведроиде
#382 #728142
>>728126
Зачем искать если уже есть котлин? В гугле просто батруд от того что они не смоги придумать котлин.
>>728144
#383 #728144
>>728142
Котлин никому кроме авторов не нужен, не говоря уже о крупных компаниях.
#384 #728159
>>728126
Вам сплетню какую-то скинули, а вы и взбудоражились кококок замену кококок.

Еще неизвестно замена будет или дополнение, а может это вообще к NDK дополнение / замена. Если вообще что - то будет.

Пока харчанин кукарекает о болоте, инженеры оракл в Штатах и России пилят value types и прочие нештяки.
#385 #728181
>>728126
Иди обратно на парашу, мартышка, ынтерпрайз вилкой чистить
>>728723
#386 #728723
>>728181
вскукареки энтерпрайзовского петуха
>>729175
#387 #729175
>>728723
Это я хотел этому >>728104 ответить
#388 #729833
Продолжаю читать книгу с оп-поста, scala для нетерпеливых, и блять прям неебу почему вся книга все блядь все в REPL, это же нихуя не обьясняет лучше ебаный scaladocs чем блядь эта параша. А если серьезно то очень тяжело книга реально не подходит новичкам, только для перекотa с Java.
#389 #729865
>>729833
Вкатывальщик с нуля?
>>730796
#390 #730468
>>729833
Что конкретно ты не понял?
вкатывался с одним гуглом
>>730797
#391 #730481
>>729833
Видосики Одерского на курсере посмотри.
#392 #730502
>>729833
Хорстман - это книга для переквалификации яваиндусов. Читай Programming in Scala 2nd Edition Одерского, или подожди до 10 мая, будет 3d Edition.
>>730798
#393 #730796
>>729865
Почти
#394 #730797
>>730468
Дак я тоже пол книги читаю, пол гуглю
#395 #730798
>>730502
Спасибо
#396 #731133
Есть hadoop-проектик на Pig. Стоит ли учить Scala и перекатываться на Scalding?
>>735492
#397 #735492
>>731133
Да, а лучше сразу на http://spark.apache.org/
#398 #735505
>>650182

>Идиоматик скала


Кстати, идиоматик Скала сходу в 10 раз проигрывает идиоматик Хаскелю. Причем, похуй, что там используешь, Списки, стримы, последовательности, в 10 раз - это на лучших из Скаловских структур, на остальных - еще хуже. А код на Хаскеле - самое тупое на базовой прелюдии, даже без попыток ручной оптимизации. Такие дела.
>>735517>>758585
#399 #735517
>>735505
Кто тебе такое сказал?
#400 #735605
>>650793
В продакшен с этого.
#401 #743991
Ну чо, вот о чём я писал где-то здеся месяцок назад.
https://github.com/scala-native/scala-native
Даже бенчмарк хэловорда дефолтный есть, лол.
>>743997>>745517
#402 #743997
>>743991
Ох лол. Получается скоро скала даже кресты выебет?
>>743998
#403 #743998
>>743997
Нет, лол. Кресты пытались сдвинуть десятки языков – все обосрались.

Это так, возможность написать какую нибудь десктопную/системную хуитку если у тебя основной/любимый язык скала.
>>744001
#404 #744001
>>743998
Ну, главное можно будет проворачивать крестоблядей на хую в олимпиадка-тредах
>>744007
#405 #744007
>>744001
В олимпиадка-тредах они тебя сами перевернут на хуе за лишнюю 0.1 мс.
>>744008
#406 #744008
>>744007
Скорее порвут свой пердак от функционально-декларативного кода, заместо портянок. Сейчас рвутся и кукарекают что идеон показывает 300 метров сожранной памяти.
>>756333
#407 #745501
Кто следил за скала дэйс? Что там за история с скала.макро ?
512 Кб, 768x576
#408 #745517
>>743991
Нет слов. Ну охуеть теперь.
#409 #756181
У кого-нибудь есть курс по скала от Головача?
#410 #756194
В скалу без джавы есть смысл вкатываться?
#411 #756323
>>756209
Тогда есть и смысл сразу с хачкелля начинать - только будешь чувствовать отвращение от убогости скалы.
#412 #756333
>>744008
Я тебя сейчас расстрою - этот компилятор точно так же написан на скале (как и оригинальный) и жрать будет точно столько же.
#413 #756435
>>756430
А скала уродливая пародия на эту хуйню.

>>756432
Прочитай сначала пост на который я отвечал. И нет – имеет.
>>756461
#414 #756461
>>756435

>яскозал


Ясно
>>756484
#415 #756484
>>756461

>пукпук абида

#416 #756507
>>651909
Годно, схоронил.
#417 #756574
>>756572

>мааам, ну чо он скалу абсираит???


>ну скожи иму что он парвался)))

#418 #756576
>>756575

>борщехлёб прадалжаит тралить)) нинад))

#419 #756578
>>756577

>этот запах свежих монад со вкусом земельки

#420 #756948
Аноны, помогите достать пдфку Programming in Scala 3rd edition
>>757002
#421 #757002
>>756948
Ну пиздос, вышла книга пол месяца назад, а нищий и наверное еще и тупой двачер уже хочет ее спиратить.
>>757010
#422 #757010
>>757002
У меня денег нет на книгу, так бы купил
#423 #757169
На скале вообще что-нибудь авесомное в последнее время появилось? Скажем, после спарка. Ппц, в 2011-2012 годах было просто взрывное развитие, хайп-хайп, писали всё подряд, а сейчас все стухло. Все уныло задрачивают плей и акку штоле? И язык не развивается нихуа... Пищаль.
>>757366
#424 #757366
>>757169
В Scala ты либо на передовой дрочишь Cats, Shapeless, spire, scalaz и прочий typelevel с остальными функциональщиками, либо деградируешь в Enterprise Quality™ с жаваиндусами. Судя по тому, что ты не видишь никакого развития с 2012, ты относишься ко вторым, и тогда справедливый вопрос - откуда твои претензии? Перечитай ещё разочек GoF, Patterns of Enterprise Application Architecture, бери котлин и еби мозги.
#425 #757446
>>757366
Тогда возникает вопрос: нахуя нужна Скала, если теперь это ещё один академический ЯП не использующийся в продакшене?
>>757448>>757615
#426 #757448
>>757446
Нахуй не нужна.
Говно ебаное тормозное.
Есть груви, кложур и ява.
Остальные джвм языки ненужная хуита
#427 #757615
>>757446
Всмысле ещё один? Первый и неповторимый. Точнее первый настолько кривой академический язык, что даже в энтерпрайз пролез.
>>757366

>ты либо сосёшь хуй спонсору, и надеешься что завтра бывший тайплевел не пошлёт тебя жрать грязь из под ногтей


>либо мамакишьствуешь за стабильную еду


Трудный выбор скалаиндусов.
#428 #757756
>>757366

> ты либо на передовой дрочишь Cats, Shapeless, spire, scalaz и прочий typelevel


Вся эта мандула еще четыре года назад была.
>>757807
#429 #757807
>>757756
А Scala ещё в 2003 году была и что?
>>758230
#430 #758230
>>757807
В 2003 было маня поделие, "коммерческая" скала с тайпсейфом и яхтами Мартина началась только в 2011.
>>758249
#431 #758249
>>758230
Ну вот и претензии что тайплевел либы были ещё 4 года назад - туда же.
#432 #758585
>>735505
Пруф пожалуйста
#433 #758709
>>758437
Нахрен они не нужны. Лучше бы писали удобные либы для разработки реальных приложений, а не эти зигохистоморфные препроморфизмы.
>>760434
#434 #760419
Посоны, есть у кого-нибудь Programming in Scala, 3rd edition, бесплатно, без СМС? В гугле не нашёл.
#435 #760432
К слову, lichess.org написан на Scala.
sources https://github.com/ornicar/lila
>>760434
#436 #760434
>>758709
Так тогда и скала не нужна, какой нибудь котлин со всем сахарком для таких целей подойдёт куда лучше как better java, чем скала, изначально проектировавшаяся как жвм хаскелль.

>>760432
Иии... Чо?
>>760589>>760971
#437 #760589
>>760434

> ко-ко-котлин


> скала, изначально проектировавшаяся как жвм хаскелль.


Что простите?
>>760642
#438 #760642
>>760589

>бе-бе-беттер жява


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

Тот же котлин – жява в которой реализованы все новые хотелки, без кучи ненужной (или немодной?) хуйни.
>>760666
#439 #760666
>>760642
Весь продакшене написан на спринге или ЕЕ.
А ссаную костылепидорскую скалу засунь себе в анус пес.
>>760670
#440 #760670
>>760666
Тинькофф с любым еу банком ссут тебе на ебало.

Ах, да, чистая жява – на ней как раз вся инфраструктура сбербанка, который на нг по 3 недели деньги переводил. Мб гц работал?
>>760681
#441 #760681
>>760670
Ты ебанутый?
Ебанутый
>>760690
#442 #760690
>>760681

>я скозал

#443 #760807
https://ideone.com/hXP3XF
Ебать, какой же ахуенный язык, я прям кончил пока угорал.
>>760909
#444 #760909
>>760807

>8 строк


>0.28s 322368KB


Энтерпрайзно.
>>760917
#445 #760917
>>760909
Ты, блядь, на вывод посмотри – вот где весь фэйл.
#446 #760971
>>760434

> чем скала, изначально проектировавшаяся как жвм хаскелль.


Скала проектировалась как идеальный гибрид ООП и ФП, с компромиссами в обе стороны. А жвм хаскелль есть, называется Frege.
#447 #761024
Поясните-ка, что такое Spark. У меня есть задача, которая сводится к «сделай кучу однотипных запросов средней сложности к ридонли реляционке и профильтруй/примени некоторые методы анализа данных к выбранным нереляционным уже данным». Сейчас оно реализовано именно на реляционке, но я понимаю, что даже на тестовых объемах данных оно загибается. Поможет ли мне Spark?
>>761027
#448 #761027
>>761024
Уточню что основная работа деляется в обработке реляционных данных. Все прочее можно считать хоть скриптиком на пистоне. Это не реалтайм, считается несколько раз в день и складывается в другую БД/хранилище для посчитанных результатов, откуда пользователи могут выбирать результаты.
>>761028
#449 #761028
>>761027
И да, базка не совсем ридонли, но обновляется она раз в сутки (сейчас 5-6 Гб/день).
#450 #761049
>>761001

>42, а не 10


>матчпаттеринг падает с эксепшеном


Чо ещё скажешь?
#451 #761050
>>761003
Так этот компилятор точно так же на оригинальной скале написан, никуда не денутся 300мб при компиляции хэловорда.
#452 #761053
>>761001
В нормальном современном языке ожидается, что неполные паттерны приведут к ошибке компиляции, а не эксепшену.
http://try.haxe.org/#3218b - нажми 'build + run".
>>761061>>761064
#453 #761055
>>761003

> @struct stackalloc[Vec] stdlib.malloc


1. Это уже другой язык.
2. Пилит его один студент Дима, так что будущее туманно.
3. Без жвм скала мало кому нужна.
>>763402
#454 #761061
>>761053
Вообще, матчинг вполне себе полон - матчатся все возможные варианты опшена. От нормальных языков ожидается его спокойное прохождение, или хотя бы ошибку компиляции, как ты сказал.

http://ideone.com/MM0Zm8 - ржавый
http://swiftlang.ng.bluemix.net/#/repl/575263cf641e65e70fb09aa9 - свфит
http://ideone.com/ugKxRW - окамл (лол, да)
Кароче, думая вы поняли мой посыл. скала говно, гы
>>761064
#455 #761064
>>761061

>Вообще, матчинг вполне себе полон


Нихуя не полон, переданное значение не удовлетворяет ни одному условию.

>>761053

>что неполные паттерны приведут к ошибке компиляции


Это неудобно нихуя же. В нормальных языках как раз принято писать что-то типа
ok, Socket = db.connect();
это неполный матчинг, но как бы и ожидается иксепшн если соединения нет.
#456 #761067
>>761064

>Нихуя не полон


Оно для этого типа может быть либо some(hui), либо none. Само значение проверяется уже вне матчинга, если ты не заметил.
>>761070
#457 #761069
>>761064

>писать что-то типа


Не говори про своё Говно "нормальный язык", плез.
>>761071
#458 #761070
>>761067
Гуарды в матчинге - часть матчинга вообще-то.
https://ideone.com/9rlaKN
>>761074
#459 #761071
>>761069
{ok, Socket} = connect(Db).
>>761074
#460 #761074
>>761070
так язря говном истекаю здеся, лол
>>761071
Нет, вась, в эрланге в отличие от говна так не делают.
>>761077
#461 #761076
>>761064

>неудобно


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

>это неполный матчинг


Это полный матчинг. Ты матчишь тупл и получаешь его компоненты. И какой тут нахрен может быть эксепшен, если ok явно возвращается?
>>761079
#462 #761077
>>761074
То-то Джое в каждой книге пишет "Don't programming defensively" и призывается писать только happy case код.
#463 #761079
>>761076

>Это полный матчинг


Нет конечно, только один варик описан, а возвращать db.connect() может
ok, Result
error
error, Code
error, Code, Info

>>761076

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


Ты не понял. Специально добавляется только хэппи кейс. Потому что при нормальных условиях ожидается только он. Остальные - исключение.
>>761080
#464 #761080
>>761079
Я, наверное, и правда что-то не понимаю.
Есть функция describeBodyPart: BodyPart -> String, и тип BodyPart = Head | Ass | Hand. Теперь добавим к типу Leg и получим ошибку компиляции. Чем это не хэппи кейс?

>а возвращать db.connect() может


Какое же говно в голове у тех, кто это дизайнил.
>>761086
#465 #761086
>>761080
Мне лень с тобой спорить по этому поводу, если интересно сам подумай. Всё что я хотел сказать, что в скале/эралге/хаскеле/кложе паттерн-матчинг работает одинаково и везде при захуяривании unexpected значения в неполный матчинг тебя ждёт иксепшн в рантайме.
>>761098
#466 #761098
>>761086
А я пока и не спорю. Пока я пытаюсь понять, что ты имеешь в виду под "хэппи кейс", и почему под него не подходит мой пример с бодипартами.

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


Проблема только в том, что это анэкспектед значение большинство старается не допустить. Тот же окамл обсирается только, когда в дело вступают гварды. В хаскиле тоже что-то такое, вроде, было.
Алсо, в огромном количестве языков вообще динамическая типизация. Подумай над этим, ага.
>>761237
#467 #761237
>>761098
Могут не совпадать степени уточнения типа в функции и матчинга внутри неё. Более того, матчинг может оперировать не только типами, но и конкретными значениями.

Не знаю что там в верблюде, я так понял с твоих слов, что на матчинге по конкретным значениям/типам там нужно прописывать все варианты/или использовать _ , задавая для него какую-то дефолтную обработку. Иметь дефолтную обработку для "всего стального" иногда удобно, а иногда нет. Описывая только хэппи кейс, ты отделяешь код по обработке исключительных ситуаций от бизнес логики, используя же дефолтные обработчики, ты по сути включаешь этот код в бизнес логику.
Во-вторых, описывая только хэппи кейс, ты можешь абстрагироваться от размышлений о типах исключительных ситуаций и попыток их все предотвратить. Если у тебя компилер заставляет описать все значения в матчинге, то единственный способ отложить изучение исключений на потом, это хуярить заглушку.

То есть для ситуаций A, B, C - нормальные виды поведения, а D - ошибка, действительно удобно описывать всё, но для ситуаций A - нормальное поведение, но B, C, D и ещё хуй знает сколько вариантов - исключительные, удобно использовать в матчинге только обработку А, а на все остальное забить и обработать где-то выше в трай-кетче, супервизором, процессом-монитором и т.д.
Во всяком случае в идеоматичном Erlang подход именно такой, так как там прилы по-дефолту конкурентные с овердохуя процессами, и какой-то иксепшн в одном из них не значит по большом счету ничего. Для однотредовых систем это может быть не оправдано, да.

В Scala же, неполный матчинг сделан скорее по той же причине, что и возможность создавать частично определённые функции, чтоб потом чейнить их через orElse и тому подобное.
http://goo.gl/7Boe2i
http://goo.gl/r0N8Pv

Не знаю, какие причины в Haskell, там действительно есть ключи компилера, чтоб проверить Non-exhaustive patterns. Основная причина, скорее, это нелюбовь к catch-all предикату, из-за которого, как раз твой предыдущий пример, с проверкой на новый тип не работал бы, но который тем не менее приходится применять, если тебя заставляет тайп-чекер.
http://goo.gl/syJPvR
#467 #761237
>>761098
Могут не совпадать степени уточнения типа в функции и матчинга внутри неё. Более того, матчинг может оперировать не только типами, но и конкретными значениями.

Не знаю что там в верблюде, я так понял с твоих слов, что на матчинге по конкретным значениям/типам там нужно прописывать все варианты/или использовать _ , задавая для него какую-то дефолтную обработку. Иметь дефолтную обработку для "всего стального" иногда удобно, а иногда нет. Описывая только хэппи кейс, ты отделяешь код по обработке исключительных ситуаций от бизнес логики, используя же дефолтные обработчики, ты по сути включаешь этот код в бизнес логику.
Во-вторых, описывая только хэппи кейс, ты можешь абстрагироваться от размышлений о типах исключительных ситуаций и попыток их все предотвратить. Если у тебя компилер заставляет описать все значения в матчинге, то единственный способ отложить изучение исключений на потом, это хуярить заглушку.

То есть для ситуаций A, B, C - нормальные виды поведения, а D - ошибка, действительно удобно описывать всё, но для ситуаций A - нормальное поведение, но B, C, D и ещё хуй знает сколько вариантов - исключительные, удобно использовать в матчинге только обработку А, а на все остальное забить и обработать где-то выше в трай-кетче, супервизором, процессом-монитором и т.д.
Во всяком случае в идеоматичном Erlang подход именно такой, так как там прилы по-дефолту конкурентные с овердохуя процессами, и какой-то иксепшн в одном из них не значит по большом счету ничего. Для однотредовых систем это может быть не оправдано, да.

В Scala же, неполный матчинг сделан скорее по той же причине, что и возможность создавать частично определённые функции, чтоб потом чейнить их через orElse и тому подобное.
http://goo.gl/7Boe2i
http://goo.gl/r0N8Pv

Не знаю, какие причины в Haskell, там действительно есть ключи компилера, чтоб проверить Non-exhaustive patterns. Основная причина, скорее, это нелюбовь к catch-all предикату, из-за которого, как раз твой предыдущий пример, с проверкой на новый тип не работал бы, но который тем не менее приходится применять, если тебя заставляет тайп-чекер.
http://goo.gl/syJPvR
>>761246
#468 #761246
>>761237
Неполный матчинг там сделан из-за того, что exhaustiveness check сделать все равно нельзя.
По сути, матчинг — это обертка над instanceof с некоторыми хаками для примитивов/кейс-классов.
#469 #761261
>>761229

>Найс маневр


Ебанашка, а что по твоему показывает ideone? мне кажется явно не память необходимую для работы, лол
>>761332
#470 #761292
Объясните, что не так, пожалуйста.
https://ideone.com/K25BWd
>>761295
#471 #761295
>>761292
Если второй слэш убрать, то норм, но тогда у меня у IDEA батхерт.
#472 #761332
>>761261
Память, занятую программой, даун. JVM резервирует 300 метров вне зависимости от потребления
>>761703
#473 #761664
Какой фреймворк сейчас стандарт в скале, как спринг в жаве? Play? Spray?
>>761698>>761873
#474 #761698
>>761664
scalaz
#475 #761703
>>761332
А ещё 30мб на хэловорлд?
#476 #761873
>>761664
Play + Akka. Это даже почти так же уныло, как спринг.
>>762065
#477 #762065
>>761873
Что значит "уныло"?
#478 #762371
>>761888
В каждой шутке есть только доля шутки, такие дела..
>>762828
#479 #762807
>>633151 (OP)
Что обычно пишут на скале?
>>762828
#480 #762828
>>762371
Ты у нас магистр хеллоуворлдов.
>>762807
Энтерпрайз/веб, бигдата.
>>763379>>763400
#481 #763379
>>762828
Уважаемый дебил! Тот анончик весело и ненавязчиво пошутил, что Вы обосрались c оценкой в 300мб. С наилучшими пожеланиями, мимо крокодил.
>>764305
#482 #763400
>>762828
Поссал на манямирок энтерпрайз веба на скале.

Лечись уебан.
>>763402
#483 #763402
>>761055

>Пилит его один студент Дима, так что будущее туманно.


А скалу пилит Одерски с кучкой студентов, разницы не слишком много.

>>763400
Тут выше уже был аргумент про банки и прочее.
Лечись уебан.
#484 #764305
>>763379
Обосрался даун, не слышавший про округление.
>>764852
#485 #764852
>>764305
Продолжай округлять на порядки, лол.
Погроммист-рыбак будет учить меня на дваче.
171 Кб, 333x388
#486 #765891
Тут Барух обоссывает Scala и говорит, что скалоебные компании перестают заниматься скалоебством и начинают жить: https://habrahabr.ru/company/luxoft/blog/302668/

Оправдывайтесь.
#487 #765959
>>765891

>тут две ынтырпрайзные джява-мартышки не осилили скалу, одна со смешным именем


Что тебе не ясно? Там прямым текстом написано

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


"Мартышки не осиливают, пок-пок сириус бизнес, лучше наймём ещё десять индусов"
>>766088
#488 #766040
Давайте перекат.
#489 #766074
>>765891
Барух - это который профессиональным клоуном на конференциях выступает?

Помню, помню изумление от просмотра на ютюбе какого-то доклада на тему то ли Spring Puzzlers то ли Groovy Puzzlers. Изумление как с другим клоуном они с какой то извращенной гордостью обсуждали велосипедствования, от которых их давно бы стоило гнать ссаными тряпками из индустрии.
#490 #766088
>>765959
Ну он так и говорит, что годный академический язык, но сложнее Джавы и не дает прям таких киллер фич, поэтому тырпрайз ебал его и уходит с него.
>>766102
#491 #766102
>>766088
Не уходит, а _не переходит_, потому что мартышкам за 1$ в час больно без знакомых ПАТТЕРНОВ в жопе, и киллер фичами они воспользоваться не могут в виду того что они не разработчики а тырпрайз мартышки.
>>766178>>766297
1698 Кб, 1244x712
#492 #766178
>>766102
Проще говоря, Scala нахрен не нужна никому, кроме изучивших Scala разработчиков.
>>766888
#493 #766297
>>766102
Ты хочешь сказать что Твиттер _не перешёл_ на Скалу? Или может всё-таки _ушёл_?
>>766888
#494 #766298
>>765891
Хуйню какую-то несёт про Скалу.
В 8ой жабе появились лямбды - Скала закономерно пошла нахуй.
>>766499
#495 #766384
У вас БАРУХ.
#496 #766499
>>766298

> В 8ой жабе появились лямбды


Может, кроме блямб еще и паттерн-матчинг, иммутабельность, алгебраические типы, вывод типов завезли? Ну тогда...
>>766524>>768239
#497 #766524
>>766499
Вот - вот, чувакам синтаксического сахара к анонимным классам завезли, а они уже на радостях в штаны припустили.

А вывод типов кста обещают - лет через 5.
>>768241
#498 #766550
Наскальные сектанты, а напомните что вне России из серьезного использует скалу.
>>766965
#499 #766888
>>766178
Тебе точно не нужна, не отвлекайся от РЕАЛЬНЫХ БИЗНЕС ЗАДАЧ и абстрактных фабрик бобов.

>>766297
С чего бы ему уходить, фантазер?
>>766935
#500 #766935
>>766888
Ты так и не ответил кому нужна, кроме изучивших Scala разработчиков?

> абстрактных фабрик бобов


А что плохого в абстракциях? Хуячим по-хардкору сразу реализации и сильные связи между реализациями компонентов? Ведь главное написать и продать, а какой лох потом будет все это поддерживать или расширять функциональность не ебет?
#501 #766965
>>766550
Вне России - конечно никто, только в Сколково жулики и воры Twitter и Foursquare пилят на ней бюджет.
#502 #767432
#503 #768239
>>766499

> иммутебальность


Чё-то кекнул со скалодебила. Как будто в Скале иммутабельные коллекции - это дефолт.
И да, никто не мешает использовать в Джаве хорошие иммутабельные коллекции из Clojure. Они, в отличии от скаловских, реализуют интерфейсы стандартной библиотеки и их реально можно вызывать из Джавы.
#504 #768241
>>766524
Вывод типов как бы уже есть в некоторых случаях.
#505 #770830
ВНИМАНИЕ!
ауе, братульцы!
будте аккуратней не встряньте в хуй пойми какие негодные проекты в банках типо Т и С на скале и спарке.
проекты конина блядская.
предупрежден - вооружен.
>>771297
#506 #771297
>>770830
Как будто в банках бывает не говно.
Тред утонул или удален.
Это копия, сохраненная 30 июня 2016 года.

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

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