Двач.hk не отвечает.
Вы видите копию треда, сохраненную 14 февраля 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
10 Кб, 680x680
46 Кб, 620x620
Scala #576898 В конец треда | Веб
Очередной тред про самый лучший язык для JVM.

Курс по 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 #576899
Зачем нужна скала, когда есть кложурка?
#3 #576903
И сразу вопрос: где лучше всего учить Скалу, кроме видеокурсов? Где есть интерактивные уроки типа codacademy или годные текстовые уроки с заданиями типа learn.javascript.ru?

>>576899
Затем, что синтаксис удобнее.
#4 #576909
суп,

я начинающая веб макака, пользователь spring фремеворка.
я могу писать на скала вместо жабы?
#5 #576910

>пикрел


Имхо на Java лучше и понятнее, т.к. сразу понятно, что он делает. Код на скале выполняет какой-то flat mapping по мапу, это вообще ниачем мне не говорит (на самом деле говорит, но я делаю вид что не шарю функциональную дрисню)...
#6 #576917
>>576909

>я могу писать на скала вместо жабы?


Разумеется! После недели использования скалы ты от жавы блевать будешь.
#7 #576924
Поссал на олигофрена.
Плей у него асинхронный.
Хррртьфу в еблет.

Алсо ссу на акку и все прочее говно.
Груви, котлин, кложур - все ссут на скала олигофренов.
Даже создатель языка ссыт на скалаолигофренов.

Мимо жабабог.
#8 #576926
>>576917
Зато пока жава бог уже будет дома ебать няшную тянку, ты будешь ждать пока это говнище скомпилирует последний комит на 5 строк.
#9 #576927
>>576910

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


Ну, претензии понятны, чо.
#10 #576928
>>576909
Не пизди про фреймворк говноед.
Так и скажи хеловорды на на буте.
Или быстра в студию типы срезов и советов в спринговском аоп.
76 Кб, 825x825
#11 #576929
>>576924
>>576926

>жавадаун


>тянка

#12 #576930
>>576929
Запости побольше боевых картинок пидрила б
Один хер от этого sbt говном быть не перестанет и вонючая скала будет собираться в 1000 раз дольше явы
#13 #576939
>>576930

>пидрила


>говно


>вонючая скала


>в 1000 раз


Типичная жавамакака. Уроки сделал?
#14 #576974
>>576939
Да.
А ты?
#15 #576979
>>576898 (OP)
А в чем вообще прикол? Вот даже на втором пике в шапке я понимаю что написано у пердоллера справа, в то время как у пердоллера слева - нечто напоминающее мне о временах ANSI C с макросами. Код же по структуре, скорости, полезности не поменялся, он стал просто короче и непонятнее. Тогда зачем? мимо кресто-макак
#16 #576988
>>576979
Потому что скала это ебучий препроцессор обычной явы.
Ебучий слоупочный препроцессор.
Сахарок ифункциональное говнецо, которые уже есть в груви и яве8.
Скала абсолютно убогое и негужное говнище.
#17 #576991
Причем блять препроцессор на рефлексиях. Карл блядь! На рефлексиях!
Потому эта сцанина и тормозит как мамка опа перед 3 хачами.
#18 #576999
>>576898 (OP)
Чем оно лучше кложуры?
#19 #577001
Этот ИТТ тред не успел начаться, а у жаваобезъян уже обильные разрывы. ОП молодец.
#20 #577002
>>576898 (OP)

> второй пик


> как будто в 8ой джаве нет flatMap

#21 #577004
Лучший язык для JVM??? Scala??? Блядь, да как такое можно было соморизить? Clojure - вот это может быть.
#22 #577029
>>577004
Ну лиспосёма, хватит уже.
#23 #577075
>>576988
Иди лови эксепшены в своих лямбдах.
#24 #577080
Реально ли вкатиться в коммерческую скалу без джавы? Сейчас пишу на питоне и жаваскрипте.
#25 #577082
>>577080
Двачую вопрос. Сейчас пишу на ноде, заинтересовала скала. Хочу выучить, но в чистой жавапараше нет никакого желания ковыряться.
#26 #577086
>>577082
Джава проста как камень, не вижу в ней нечего сложного. А если учитывать как хуево работает скала и какая у неё хуёвая инфраструктура в джавапараше тебе всё-равно надо будет разбираться.
#27 #577146
>>577086
Проиграл с тебя. Реиспользование жава либ бай дизайн же, зачем скала господам переписывать все написное жаба рабами за 20 лет.

Если инфрастукура такая хуевая чтоже жабаебы собирают свои жаба проекты на sbt и пишут тесты на скале.
#28 #577158
Пока остальные JVM-бляди трещат перделями пытаясь соревноваться со скалой в длинне однострочников на шкалке пишут даже реализации микропроцессоров.
#30 #577167
>>576910
Да похуй. На джаве с недавних пор тоже можно писать:
orders.stream().flatMap(List::stream).collect(Collectors.toList())
#31 #577170
>>577080
>>577082
Я 2.5 года назад вкатился (был сишарпером), но думаю мне повезло: почему-то написал в резюме что знаю скалу немного, оказался в подходящее время в подходящем месте etc. Перекатиться можно, но думаю будет непросто. Если нет опыта в работе с платформой, нужно знать что-то кроме языка: разбираться в предметной области, или в хадуп-стеке, или в вебе, ну вы понели.
>>576999
Они разные. Для меня Скала лучше тем что:
1) Статическая типизация
2) Не лисп, а значит синтаксис есть и не принято широко использовать макросы.
Можно конечно сказать что это не преимущества, а недостатки. Тогда бери кложуру.
>>576903
Любой язык лучше учить прочитав книжку по нему и написав реальный код, c тестами и всем остальным. Имиджборда подойдет.
>>577082
В скале часто используются джавовые библиотеки и вообще инфраструктура у них похожа, так что ковыряться все равно придется, от проекта зависит насколько часто. Мне лично редко приходится.
>>577146
Эти даунята троллить пытаются. Скала - препроцессор джавы на рефлексиях. Ну ахуеть теперь.
#32 #577172
Скаланы и стремящиеся, вот годнота на русском. Для начинающих самое то.

http://twitter.github.io/scala_school/ru/index.html
http://twitter.github.io/effectivescala/index-ru.html
#33 #577178
Один shapeless уже стоит изучения скалы.
sage #35 #577183
>>577170
Петух не знающий что его ссаная скала работает на рефлексиях детектид.
#36 #577184
Прелюдии для монадоголовых:
http://eed3si9n.com/learning-scalaz/
http://eed3si9n.com/herding-cats/
#37 #577186
>>577170
А чем вы билдетесь? SBT? Плагин для грейдла есть? И вот что мне ещё интересно, а когда вы юзаете джавовские либы вы используете стиль джавы? Все эти явные вызовы и прочее? На досуге читаю скалу для нетерпеливых Хорстмэна, очень не нравится синтаксис. Этот вызов методов без скобочек, возможность переопределить любой символ, очень всё это попахивает плюсами.
мимо-джавист
#38 #577187
>>577183
Петух у которого половина фреймворков работает на рантайм аннотациях нам еще пояснять что-то будет.
#39 #577188
>>577186

>очень всё это попахивает плюсами.


А скалка это и есть такой хипстерский плюс-плюс залитый сахарком и сервированный в окружении жвм.
#40 #577190
>>577186
Если метод возвращает pure значение и нигде не мутает стейт, то и скобки не нужны, потому как referential transparency и вместе вызово однохуйствено получено ли значение вызовом метода или это константа. По конвенции скобки оставляют только у side-effect методов типа print().
#41 #577192
>>577186
Билдимся SBT, почти всем довольны. Можно еще maven юзать, про gradle не знаю.

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


Не совсем понял о чем ты. Стиль именования одинаковый же.

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


У тебя какая-то каша в голове пока. Но впринципе стайлгайд нужен, есть такое.
#42 #577193
>>577186
А если под "вызов без скобочек" ты имелл ввиду вызов без скобок с параметрами, то такой синтаксис используется редко, обычно для построенния DSL или где он добавляет читабельности (где вызов можно прочитать как предложние, привет рабиблядкам).
#43 #577194
>>577188

>хипстерский плюс-плюс


Вот вот, на D слишком смахивает. Без шаблонов.
#44 #577195
>>577194

>Без шаблонов


В ГОЛОСИНУ
#45 #577196
>>577194
И вместо Александреску у нас Сабин
#46 #577198
>>577192
Ну смотри пример из Хорстмана, вызов метода to он записывает как 1 to 10, вместо 1.to(10). Так вот, если вы юзаете джава либы как вы пишете?
118 Кб, 356x438
#47 #577199
А как в scala с обратной совместимостью?
#48 #577201
>>577199
Всё очень просто. Её просто нет.
93 Кб, 500x500
#49 #577204
>>577199
Akka 2.4 бинарно совместима с 2.3
#50 #577206
>>577198
Как обычно пишем. Какая разница на каком языке либа написана?
>>577199
Так себе. На уровне исходников есть, бинарной между мажорными релизами нет. Если что-то хотя выкинуть из стандартной либы, сначала помечают deprecated, а в следующей версии удаляют. Btw, я за полный редизайн коллекций, даже если в каких-то специфических кейсах код сломается.
#51 #577213
>>577206
т.е. в проекте можно встретить и такой синтаксис Object getHujnya getGovno и такой Object.getHujnya().getGovno()?
#52 #577215
>>577146
Я видел только чтобы собирали на gradle и писали тесты на groovy.
Мне всегда казалось что set - одно из самых слабых МТС в экосистеме скалы
#53 #577218
>>577215

> слабых мест

#54 #577223
>>577213
Ну как напишешь так и будет, лол. Чтобы этого не было, нужен стайлгайд и/или здравый смысл. Рекомендую так: Object.getHujnya.getGovno если эти геттеры не имеют сайд-эффектов.
#55 #577230
>>577223
Работа над проектом где-то в 50 программеров на java, где, собственно, сложно со стилем налажать, жмакай в idea alt+ctrl+L и будет заебись. Так через пол года столько говна была, что ну его нахуй. На проекте, конечно, не было code review, но даже если бы и было, думаю все бы на него забили. И не надо говорить о говно программистах, в больших командах всё равно будет пара говённых. помню как один запихнул тернарный оператор в тернарный оператор который был в тернарном операторе, вместо if-else ветки Как бы не гнали на го, но их gofmt и компилятор, который не собирает сорцы без нормального форматирования это охуенно.
#56 #577307
>>577230

>Работа над проектом где-то в 50 программеров на java


Это что за монстр такой?
>>577206
>>577215
С коллекциями-то что не так? Вроде Мартин там накрутил чтоб все круто было.

Меня отталкивает "сложность" Скалы. Если создатель языка делит программистов на уровни по знанию - это плохой знак.
#57 #577308
>>576898 (OP)
ваша scala переусложнена. слез с нее в 2012
#58 #577311
>>577308
Двачую, а ведь в начале я так восхищался ею. Но чем дальше, тем больше я ее ненавидил.
#59 #577316
>>577311
потому что это ебаный haskell только на JVM. бросайте эту вашу скалу и берите Kotlin. Не ебите мозги зря
#60 #577318
>>577316

>haskell только на JVM


это вообще нереально. haskell выебет в стэк JVM.
#61 #577329
>>577316
Нахера нужен Котлин, если есть божественная Java?
#62 #577336
>>576898 (OP)
В ОП-пике ошибка.

Java:
 public Stream<Product> getProducts() {
   return orders.flatMap(o -> o.products);
 }
#63 #577338
>>577329
Закопай это устаревшее жаваговно туда, откуда выкопал.
#64 #577360
ОПу добра.
#65 #577363
>>577329
Наппример, в Android-разработке он нужен (хоть и не применяется широко), просто потому, что на Андрюше Java 6 (!!!) - очень отсталое дерьмо.
#66 #577465
>>576910
На самом деле джва-код вообще не запустится, что показывает уровень знаний скалахав.
#67 #577479
>>577307

>Работа над проектом где-то в 50 программеров на java


Писался четыре года, сменилось куча народу, и получается так, что ты даже не можешь подойти и сказать: "Чувак, что за говно ты написал?"
#68 #577527
>>577230
Такие нарушения это что-то вроде snake_case в джаве, редко встретишьб и это далеко не самое хуевое что может сделать говенный програмист. Алсо есть http://www.scalastyle.org, но для этого случая его использовать не стоит: если ты пользуешься DSLем, вероятно ты будешь использовать синтаксис object method.
>>577307

>С коллекциями-то что не так? Вроде Мартин там накрутил чтоб все круто было.


Долго рассказывть. Почитай вот это
https://gist.github.com/djspiewak/2ae2570c8856037a7738
Или баттхертнутого посмотри: https://www.youtube.com/watch?v=4jh94gowim0
>>577316

>потому что это ебаный haskell только на JVM.


Haskell на JVM это https://github.com/Frege/frege.
Скала никакого отношения к Хаскелю не имеет. И это не better Java, как Котлин, это отдельный язык.
#69 #577529
>>577479
Я подумал, что одновременно.
#70 #577530
>>576979

> непонятнее.


> мимо кресто-макак


Ну ничего удивительного, для мартышки наука тоже будет непонятнее банана.
#71 #577534
>>577530
Вот и научные работники подтянулись. Какой индекс Хирша имеем, юноша?
#72 #577538
>>577213
Сейчас проверил, например this getClass getClassLoader не компилируется вообще, остутствующие () тоже ошибка компиляции, а лишние () подсвечиваются идеей.
#73 #577539
>>577316
Ебаный хаскель в разы проще и консистентнее.
#74 #577557
>>577316
Это не Хаскель, а фанфик на Хаскель.
https://twitter.com/plt_hulk/status/341292374355501056
#75 #577563
>>577557
Я бы не стал воспринимать всерьез человека с ником, имеющим в составе PLT.
#76 #577571
>>577539
Писать на Scala хоть и не так удобно и продуктивно как на Java, но всё же лучше, чем на Haskell.
А всё потому что в Scala хотя бы есть человеческие var и for.
#77 #577572
>>577571
При беглом осмотре for оказался do-нотацией со странным названием. А с var что не так? Пиши весь код в IO, и радуйся жизни.
#78 #577647
>>577563

> человека


Это твиттер-аккаунт для шуточек про программировние. На него даже Phillip Wadler подписан.
#79 #577652
>>577647
но ведь в каждой шутке доля правды
179 Кб, 428x476
репортаж из жопы #80 #577675
Сижу на джавном митапе. Человек рассказывает, как они там на линух поставили wildfly8, каковая является просто новым именем джейбосса. Ощущение как будто на встречу энтузиастов форта или дельфи зашел. Мужик несет какую-то хуйню про эксемельную конфизурацию, показывает дикую картинку интероперабилити с другими аббревиатурами. "Common Annotations", например. Или еще - Concurrency. У них что там, конкарренси раньше не было? В одну нитку джейбосс работал?

Ну и т.д. Народ сидит какой-то кондовый; подобного рода толпу я последний раз видел, когда за каким-то хреном зашел на местный кампус Майкрософта. Бухгалтеры какие-то. Ну и в самом деле, кого сейчас интересует джава в наши дни?

Я-то зашел, на самом деле, чтобы объявление сделать, что нанимаем. Но уже жалею.

Вот одна строчка с экрана:

private static final Object PRESENT = new Object()

Кстати, мероприятие происходит на гугловском кампусе, но этот факт в данном случае нерелевантен. Единственно что водят по кампусу под конвоем.

http://ivan-gandhi.livejournal.com/2742298.html#comments
24 Кб, 700x526
#81 #577690
>>577675
Типичная джява™ же
#82 #577694
>>577675
В джаве есть 2 мира:
1. Энтерпрайз джава - всякая джава EE и прочее дно.
2. Адекватные люди - биг дата, проекты ASF, альтернативные JVM языки и так далее.
#83 #577713
Скаланы, такой вопрос.
Есть код типа такого:
for {
user <- Users.findById(userId)
address <- user.address
toilet <- address.toilet
govno <- toilet.govno
} eat(govno)

Внутри фора - опшны. Все красиво, все работает, няшнота. Но тут приходит злой заказчик и говорит - "Хочу видеть, почему мне приходит мало говна". Кароч, грубо говоря, если какой-то из опшнов - None, то нужно это залогировать. Как это сделать по-человечески, чтоб без развесистых деревьев if-ов и match-ей?
#84 #577715
>>577713
def tryOption[T](opt: Option[T], message: String) = {
if (opt.isEmpty) log.warning(message)
opt
}

...

for {
user <- ...
govno <- tryOption(user.govno, "Govno is in another castle")
}
#85 #577726
>>577694
Иди типизированый актор напиши адекват, лол
#86 #577730
>>577694
А андроид ты куда отнес?
#87 #577733
>>577167
Читабельно как земля.
>>576927
Я джавист например, скалу и функционалку не знаю.
Но блять непонятно ни что за коллекция, ни что за объект, откуда там параметр продуктс вообще?
Что за говно блять? Как ошибки отловить?
#88 #577745
>>577733

> Скалу не знаю, но удивляюсь, почему не понимаю код на ней. Пиздану, что это скала говно, а не я тупой.


Говорю ж, понятно с тобой все.

> Я джавист например, функционалку не знаю.


Пиздец, восьмая джава два года как зарелизена, семерку уже даже не поддерживают — нет, блядь, я, как истинная макака, не буду учить новое в языке, на котором работаю, пока пинка под жопу не получу.
150 Кб, 764x618
#89 #577775
Вышла какая-то программа КПСС, где написано, что они со своей джавой номер восемь скоро догонят и перегонят скалу.

Эти кложи Гафтер пытался впарить народу ещё в 2007-м; в 2008-м народ Гугла голосованием (сфальсифицированным) постановил: "не треба", а Гафтера поставили чинить какую-то кнопку в гугл-календаре; после чего Гафтер сбежал из соцлагеря в империю зла (после Гугла полюбишь и козла); ну и всё заглохло.

Между тем в Атлассиане уже рассекают на скале с аппликативными функторами и категориями Клейсли; в 2015м году, небось, или Хагано вставят в скалу, или мы будем мобильные апликации через когомологии в уме компилировать.

Смешно, короче.

И один с++ плывёт одиноко, как айсберг в океане. Ему чужды эти страсти.

http://ivan-gandhi.livejournal.com/2017963.html
sage #90 #577781
>>577167
Вот так можно писать http://pastebin.com/G6hAqarv
Или так http://pastebin.com/qrKxabtM
приходил Раджа #91 #577789
На интервью. Он там какой-то, если резюме верить, архитектор - старший дизайнер - тимлид в финансовой конторе; теперь вдруг захотелось ручками покодировать. Языков знает много, обычные C, C++, Java, Python.

Попросил его на джаве написать String formatAsDollars(double amt) - ну типа чтобы тройки разделять запятыми, и чтобы после точки две цифры, и чтобы округлено.

Смешно было смотреть, как он выдумывал методы по ходу дела; и как он написал amt.toString, потом токенайзером ("примерно") разбил на целую и дробную часть; вставку запятых в целую я пропустил, скучно, а спросил, как он округлять собирается. Ну там превращает строку в массив (магическим образом), и проверяет, если в третьей позиции 5, то увеличит вторую позицию на единицу. А если там цифра 9, спрашиваю. Задумался. Надо, говорит, дополнительную проверку. Про $999.996 я его не стал мучать, спросил про сиквел. Ну там top 20 earners. Стал джойнить таблицы, по номеру соцстраховки. Потом написал сиквел из двух строк. В первой rowcount=20.

Стал его допытывать, а вот если у меня два счета в банке, с одного 20 баксов берем, на другой кладем; как сделать, чтобы не удвоилось и не пропало. Слышал слово "транзакция". Если что, говорит, то rollback надо делать. А если успешно перенесли, то коммит. А как мы узнаем, что хорошо перенесли... ну и т.д.

Спросил, как "интернет работает". Ну тут общая картина у него есть в голове. Если, говорит, страницу успешно прочитали, то код 200. А если не нашли, то 400. Диковато, конечно, видеть человека, который про 404 не знает (ну ладно, ладно, бывают и другие четырехсотки).

Короче, еле вытянул этот час. О блин. Вот такие Раджи засрали весь дискурс... эх.

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

CCD

http://ivan-gandhi.livejournal.com/3403947.html
#92 #577795
>>577745
Джава код из оппика несет в себе информацию про объект, про коллекцию, про возвращаемый тип.
Код на скале нихуя не несет кроме того что есть коллекция и в ней блять есть обьект.
#93 #577799
>>577795
Эх, жаль джава-код не несет информацию о том, сколько под эти данные выделяется памяти, где конкретно она выделяется и где освобождается, было бы еще удобнее же. А если бы еще знать в какие регистры кладутся переменные — вот это красота была бы!
Ведь без этого получить из набора заказов набор товаров в них — никак нельзя.
#94 #577801
>>577799
Ну мне интересно сколько времени уйдет у человека пишущего на скале чтоб понять что твоя строка делает, и сколько у жабиста на понимание метода.
Ой я забыл, ты же код пиздуешь абы отдать его быстрее и забыть.
#95 #577817
>>577801
Тащемта нисколько ни ушло - так ёбана у нас тут flatMap значит products, наверное, iterable или option значит хуяк хуяк собрали продукты по заказам.
#96 #577822
>>577801
В скала-коде вызов одной-единственной функции, что он делает понятно с первого взгляда любому скалисту и джависту, осилившему лямбды.
#97 #577827
>>577817
>>577822
Имелось ввиду отсутствие инфы о данных с которыми работаем.
#98 #577836
>>577827
Дрочить ты на эту инфу собрался что ли?
#99 #577839
>>577836
Понимать собрался.
#100 #577848
>>577839
нинужно
#101 #577851
>>577839
Выучи скалу, будешь понимать.
Пиздец, весь адекватный мир давно понял, что лишняя инфа о типах не нужна и перешел на вывод типов, и тут обьявляется мамкина макака, сидящая на древней джаве, небось даже еще без дженериков, и говорит, что это говно.
#102 #577935
>>577851

>тут обьявляется мамкина макака, сидящая на древней джаве


Таких мака миллион, толстовато.
#103 #577945
>>577935
И вот от этого у меня горит. Джава, блядь, неповоротливое говно из-за обратной совместимости, релиз лямбд переносили с 1.7, и ели релизнули в 1.8, что бы вы могли юзать всё и с разу, а всё сообщество забило на это хуй. Пришел в проект где юзают 6 java, 6, блядь, срок поддержки которой закончился 5 лет назад, мало того, все фреймворки, в этом проекте, такой же степени тухлости, это же ебанный ад. И, если честно, я понимаю почему Оракл бугуртить по поводу андроида, мало того что в самом сообществе так сегментация рынка, так ещё и андроид застрял на версии 1.6.
#104 #577951
>>577945

>неповоротливое говно из-за обратной совместимости


И сразу иди нахуй.

>Пришел в проект где юзают 6 java


Это кстати норм, и я так и не понял в чем проблема сменить омг компилятор и писать на 1.7?

>андроид застрял на версии 1.6


Сам с андроида, 1.7 уже доступен. Оракл говножуи судятся с гуглом за все что можно.

Сам поделись опытом на чем и сколько пишешь?
Я боюсь макаки с неповортливым языком имеют тебя и в хвост и в гривы с легкочитаемым и компилируемым кодом.
#105 #577956
>>577945
Ну и добавлю что лучше уж котлин. Джетбренс говна не посоветует, пускай еще годик другой пройдет.
#106 #577959
>>577945
Оракл бугуртит только потому что бабки уходят гуглу, а не им.
Я кстати так и не понял в чем прикол срача, джава везде опенсорсная, еще и говорят что они спиздили апи, что за говно? Тогда уж весь энтерпрайз судили бы.
#107 #577963
>>577951
Пишу на java. Посматриваю в сторону scala и clojure. Дело в том, что поменяю я у себя jdk и что дальше? Закоммичу сорцы которые у других не заработают? И что мне потом, переписывать таргеты на CI, каждого просить прописать ключи javac? Да и хуй бы с ней с java, там спринг версии 3 и все конфиги в xml. Одно радует, я временно на этот проект попал.
#108 #577966
>>577675
Какая замечательная картинка, как нельзя лучше передает суть большинства российских джавистов. Хуже этого днища только 1C'ники.
#109 #577967
>>577959
Какие бабки? Ты о чем? Потому что андроидщики не покупают веблоджик или ораклдб? А может не проходят сертификацию у оракла? Так и в мире бекэнда это уже давно никто не делает.
#110 #577969
>>577963
Переходили с 6 на 7 и далее на 8. Оба раза просто меняли версию jdk в maven. Не знаю что у вас там за проблемы.
#111 #577970
>>577959
Ну типа в андройде не JVM, а своя нестандартная машина. Солнце с майкрософт точно так же судились.
#112 #577971
>>577969
Рукожопы там.
#113 #577972
>>577970
Ну блять оптимизировали под себя. Хотспот на говно процы чтоль ставить?
#114 #577973
>>577967
Ну а на кой хуй им тогда судится за опенсорс? Развивайте себе язык раз взялись.
#115 #577975
>>577969
Работал в прошлом году над одним проектом, который на 7 джаве просто падал (на 6 было все норм), какие-то аннотации там не поддерживались. Но там была реально куча говнокода, ни тестов, ни Maven не использовали.
#116 #577976
>>577971
Так и есть, там ещё и проект билдят антом, а зависимости подкладывают руками. На вопрос хули вы так делаете и что это за говно, говорят что и так работает, а проекту скоро уже 9 лет.
#117 #577977
>>577976
Ну тогда понятно, 9 лет это нихуевый срок. Зато ниодно говно на другом языке столько не проживет, понимаешь?
#118 #577978
>>577972
Это только повод, а на деле ораклу просто припекает, что они ничего не имеют с андроида.
#119 #577979
>>577978
Собственно я об этом и говорю.
#120 #577981
>>577976

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


Там Visual FoxPro случайно не используется? Кажется, догадываюсь что за проект.
#121 #577986
>>577977
В этом то и проблема, что в java мире частенько живут как в коробке. Стартовали проект и заморозили стек, а через 5-6 лет проапдейтели, не представляю почему люди работают так по 5 лет, никакого фана от работы.
>>577981
Нет.
#122 #577987
Обоссал всех джява-индусов итт.

Скаланы, нахуй учить недохаскель на кривой JVM и потом шквариться работой со всяким яванским приматами, вместо того чтоб взять нормальный компилируемый язык типа Rust или Haskell, с нормальным комьюнити? В скале слишком много компромиссов, чтобы брейн-демейдж пипл тоже могли кодить на ней в привычном кобол-стайл, но нахуя это всё? Эти дауны не могут и не хотят развиваться, это как байтоёбы, только хуже. ИТ-комьюнити давно разделено на прогрессивное и тех кто в танке, и объединить их невозможно. Те кто приходят в скалу из джавы хуй ложили на типы, ФП и т.д, для них это просто сахарок чтоб писать чуть меньше бойлерплейта. Вы действительно хотите работать плечом к плечу с такими даунами? Зачем? Гибридоговно не нужно.
#123 #577990
>>577987
Как это ты еще на джаваскрипте не пишешь?
#124 #577991
>>577987

>rust


>haskell


А работа то где? Где деньги брать?
#125 #577993
>>577991
Нахуй тебе деньги?
#126 #577995
>>577993
Двачую этого! Деньги, братцы, не главное, главное - опензоурз и поедание собственного грибка вместе с грязью из под ногтей!
#127 #578000
А вообще, жвм петуханы слишком распоясались, 3 ебаных жабных тредика на нулевой, идите нахуй просто блядь.

тест

──────────────────────── ─────────▄▀▀▀▀▀▀▀▄────── ────────█▒▒▒▒▒▒▒▒▒█───── ───────▄▀▒▒▒▒▒▒▒▒▄▀───── ──────█▒▒▒▒▒▒▒▒▒▒█────── ─────▄▀▒▄▄▄▒▄▄▄▒▒█────── ─────█▒▒─▀─▒─▀─▒▒█──I─── ─────█▒▒▒▒▒▒▒▒▒▒▒█──AM─── ────▄▀▒▒▒▀▄▄▄▀▒▒▒▒▀▀▄─BACK── ──▄▀▒▄▒▄▄▒▒▒▒▒▒▒▒▒▄▒▒▀▄─ ─█▒▒█▒█░░▀▄▒▒▒▒▒▒▒▒█▒▒█─ ─▀▄▀▒▒▒▀▄░░▀▄▒▒▒▒▒▒▒▀▄▀─ ───█▌▌▌▌▌▀▄░░▀▄▌▌▌▌▌█─── ───▀█▌▌▌▌▄▀░░░░█▌▌▌█▀───
#128 #578061
>>577336
Стримы - абстрация для обработки данных, хранить и передавать их нужно в коллекциях.
#129 #578097
>>578061

> для обработки данных


Именно поэтому из любого метода наружу надо по-возможности возвращать стримы вместо конкретных коллекций, ведь на стороне вызова может понадобится дальнейшая обработка.
Представь ситуацию:
yoba2(yoba1(xs).map(..)...).map(...).collect(...)
1) yoba1 и yoba2 возвращают конкретные коллекции
Будет создано 2 лишних промежуточных конкретных коллекции,
и только в самом конце через collect - та что нужна в конечном итоге.
2) yoba1 и yoba2 возвращают стримы
Создано 0 лишних коллекций, и одна нужная в конце.
#130 #578118
>>578097
В этой ситуации работу метода, который возвращает Stream, нужно уместить в методе, из которого он вызывается, и не ебать никому мозг лишними сущностями.
Обычно данные, которые возвращают хорошие методы в вакууме, используются не единожды.
#134 #578321
>>577986

> Стартовали проект и заморозили стек, а через 5-6 лет проапдейтели, не представляю почему люди работают так по 5 лет, никакого фана от работы.


Иди на джаваскрипте попиши, каждую неделю будешь стэк апдейтить. Дохуя "фана", базарю.
#135 #578324
>>578300
>>578288
манька
а теперь потестируй его на производительность
#136 #578448
>>578321

>Иди на джаваскрипте попиши, каждую неделю будешь стэк апдейтить


Что за хуйню ты несешь?
мимопишунажаваскрипте
#137 #578450
>>578118

> В этой ситуации работу метода, который возвращает Stream, нужно уместить в методе, из которого он вызывается


Это зависит от того, сколько там работы, как и насколько часто она реюзается. Ты вообще ни на чём больше не писал, да? Во всех остальных языках методы возвращающие стримы (IEnumerable в C#, генераторы в питоне, и тд) повсеместны. Например, тебе надо проитерироваться стриму и распечатать все значения. Только даун станет лепить здесь промежуточную коллекцию, потому что держать все эти элементы в памяти одновременно нинужно. К примеру, нормальная реализация хештаблички должна уметь возвращать стрим ключей или значений, который позволяет пройтись по нему в константной памяти, без промежуточных коллекций. При этом, нормальная реализация хештаблички не выставляет наружу свои кишки и ты "работу метода, который возвращает Stream, нужно уместить в методе, из которого он вызывается" никак не сделаешь, но даже если мог бы, это было бы слишком длинно и непрактично делать каждый раз с нуля.
#138 #578539
>>578450

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


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

- Что происходит в этом коде?
- А проследуй блядь в 5 разных мест и найди 5 огрызков, покрытых нахуй не нужными unit-тестами, которые можно на месте в 3 строчки уместить.
24 Кб, 700x526
#139 #578541
>>577827
Ctrl зажал, мышь навёл, вот тебе и информация, щегол, если уж у тебя память как у золотой рыбки.
#140 #578571
Поясните за макросы. Для чего их можно использовать и как?
#141 #578679
>>578571
Для автоматического дерива тайпклассов же очевидно.
#142 #578919
>>578539
Императивная макака пытается в функциональный подход.
#143 #578923
>>578919
В Java нет функционального подхода, в Java имитация функционального подхода, и стримы не имеют ничего общего с теми же листами из Lisp например.
#144 #578989
>>578539
И сразу обоссал этого неосилятора структурного программирования и декомпозиции. Какой ты там ревью делаешь, пидрила? У меня ты бы на джуниора собес не прошел бы, говно.
#145 #579025
>>578989
Да ты бы и сам у себя собеседование не прошел.
#146 #579163
>>578989
Как только ты, школьник, осознаешь, что стрим - это представление результата, а не непосредственно результат, и если твои методы возвращают стримы, то твоя архитектура безнадежно уебищна - продолжим.
#147 #579799
>>578061
>>578118
По твоей логике, весь Apache Storm (который занимается обработкой потоков данных в реальном времени) должен быть в одном методе.
Найс.
#148 #579915
>>579799
Это разные абстракции, кусок долбоеба.
Как же ты утомил меня, блядь.
#149 #579928
>>579915
Ты какой-то ебнутый.
По твоей логике, итераторы тоже передавать нельзя, так?
Шах
#150 #579946
>>576898 (OP)
Что, блять, за хуйня написана в реплике джависта?
аутист-второкурсник
#151 #579956
>>579928
Не знаю, как ты связал стримы и итераторы, аутист.
#152 #579977
>>579946
ЗАТО ПОНЯТНЕЙ НУ И ЧТО ЧТО БРЕНД И ДЛИННЕЙ, ЗАТО ПОНЯТНО ТО КАК!
миможависты
#153 #579981
>>579977
Скалапидор разучился читать.
#154 #580008

>Scala-тред


>срач джява-индусов



вся суть языка
#155 #580059
>>579956
А это:

> Стримы - абстрация для обработки данных


не ты писал, нет? А итератор - не абстракция для обработки данных? А теперь объясняй, ебанашка, почему, по-твоему, одну "абстракцию" можно передавать туда-сюда, а другую - нет.
#156 #580074
>>580059
Одна абстракция для доступа к данным, вторая - представление данных для удобной обработки, ебанашка.

И да, передавать итераторы в Java смысла никакого.
#158 #580095
>>577336
Тоже им уже писал этот кусок кода, походу скалисты необучаемые =\
#159 #580106
>>577336
И много программ уже написано на восьмой джяве™? В ведроид уже завезли что-то новее 6?
#160 #580119
>>580106
На сервер-сайде восьмёрку юзают полным ходом. Вот навскидку нагуглилась статистика полугодичной давности:
www.baeldung.com/java-8-spring-4-and-spring-boot-adoption

В ведроиде - уже семёрка, но восьмой ещё и не пахнет.
#161 #580155
>>580077
Я 10-й раз повторяю, что Stream - представление. Там внутри гарантированно есть какая-то коллекция, которую просто сделали collection.stream() в угоду непойми чему. Что мешало бы сделать collection.stream() на месте, передавай они просто ссылку на коллекцию - хуй ее маму знает. В коде ядра Linux можно сотни goto отыскать, нихуя не значит.
#162 #580170
>>580155
Stream - это не представление, там внутри нет коллекции. Стрим может врапать собой функцию или счётчик и на своём шаге наращивать его по какому-то закону и возвращать новое значение, или применять функцию к старому состоянию и возвращать новое. Когда ты делаешь collection.stream() - это близко к тому, как когда ты делаешь collection.iterator(). Стримы коллекций врапают собой новый вид итератора - https://docs.oracle.com/javase/8/docs/api/java/util/Spliterator.html , и позволяют больше всего, да ещё и параллельно. Стримы могут быть потенциально бесконечные:
https://ideone.com/rg5XAq
Когда я писал про стримы ключей и значений мапы, ясен хуй что я предполагал, что там внутри не будет никаких промежуточных коллекций для этих самых ключей и значений - ведь в чём тогда профит по памяти? Юмор жабки в том, что на самом деле, в ней есть эти стримы. Дело в том, что когда ты делаешь keySet - это на самом деле не настоящее множество, реально содержащее ключи, а т.н. вьюха (гугли java collection views) - виртуальная коллекция, которая перегружает все методы Set (а главное - итератор) так, чтобы доступаться к ключам изначальной коллекции. Так что когда делаешь yoba.keySet().stream() - это и есть стрим ключей в константной памяти без промежуточной коллекции.
#163 #580189
Похоже, итт кое-кто думает, что джавовские стримы - это что-то вроде скальных стримов.
Нет, скальные - это конкретная структура данных, что-то типа хаскельных ленивых списков, в джаве Stream - это вообще интерфейс:
https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html
#164 #580197
>>580189
В джаве Stream - это костыль, в скале можно просто взять итератор и он будет со всеми мапами и флетмапами.
#165 #580245
>>580155

> Там внутри гарантированно есть какая-то коллекция, которую просто сделали collection.stream() в угоду непойми чему.



Пиздец-пиздец. Какая коллекция внутри у бесконечного стрима? А если я 50-гигабайтную csv-шку парсю как стрим строк, внутри этого стрима по-твоему тоже лист всех строк? А в стриме твитов, котировок или ещё какой риалтаймовой инфы?
#166 #580255
>>580155
Маня, а какоя коллекция по-твоему внутри бесконечного стрима?
84 Кб, 620x387
things that should not be in the code #167 #580257
of course if you are using a relatively decent language.

- null (that's the most obvious)
- ""
- .length
- 0 (except as a neutral element for addition, in fold)
- 1 (except as a neutral element for multiplication, in fold)
- empty list (except as a neutral element for multiplication, in fold)
- if
- == (especially in Java, where typeless equality kills more kittens than regexes parsing XML)
- goto - I do not know where can one be found though.

Feel free to suggest more

http://ivan-gandhi.livejournal.com/3410468.html
#168 #580406
>>580170
>>580245
Внутри - это внутри метода, который возвращает Stream. Где-то там есть коллекция, которую сделали collection.stream() и вернули представление этой коллекции в виде Stream.

Окей, сунули свои ебла сюда https://docs.oracle.com/javase/8/docs/api/java/util/Spliterator.html и нашли мне что-то вроде add(). Хуюшки? Хуюшки. Единственный способ нарастить количество элементов стрима - flatMap(). Btw, это уже вычисления и все равно у тебя где-то есть коллекция.

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


В контексте спора yoba - коллекция, что-то, хранящее данные, не из космоса они у тебя берутся. Передавай саму yoba как будет готова и не еби мозг. Профита со Stream у тебя нет, это гарантированный оверхед, обеспечивающий удобство работы.
#169 #580446
>>580245

>А если я 50-гигабайтную csv-шку парсю как стрим строк, внутри этого стрима по-твоему тоже лист всех строк? А в стриме твитов, котировок или ещё какой риалтаймовой инфы?


Там везде бесконечные стримы, открывай, обрабатывай данные и передавай куда хочешь готовый результат.
#170 #580460
Вопрос к Гандиблядку.
То, что ссылками на его бложик ты пытаешься создать себе образ дохуя прогрессивного интеллектуала, понятно. А можешь ли ты объяснить, почему именно всё должно быть именно так, как говорит твой Ганди? Уход от ответа, а также отсутствие ответа приравниваются к моему хую в твоём рту.
#171 #580498
Такой впорос, если джава считается медленной из-за гарбеджколлектора, а он свою очередь порождение виртуальной машини, то скала такая же медленная?
#172 #580517
>>580498
В скале объекты либо ещё быстрее умирают, либо ещё дольше живут. А первые достаточно быстро анализируются и чистятся gc.
#173 #580520
>>580517
Так разве gc не в виртуалке сам бегает? От компилятора зависит? В джаве точно есть дефрагменатция при очищении, потому и провисает, зато потом быстрее работает.
#174 #580525
>>580498
Джава считается медленной только самыми упоротыми байтоебами.
#176 #580534
>>580532
И как им пользоваться лол?
#177 #580539
>>580534
Читаешь вступление, переходишь по ссылке, находишь видео, проникаешься, качаешь http://icedtea.classpath.org/hg/shenandoah, радуешься жизни.
#178 #580686
>>580498
Гарбедж коллектор гарбедж коллектору рознь, и не всегда он добавляет существенный оверхед.
Хип в jvm делится на области, так называемые поколения. Объекты создаются в eden space, переживающие первую сборку мусора перемещаются в survivor space. Eden и survivor - части молодого поколения. В молодом поколении работают простые но быстрые сборщики мусора, например даже через тупой подсчёт ссылок. Область под молодое поколение обычно небольшая, по дефолту вроде 2 метра всего, но из-за этого сборка мусора в ней проходит очень быстро и может делаться часто. Большинство объектов убираются ещё в молодом поколении.
Пережившие несколько сборок мусора переносятся в старое поколение. Здесь сборщик запускается гораздо реже, алгоритмы сложнее, и иногда требуется stop-the-world. Чем больше памяти, тем реже здесь происходит сборка мусора, но и тем больше времени она занимает.
Раньше был ещё permgen (постоянное поколение), но в восьмой джаве его убрали.

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

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

>>580446

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


Ага, в бесконечный список положить и передать его? How interesting.

>>580406

> Внутри - это внутри метода, который возвращает Stream. Где-то там есть коллекция, которую сделали collection.stream() и вернули представление этой коллекции в виде Stream.


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

> Отсутствует add, нельзя нарастить, блабла.


Не позорься, ты вообще не понимаешь как создаются стримы и зачем они нужны.
#179 #580699
>>577530

смотри какой вин на крестах
прикинь че делает?

template<typename T_Fun, typename... T_TupleTypes, std::size_t... T_Indices>
void for_each_two_impl(std::tuple<T_TupleTypes...>& first, const std::tuple<T_TupleTypes...>& second, T_Fun& func, index_sequence<T_Indices...>){
using expander = int[];
(void)expander { 0, ((void)func(std::get<T_Indices>(first), std::get<T_Indices>(second)), 0)... };
}

проходит фор ичем по двум std::tuple(кортежам) и применяет к ним темплейтный объект у которого можно вызвать скобочки (), то есть функтор
а нахуя спросите вы пердолить фор ичем по кортежу в крестах?

а в c++ 14 есть обобщенные лямбды!
и можно например вот так скопировать элементы одного кортежа из элементов у которых есть функции get/set в другой

void copyProperty(std::tuple& to, const std::tuple& another) {
meta::tuple::for_each_two(
to,
from,
[](const auto& toValue, const auto& fromValue) {
toValue.set(fromValue.get());
}
}

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

а еще использование string literal templare gcc extension в последних версиях clang роняет сраных компилятор в сраный segmentation fault, по крайней мере на мак оси под Xcode точно

о боже 10 из 10

как накурюсь так кресты просто радуют
мимокрестодебил
#179 #580699
>>577530

смотри какой вин на крестах
прикинь че делает?

template<typename T_Fun, typename... T_TupleTypes, std::size_t... T_Indices>
void for_each_two_impl(std::tuple<T_TupleTypes...>& first, const std::tuple<T_TupleTypes...>& second, T_Fun& func, index_sequence<T_Indices...>){
using expander = int[];
(void)expander { 0, ((void)func(std::get<T_Indices>(first), std::get<T_Indices>(second)), 0)... };
}

проходит фор ичем по двум std::tuple(кортежам) и применяет к ним темплейтный объект у которого можно вызвать скобочки (), то есть функтор
а нахуя спросите вы пердолить фор ичем по кортежу в крестах?

а в c++ 14 есть обобщенные лямбды!
и можно например вот так скопировать элементы одного кортежа из элементов у которых есть функции get/set в другой

void copyProperty(std::tuple& to, const std::tuple& another) {
meta::tuple::for_each_two(
to,
from,
[](const auto& toValue, const auto& fromValue) {
toValue.set(fromValue.get());
}
}

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

а еще использование string literal templare gcc extension в последних версиях clang роняет сраных компилятор в сраный segmentation fault, по крайней мере на мак оси под Xcode точно

о боже 10 из 10

как накурюсь так кресты просто радуют
мимокрестодебил
#180 #580725
>>580686

>Ага, в бесконечный список положить и передать его?


.forEach(result -> foo.bar(result)), или у тебя есть какие-то еще способы работать с бесконечными стримами? Или тебе на кой-то хуй обязательно нужно передать стрим, а не работать с ним на месте?

>Так ты таки ответишь, какая коллекция внутри бесконечного стрима?


Хуи из глаз вытащи и перечитай цитирование.
---
Бесконечный стрим относится к конечному как ArrayList к LinkedList, 2 разных вещи с единым интерфейсом. Посмотрите уже в реализацию стримов, блядь, как вы меня заебали.
#181 #580781
>>577966

>российских

#182 #580804
>>580725

> Или тебе на кой-то хуй обязательно нужно передать стрим, а не работать с ним на месте?


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

>>580725
Кажется, я понял: ты хочешь сказать, что бывают стримы без коллекции внутри? А то тут один хуй половину треда доказывает, что, цитирую:

> Там внутри гарантированно есть какая-то коллекция, которую просто сделали collection.stream() в угоду непойми чему.


Вот ведь он долбоеб, да?
#183 #580828
>>580804

>Вот ведь он долбоеб, да?


http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-streaming
Открывай реализацию и там ты увидишь коллекции.

>Твоя религия говорит, что это грешновато?


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

>А что твоя религия говорит о случаях


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

>Бесконечный стрим относится к конечному как ArrayList к LinkedList, 2 разных вещи с единым интерфейсом.

#184 #580848
>>580828
Кажется, кто-то снова демонстративно не замечает хуй во рту существование бесконечных стримов.

> Открывай реализацию и там ты увидишь коллекции.


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

> Stream - абстрация, для обработки данных,


Вот именно! С хуя ли из этого следует, что их нельзя никуда передавать и все нужно делать в одном методе? Да, блядь, наоборот - обработал в одном месте одним способом, в другом - другим, и т.д., и отдал на обработку ещё дальше. У меня весь проект - обработка данных, мне что, весь проект в одном методе нужно было набыдлокодить? Или на каждом шаге гигабайты данных сохранять в буферную коллекцию просто потому, что какой-то макаке религия не позволяет работать со стримами напрямую?
#185 #580865
>>580848
Я тебе три раза уже написал про бесконечные стримы, пидорас пиздоглазый.

Открывай реализацию конечных стримов.

Для обработки, не для хранения -> не для передачи, ты передаешь представление, это глупо.
36 Кб, 835x610
#186 #580880
>>580460
Ну охуеть теперь, я должен отчитываться анонимному серому плевку на асфальте. Поссал на тебя.
#187 #580935
>>580257
Толсто
#188 #580990
>>580865
To summarize, аргументы адекватных людей за передачу стримов:
- стримы потенциально бесконечны, поэтому данные из них нельзя передавать коллекцией;
- стримы ленивы, если конечному консьюмеру понадобится только несколько первых элементов из стрима, в случае передачи коллекций пришлось бы несколько раз обрабатывать большую коллекцию целиком;
- в случае collection.stream() стрим гарантирует неизменяемость оригинальной коллекции, передавать стримы удобно и гигиенично;
- стримы - абстракция для обработки данных независимо от того, в каком виде они хранятся или поступают, поэтому если нужно обрабатывать одни и те же данные в нескольких местах, то передавать их в стримах - логично и правильно.
- как показал опыт Spark и Storm, архитектура, построенная на стримах и подобных им понятиях (RDD в спарке - по сути та же абстракция, что и стрим) позволяет эффективно и удобно обрабатывать большие объемы данных.

Твои аргументы против передачи стримов:
- это глупо, потому что тебе с какого-то хуя кажется что стримы для этого не предназначены.
#189 #581020
>>580990
Ахахаха.
Всё, школьник, живи с этой кашей в голове, пока.
#190 #581029
ловите быдлокодера >>580935
#191 #581037
>>580257
Блядь, почему он пишет одно, а в его коде такой страшный срач, что репозиторий хочется сжечь нахуй?
30 Кб, 599x484
#192 #581040
>>581020

> Ахахаха


> школьник


ибать ты затралел ево красава
#193 #581222
>>580990
Хули ты носишься со своим Spark Streams? Почитай как они реализованы, никакого реального стримминга там нету, а просто микро батчинг.
#194 #581223
По мне дак главный профит стримов что они ленивы и поэтому они фьюзят все зачейненые комбинаторы (мап-хуймап) и все это выполняется в константной памяти, а не так что на каждый мап аллоцируется буффер на миллиард элемент для полного прохода по исходной коллекции.
#195 #581235
>>581222
В Clojure тоже chunked sequences, т.е. по сути микробатчинг.
А всё потому, что так перформанс лучше (мисов по кэшу RAM меньше).
Подозреваю что в Хаскеле ленивые последовательности тоже реализуются кусками иначе они лошары
#196 #581254
>>581223
Нет у стримов профитов кроме удобства разработки.
#197 #581257
>>581222

> Увидел в одном посте слова Спарк и Стрим. Пиздану про микробатчи, авось за умного сойду, похуй что речь вообще про spark streaming вообще не шла.

#198 #581271
>>581257
А о чем шла речь поехавший? Нахуй ты тогда чисто стримминговый Storm приплел со спарком в одном посте если ты не имел ввиду стримы?
#199 #581273
Сап двач нужна помощь. Кто знает как можно зарепостить чужую запись которая под замком?? Очень надо
sage #200 #581276
>>581273
пиздуй в прикреплённый
#201 #581279
>>581254
ВРЁТИ intensifies...
#202 #581281
>>581271
Глаза раззуй, еблан тупорылый:

> RDD в спарке - по сути та же абстракция, что и стрим

#203 #581376
>>581254
Нет у классов, функций и переменных профитов кроме удобства разработки. eax и ebx хватит на всё.
#204 #581393
Поясните снова за макросы и рефлекшон. Как достать типы из тупла?
Если беру .typeSignature мне возвращается хуйня типа T1 и T2.
#205 #581429
>>581376
Ну ты же все правильно написал.
#206 #581613
А как мне вызвать скаловский map из джавы?
#207 #581667
>>581613
map это метод скаловский коллекций, единственный способ использовать его - использовать коллекции скалы, но это извращение, ты скорей себя в жопу выебешь. Можешь попробовать совмещать скала- и джава- файлы в проектах, они отлично уживаются в месте, если хочешь работать с данными через скаловскую коллекцию, а затем передать их джавовской - см http://www.scala-lang.org/api/current/index.html#scala.collection.JavaConversions$
#208 #581708
>>581613
Сигнатуру видел?
38 Кб, 1280x720
#209 #581870

>скала


Толян благословляет это тред.
#210 #582094
>>581393
Бамп
#211 #582191
>>581667

> единственный способ использовать его - использовать коллекции скалы


Я как раз имел в виду вызвать скаловский map на скаловской коллекции в джава-коде.
9 Кб, 200x200
#212 #582571
>>582191

>Я как раз имел в виду вызвать скаловский map на скаловской коллекции в джава-коде.


http://stackoverflow.com/questions/4524868/can-i-use-scala-list-directly-in-java
#213 #583664
Есть десктоп прога написанная на scala. писалась для себя, но вдруг выяснилось, что другие люди тоже хотят ей пользоваться, надо только прикрутить GUI. Собственно вопрос как это лучше сделать? Можно ли сделать гуй на node-WebKit как отдельное приложение которое общается с основной прогой через чтото вроде сокетов, или это совсем изврат? От интерфейса требуется графики рисовать (10-100 тысяч точек) и простенькое 3D
#214 #583725
>>583664
А зачем, прикрути к проге http://spray.io , потом сделай веб-приложение на ангуляре каком-нибудь, и используй из браузера.
#215 #584063
>>583725

>ангуляре


о, даже сюда js-петух припёрся. Съеби, мразота, вас всех нужно лечить током.
#216 #584071
>>584063
Ох лол, манька, у скала треда и js треда один ОП, так что сам проследуй нахуй.
#217 #584098
>>584071
Съеби, мразь.
#218 #584194
>>584098
Сам съеби из моего треда, опущенка.
#219 #584200
>>582571
Там написано как создать лист, но как вызвать на нём map?
#220 #584255
>>584194
Поссал на тебя, выблядок.
#221 #584338
>>584255
Поссал тебе за щёку, сглатывай.
#222 #584447
>>584063
Ты ебанулся, хуесос, как ты собираешься писать браузерное приложение без джяваскрипта?
https://github.com/greencatsoft/scalajs-angular
#223 #584728
Где опытные скалисты?
#224 #584775
Ну вот один, настолько опытный, что никак не попустит https://twitter.com/extempore2
#225 #585003
>>584447
Ангуляр слегка неактуален сейчас, не находите коллега?
#226 #585036
>>585003
Почему? Весьма актуален. Реакт с перделками не замена ангуляра, их даже вместе используют.
#227 #585038
>>584728
Их нет
Даже ссаный еах уже ищет работу.
Скаламакаки нинужны
142 Кб, 800x600
#228 #585076
>>585038

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

#229 #585109
>>585038

>eax


хуесос без задач
30 Кб, 856x510
#230 #585175
че тут у вас
#231 #585182
>>585175
А я давно говорил, го - это такой пых без динамики.
#232 #585356
>>585003
Точно, актуальны шаблоны на пхп, джяваскрипт не нужен.
206 Кб, 626x620
#233 #585375
Что я не так делаю?

[CODE]object HelloVector {
def main(args: Array[String]) {
val a = Vector(1, 2, 3)
println(a)
}
}[/CODE]

[CODE]HelloVector.scala:3: error: object Vector is not a value
val a = Vector(1, 2, 3)
^
one error found[/CODE]

На соседней пекарне всё нормально работает и если Vector заменить на scala.collection.immutable.Vector, то тоже всё нормально работает. Но все равно ощущение, что что-то сломано.
#234 #585380
>>585375
Чем конпелируешь?
#235 #585398
>>585380
Scala compiler version 2.11.7 -- Copyright 2002-2013, LAMP/EPFL
scala и scalac одинаковую ошибку выдают.
В репле scala всё нормально работает.
20 Кб, 320x320
#236 #585411
>>585375
>>585380
>>585398
В общем algs4.jar из одного курсеровского курса вмешивался в компиляцию и совал свой вектор вместо скаловского.
#237 #586494
>>585411
Сэджвиковский штоле?
#238 #586496
>>585356
Сейчас актуальны изоморфные приложения, если что.
#239 #586555
>>586496
На юкозе чтоле?
#240 #586556
#241 #586634
Поясните, я могу на скале сделать десктопное приложение с гуем, которое будет работать на винде? В идеале и на лине тоже. Вообще можно десктопные приложения на ней делать или онли сервер? Только консольные или и гуи есть?
#242 #586646
>>586634
Троллейбус_из_хлеба.жпг

На скале можно делать все, что и на джаве, так что к твоим услугам swing, javafx, swt — так себе набор, короче.
#243 #586656
>>586646
Есть даже костыль, прикручивающий Qt к джяве.
#244 #586808
>>586646

>swing, javafx, swt, qt


К сожалению, мне это ни о чем не говорит, но я так понял можно. Спасибо.
#245 #586843
>>581037
Высокомерная блядь же.
#246 #587199
Просто какое-то торжество скаладетей. Такое ощущение, что я зашёл на форум студентов, которые пишут лабы на делфе и не знают других языков. Кому ваша скала нужна? Это даже не джава, это надстройка над ней, ёб её мать! Если уж и рассматривать функциональные языки, то хаскель знатно даст пососать этой скале. Как и все остальные языки дают пососать джаве. Идите в хуй со своей функциональщиной! Будущее за итеративным программированием. Говно, ссанина, очко!
#247 #587204
#248 #587210
>>587199
Есличо, там была картина с хуем во рту. Макак не велел, звиняйте.
#249 #587212
>>587210
Я её уже нарисовал у себя в голове! Удали свой комментарий! Фу, как мерзко!
#250 #587249
>>587199

>Идите в хуй



Хохол не палица.
#251 #587263
>>587249

> палица


Аббат не палится.
#252 #587309
>>587199
Поясни, что за итеративное программирование.
#253 #587310
>>587309
Гугл же есть!
#254 #587312
>>587310
А, это вот когда в розе рисуешь диаграммочки и она тебе генерит некомпилирующийся говнокод уровня зк?
#255 #587344
>>587312
Всяко лучше, чем Scala.
#256 #587347
Ебать! Вам дали лямбда-выражения в C++11! Зачем вам функциональные языки? Ведь всё есть в лучшем языке!
#257 #587367
>>587347
А интероп с джявой - не дали.
#258 #587580
Что-то лоботомированные раскричались, успокойтесь плебеи на ваще джайвовское легаси гавно никто не зарится отбирая сладкий хлеб, вы можете спойкойно просидеть на поддержке своего спринг говна еще лет 10 по самым скромных оценкам. Продолжайте неосилять и программировать на xml конфигах пока скала господа будут двигать индустрию вперед.
#259 #587768
Смотрел доклад, в котором кукарекали в сторону shapeless, что из-за кучи implicit параметров (которые по-сути нужны только для ограничений типов в компайлтайме) в рантайме создается лишний оверхед из-за необходимости передачи лишних параметров.

Собственно отсюда вопрос: не было ли пропозалов на включение в компейлятор compile only имплист параметров? И почему вообще Одерский сразу не учел что на его системе типов поехавшие сразу начнут решать компайл-тайм ШАРАДЫ. Ведь даже в стандартной либе есть операторы =:=, <:< которые по-сути нужны только в компайл тайме.
#260 #587770
>>587768
Хотя с <:< наверно херовый пример потому что ее все таки есть хоть какой то профит в рантайме:

http://blog.bruchez.name/2015/11/generalized-type-constraints-in-scala.html
#261 #587894
Проверка связи.
#262 #587903
>>587309
Много значений.
В википедии какая-то забытая менеджерская методология находится.
Для многих программистов сейчас "итеративная разаработка" - это REPL.
#263 #588227
#264 #588260
>>587768
Это же JVM, какое тут compile only? С библиотекой без сорсов как конпелять?
#265 #588584
>>588260
Ты же понимаешь что речь шла про ограничения и правила в системе типе, которые проверяет компилятор на этапе компиляции? При чем тут JVM причем тут либы без сорсов?
#266 #588677
#267 #588716
>>588584
Ну смотри, эти самые правила должны быть как-то доступны и если ты хочешь использовать huipizda.jar в своём говнокоде - иначе как конпелятор эти правила проверит? Соответственно, или в аннотации их пихать остаётся, или мапить на джявовые сигнатуры.
#268 #589246
>>588716
Ну хуй его знает как то замапить эти фичи на байткод, но так что это не параметрами функций шароебилось в рантайме. В dotty же превозмогают как-то.
#269 #589251
#270 #591993
Аноны, что скажете насчет http://www.scala-js.org/?
#271 #592032
Скала как противопоставление к джаве ставит полноценность первой под сомнение.
#272 #592035
>>591993
Годнота, теперь не придётся шквариться об жс.

>>592032
Полноценен только ассемблер
#273 #592037
>>592035

>Годнота, теперь не придётся шквариться об жс.


Лол.

>Полноценен только ассемблер


Вильнули жопой, сэр.
#274 #592045
>>592037

> Вильнули жопой, сэр.


Возразить по существу нечего?
#275 #592867
>>586634
scalafx
#276 #593017
Сегодня случайно узнал, что можно выполнять .scala файлы прямо из программы, в рантайме.
#277 #593344
>>593017
Зачем такое длинное расширение? Почему бы не просто .scl?
#278 #593391
>>593344
Какая разница, их же всё равно иде выставляет.
Так илитнее
#279 #595202
Скалабоги, как сконвертить java.Sql.ResultSet в Stream[T]??
#280 #595210
>>595202
Зачем тебе java.sql? Возьми Slick, Activate.
#281 #595221
>>595210
хочу для начал разобраться с Sql без использования ORM
#282 #595237
>>595221
Нахуя? Программирование тоже с ассемблера начинал?
http://scalikejdbc.org/
#283 #595247
>>595237
не поверишь))под msp430
За ссыль спасибо
#284 #595966
Какая книга по скале самая основная, типа дайв инто питон?
#285 #596098
>>595966
Martin Odersky. Programming in Scala - от создателя языка
Еще он ведет курс по функциональному программированию: https://ru.coursera.org/course/progfun
#286 #596100
>>595966
хорстман - скала для нетерпеливых
#287 #596711
Насколько геморно на скале писать приложения под ведро?
#288 #596723
>>596711
Писать-то можно, гугли scaloid. Но там дофига нюансов, например скала тянет за собой огромную (по меркам андроида) стандартную либу, так что хеллоуворлд занимает 10 метров.
#289 #596729
>>596723
Для сравнения: свифт при надобности поддерживать платформы <9 тащит за собой ~40 мб рантайма. Вывод: не суйте в анус руки, пользуйтесь созданными для этого фаллоимитаторами.
#290 #596806
>>596723

> огромную (по меркам андроида) стандартную либу, так что хеллоуворлд занимает 10 метров.


Прогуард в помощь
#291 #596928
>>596100
пошел нахуй ебанат, вот от куда вы беретесь такие ублюдошные? мартин дал вам охуенную книжку, где все раскладывает по полкам, даже фп поясняет, сядь и осиль лишних несколько сотен страниц, не буду жрать говно как сожрать говно за 24 часа сожрать куда жрадь
#292 #597018
>>596928
у мартина куча нахуй ненужной воды, размазывание очевидных вещей на 800 страниц, он просто ебанутый графоман

у хорстмана - самая суть-выжимка и фп он лучше объясняет, к тому же материал подаётся для программистов, а не для штудентиков с улицы
#293 #597123
>>597018
Двачую. У Хорстмана книга охуенно написана. Всё самое важное изложено, и в удобной форме, даже питономакака поймёт.
#294 #597153
>>597018

> он просто ебанутый графоман


Да он вообще ебанутый, если что. Посмотри его выступления на конференциях.
#295 #599266
Получаю из базы такой Stream[Row]:
Stream(Row(
'ColumnName(ce_docs.id,Some(id))': 5 as java.lang.Long,
'ColumnName(ce_docs.title,Some(title))': TestDoc #0 as java.lang.String,
'ColumnName(ce_docs.content,Some(content))': Lorem ipsum . as java.lang.String,
'ColumnName(ce_docs.created,Some(created))': 2015-12-08 as java.sql.Date,
'ColumnName(ce_docs.last_modified,Some(last_modified))': 2015-12-08 as java.sql.Date,
'ColumnName(ce_docs.owners,Some(owners))': {2} as java.sql.Array), ?)

дальше пытаюсь его превратить его в Stream[Document] следующим образом:

def documentResultMapper(res:Stream[Row]) : Stream[Document] = {
res.collect {
case Row(id:Long, title:String, content:String, created:Date, lastModified:Date, owners:java.sql.Array) => new Document(id, title, Some(content), created, lastModified, owners.asInstanceOf[Seq[Long]])
}
}

но нихуя не выходит, что я делаю не так??
#296 #599271
>>599266
залил все на pastebin http://pastebin.com/r9ZTa1W3
7 Кб, 100x100
#297 #599308
Открыл для себя miniboxing plugin
73 Кб, 600x600
#298 #599317
насколько быстро можна перекатиться с Руби, до коммерческого уровня?

И какой стек технологий нужен для полноценной работы Скала мидлу?
#299 #599324
>>599271
У тебя Row же из Option-ов, а не из примитивов.
#300 #599325
>>599317
scalaz, shapeless, акка, спарк
Сам оцени, сколько тебе это всё задрачивать.
#301 #599330
>>599324
у меня практически такой же код для классa User, и все работает (вообще проблема оказалась в content, который может быть пустым, убрал его и все вроде заработало)
Возник другой вопрос: как преобразовать java.sql.Array в Seq[Long]
#302 #599334
>>599330
JavaConverters
#303 #599337
>>599330

> Возник другой вопрос: как преобразовать java.sql.Array в Seq[Long]


array.getArray.toSeq
#304 #599342
>>599337
value toSeq is not a member of Object
#305 #599345
>>599342
.asInstanceOf[Array[Govno]].toSeq
#306 #599346
>>599345
я пытался
[Ljava.lang.Long; cannot be cast to [J]
#307 #599353
>>599346
Ну ээ, а так?

> .asInstanceOf[Array[Long]].toSeq


По-моему ты изначально делаешь что-то не так
#308 #599357
>>599353
я уже как только не пытался

org.postgresql.jdbc4.Jdbc4Array cannot be cast to [J]

у меня в таблице в одной из колонок храниться массив лонгов, как их правильно получить использую Anorm
#309 #599368
>>599357
Ну ёпта бля
scala> import scala.collection.JavaConverters._; java.util.Arrays.asList(Array[Long](2, 3)).asScala
res1: scala.collection.mutable.Buffer[Array[Long]] = Buffer(Array(2, 3))

и итератор становится хуё-моё
#310 #599375
>>599368
Ну то есть
import scala.collection.JavaConverters._; java.util.Arrays.asList(Array(2, 3): _*).asScala
Ну ты пони
#311 #599436
>>599375
честно говоря нет, все равно cast exception постоянно вылетает

можешь написать плиз метод def cast(o:java.sql.Array) : Seq[Long] = {}
#312 #599453
>>599436
o.asInstanceOf[Array[Long]].toSeq
#313 #599456
>>599453
Скорее
o.getArray.asInstanceOf[Array[Long]].toSeq
#314 #599462
>>599453
[ClassCastException: org.postgresql.jdbc4.Jdbc4Array cannot be cast to [J]
>>599456
[ClassCastException: [Ljava.lang.Long; cannot be cast to [J]
#315 #599470
>>599456
>>599462
А так?
o.getArray.asInstanceOf[Array[AnyRef]].map(_.asInstanceOf[Long])
#316 #599476
>>599462
Вангую, у тебя там import java.sql._, который перекрывает скаловский Array
#317 #599550
JDBC (o.getArray) возвращает массив боксед-чисел (java.lang.Long), а вы пытаетесь скастовать его к массиву примитивов.
#318 #599655
>>577318

>haskell только на JVM


>это вообще нереально. haskell выебет в стэк JVM.


haskell на jvm есть и называется Frege
#319 #599886
>>599470
Добра тебе, Анон! наконец-то оно заработало
31 Кб, 645x285
#320 #600511
Давайте отвлечёмся от срачей и поговорим о работе. Сейчас я работаю на Upwork на Ruby, и работы жопой жуй. Но я не вижу себя веб-макакой в будущем, а хочу интересную работу. На Upwork одновременно открыты 75 вакансий по скале, появляется по две вакансии в день. Есть и data science, и веб-разработка, и Spark. Я мечу именно в науку о данных. Хорошо знаю питон, прошёл курс по ML на курсере. Сколько мне потребуется времени, чтобы начать стабильно зарабатывать на этом хотя бы $1000 в месяц?
#321 #600722
>>600511

>стабильно зарабатывать на этом хотя бы $1000 в месяц?


Да ты охуел.
#322 #600867
>>600511
Одеск - это, конечно, хорошо, но стоит какой-нибудь тролляке оставить на тебя негативный отзыв, и тебя забанят навсегда.
98 Кб, 1366x768
#323 #601101
>>600722
Ну не сразу, конечно. Думаю поначалу брать маленькие заказы, набираться опыта, не отказываясь от основной работы на руби.
>>600867
Там больше не отображается средняя оценка профиля. А один плохой отзыв в списке на фоне остальных пятёрок затеряется. Также если заказ небольшой, можно вернуть деньги, тогда отзыва не будет. Если большой, то обычно через неделю-другую понятно, адекватный клиент или нет. Ещё я беру заказы только от европейцев/американцев с историей.

Ну вот скриншот с типичными заказами на скале. Реально за год изучить и вкатиться?
#324 #601104
>>601101
В принципе, я готов поначалу даже крудошлёпствовать на скале. Это, наверное, приятней, чем на рельсах?
23 Кб, 597x385
12 Кб, 653x151
#325 #601108
>>601104
Ну конечно, язык-то прогрессивнейший.
#326 #601113
>>601108

>val nameOption: Option[String]


Это венгерская нотация-2016?
#327 #601115
>>601108
Ну по приятности синтаксиса, объёму кода и читабельности примерно одинаково будет, ведь руби динамический, а в скале вывод типов. Меня привлекает именно статическая типизация и null-safety (почему не запилят динамический язык без null'ов? это же несложно)

А в скале есть что-то типа обязательной проверки исключений? Или может можно исключения превращать в значения алгебраического типа, чтобы было почти как в расте/хаскеле?
#328 #601142
>>588227
REPL = Read-Eval-Print-Lopp
#329 #601143
#332 #604055
test
66 Кб, 436x579
#333 #604085
Привет, котятки. Ищу скала-программистов на big-data (Спарк, Акка, Хадуп, вот это вот всё). В принципе большого опыта на Скале не нужно, но нужно хотя бы пару годиков в энтерпрайзе, т.е. совсем джуниоры, к сожалению, не подойдут (это не от меня зависит). Нужно дружить с матешкой - в проекте есть математик. Разумеется, его работу делать вас заставлять будут, но нужно хотя бы понимать, о чем он говорит. Кровавого энтерпрайза не будет, проект довольно свежий и с R&D уклоном. Т.е. вакансия подойдёт, например, джава-мидлам, которые решили перепрыгнуть на Скалку. А если вы уже биг-датер и просто рассматриваете варианты смены работы потому что Олежка деньги жмотит - то совсем хорошо. Пишите Стасику (т.е. мне) на hQYschernichkinANUSgfo^mailPUNCTUM^;icom. Пару слов о себе, о своём опыте, ссылки на гитхаб если есть, сертификаты с Курсеры тоже котируются. Далее я переведу вас на HR-a.

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

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

Стасик
#334 #604105

> работа в банке


И сразу нахуй.
#335 #604107

> Scala


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


> ИННОВАЦИИ, МНОГОМИЛЛИОННЫЕ ГРАНТЫ НА РАЗРАБОТКУ КОМПЛИЯТОРА, 100000 БАГОВ В КОМПИЛЯТОРЕ, ВАКАНСИИ НА ДВАЧЕ

#336 #604109
>>604107
А где еще искать Скаллистов? Не на HH же.
#337 #604117
>>604085
Какая то совсем днищевакансия. Ещё и с кучей ебанутых требований, которые на практике не понадобятся.
#338 #604118
>>604107
Джаваприматы рвутся каждые десять постов.
#339 #604157
>>604109
Чем провинились безработные скальщики, которые не сидят на дваче? Совсем охуели со своими culture fit. Давай, блять, сразу ещё алкогольные, сексуальные, литературные и музыкальные предпочтения в текст вакансии писать?
#340 #604544
>>604157
Ну вот видишь, сначала ты пишешь про вакансии на дваче так, будто это что-то плохое, а когда я аналогичным образом пишу про HH обвиняешь меня в дискриминации.
#341 #604562
Насколько ScalaJS пригоден для разработки?
#342 #604895
>>604562
На 1 Одерского из 10.
#343 #604902
>>604562
Пригоден вполне
#344 #605327
>>604562
А зачем?
#346 #605534
>>605332
Охуеть. Жаль только что джяваскрипт нереально тормозной по сравнению с JVM.
#347 #606192
>>605534
У нихзадачи разные.
#348 #606229
>>576898 (OP)
Поясните за скала?
Для чего его юзают какие-то крупные предприятия и корпорации?
Т.е., если я его выучу и пойду на работу, что я на нём буду писать? И насколько он сложный в освоении?
#349 #606238
>>606229
В бигдате основная её часть различный анализ данных, составление ёба алгоритмов оптимальных для этого, как исторически сложилось. Без образования в этой области - хуй куда попадёшь.
Если раньше не было опыта в программирование - не осилишь ты функциональщину, выучи сначала что полегче.
#350 #606270
>>606238

>В бигдате


Почему? Из-за любви интерпрайза к JVM или из-за более объективных причин?
#351 #606295
>>606270
Из-за всего и сразу. Со стороны ытерпрайза - проверенная годами жявавм, со стороны разработки - мультипарадигменный язык без крайностей как C или Haskell с поддержкой тонн кода на джяве, со стороны конкретного заказчика - баланс между скоростью разработки и кол-вом докупаемого железа.
#352 #607185
>>604085
уебывай, урод, здесь не место такой хуйне
#353 #607279
>>607185
Если у тебя не хватает опыта и знаний, чтобы претендовать на эту вакансию, это еще не повод, чтобы переходить на личные оскорбления.
#354 #607370
>>607279
Я не хочу видеть здесь рекламу, плевать, какой она носит характер, это как разделение мух и котлет. Это такое же пидорство как и реклама в почтовых ящиках, в метро, на дверях подъезда... Более того, ты нарушаешь автоматичность некоторой условной зоны, зоны свободной от всего ирл и работодателя в частности.
Еще вот о чем подумал, хэдхантеры в области ИТ - самые наглые, самые настырные и самые мерзкие: был когда-то один паблос с мемами на тему программирования "программист лалка" (не уверен), там было всего с десяток постов с шуточками про лисп, скалу, фп и формальные языки и с 50 подписчиков, так вот, даже там, даже там все засрали рекламой, под каждым постом по несколько рекламных объявлений, самых отвратительных, концентрат, кислотная отрыжка всего трудоустройческого дикурса в ит последних лет, от беглого взгляда на который случается интоксикация пэчэнькамы плюшгами упячк и хочица сдохнудь :DD))))))
#355 #607454
>>604085
Тинькофф?
#356 #607659
>>607370
Это не реклама, кроме того тут каждый четвёртый пост про борщи, отсутвие работы, вкатывание в программирование после 70, походы по собеседованиям и т.п. Поэтому я вполне в тренде.
>>607454

>Тинькофф?


>Олежка деньги жмотит


Интересно, как правильно намекнуть, что это не Тинькофф, чтобы программисты догадались?
#357 #607668
>>607659
Ну так безработные тут круглые сутки сидят, а работающие мимо проходят.
#358 #607728
Скалатушичи, а чо это скала явке сливает почти в любой синтетике, причём с ниебическим отрывом?
#359 #607750
>>607728
JVM не рассчитана на ФП. Но если писать на Скале в процедурном стиле, то скорость будет как на Яве: http://benchmarksgame.alioth.debian.org/u64q/scala.html

Т.к. в 99% случаев похуй на скорость (вернее проблемы будут, если она будет ниже на порядки, а не в 2-3 раза, которые легко перекрываются любой высокоуровневой оптимизацией, если уж возникла такая проблема), то на Скале можно спокойно херачить в ФП-стиле, скорее всего это никогда не понадобится оптимизировать по крайней мере на низком уровне.
#360 #607751
>>607728
потому что в большом проценте тестов, используются колекции, а колекции в скале говно.
#361 #607811
>>607750

>JVM не рассчитана на ФП.


Да, одним из важнейших принципов в фп является TCO (Tail Call Optimization), а на JVM на данный момент возможен лишь один из двух способов оптимизации, - для хвостовой рекурсии и скала его использует, но по дефолту она не используется из-за того, что скала это просто какой-то тотальный сплошной пиздец, поэтому необходимо добавить аннотацию @tailrec пред ф-ей, которая использует хвостовую рекурсию. Но вот в кложуре есть не только оптимизация хвостовой рекурсии, но и нехвостовой - метод трамплина (создаются дополнительные промежуточные функции для избежания переполнения стек фрейма (хотя вот в фп языка, насколько я знаю, на него нет никаких ограничений)). Но вообще это все обещали завезти вместе с 9 версией, кстати, один из главных разработчиков JVM был одним из тех, кто ебался за TCO еще в 70х, именно он доказал, что по производительности рекурсия не будет значительно уступать итеративному подходу.
Что касается скорости, компилятор скалы никогда не станет быстрым или быстрее, он будет только медленнее, но учитывайте рост производительности машин и да, поебать на скорость, более того, встречал статистику, согласно которой компилятор жабы за 1с. читал 2000 строк, когда компилятор скалы - 500, а теперь учтите, что код на скале может занимать в 2-5 раз меньше кода.
#362 #607841
>>607811

>одним из важнейших принципов в фп является TCO


бред сивой кобылы
#363 #607854
>>607841

>бред сивой кобылы


хребет исправленной могилы
еблет ленивой хачкилы
сбт ебливой студентилы
багет ефпловской обжектилы
https://en.wikipedia.org/wiki/Continuation-passing_style
#364 #607948
>>607811
Скалка тормозит не из-за отсутвия TCO (из-за отсутвия TCO она может разве что падать в тех местах, где программист ожидает TCO, но не тормозить - вызов со стеком не может быть медленнее всяких трамплинов-хуйплинов), а скорее из-за отсутсвия дефорестации.
#365 #607958
>>607948
TCO - это goto, быстрее некуда. call - это goto плюс поместить в стек адрес возврата плюс push ebp/mov ebp, esp - сохранение фрейма и т. п. Вроде бы фигня, но return из глубокой рекурсии в случае TCO - это простой прыжок, а вот call будет раскручивать стек взад на каждом уровне рекурсии. А в ФП хвостовые вызовы везде, потому что даже циклы реализуются через них.
#366 #607961
>>607811
кукаретик
#367 #608024
>>607958
Нет, при TCO надо фиксить фрейм стека in-place, т.е. переставлять параметры фактически. При рекурсивном вызове - просто сделать push по числу параметров.
#368 #609158
>>608024
Что такое стек?
#369 #609165
>>608024
Вот идиот-то.
#370 #609196
>>609158
структура данных
#371 #609246
Чтоооооо? В смысле в Скале нет оптимизации хвостовой рекурсии по умолчанию? Дайте пруф, я не верю в то, что в функциональном ЯП TCO надо явно указывать.
мимо перекатывающийся в скалу
#372 #609252
>>609246
И да, я подразумеваю, что TCO нужен не столько для оптимизации по скорости, сколько для избавления от риска переполнения стека. В частности, для создания бесконечных коллекций (они же есть в Скале?), но оно может случиться и при простой рекурсии, если функция много объектов на стеке создаёт (или Скала держит в куче то, что можно положить в стек? было бы странно, ведь это часто ещё на этапе компиляции можно определить)
#373 #609286
>>609252

> нет оптимизации хвостовой рекурсии по умолчанию


Нет, и с tairec тормознее, чем без.

>много объектов на стеке создаёт


Какие ещё объекты на стеке? На стеке ссылки, крестовый трендж где-то недалеко.

>функциональном ЯП


Скалка - не функциональный язык.
#374 #609321
>>609286

>Скалка - не функциональный язык.


А какой же тогда? И приведи пример функционального языка, кроме лиспохаскелей.
#375 #609329
>>609246
Есть, но без аннотации у тебя функция, не поддерживающая тсо, скомпилируется в обычную рекурсию, а с аннотацией выдаст ошибку компиляции.
#376 #609349
#377 #609504
>>609165
Мань, давай просто примем два следующих факта как данность:
1. Ты не знаешь, как технически реализуется TCO.
2. TCO в общем случае тормознее обычных вызовов с использованием стека.
#378 #610107
>>609246
нет, в F# и скале необъодимо явно указывать
>>609286

>Скалка - не функциональный язык.


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

>F#


у вас там запилили F*, с тем же ебучим ML-синтаксисом, за то с зависимыми типами, можешь выкинуть свою недопарашу
#379 #610108
>>609504

>2. TCO в общем случае тормознее обычных вызовов с использованием стека.


почему? там же меньше операций выполняется...
33 Кб, 264x204
#380 #610531
http://www.patryshev.com/literatura/volum2/pionerskaya_org.html

А еще был сосед Колька Афонин, хороший малчик. Мы с Колькой трахались в его сарае. В те времена топили же дровами, так что удобное было место сарай, был бы ключ – залез там на антресоли, и делай хоть ты что хошь. Мы там и трахались, и мы и не знали ничего про гомосексуализм, или там что статья такая в УК есть про мужеложство, откуда нам знать? Мне было семь лет, ему восемь. Слова "трахаться" тоже тогда, естественно, не было; свое новое значение это слово приобрело где-то уже после Андропова; я как-то его тогда сразу не ухватил, и спокойно сообщал, что у меня сломан нос, потому что трахнулся об асфальт на своем "старт-шоссе", а Аришка тут прям вся так и вскидывалась и орала мне: "да не употребляй ты это слово!" – а я даже и значения-то нового этого слова не знал. Потом уж постепенно.

Вы скажете – не бывает. А почитайте фидошную эху ru.sex – сколько там душевных рассказов аналогичного плана. Один мальчик в детском саду с одногрупницей так прямо и говорили – пошли, Наташка, ебаться. И пока Наташка не сболтнула воспитательнице – так и жили, в таком возрасте же еще не беременеют. Мальчика, конечно, из детсада выгнали за такие дела. Или возьмите Свидригайлова и его пятилетнюю обольстительницу – до самоубийства довела человека! У меня даже дома в фотоальбоме фотография есть: моя Ульянка стоит на месте смерти Свидригайлова, у пожарки в начале БППС, приставив палец к виску – ну что вы скажете на это? Тоже не бывает?
#381 #610547
>>610531
Как будто что-то плохое.
#382 #610988
>>610531
Унеси нахуй своего Патрушева, воняет хуже сотни советских бабок на весь интернет, а сам как тотальный уебан пишет https://github.com/vpatryshev/Categories/blob/master/src/main/java/Zermelo.java
#383 #611139
Короче, прочитал я значится скалу для нетерпеливых и полез играться на гитхаб.
Там встретил кодес вида:
"A hui actor" must {
"be able to fuck" in {
start(newHuiActMen())
}

И нихуя не понел. Што это?
#384 #611147
88 Кб, 600x470
#385 #611225
>>611139

>Што это?


Каргокультизм скаладетей. Скаладети увидели у хаскеллебогов eDSL-ы, но нихуя не поняли, что это такое и как этим пользоваться. Поэтому построили в своём понимании eDSL из говна и палок. Естественно, ничего общего с настоящими eDSL он не имеет, и никакой семантической нагрузки комбинаторы вроде must и in не несут, но для ритуальных танцев он вполне подходит.
#386 #611319
>>611225

>никакой семантической нагрузки комбинаторы вроде must и in не несут


А в хачкиле какая у них семантическая нагрузка?
#387 #611359
>>610988

This project is currently migrating from old repositories and build and testing tools. Does not even compile yet. Historically, it was first written in Basic, then in Fortran, then in Assembler, then in Java, now in Scala. Long story.

http://ivan-gandhi.livejournal.com/1786981.html

Но когда Андрей Петрович (тм) попросил посмотреть на его программу, которая типа вычисляет предел в категории, я, конечно, завёлся, и мы месяц, наверное, протрахались с этим делом, дойдя до интерактивного построения категории и до расчёта топологий Гротендика; с топологиями Гротендика мы обломились на категории Δ3, где, по моим прикидкам, расчёт займёт три недели на бейсике. Пришлось перекатать на фортран, а операции над множествами - на ассемблер; 4 часа - и топологии расклассифицированы
#388 #611465
>>611319
В хаскеле их нет, идиот.
#389 #611480
>>611225
Эта боль неосилятора.
53 Кб, 595x435
#390 #612035
Seq -> SeqFactory -> TraversableFactory -> GenericSeqCompanion -> GenericCompanion.
https://www.reddit.com/r/scala/comments/3ojwif/lex_spoon_initial_input_on_the_scala_collections/cvyl0c5
#391 #612143
>>611465
Тогда почему ты решил, что каменты чтобы в них срать - это какие-то там йоба-комбинаторы, да ещё и из хачкиля?
#392 #612588
>>611480
Скалоёбы не испытывают никакой боли, потому что на нормальных языках не писали.
>>612143
Это не каменты, у каментов в Скале другой синтаксис.
#393 #612616
In February Miles Sabin posted a gist demonstrating what he called “a new approach to encoding dependently-typed chained implicits, using singleton types”. It’s a pretty clever trick, and my first thought when I saw it was that we could use it to fix Scalaz’s UnapplyProduct. And it worked, although I didn’t get around to submitting a pull request until this week.

The implementation looks like this:


case class SingletonOf[T, U <: { type A; type M[_] }](
widen: T { type A = U#A; type M[x] = U#M[x] }
)

object SingletonOf {
implicit def mkSingletonOf[T <: { type A; type M[_] }](implicit
t: T
): SingletonOf[T, t.type] = SingletonOf(t)
}

implicit def unapply[
TC[_[_]],
MA0,
MB0,
U1 <: { type A; type M[_] },
U2 <: { type A; type M[_] }
](implicit
sU1: SingletonOf[Unapply[TC, MA0], U1],
sU2: SingletonOf[Unapply[TC, MB0], U2],
iso: U1#M <~> U2#M
): UnapplyProduct[TC, MA0, MB0] {
type M[x] = U1#M[x]
type A = U1#A
type B = U2#A
} = new UnapplyProduct[TC, MA0, MB0] {
type M[x] = U1#M[x]
type A = U1#A
type B = U2#A
def TC = sU1.widen.TC
def _1(ma: MA0) = sU1.widen(ma)
def _2(mb: MB0) = iso.from(sU2.widen(mb))
}
#393 #612616
In February Miles Sabin posted a gist demonstrating what he called “a new approach to encoding dependently-typed chained implicits, using singleton types”. It’s a pretty clever trick, and my first thought when I saw it was that we could use it to fix Scalaz’s UnapplyProduct. And it worked, although I didn’t get around to submitting a pull request until this week.

The implementation looks like this:


case class SingletonOf[T, U <: { type A; type M[_] }](
widen: T { type A = U#A; type M[x] = U#M[x] }
)

object SingletonOf {
implicit def mkSingletonOf[T <: { type A; type M[_] }](implicit
t: T
): SingletonOf[T, t.type] = SingletonOf(t)
}

implicit def unapply[
TC[_[_]],
MA0,
MB0,
U1 <: { type A; type M[_] },
U2 <: { type A; type M[_] }
](implicit
sU1: SingletonOf[Unapply[TC, MA0], U1],
sU2: SingletonOf[Unapply[TC, MB0], U2],
iso: U1#M <~> U2#M
): UnapplyProduct[TC, MA0, MB0] {
type M[x] = U1#M[x]
type A = U1#A
type B = U2#A
} = new UnapplyProduct[TC, MA0, MB0] {
type M[x] = U1#M[x]
type A = U1#A
type B = U2#A
def TC = sU1.widen.TC
def _1(ma: MA0) = sU1.widen(ma)
def _2(mb: MB0) = iso.from(sU2.widen(mb))
}
sage #394 #612699
>>612616
мда бля пиздец охуеть просто бля пиздец
вообще не ожидал мда пиздец
конечно мда охуеть вообще мда
16 Кб, 1552x128
#395 #613212
Норм сигнатурка?
#396 #613425
>>613212
Highcharts заебись штука, но если нужна пиздатая визуализация - бери d3.js (хотя к ней, наверное, не биндинга на Scala).
8 Кб, 1124x103
#397 #613431
>>613425
Это я написал на коленке генератор обёрток для highcharts из его документации. Таки слегка пофиксил этот ад с типами.
186 Кб, 1200x1600
#398 #613501
Для шапки в следующий раз
#399 #613512
>>613501
ага, еще и на русском
#400 #614159
>>611225
Однако почему то на хачкеле не пишут реализации процессоров на eDSL.

Примеры обоих видов eDSL перечисленных здесь https://wiki.haskell.org/Embedded_domain_specific_language видел в шкалке.

Например здесь примеры DSL здесь: http://underscore.io/blog/posts/2015/12/21/scalax-interpreters-workshop.html
Твиттеровский Stitch фьюзит множественные запросы к сервисам в один, как же каргоаборигены из твиттера это реализовали без семантической нагрузки комбинаторов непонятно.
#401 #614240
>>614159

>Однако почему то на хачкеле не пишут реализации процессоров на eDSL.


А еще почему-то никто не догадался написать на Хаскелле яблоко и скушать.

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


Ты дебил, да? Я писал конкретно про тот тестовый фреймворк на скале, а не произвольный ДСЛ. И да, нормальная реализация автоматического распараллеливания запросов выглядит так: https://github.com/facebook/Haxl, а в скале её в принципе сделать невозможно, потому что Скала не может в чистоту.
#402 #615645
>>614240
А сказать-то ты что хотел? Что на хачкиле можно было бы заебенить охуительный eDSL для тестов, если б было что тестировать?
#403 #615709
Скаланы, а есть какая-нибудь конфочка для живого обсуждения вопросов по скале и связанных технологий? Я видел для дотнета запилили в соседнем треде, как-то держатся до сих пор.
134 Кб, 1024x651
#404 #615719
>>615645
Я хотел сказать, что скалодети решили сделать что-то внешне напоминающее eDSL. Получился пикрилейт.
#405 #615720
>>615709
Бампую, слаку мб
#406 #615752
Давайте попробуем в телеграмме пообщаться. Вот линка: https://telegram.me/joinchat/BoA_agWB_Xh7Rm75eumPNw
#407 #615807
>>615752

>требует номер телефона


Иди нахуй
#408 #615811
>>615807
твой номер не будет никому виден, если ты ник укажешь.

в политаче давно уже конференцию запилили через тот же телеграм.
31 Кб, 324x360
#409 #615824
- Одну минуту, - громко произнес Ганди, - прежде чем продемонстрировать вам способ распития портвешка, о котором все вы, как будто, позабыли, я должен опорожнить свой кишечник.

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

Когда дифирамбы закончились, педераст, вооруженный салфеткой, языком очистил преддверие ануса, а горшечник подставил содержимое горшка под нос Ганди и опять громогласно восхвалял его. После этого мощная струя мочи ударила в рот сосателю, который тут же проглотил всю жидкость, полотенце завершило то, что не мог сделать язык, и четверо скала-петухов, оставшись без дела, долго сосали поочередно язык, фаллос и задний проход распутника.
108 Кб, 800x800
#410 #615835
>>615824
Разрыв болезной мартышки.
#411 #615836
Нахуй телеграмопарашу. После нового года, числа третьего, создам канал в слаке, туда все и перекатимся.
#412 #615853
>>576898 (OP)
А работа есть для этого поделия?
512 Кб, 768x576
#413 #615856
>>615835

> Вскукарек JVM-петуха

#414 #616083
>>615853
да, в аду, писать целку для вторйо дочери путина (первая проебала)
#415 #616177
>>615856 В скайп, мразь!
#416 #616181
Я как ни пролистываю скала-тред на главной, всегда вижу в последних трёх сообщениях бугурт хачкелистов. Я, кажется, немного понимаю их. Я после Руби не могу писать на Питоне, например, потому что блевать тянет от синтаксиса. Вот и Хачкелистов, наверное, блевать тянет от системы типов в других функциональных языках. Вот только за Хачкель не платят нихуя. Так что я, пожалуй, никогда не буду его учить. А то ещё подсяду так же, и буду круглые сутки бугуртить в /pr
#417 #617492
>>616181
Реально заебали мудаки, делающие вид, что Скала это такой Хаскель, просто недоделанный.
И ругающие Скалу за это.

А также те, которые хвалят - за то же самое.
И пытаются таки доделать.
Патрушев тот же, например.
Или те, кто делает Scalaz.

Это, блядь, вообще другой язык.
Хотите Хаскель? Ну так и пишите на Хаскеле, кто же вам, блядь, не даёт?
#418 #617550
>>617492
Ну в Хаскеле объективно лучшая система типов вообще (после Агды, разве что, но это тоже хачкель).
#419 #617704
Вообще скала это какой-то жуткий долбоебизм сочетающий худшие стороны джявы и хаскеля. И самое главное, что можно всё смешать и получить вообще полный пиздец, который с одной стороны не осилят джява мартыханы, для которых скалка - это лишь сахарок над джавой, а фп господа просто в лицо плюнут автору кода.
#420 #617708
>>617704
Что конкретно тебе не нравится?
#421 #617712
>>617704
Стоит добавить к этому всему еще пиздецки низкую скорость компиляции.
#422 #617737
>>617712
Что хуже того, проигрывает джяве по производительности даже при импертивном стиле кода.
https://github.com/kostya/benchmarks/
#423 #617811
>>617737
А с чего вдруг оно должно жаву в этом опередить?
#424 #617839
>>617811
А с чего вдруг скала В ЛЮБОЙ синтетике сливает яве в 2 и более раза? Даже с аналогичным по факту императивным кодом.
#425 #617977
>>617550
В хаскеле нет наследования, так что его система типов может быть а может и не быть объективно лучше только если кукарекнуть что наследование НИНУЖНО, с чем я впринципе согласен, но что само по себе субъективно.
>>617839
Да не в 2, а сразу в 240 раз. Видел секцию с json? Этот бенчмарк - поделка челика, который не слышал даже о JMH и который не понимает что сравнивает. Ну и код brainfuck.scala конечно порадовал.
401 Кб, 3000x2375
#426 #618171
Все желающие пообщаться без срача на тему скалы и сопутствующих технологий приглашаются в чятик
https://telegram.me/joinchat/BoA_agWB_Xh7Rm75eumPNw
#427 #618303
>>617977

>В хаскеле нет наследования


А чем тебе тайпклассы не наследование?
#428 #618346
Привет. Что написать на скале, чтобы выучить ее? Какие типовые штуки обычно делаются? Например, на пхп это был бы интернет-магазин или блог.
#429 #618391
>>618303
Наследование тайпклассов это скорее набор ограничений или что-то вроде наследования интерфейсов в джаве. Я имел в виду остутствие наследования реализации и вообще ООП на уровне системы типов.
#430 #618820
>>618346
ассоциативный кластер мультипарадигм
#431 #619296
>>618346
Напиши какое-нибудь веб-приложение, чтобы использовалась только скала, без хтмл и джяваскрипта.
Бекенд на Spray, фронтенд на Scala.js + ScalaTags + Scala.Rx.
#432 #619638
>>618346
ассоциативно-мультипарадигмальную фабрику фасоли
#433 #619640
>>618346
целку дочери путина
#434 #619654
>>617737
здесь функциональные структуры используются как императивные, это глупо и неэффективно, можешь засунуть в очко такие тесты
https://github.com/kostya/benchmarks/blob/master/matmul/matmul.scala
https://github.com/kostya/benchmarks/blob/master/brainfuck/brainfuck.scala
#435 #619676
>>619654

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

#436 #621548
>>619676

>подразумаевает какое-нибудь ghc не делает то же самое

#437 #621809
>>621548
А чем и речь. Про ghc слово не было, стрелочник
#438 #621811
>>621809
Ну так куда на фон-неймане от императивной параши денешься-то. Всё ФП - только сахарок.
#439 #621939
>>621811
Для меня ФП - это наличие явной модели времени, в противовес говняканью переменных "на месте" с хуй пойми какими последствиями. Это ортогонально вопросу архитекутры.
#440 #622310
>>621939
В смысле производительности это не может быть ортогонально архитектуре, собственно исполняющей всю эту матан алгебру.
#441 #622330
>>614159

> на хачкеле не пишут реализации процессоров на eDSL.


"В проекте системы-на-кристалле (SoC) я был ответственен за оценку микропроцессорного ядра с точки зрения программного обеспечения и за его модель уровня транзакций. Ядро представляло собой современный RISC-процессор с неупорядоченной выдачей команд в стиле DEC Alpha, но с системой команд MIPS. Для увеличения реалистичности оценок быстродействия параллельно разрабатывались модели контроллера памяти и современной динамической памяти. Модель ядра и вышеуказанной периферии с большим количеством параметров управления поведением процессора была выполнена за четыре месяца. Это время включает в себя также месяц на серьезную модификацию ядра процессора, которая потребовалась для внесения архитектурных изменений, предложенных инженерами. Модель выполнялась на языке программирования Haskell."
#442 #622418
>>622330

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


>модель уровня транзакций


ЯННП например. Он там pipeline моделировал и тики подкручивал? А где тут про DSL?
#443 #625097
Ап!
#444 #625232
Ну вот, нагугливаю я, значит, этот shapeless (а нужны мне type classes). Документации, как и полагается элите у них нет, и в первом абзаце сразу ссылки на четыре научные статьи. Дальше написано как им помочь, куда контрибутить и как скомпилячить. И пипец. Ну давай я дальше гуглить — есть видосы от этого Miles где он про свое чудо рассказывает. По 40-45 минут, про то, что в основе shapeless лежит его волшебное изобретение под названием HList. И это типа главная фишка, которую он мутил последние годы, и она почти заработала, а потом в Scala добавили макросы и он свою фишку (HList) переделал и теперь этот HList более кайфов, чем старый HList. Мутил он ее реально долго, с хЕровой тучей кода, который в основном выглядит вот так:

object IsHCons1 {

type Aux[L[_], FH[_[_]], FT[_[_]], H0[_], T0[_] <: HList] = IsHCons1[L, FH, FT] { type H[t] = H0[t] ; type T[t] = T0[t] }

def apply[L[_], FH[_[_]], FT[_[_]]](implicit tc: IsHCons1[L, FH, FT]): Aux[L, FH, FT, tc.H, tc.T] = tc

implicit def mkIsHCons1[L[_], FH[_[_]], FT[_[_]]]: IsHCons1[L, FH, FT] = macro IsHCons1Macros.mkIsHCons1Impl[L, FH, FT]

}
#445 #625233
Это вообще чо? Это для кого? Это для людей или нет? Не предлагаете ли вы мне вот такое писать каждый день, да сотнями строк и остаться в здравом уме, или это для илиты, а мы, приземленные практики будем это ваше пользовать?

Что делать дальше, после того как слушатель познал HList он рассказать все три раза не успевает, отсылая к его воркшопам, видосам и курсам, которые мы все можем приобрести за деньги. Я вообще не против приобрести знания за деньги, но:

Чувак убил годы на то, чтобы люди убивали недели и месяцы чтобы сука сослаться на тип, и понять тип значения в рантайме, ну и при желании что-то там намутить на стадии комплияции (типа узнать размер коллекции), причем для того чтобы это сделать, нужно хорошо так вынести себе мозг, и нахерачить код типа того что я привел выше. Я конечно глубоко не вникал, может этот shapeless на который надо убить тучу времени (и который видимо далеко не самая навороченная библиотека Scala мира) делает что то там еще полезное, но у меня нет слов — люди делают про это какие-то толки на конфах, воркшопы, презы на 56 страниц типа Demystifying Shapeless. И все это зачем? Чтобы выковырять тип значения во время компиляции, братан.

Бебать, да я в 95 программировал на Delpi и у меня все это сразу было. Я ничего не знал про Polymorphic typed λ-calculus, да и сейчас ничего не знаю, но вот цимус в том что и без знаний любой школьник на дельфи, напишет такой HList за 10 минут, и тип в рантайме познает, и сошлется на него, и сравнит и хрен знает что еще. И даже не задумается как все это сделать. Если бы в Delph были макросы, и генерики — я уверен в том, что школьники писали бы точно такие же либы как и вся эта элита пишет на Scala, но только на порядки быстрее, чем эти дяди, и даже не задумывались, о том что им нужны structural refinement types и прочая лабуду (правда что-ли нужны?). Жизнь мне это подтвердила, о чем позже. Да, кстати работал бы этот школьный код в продакшене тоже на порядки быстрее — старая школа в Borland умела делать вещи.
#445 #625233
Это вообще чо? Это для кого? Это для людей или нет? Не предлагаете ли вы мне вот такое писать каждый день, да сотнями строк и остаться в здравом уме, или это для илиты, а мы, приземленные практики будем это ваше пользовать?

Что делать дальше, после того как слушатель познал HList он рассказать все три раза не успевает, отсылая к его воркшопам, видосам и курсам, которые мы все можем приобрести за деньги. Я вообще не против приобрести знания за деньги, но:

Чувак убил годы на то, чтобы люди убивали недели и месяцы чтобы сука сослаться на тип, и понять тип значения в рантайме, ну и при желании что-то там намутить на стадии комплияции (типа узнать размер коллекции), причем для того чтобы это сделать, нужно хорошо так вынести себе мозг, и нахерачить код типа того что я привел выше. Я конечно глубоко не вникал, может этот shapeless на который надо убить тучу времени (и который видимо далеко не самая навороченная библиотека Scala мира) делает что то там еще полезное, но у меня нет слов — люди делают про это какие-то толки на конфах, воркшопы, презы на 56 страниц типа Demystifying Shapeless. И все это зачем? Чтобы выковырять тип значения во время компиляции, братан.

Бебать, да я в 95 программировал на Delpi и у меня все это сразу было. Я ничего не знал про Polymorphic typed λ-calculus, да и сейчас ничего не знаю, но вот цимус в том что и без знаний любой школьник на дельфи, напишет такой HList за 10 минут, и тип в рантайме познает, и сошлется на него, и сравнит и хрен знает что еще. И даже не задумается как все это сделать. Если бы в Delph были макросы, и генерики — я уверен в том, что школьники писали бы точно такие же либы как и вся эта элита пишет на Scala, но только на порядки быстрее, чем эти дяди, и даже не задумывались, о том что им нужны structural refinement types и прочая лабуду (правда что-ли нужны?). Жизнь мне это подтвердила, о чем позже. Да, кстати работал бы этот школьный код в продакшене тоже на порядки быстрее — старая школа в Borland умела делать вещи.
#446 #625234
Тема, классификации программистов — отдельная и безусловно интереснейшая история на грани с психологией (или психиатрией), которой можно заняться на досуге. Сейчас же я приведу пару примеров, которые уже говорят о том, что влияние субъекта и его мотивов в вопросах оценки языка не менее велико (а скорее более), чем сам язык или задачи под которые он выбирается. Ну например:

Мудак

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

Я конечно сказал что это дурдом, и что они сам себя раком поставил, да и забыл эту историю, пока не встретил знакомца в очередной раз, где-то полгода назад. Знакомец рассказал что едет в Бразилию, в командировку. Помогать бразильцам делать очень навроченную систему чего-то там на Scala. Едет он к сожалению один, поскольку для написания столь хитромудрого кода у его соратников не нашлось достаточно интеллекта, но ничего он и один справится. И в конце добавил что очень рад работать с такими умными бразильцами и восхищен их планом. План был простой: писать все на Scala обязательно, и архитектура должна быть такой, чтобы обычному человеку в голову не влезла. Что позволит им захватить маленький, но денежный нишевый рынок в Северной Америке, и жить долго и счастливо, получая ежемесячно чеки за саппорт сложнейшего продукта.

В вопросе выборе языка у мудаков вопрос продуктивности, если и занимает какое то место, то далеко не первое. Но есть и другая крайность.
8 Кб, 882x34
#447 #625235
#448 #625254
>>625233
Уринировал неосилятора.
#449 #625354
>>625232

>Ну вот, нагугливаю я, значит, этот shapeless (а нужны мне type classes)


Взлольнул.
>>625233

>это для илиты, а мы, приземленные практики будем это ваше пользовать?


Да. Или не будем. Я вот на прошлой неделе захотел заюзать LabeledGeneric из shapeless. Все было ок пока я не начал его юзать на наших реальных case class'ах, в которых около 50 полей - одна строчка клмпилировалась 2 минуты. Miles ничего пока не посовотовал, может так и должно быть, лол.
Бред про Делфи комментровать не буду конечно.
>>625234
С++ идеально заходит с таким подходом.
поговорил с копипастой
#450 #625462
Скажите, может ли Скала заменить C++?
#451 #625480
>>625462
Нет, лол.
#452 #625563
>>625480
Почему?
#453 #625565
>>625563
потому что одно член, другое яйца
#454 #625594
>>625563
Патамушта.
C++ - игрули (именно графический движок и физика), супер-хуйлоад вроде поисковика гугла, частично системщина (потихоньку проталкивают в виде классов с наследованием для си).
Scala - энтерпрайз. Билетики там продавать, быстро баги отлаживать в час ночи как и на жаве. Бигдата и пр. компуктерсайнс - удобно реализовывать всякие ёба-алгоритмы.
#455 #625621
>>625563
Потому что скала - жвм говно как и жява, только для неосиляторов функциональных языков а не плюсов.
63 Кб, 562x175
#456 #626621
Что не так?
Я думал /: == foldLeft, а :\ == foldRight, в programming scala написано так же.
#457 #626622
>>626621
Внезапно до меня дошло, что у операторов, которые заканчиваются на двоеточие, инвертирован порядок. Спасибо, видимо мне просто надо было написать.
#458 #626629
>>626622
Тебе нужно было отвлечься. Мозг решает задачу даже если ты на ней не сфокусирован.
#459 #626806
>>626621
Одерски уже сам покаялся за эти смайлы заместо символьных имён. Зачем жрать говно?
18 Кб, 625x258
#460 #627175
Друзья, кому интересен язык (на начальном уровне), а не срач, милости просим в конфу для непринужденного общения

https://telegram.me/joinchat/BoA_agWB_Xh7Rm75eumPNw
#461 #627205
>>627175

>телеграмм


И тут ты такой путешествуешь нахуй. Пили в слаке или скайпе, а в этом говне сам сиди.
#462 #627218
Есть, например, популярные в узких кругах микроблоггеры которые многие годы рассказывают о крутости всего того, что я считаю слишком умным для меня, и даже не лезу эти истории, микроблоггер же чморит всех “лохов” направо и налево, даже если вы пишете на Haskell, но не успели оценить красоту Idris (или чего-то там). Беда в том, что микроблоггера слушает молодежь, кивает и рисует в голове картину успешного программиста, который занимается умными вещами, а не бытовухой, как они и, наверное, хочет стать таким же умным. И не знают, что в реальной жизни “звезда функционального программирования”, например, копается в миллионах строк на Perl в команде из 100 человек, и практики применения всего о чем рассказывает не имеет никакой. Звезде идет четвертый десяток лет, и ни на одном месте работы его не держали более трех, да и не смог он оставить следа в жизни. Во всем интернете нет ни строчки его кода, разве что портированные чужие либы с чего-нибудь на Haskell, или с PHP на Perl.

Микроблоггер тоже ищет в языке волшебную палочку, которая наконец даст ему возможность хоть что-нибудь создать самому, но не находит, и прыгает с одного языка на другой, с надеждой, что вот он: тот самый язык который ляжет на его ментальную модель, и он сможет творить, но нет, и нет, и нет. И он опять на унылой работе наедине с Perl… Сейчас я заплачу… Но микроблоггер не плачет! Он выходит в социальные сети, и вот уже миру видится гуру функционального программирования, гигант мысли, вершина профессиональной карьеры. И десятки вдохновленных юношей бросают программировать и начинают изучать Haskell (или то, что микроблоггер в данный момент рассматривает как палочку), в надежде стать таким же как он.
#463 #627220
Несмотря на то, что собственная продуктивность для таких людей является важнейшей задачей подстегиваемой паранойей, и прочему душевными проблемами, такие люди не способны дать адекватной оценки языку с точки зрения продуктивности, по той причине, что модуль продуктивности природа постеснялась в них поставить (или просто забыла). Таких чуваков можно с пользой использовать как источники объективной информации, но слушать их умозаключения довольно вредно. В защиту микроблоггеров скажу, что конечно не все они такие же как описаный выше кадр, многим просто интересно, у кого-то хобби, у кого-то наука, а у кого-то и работа. Но лишь небольшая часть из них осознанно рассматривает предмет о котором говорит в контексте собственной продуктивности (в прочем так же как и не микроблоггеры).

Я привел в пример довольно редкие, хотя и не уникальные случаи, дальше я детализировать не буду — тут работы на неделю. Но все отмечу некий обширный класс программистов, характерный адекватным отношением к языку, только потому что он для них по-большому счету не важен. Это те, занятие которых можно с трудом назвать программированием (на собеседованиях они как правило не могут “развернуть” список или на предложение реализовать хэш-таблицу, искренне недоумевают “зачем, она же уже для меня сделана”, особо интересные особи с удивлением спрашивают о том, как это вообще возможно (ведь хеш-таблицы появляются в их языках от создателей с другой планеты — прим. автора.). Эти люди как правило занимаются тем, чтобы собирать из всего что есть вокруг нечто работающее, и получать за это деньги. Такие чуваки относятся к любому молотку спокойно, как к молотку, влияние языка на их производительность минимальна, и многие из них вряд ли задаются этим вопросом. Весь их опыт сборки продуктов из палок и артефактов от других людей показывает что язык в их деятельности совсем не влияет на их продуктивность в сравнении с качеством и возможностями склеиваемых ими кусков.
#464 #627242
>>627218 >>627220
Ой да не пишут они ничего даже не перле, сдают квартиру в Санкт-Петербурге, вот и весь источник дохода, и всё.
#465 #627422
>>627175
Телефон требует
#466 #627615
Посоветуйте опенсовас-проектов, чтобы туда контрибутить
#467 #627684
>>627615
компилятор скалы, псп, целка второй дочери путина (проебала)
#468 #627689
Сап, приглашаем в нашу конфу, посвященную пограммированию. Мы обсуждаем всё, так или иначе связанное с различными сферами разработки. У нас есть отдельные каналы про функциональные языки(Scala, Clojure, Haskell), про С++, про JavaScript​, про ​Ruby​, про Python, про PHP, про Java, есть ​development​ для обсуждения остальных языков и вопросов, связанных с разработкой, есть ​jobs​ для обсуждения вакансий, собеседований и рабочих вопросов и есть random для неформального лампового общения, плюс планируется ещё несколько каналов для других языков, которые вскоре будут созданы. У нас нет ограничений по уровню скила, мы рады как тотал нубам, так и синьорам ​˜помидорам˜​.

Мы пользуемся slack. У него есть неплохие десктопный (под все ОСи), веб и мобильный клиент. Для регистрации необходима только почта (фейковая тоже подойдет).

Пригласить себя можно здесь:https://invite-me-to-2chpr.herokuapp.com

Если инвайт не пришёл в течении 5 минут, попробуйте другую почту.
#469 #627709
>>576898 (OP)
А сколько в этом языке специальных операторов?
#470 #627777
>>627709
Сколько влезет от "!" до "|/::!>>|"
#471 #628792
>>627422
твой телефон никто не увидит, если укажешь в профиле никнейм. В остальном телеграм довольно удобная штука.
#472 #628798
>>628792
Слака гораздо удобней и проработанней, плюс создавалась крупной командой, а не питерским наебщиком-недоучкой.
#473 #629010
Питон паста для скалы настолько охуенна и правдивая что у меня нет слов.
#474 #629012
>>629010
Про высокие зарплаты Scala Developer'ов правда?
мимо джава джуниор-доширачник
#475 #629016
>>629012
В джунов точно говно.
Скала-джун
6 Кб, 515x78
#476 #629039
>>627689
Блять, прочитал как "Be less pussy"
#477 #629044
>>629039
карасик, залогинься
21 Кб, 328x354
#478 #629052
#479 #630152
>>629016

>Скала-джун


Я только 1 вакансию по всей рашке нашёл в тинькоф. Чяднт?
#480 #631382
>>630152
Джява-синьёр моментально конвертится в скала-джуна, ещё и повизгивая от радости, а таких чтоб со скалки прямо начинали, и нет, наверное.
#481 #631397
>>631382
На джяве писал только хелловорлды, а на скале уже достиг уровня сеньора. Вообще скала значительно проще джявы/питона/пхп и других популярных языков, как мне кажется.
#482 #631568
>>631397
Тебе кажется.
#483 #631575
>>631568
Обоснуй
#484 #631581
>>631575
От обоснуя слышу.
#485 #631887
>>631581

>кукареку


Рассказывай, чем скала сложнее пхп-дристни.
#486 #632376
>>631887
загляни в какой-нибудь scalaz или shapeless и посмотри какой-нибудь структурный код, чтоб тайп баунды и все такое, а потом положи руку на сердце и повтори тоже самое
#487 #632384
>>632376

>scalaz или shapeless


Это не скала, а сторонние библиотеки для неё, и для написания крудов уровня пхп их изучение скорее всего никогда не понадобится. Ещё попытка.
#488 #632393
>>632376
Пффф, тогда ты загляни в Vasyasiteadminka.php со смесью пхп сыкуэль шэтэмээль,а потом положи руку на сердце и повтори тоже самое
#489 #632539
>>631397
А как ты понял, что достиг уровня синйора?
#490 #632549

>scala


не нужно. Это академический проект, с довольно бажным и тормозным компилятором, невозможностью сделать нормальную IDE, переусложненностью, издевательством над JVM и 100%-вероятностью выстрелить себе в ногу на большом проекте. От sbt так и вообще тошнить тянет. Короче Одерски со студентами засрали годную идею, жаль только что Akka на этом говне написана.

Для JVM есть Clojure. Для неизвращенцев есть Kotlin - прекрасно спроектированный язык.
#491 #632558
>>632549

> Kotlin — прекрасно спроектированный язык без HKT

#492 #632778
>>632549

> невозможностью сделать нормальную IDE,


Идея вполне нормальная

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


Проиграл с неосилятора.

> От лучшей в мире системы сборки так и вообще тошнить тянет.


Лол блять.
#493 #632779
>>632549

> Для неизвращенцев есть Kotlin - прекрасно спроектированное на коленке и мертворожденное говно, не покрывающее и трети возможностей скалы.


И снова в голос
#494 #632806
>>632778

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


Кто тут у нас? Прыщеглазый школьничек, прочитавший год назад про монады и теперь дрочащий на scalaz, ковариантность и прочие хрюшечки ?

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


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

>лучшей в мире системы сборки


Блять, это про тот незаконнорожденный костыль, основная задача которого скрыть костыли своей матери-алкоголички? Который меняет API в минорных версиях? Который даже формат меняет в минорных версиях?

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

Увы, это мерзкое недоподелие заняло свободную нишу нормального языка для JVM, теперь от наследия этого говна в век не избавиться. А так сидел бы Одерски, пилил бы гранты евросоюза и спокойно бы докладывал на конференциях, как очередной ебанутый аспирант ускорил вывод типов на целый блять 1 процент. Но из-за этого пришлось немного изменить API компилятора и в очередной раз пожертвовать совместимостью, но блять - вы только посмотрите - на целый 1% процент.
#495 #632829
>>632806
http://www.scala-sbt.org/0.13/sxr/sbt/logic/Logic.scala.html
а как вам это, ублюдки?! а?! а?!
#496 #632838
В следующую шапку добавлю русские уроки и книги по Скале. Что ещё допилить?
#497 #632957
>>632829
Вы посмотрите какая красота, вы только поглядите на это! Какие чистые конструкции, аккуратные, Господи Боже мой, Господи Боже мой. Да за каким же хуем я выбрал этот ебанный мавен блядь, это действительно это сука, это проклятие блядь, это сука наказание ебаное блядь! Ой, кошмар
#498 #632968
>>632806

>очередная боль мартышки-неосилятора


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

>Я уже не говорю, что эта хуйня со своим зоопарком типов-промокашек херит к хуям множество интринсиков в HotSpot


Ну что поделать, оракломартышки не смогли написать нормальную JVM.
#499 #632975
>>632806
Спиздил бы scala-ide уже. Не можешь срать - не мучай жопу.
#500 #633011
>>632539
Да очень просто! Я уже три месяца программирую на Скале, прошел 4 курса и могу написать сайт любой сложности.
#501 #633012
>>632549

>жаль только что Akka на этом говне написана


Кривое говно написано на кривом говне, всё ок, ящитаю.
117 Кб, 1000x1017
Scala для android разработки. Годится ли? #502 #633030
Суп, scala-прогеры. Я тут начитался всяких статей с хабра, что scala - сверх прогрессивный язык, и вообще, за ним будущее и т.д. Сам я только начинаю осваивать программирование, почти прочел учебник Лутца(python), но как-то меня заинтересовала мобильная разработка, в частности android. Так вот, у меня возник вопрос: есть ли смысл учить scala, чтобы писать приложения под android, идя в ногу со временем?
#503 #633032

>начинаю осваивать программирование


>есть ли смысл учить scala


Нет.
162 Кб, 1015x1200
#504 #633037
>>633032
Ответь более развернуто, анончик, прошу.
#505 #633045
>>633030
>>633037

>Так вот, у меня возник вопрос: есть ли смысл учить scala, чтобы писать приложения под android, идя в ногу со временем?


Есть.
#506 #633049
>>632539
Если объективно, то берёшь требования к джява-сеньору, заменяешь джява-технологии соответствующими скаловскими и сравниваешь со своими знаниями.
#507 #633073
>>633049
Ну-ка, и чем это мы spring заменим?
#508 #633077
>>633073
Смотря какую часть спринга считать основной
84 Кб, 424x600
#509 #633082
>>633049
Понимаю, что вещи взаимозаменяемые, анон, вопрос немного в другом: лучше ли учить scala, нежели java, для разработки android-приложений?
>>633073
>>633077
Простите, но что есть спринг?
мимоавторизначальноговопроса
#510 #633084
>>633082
Лучше, если не собираешься потом становиться люксофтовской мартышкой
#511 #633085
>>633084
А чем тебе люксофт не угодил?другой анон
#512 #633092
>>633077
У тебя баг в "заменяешь джява-технологии соответствующими скаловскими". Если скала для спарка-бигдаты - нет аналогов. Если для миграции на неё джява-легаси - не всё можно и есть смысл заменять, не за этим Одерски ночей не спал, делал seamless интеграцию с джявой.
#513 #633114
>>633082
Для андроида лучше Кронштадт Котлин
253 Кб, 1024x1024
#514 #633120
>>633114
Прочел статью с хабра о нем. Действительно ли стоит внимания? Не сыро?
#515 #633158
>>633120
Вполне нормально уже. На Anko еще посмотри.
#516 #633213
>>633085
Не сможешь после скалы ковырять легаси-говно на шестой джяве, умрёшь от разрыва ануса.
#517 #633263
в джаве шарю на уровне червя-пидора, можно спокойно учить скалу не зная джава?
#518 #646689
Эту вашу Скалу, можно попробовать выучить как первый ЯП или нужны знания в более древних ЯП?
#519 #646875
#520 #653158
>>576898 (OP)
В чём лучше писать на скале? Испытываю тонны жопной боли пытаясь заставить работать Эклипс
мимо-линуксойд/i]
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 14 февраля 2016 года.

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

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