Сохранен 487
https://2ch.hk/pr/res/394310.html
Прошлые домены больше не функционируют, используйте адрес ARHIVACH.HK.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

scala

 Аноним 10/10/14 Птн 19:01:50 #1 №394310 
14129533102500.jpg
14129533102541.jpg
Очередной тред про самый лучший язык для JVM.

Курс по fp на скале для слоупоков: https://www.coursera.org/course/progfun
Список годноты: https://github.com/lauris/awesome-scala
PWNScala начнется через месяц: http://pnwscala.org/2014/index.html
Презентации летнего ScalaDays: https://www.parleys.com/channel/53a7d269e4b0543940d9e535/presentations?sort=views&state=public
Прошлый тред: http://arhivach.org/thread/21250/
Два недавних форка компилятора, один от тайплевела и второй от баттхертнутого:
https://github.com/typelevel/scala (https://github.com/typelevel/scala/wiki/Differences)
https://github.com/paulp/policy

Специальные ссылки для тех, кто хочет потроллить ИТТ, но не хочет прослыть дауном:
http://www.reddit.com/r/haskell/comments/1pjjy5/odersky_the_trouble_with_types_strange_loop_2013/cd3bgcu
http://www.youtube.com/watch?v=TS1lpKBMkgg
http://www.infoq.com/presentations/scala-idris
Аноним 10/10/14 Птн 20:42:50 #2 №394336 
>>394310
По scalaz есть что-нибудь?
Аноним 10/10/14 Птн 22:56:59 #3 №394390 
>>394310
почему так долго компилируется?
Аноним 11/10/14 Суб 11:14:05 #4 №394479 
Расскажите, как работает сборщик мусора? Нужно ли занулять ссылки? А если ссылки кольцевые?
Аноним 11/10/14 Суб 11:23:49 #5 №394482 
>>394479
>Расскажите, как работает сборщик мусора?
Как в JVM. Бери любое описание GC в JVM и читай.

>Нужно ли занулять ссылки?
Нет

>А если ссылки кольцевые?
Всё хорошо соберется.
Аноним 11/10/14 Суб 18:03:56 #6 №394556 
>>394310
Чем оно лучше Хаскеля/Лиспа/Эрланга?
Аноним 11/10/14 Суб 18:31:33 #7 №394563 
>>394479
> Нужно ли занулять ссылки?
Если пишешь код, который управляет временем жизни объектов, например, реализацию динамического массива, которую можно урезать, то нужно. К примеру, размер чанка вектора - это невидимая снаружи деталь реализации, если чанк 20 элементов, а пользователь урезал вектор до 10, и после 10го в ячейках остались ссылки на его объекты, это утечка памяти.
Аноним 11/10/14 Суб 19:21:20 #8 №394581 
Ну или ещё пример: если есть метод, в котором на n-й строке var yoba = ... - очень дорогой ресурс, на строках от n+k до n+k+m - очень долгое вычисление, не использующее ресурс, имеет смысл занулить yoba перед этими строками, чтобы не ждать освобождения ресурса до конца метода.
Аноним 11/10/14 Суб 19:50:00 #9 №394596 
>>394563
>>394581
О, капитан, мой капитан!
Аноним 12/10/14 Вск 21:27:57 #10 №395016 
14131348777650.png
:3
Аноним 12/10/14 Вск 21:35:14 #11 №395020 
Прошёл когда-то курс на курсере, забавный но довольно лёгкий. Нужно ли знать джаву чтобы найти работу? Есть ли вообще работа? Насколько хорошо надо знать джава/жвм и всю эту инфраструктуру чтобы что-то писать осмысленное?
Пишу всякое говно на 200 строк на питоне пока, есть смысл перекатиться в скала?
Аноним 12/10/14 Вск 21:37:25 #12 №395022 
>>395016
Как курс, кстати? Хотел вкатиться но не могу никак закончить автоматы. Может попробую сейчас глянуть лекции и сдать домашку, хард дедлайн завтра лол.
Аноним 12/10/14 Вск 22:31:15 #13 №395040 
>>395022
Менее основательный, чем maththink, но зато больше тем затрагивается. Тесты пока что довольно простые и дается сколько угодно попыток, при этом неправильные ответы сразу же помечаются.
Аноним 12/10/14 Вск 23:44:19 #14 №395074 
>>395022
что за курс про автоматы?
Аноним 13/10/14 Пнд 00:14:02 #15 №395081 
>>395074
https://class.coursera.org/automata-003
Аноним 13/10/14 Пнд 01:16:43 #16 №395099 
Посоны, вопрос по курсере:

есть "((left union right) union that) incl elem", который пиздец как тормозит и "(left union (right union that)) incl elem", который значительно быстрее.

Как это понять? Хвостовая рекурсия?
Аноним 13/10/14 Пнд 01:30:31 #17 №395102 
>>395099
надо полагать, от размеров left и that зависит. потестируй отдельно с разными значениями
кстати, есть ещё третий вариант
(left.union(that)).union(right)
а вызов методов "через пробел" — это пиздецома, не надо так.
Аноним 13/10/14 Пнд 01:43:54 #18 №395105 
>>395102
Спасибо, анон, "(left.union(that)).union(right)" работает быстрее всего. Осталось понять, почему (в общем случае).
Аноним 13/10/14 Пнд 01:49:29 #19 №395108 
>>395105
подумай, как считается union, в смысле сложности в зависимости от размеров 2х множеств или что у тебя там
вообще, если уж говорить о скорости, то там полюбому весь код — говно ебаное… и суть курса не в оптимизации тоже. это ленивое программирование
Аноним 13/10/14 Пнд 01:53:12 #20 №395109 
>>395108
>то там полюбому весь код — говно ебаное…
Я охуел, когда делал множества на функциях (вторая неделя). Над каждым маленьким заданием тупил по два часа.
Аноним 13/10/14 Пнд 01:58:49 #21 №395113 
>>395105
Так, падажжи... Тесты не проходят. Как это вообще работает? "Incl elem" не вызывается, соответственно, это самая медленная операция.
Аноним 13/10/14 Пнд 02:05:12 #22 №395119 
>>395113
не понял
Аноним 13/10/14 Пнд 02:08:10 #23 №395120 
>>395119
Ты объединяешь только правую и левую ветки, а у узла есть еще собственно значение.

Короче, я подумал, и мне кажется, что если большее множество объединяется с меньшим, то возникают тормоза, надо делать наоборот. Только там нет способа понять, какое из них большее, а какое меньшее. Еще где-то видел, что, мол, надо использовать что-то похожее на merge sort, тогда объединение происходит за линейное время.
sageАноним 13/10/14 Пнд 02:35:38 #24 №395127 
как ускорить компиляцию программ написанных на языке программирования сцяла?
заебало ждать по 5 секунд
Аноним 13/10/14 Пнд 16:33:41 #25 №395255 
>>395127
Ты неправильно задаешь вопрос.
1. Писать без багов
2. Разбивать программу, чтобы компилировать только то что ты сейчас редактировал
3. Писать больше, а не через 10 написаных строк компилировать.
Аноним 13/10/14 Пнд 19:54:21 #26 №395316 
Как-то можно сделать глобальную функцию? А не объект с методом (аналог статического метода в яве, но без класса).
Аноним 13/10/14 Пнд 20:02:13 #27 №395319 
>>395316
Можешь запихнуть ее в package object, тогда она будет доступна внутри модуля аки глобальная.
Аноним 13/10/14 Пнд 20:17:04 #28 №395323 
>>395319
Лайк
Аноним 13/10/14 Пнд 20:49:14 #29 №395334 
>>394310
Посмотрите что ваше ООП и mixin'и в месте с имплицитами наделали человеку:
Have a look at the hierarchy of the Plone Site class. Between square backets you can see the number of methods/attributes defined per class, except special attributes. The plot comes from a real Plone application I have in production. The total count is of 38 classes, 88 names overridden, 42 special names and 648 regular names: a monster.

To trace the origin of the methods and to keep in mind the hierarchy is practically impossible. Moreover, both autocompletion and the builtin help facility become unusable, and the self-generated class documentation becomes unreadable since it is too big.

…My hate for mixins comes from my experience with Zope/Plone. However the same abuses could be equally be done in other languages and object systems – with the notable exception of CLOS, where methods are defined outside of classes and therefore the problem of class namespace pollution does not exist – in the presence of huge frameworks.

A consequence of namespace pollution is that it is very easy to have name clashes. Since there are hundreds of methods and it is impossible to know all of them, and since method overriding is silent, this is a real problem: the very first time I subclassed a Plone class I ran into this issue: I overrode a pre-defined method inadvertently, causing hard-to-investigate problems in an unrelated part of the code.
Аноним 13/10/14 Пнд 20:52:36 #30 №395336 
>>395334
Боль динамомакаки
Аноним 13/10/14 Пнд 21:23:42 #31 №395347 
>>395334
Имплиситы не при чём, это чисто о миксинах, и это пиздёжь: в Scala, когда наследуешь T1 и T2, у которых есть одинаковые реализации foo, компилятор выдаст ошибку и скажет, что ты должен явно указать, какую выбирать:
def foo = super[T1].foo
Аноним 13/10/14 Пнд 21:26:55 #32 №395350 
>>395347
А в случае, если наследуешь своим A трейт B, в котором есть реализация foo, и объявляешь свою реализацию foo, не зная, что уже есть в суперклассе, компилятор скажет, что ты провтыкал и либо переименовывай либо явно указывай override.
вброс Аноним 14/10/14 Втр 21:40:22 #33 №395671 
http://blog.joda.org/2011/11/real-life-scala-feedback-from-yammer.html
История из 2011 о том, как одна соцсеть переехала со скалы на джаву.
Аноним 14/10/14 Втр 22:08:28 #34 №395678 
>>395671
Finally some official words from Yammer. So Stephen would you show some integrity by prominently featuring this article on your blog as you did with that leaked email so people can see both side of the story?
http://eng.yammer.com/blog/2011/11/30/scala-at-yammer.html
Аноним 14/10/14 Втр 22:25:02 #35 №395684 
14133111028220.png
>>395678
Ну вот, только я собрался конвертировать жар от моего пукана в электроэнергию и продавать государству.
Аноним 14/10/14 Втр 22:40:50 #36 №395689 
>>395678
>2011
yasno, ponyatno
Аноним 15/10/14 Срд 09:21:36 #37 №395765 
Пацаны, кто-то в последнее время компилировал компилятор под венду?
У меня такая херня, не знаю что делать: http://pastebin.com/2x9sPtUm
Погуглил - ничего нету. У меня:
Apache Ant(TM) version 1.9.4 compiled on April 29 2014
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Аноним 15/10/14 Срд 19:18:43 #38 №395887 
Parallel-lazy Performance: Java 8 vs Scala vs GS Collections
http://www.infoq.com/presentations/java-streams-scala-parallel-collections
Специальная библиотечка для коллекций победила всех как неожиданно
И вопрос про байткод: как я понял, компилятор скалы пока не использует использует трюки с invokedynamic/invokeinterface из JDK8 при обработке кода с лямбдами?
Аноним 15/10/14 Срд 20:26:34 #39 №395915 
>>395887
> не использует использует трюки с invokedynamic/invokeinterface из JDK8 при обработке кода с лямбдами?

https://issues.scala-lang.org/browse/SI-8359
Аноним 15/10/14 Срд 22:11:00 #40 №395949 
>>395887
Сейчас 2.11., основной МАЙЛСТОУН всех 2.12. - хорошая интеграция с Java 8, как на физическом (байткод), так и на высоком уровне (чтобы скальные лямбды на уровне языка были тоже совместимы с функциональными интерфейсами безо всяких имплицит-конверсий).
Аноним 21/10/14 Втр 21:49:33 #41 №397603 
https://issues.scala-lang.org/browse/SI-6476
Пиздец, почему не пофиксят до сих пор?

s"Yoba says \"$huy\""
Аноним 28/10/14 Втр 01:19:37 #42 №399623 
Сап, посаны.
Хочу контрибьютить в скалу. Смотрел жиру - вроде есть баги, которые вполне по-силам.
Но эти уебки так и не могут ни в нормальную систему сборки - собирают антом, ни в нормальные руководства интеграции исходников в IDE.
Анон, помоги нормально импортировать проект в IDEA, чтобы все собиралось прямо в ней, чтобы можно было нормально запускать тесты по одному и т.д.
Аноним 28/10/14 Втр 15:31:33 #43 №399761 
>>399623
Если проект собирается антом, то по-нормальному в Идею ты его не импортируешь никак.
Аноним 30/10/14 Чтв 20:13:21 #44 №400561 
Че означает оператор "++"? Как вообще гуглить про операторы?
Аноним 30/10/14 Чтв 20:19:32 #45 №400562 
>>400561
соединяет два списка наверное
Аноним 30/10/14 Чтв 20:23:15 #46 №400564 
>>400562
Пасиб
Аноним 30/10/14 Чтв 22:34:06 #47 №400595 
14146976468460.png
>>400561
Я пользуюсь Dash.
Аноним 31/10/14 Птн 08:39:26 #48 №400665 
>>400561
http://stackoverflow.com/questions/7888944/scala-punctuation-aka-symbols-and-operators
Аноним 31/10/14 Птн 16:45:50 #49 №400755 
Какая ide для скалы на сегодняшний день норм?
Что бы типы показывала и навигация была по проекту и либам.
Аноним 31/10/14 Птн 16:46:13 #50 №400756 
>>400755
vim
Аноним 31/10/14 Птн 16:56:39 #51 №400758 
>>400755
cat > Foo.scala
Аноним 01/11/14 Суб 11:40:18 #52 №400953 
>>400755
idea
Аноним 01/11/14 Суб 14:40:36 #53 №400997 
>>399761
Почему? Думаешь не получится разрулить все вручную?
Аноним 01/11/14 Суб 20:33:21 #54 №401094 
>>400755
IntelliJ IDEA
Аноним 03/11/14 Пнд 13:41:54 #55 №401572 
>>400595
Купил его?
Аноним 03/11/14 Пнд 21:38:51 #56 №401729 
>>401572
Я не он, но купил.
макарун 04/11/14 Втр 19:56:40 #57 №402070 
>>394596
Too soon....
Аноним 04/11/14 Втр 20:22:47 #58 №402081 
>>402070
>Too soon....
YOU HAVE AWAKENED ME TOO SOON, EXECUTUS!
Аноним 13/11/14 Чтв 08:34:15 #59 №405481 
http://pnwscala.org/2014/index.html

14 часов остается. Он-лайн трансляции будут?
Аноним 14/11/14 Птн 09:39:57 #60 №405800 
Хочу сделать скриптовый язык для игрушки, который компилируется в xml, на основе небольшого подмножества скалы. Что посоветуете? Писать самому с нуля все ast и парсер, конечно, интересно, но придется отдельно делать тайпчекер, плагин к иде и все такое. Интересует, как можно использовать уже существующую инфраструктуру скалы для моих задач, как это, например, сделано в scala-js.

Вот почти все, что нужно от языка
http://pastebin.com/7NA2UXzT
Аноним 14/11/14 Птн 11:54:11 #61 №405829 
>>405800
>Хочу сделать скриптовый язык для игрушки, который компилируется в xml
Какой-то пиздец ты придумал.
Аноним 14/11/14 Птн 12:00:33 #62 №405834 
14159556330820.png
>>405829
Это не я придумал. Есть уебищная среда для создания ии ботов мышкой, на выходе - xml файл, повторяющий эту структуру. Таким образом разработчики решили "упростить" создание ии для игры, поскольку деревья ифов, по их мнению, некошерно бы смотрелись в виде кода. Поэтому они сделали некое подобие языка практически без модульности, статических переменных и с двумя типа глобальных переменных, которые могут быть объявлены где угодно в дереве. Я хочу исправить этот недостаток и сделать небольшой статически типизированный язык, который будет компилироваться в эту их ересь.
Аноним 14/11/14 Птн 15:41:07 #63 №405917 
>>405834
Алсо, может кто-то работал с xtext, jetbrains mps или kiama. Что из этого подойдет?
Аноним 15/11/14 Суб 20:54:27 #64 №406386 
>>405800
def IsIdle(idleState: Integer, threshold: Float) =
state == idleState && self.hasTarget && !self.isOnGround && self.skill == threshold
у тебя threshold Float, а ты сравниваешь его по == зачем так?
Аноним 15/11/14 Суб 21:56:09 #65 №406432 
>>406386
Да это просто я накидал бессмысленный код со всем тем, что может понадобиться от языка.
Аноним 15/11/14 Суб 22:03:05 #66 №406441 
>>394310
Когда следующая итерация на курсере?
Аноним 15/11/14 Суб 22:44:14 #67 №406456 
>>406441
Они не закрывают ассайменты, можешь хоть сейчас их проходить.
Аноним 15/11/14 Суб 22:54:39 #68 №406464 
>>406456
Я сертификатодрочер.
Аноним 15/11/14 Суб 22:55:39 #69 №406468 
>>406464
Сделай сейчас, а когда начнется следующая итерация всё сдашь.
Аноним 16/11/14 Вск 17:07:37 #70 №406763 
Я нищестудент, если я сейчас буду писать на скале, я смогу потом устроиться жаба-джуниором? Просто я понимаю, что не бывает вакансии скала-джуниор, но на джаве за бесплатно писать не хочу. Мои соображения такие, что тулы там одни и те же, а в самой джаве ничего сложного нет, поэтому я смогу моментально вкатиться в джаву, когда мне это понадобится. Какие подводные камни?
Аноним 16/11/14 Вск 17:23:00 #71 №406770 
>>406763
Знание Java SE — ничто, в жабьих вакансиях оно само собой неявно подразумевается. Нужно осваивать фреймворки/SDK, хоть в Java EE, хоть в ведроиде, хоть в ололо-бигдате.
Аноним 07/12/14 Вск 10:40:39 #72 №414232 
У меня вопрос. А как организовать акторы с общим состоянием? Например есть несколько акторов User и Room. Юзер может находиться либо в одной комнате, либо ни в одной. Комната знает, кто в ней находится.
Возможные проблемы такие:
Юзер пытается войти в несколько комнат.
Юзер пытается войти в несуществующую комнату.
На каком-то этапе теряется сообщение.

Спасибо!
Аноним 07/12/14 Вск 10:41:27 #73 №414233 
>>414232
Вопрос по akka.
Аноним 07/12/14 Вск 10:47:41 #74 №414234 
>>414232
Сделай промежуточный актор UserRoomManager, который будет хранить соответствие User -> Room и обрабатывать сообщения типа JoinRoom(id), LeaveRoom, MessageToRoom(msg) и т.п.
Аноним 07/12/14 Вск 10:56:17 #75 №414235 
>>414234
Хотя Message лучше слать напрямую комнате, тогда JoinRoom должен позвращать ActorRef комнаты.
Аноним 07/12/14 Вск 11:05:32 #76 №414237 
>>414234
Тогда состояние будет размазано по UserRoomManager и Room. Произойдет рассинхронизация при любой потере сообщения между ними.
Аноним 07/12/14 Вск 11:11:37 #77 №414240 
>>414237
Сделай сообщения с подтверждением, то есть реквесты. Например User шлет LeaveRoom к UserRoomManager, а тот шлет LeaveRoom(user) к Room. Если на какой-то из стадий не получено подтверждение, то запрос фейлится в самом начале и состояние остается прежним во всех звеньях цепочки.
Аноним 07/12/14 Вск 11:17:19 #78 №414241 
>>414240
Да, хорошая идея. Нативные реквесты есть в акка? Это не приведет к deadlock, если все акторы на одной jvm крутятся?

Пойду гуглить.
Аноним 07/12/14 Вск 11:24:25 #79 №414246 
>>414241
Гугли akka pattern ask. Не приведет, так как реализовано через Future, но есть свои подводные камни. Например, надо делать так
val client = sender()
for(reply <- room ? Leave) {
...
client ! OK // sender в этом случае будет Room, а не User
}

Потом есть некоторые неудобства с обработкой ошибок и других таймаутов. Подробнее http://techblog.net-a-porter.com/2013/12/ask-tell-and-per-request-actors/
Аноним 07/12/14 Вск 17:58:28 #80 №414343 
14179643086890.png
>>414240
> Если на какой-то из стадий не получено подтверждение, то запрос фейлится в самом начале и состояние остается прежним во всех звеньях цепочки.
Не понимаю, почему.
Аноним 07/12/14 Вск 19:19:19 #81 №414376 
>>414343
Да, не подумал, что в комнате состояние поменяется в этом случае. Хотя, если подумать, это не критично, так как URM вернет клиенту что-нибудь вроде RoomInaccessible, клиент должен попытаться повторить запрос еще раз позднее. В самой комнате этого юзера уже не будет и сообщения от комнаты не будут ему приходить. Сам факт того, что комната недоступна - уже нештатная ситуация, которая должна обрабатываться отдельно.

Аноним 22/12/14 Пнд 22:41:12 #82 №419021 
Словил сгуху.
http://pastebin.com/AT5gcKNH
Угадайте, что возвращает метод, если операция с БД успешна, что будет, если убрать явный return, и что будет, если перехватывать не Throwable, а его более узкий подтип. (В общем-то предсказуемо, но было майндфаком).
Код ужасный (затычка), и в продакшон не пойдет
Аноним 23/12/14 Втр 00:55:56 #83 №419051 
>>419021
false возвращает, потому что в анонимных функциях return бросает специальное исключение. Верно?
Аноним 23/12/14 Втр 11:23:11 #84 №419119 
>>419021
трай\катч нужно в блок внести
Аноним 23/12/14 Втр 12:31:44 #85 №419133 
>>419119
Нет, нельзя, блок DB.withTransaction должен быть внутри try/catch (или выполняет все, или вылетает с исключением, иначе закоммитится сфейлившаяся транзакция)
>>419051
По-другому на JVM нелокальный goto (из объекта-лямбды), видимо, никак не сделать. Надо бы посмотреть, эквивалентны ли явный return и неявный (через последнее значение) в верхнем скоупе функции.
Аноним 23/12/14 Втр 13:08:42 #86 №419135 
>>419133
try\catch это не из скалы, так что выкидывай своё говно
Аноним 28/12/14 Вск 15:10:41 #87 №420442 
>> 420398
> CCAHNHA, которая сворачивает голову JIT и выдает перлы вроде выбрасывания исключения при выполнении return из лямбды.

Тут, вобщем-то, претензий к сцале нет, кроме сбивающего с толку слова return, которое на самом деле не привычный return из C-языков, а longjmp для случая inner-лямбда-объектов. Это явно указано в Scala Language Specification. Обычные, через стек, возвраты из лямбд разумеется возможны через последнее значение блока лямбды. У меня же тот код опасен и с т.з. жавы - перехватываю Throwable.
Аноним 28/12/14 Вск 15:28:56 #88 №420444 
>>419133
Ведь обсуждалось уже много раз, что трайкетч для мудаков. Почему бы не врапнуть это в Try()? да так и вернуть, ну или recoverWith прям там
Аноним 28/12/14 Вск 15:44:33 #89 №420448 
>>420444
Это Play + anorm. anorm достаточно тонкая обертка над JDBC, я не был уверен, что он ничего не бросает и написал затычку.
Аноним 28/12/14 Вск 16:01:13 #90 №420452 
>>420448

Ну скорей всего бросает. Легко проверить, отключи бд перед запросом. Если бросает - обрабатывать жи надо, траем всяким или Either возвращать.
Аноним 28/12/14 Вск 16:11:20 #91 №420455 
Господа, я тут собрался попробовать написать рекомендательную систему и заодно пощупать Скалу, расскажите, откуда повелось, что она хорошо подходит для работы с большими данными? Ну и заодно, вакансии по ней есть?
Аноним 28/12/14 Вск 16:27:07 #92 №420462 
>>420455
Проходил курс на корсере по скале, но уже маленько подзабыл фичи языка Хотя и в самом курсе думаю и половина фич не была рассмотрена

Есть ли смысл сейчас начинать писать на нём проект под ведроид? Какие профиты могут быть? Нашёл макроид но он кажется outdated потому-что последний коммит в гитхаб их 5 месяцев назад.
Аноним 28/12/14 Вск 16:29:10 #93 №420464 
>>420462
Тут без цитирования, фиксану.

>>420455
ФП вообще часто хвалят за то что если на нём правильно писать - многопоточность красиво обеспечивается и масштабируемость. Т.е например отсутсвие сайд-еффектов в коде позволяет его распараллелить легко.

На базе чего рекомендатерьную систему пишешь? Стек принципов/базовых методов имею ввиду
Аноним 29/12/14 Пнд 05:05:34 #94 №420611 
>>420462
https://github.com/pocorall/scaloid/
Давно слежу за проектом, он создает видимость постоянно поддерживаемого китайцем
Аноним 29/12/14 Пнд 13:09:27 #95 №420661 
Почему этого видео еще нет в треде?
Аноним 29/12/14 Пнд 15:45:22 #96 №420706 
14198571222560.jpg
>>420661

Как же я опростоволосился с него.
Аноним 29/12/14 Пнд 18:06:09 #97 №420727 
>>420661
Стоит как SCALA блять!
Аноним 29/12/14 Пнд 18:34:21 #98 №420736 
>>420661
Говно какое-то, лучше бы ты что-нибудь полезное прнес.
Аноним 29/12/14 Пнд 18:59:14 #99 №420740 
>>420464

Спасибо. Да пока ни на чём, изучаю теоретическую часть, поэтому ничего обнадёживающего. За последние года там ничего нового не придумали, с другой стороны, если не считать историю с Нетфликсом.
Аноним 05/01/15 Пнд 21:41:26 #100 №422593 
14204832865360.jpg
http://ideone.com/ZX4Tym почему оно вот так?
Аноним 05/01/15 Пнд 23:15:32 #101 №422654 
>>422593
type erasure в действии

солюшн воркэраунда пикрелейтед
Аноним 05/01/15 Пнд 23:16:33 #102 №422655 
14204889936310.png
>>422654
Аноним 05/01/15 Пнд 23:34:02 #103 №422659 
>>422655
Понятненько.
Аноним 07/01/15 Срд 23:23:49 #104 №423184 
14206622299450.jpg
- Одну минуту, - громко произнес Стасик, - прежде чем
продемонстрировать вам способ поедания борща, о котором все вы, как
будто, позабыли, я должен опорожнить свой кишечник.
Вот каким образом развратник приступил к омерзительной операции. Его
окружили четверо скала-ганимедов: один держал наготове большой ночной горшок,
второй взял зажженную свечу и подставил ее поближе к анусу, чтобы было лучше
видно происходящее, третий сосал ему член, четвертый, перекинув через руку
белоснежное полотенце, целовал Стасика в губы. Тот, опершись еще на двоих
педерастов, поднатужился, и как только появилось невероятное количество
дерьма, которое обыкновенно и регулярно выдавал хозяин замка, учитывая
страшное количество поглощаемой им пищи, тот юноша, что держал вазу,
принялся восхвалять экскременты. "Какое прекрасное скала-дерьмо! - восклицал он. -
Ах, господин мой, какое превосходное скала-говно! Как красиво вы испражняетесь".
Когда дифирамбы закончились, педераст, вооруженный салфеткой, языком очистил
преддверие ануса, а горшечник подставил содержимое горшка под нос Стасику и
опять громогласно восхвалял его. После этого мощная струя мочи ударила в рот
сосателю, который тут же проглотил всю жидкость, полотенце завершило то, что
не мог сделать язык, и четверо ганимедов, оставшись без дела, долго сосали
поочередно язык, фаллос и задний проход распутника.
Аноним 08/01/15 Чтв 00:09:51 #105 №423196 
>>422655
Что это за такой уёбищный язык у вас?
Сблеванул с синтаксиса. А за использование case уже давно пора в ёбыч прописывать с ходу.
Аноним 08/01/15 Чтв 00:12:21 #106 №423197 
>>423196
> за использование case уже давно пора в ёбыч прописывать с ходу.
Чтоу?
Аноним 08/01/15 Чтв 00:14:52 #107 №423198 
>>423197
Он прав. Плохой стиль. Неуважение к людям, которые будут читать твоё говно. Исправляй.

Мимо_js_monkey
Аноним 08/01/15 Чтв 00:19:32 #108 №423201 
>>423196
>>423198

Категория: портвешковый делирий обезьяны
Аноним 08/01/15 Чтв 00:27:36 #109 №423205 
>>423201
Но ведь синтаксис и вправду говно...
Аноним 08/01/15 Чтв 02:28:48 #110 №423223 
>>423198
Что за хуйню ты несёшь, как по другому матчить?
Аноним 08/01/15 Чтв 06:05:48 #111 №423241 
>>423223
Тот мамкин тралл имеет в виду case в структуре switch. Если бы здесь были умные люди, ему бы пояснили, что case без switch это ничто иное как сахар для PartialFunction, типизующий её область определения. Но тут только мамкины тралы и хеллоуворлдщики увы
Аноним 20/01/15 Втр 06:30:14 #112 №426759 
Я ньюфаг в скале, только недавно решил обмазаться ей. Возник тут филосовский вопрос. Почему для каждой структуры данных своя конкатинация? Тут вам и ++, и ::, и, :::, и append, и ещё всякое разное. Как это запомнить и зачем это сделано?
Аноним 20/01/15 Втр 19:40:22 #113 №426977 
>>426759
Просто запомнить
Аноним 20/01/15 Втр 19:57:32 #114 №426989 
>>426759
так надо
Аноним 20/01/15 Втр 19:59:29 #115 №426992 
>>422655
>2015
>case
Аноним 20/01/15 Втр 20:13:28 #116 №427003 
>>426992
Предлагай альтернативу.
Аноним 20/01/15 Втр 20:23:16 #117 №427010 
>>427003
if instanceOf
Аноним 20/01/15 Втр 20:26:38 #118 №427012 
>>427010
Как это может заменить сопоставление с шаблоном? Там разбирается весь терм на любой уровень вложенности вместе с его типом и одновременно извлекаются и биндятся все желаемые значения, а у тебя что?
Аноним 20/01/15 Втр 20:52:48 #119 №427024 
>>427012
тоже самое
Аноним 20/01/15 Втр 21:02:00 #120 №427029 
>>427024
yasno))
Аноним 20/01/15 Втр 21:17:35 #121 №427036 
>>427029
понятно
Аноним 20/01/15 Втр 21:28:46 #122 №427040 
>>426989
Ну вот. А я то думал, что я бидла и фишки не просекаю
Аноним 20/01/15 Втр 21:31:01 #123 №427041 
>>427040
так и есть ты быдло
Аноним 24/01/15 Суб 13:27:06 #124 №428598 
https://groups.google.com/forum/m/#!topic/scala-user/n-59nIEVAOI
Увидел сегодня в рассылке - most noob-friendly community ever.
Аноним 06/02/15 Птн 00:38:10 #125 №433650 
Сильно ли, на текущий момент, Play уступает Spray в производительности? И уступает ли?
Аноним 06/02/15 Птн 00:56:10 #126 №433653 
>>433650
Оба упрутся в io.
Аноним 09/02/15 Пнд 00:00:59 #127 №434999 
Смотрите, какая хуйня
http://scala-lang.org/news/2015/02/05/scala-js-no-longer-experimental.html
Оказывается, можно компилять скалу в жс. Кто-нибудь уже пользовался?
Аноним 09/02/15 Пнд 00:10:20 #128 №435012 
>>434999
Даже твою мамку можно скомпилять в js, столько этих ёбаных трансляторов уже понаписали.
Аноним 09/02/15 Пнд 00:11:47 #129 №435013 
>>435012
Ну мне просто очень печёт от того что приходится писать фронтенд на динамической параше и блевать от джяваскрипта. А теперь можно всё писать на йоба-функционал-статик-скале.
Аноним 09/02/15 Пнд 09:45:33 #130 №435082 
Привет. Перекатился с RoR на Scala. Язык очень нравится, для моих задач подходит идеально. Но хотел бы услышать объективный ответ на вопрос: когда лучше использовать Scala, а когда Java?
Аноним 09/02/15 Пнд 10:27:39 #131 №435091 
>>435082
Scala - всегда
Java - никогда
Аноним 09/02/15 Пнд 17:49:19 #132 №435208 
>>435091
двачую
Аноним 10/02/15 Втр 13:39:53 #133 №435435 
14235647935430.png
Sup. Пишу в целях обучения проект на Play.
Есть ли среди нас, добродушный анон, который может ответить на возникшие вопросы и помочь разобраться c ReactiveMongo, Play и работой неблокирующих веб-серверов?
Если такой найдется, пиши в jabber [email protected]
Аноним 20/02/15 Птн 17:28:08 #134 №439863 
Привет, решил попробовать ваш еба-язык. Не знаю Java, но знаю Haskell. Какие подводные камни?
Аноним 20/02/15 Птн 17:29:50 #135 №439865 
>>439863
Подготовительную лоботомию уже прошёл?
sageАноним 20/02/15 Птн 17:30:17 #136 №439866 
>>439863
najtiElementVMassive
Аноним 20/02/15 Птн 17:34:57 #137 №439868 
>>439863
Найди наименьший элемент в массиве, скотина.
Аноним 20/02/15 Птн 17:54:35 #138 №439885 
>>439868
najtiElementVMassive arr = foldl1 min arr
sageАноним 20/02/15 Птн 17:57:07 #139 №439888 
>>439885
/0
Аноним 23/02/15 Пнд 10:51:50 #140 №441153 
Посаны, а можно под андроид разрабатывать на скале? Сам не планирую, так чисто из интереса спрашиваю.
sageАноним 23/02/15 Пнд 13:25:44 #141 №441198 
>>441153
Я анус твоей мамаши вчера хорошенько разработал.
Аноним 23/02/15 Пнд 17:50:55 #142 №441314 
>>441153
Да, можно.
Аноним 23/02/15 Пнд 21:42:47 #143 №441433 
>>439863
>Какие подводные камни?
>Не знаю Java, но знаю Haskell
Зависит от того, насколько ты "не знаешь" джаву и "знаешь" хаскель. Если ты на работе писал на шарпе, а про хаскель читал в интернетах и писал хелловорлды, как я в своё время, все будет ок, язык понравится.
Если же хаскель знаешь хорошо, а на С++-подобном говне не писал, то рискуешь проблеваться.
Вот что еще может быть интересно почти всем в этом треде:
http://tonymorris.github.io/blog/posts/what-kind-of-things-are-easy-in-haskell-and-hard-in-scala-and-vice-versa/index.html
Аноним 25/02/15 Срд 08:41:53 #144 №442030 
>>439888
Что означает твое высказывание в данном контексте?
Аноним 25/02/15 Срд 18:10:32 #145 №442306 
Для чего нужен этот язык и что на нём пиздатого можно сделать? Ну и как по востребованности?
Аноним 25/02/15 Срд 18:55:44 #146 №442333 
>>439863
Хуёвый вывод типов, хуёвая производительность, хуёвая IDE, хуёвый синтаксис, хуеватые либы.
Аноним 25/02/15 Срд 21:27:43 #147 №442414 
>>394390
компилятор написан олимпиадниками
Аноним 25/02/15 Срд 21:33:57 #148 №442417 
>>400561
http://symbolhound.com/
Аноним 25/02/15 Срд 21:40:38 #149 №442420 
>>439863
Если хочешь в ФП с монадками и scalaz готовься к зависшей на проверке имплиситов IDE и к SOE в рантайме
Аноним 26/02/15 Чтв 22:07:27 #150 №442978 
14249776471820.png
Такие дела
Аноним 26/02/15 Чтв 23:40:25 #151 №443036 
>>442978
Норм будет, если одновременно с принципами ФП в Scala проходить? Или без пройденного курса по ФП я ничего не пойму?
Аноним 27/02/15 Птн 00:05:05 #152 №443052 
>>443036
У тебя есть еще полтора месяца, чтобы ознакомиться с курсом фп на скале. Этого будет достаточно. Алсо, да, если незнаком с ФП, то курс по фп обязателен.
Аноним 27/02/15 Птн 00:07:52 #153 №443053 
>>443052
> У тебя есть еще полтора месяца, чтобы ознакомиться с курсом фп на скале.
Так он только в апреле начнётся и чуть позже реактивного программирования. Или ты имеешь в виду просто посмотреть скалу и фп самому где-нибудь ещё?
Аноним 27/02/15 Птн 00:15:07 #154 №443057 
>>443053
Пиздец, всегда путаю, что идет следующим после февраля, апрель или март. Тогда не так много времени. Хотя за две недели все равно можно посмотреть большую часть лекций по фп (они должны быть в открытом доступе сейчас). Я в прошлом году так и сделал. Быстро пробежался по курсу фп и с опозданием начал реактивы. Пукан побаливал, но процентов 60 информации усвоил, все домашки сделал. Сертификат не получил, но знаний хватило, чтобы потом сделать скалу и акку своими основными инструментами. В этом году буду уже ради сертификата проходить, плюс они должны были пофиксить кучу багов, которые были в прошлом курсе.
Аноним 27/02/15 Птн 00:38:40 #155 №443064 
>>443057
Ты всё правильно написал сначала, до середины апреля полтора месяца.
Аноним 27/02/15 Птн 01:26:39 #156 №443099 
>>443064
Ну вообще охуеть.
Аноним 27/02/15 Птн 10:42:34 #157 №443245 
>>443052
А можно проходить курс по фп, но на окамле? Мне скалку ставить некуда, а окамлц пылится в углу.
Аноним 06/03/15 Птн 13:41:50 #158 №446378 
поясните за тайпсейф активейтор, стоит ли его использовать?
Аноним 06/03/15 Птн 22:37:47 #159 №446519 
>>446378
нет
Аноним 06/03/15 Птн 22:50:54 #160 №446527 
>>446519
ну а что он вообще из себя представляет?
Аноним 07/03/15 Суб 02:41:00 #161 №446668 
>>446527
генерит готовые шаблоны под типичные приложения
Аноним 11/03/15 Срд 08:39:26 #162 №448537 
Поцыки, расскажите ньюфане про SBT. Про сборку я немного понял, но как осуществлять деплой?
Аноним 11/03/15 Срд 09:12:37 #163 №448540 
>>448537
publish
Аноним 11/03/15 Срд 10:13:37 #164 №448570 
>>448540
Что за артефакты, репозитории, POM и прочее? Мне нужно развернуть приложение на удаленном сервере.

jvm стек для меня совсем в новинку.
Аноним 12/03/15 Чтв 12:54:33 #165 №449092 
>>448570
sbt-native-packager жи есть
Аноним 12/03/15 Чтв 14:40:51 #166 №449140 
14261604512950.png
>>449092
Будь няшей, объясни многоходовочку:
- собрали
- залили вместе со статикой (куча файлов) на удаленный сервер;
- запустили;

И заливать нужно быстро, т.е. не перезаливать неизменившиеся файлы (аля rsync).
Аноним 19/03/15 Чтв 21:52:07 #167 №452571 
>>449140
блять берешь убанту 14.04 ставишь докер на него накатываешь докку, делаешь гит пуш сбт проекта и все само деплоится заебал
Аноним 20/03/15 Птн 12:35:24 #168 №452748 
>>394556
Оно хуже Хаскеля но работе есть выбор между Скалой и Джавой, а не между Скалкой и Хаскелем. На счет скобочного говна и телебейсика ты пошутил наверное.
>>395020
>Нужно ли знать джаву чтобы найти работу?
В основном да. У нас есть люди, которые никогда раньше не программировали на Джаве, но это скорее исключение. Обычно Скалка - это игрушка для джавамирка и помимо проекта на Скале у тебя еще будет зоопарк систем на Джаве.
>Есть ли вообще работа?
Да.
>Насколько хорошо надо знать джава/жвм и всю эту инфраструктуру чтобы что-то писать осмысленное?
Чтобы что-то осмысленное писать хорошо её надо знать, другое дело что программисты на Скале частенько сами не до конца понимают, что такое хорошо, а что такое плохо, поэтому быдлокод в большинстве случаев прокатывает.
>>395127
Наш проект под ОС ПИТУХ компилируерся почти в два раза быстрее, чем под нормальной операционной системой. Не знаю, поможет ли тебе это. А так используюй REPL и дижею, там получается без компиляции обходиться.
>>395334
ООП - уебанство. Множественное наследование - уебанство в квадрате. А трейты - линеаризованное уебанство в степени уебанства. Щито поделать, десу?
>>395347
Если ты про трейты, то выберет в зависимости от порядка, в котором трейты унаследованы (а именно реализацию из самого "правого" трейта, либо из тела класса, если там метод перегружен).
>>414232
>На каком-то этапе теряется сообщение.
Это вся суть Акки. Акка написана петухами для петухов, не трать на неё время. По крайней мере не делай это бесплатно. Конечно, многие долбоёбы пихают её в прод и с ней приходится трахаться, но бесплатно-то зачем говно жрать?
>>435082
Когда твой выбор ограничен сортами говн - выбирай Скалу. Во остальных случаях - язык программирования.
Аноним 20/03/15 Птн 18:45:14 #169 №452917 
>>452748
>Во остальных случаях - язык программирования.
Например?
Аноним 20/03/15 Птн 18:51:34 #170 №452922 
>>452917
Лексах
Аноним 20/03/15 Птн 23:06:55 #171 №453050 
>>394556
Хуже божественного Erlang, но лучше хачкеля.
Аноним 21/03/15 Суб 10:21:23 #172 №453171 
>>453050
Эрланг не предназначен для написания чего-либо надёжного.
Аноним 21/03/15 Суб 18:19:08 #173 №453340 
>>453171
В отличии от хачкеля то?
Аноним 23/03/15 Пнд 14:52:25 #174 №454078 
>>453340
Не только хаскеля, но и большей части мейнстрима. Он на антрипаттерне построен. Конечно, некторые долбоёбы его и в джаву тащут, в результате приложение на джаве начинает работать так же дерьмово, как и на эрланге, но это уже проблема программиста, а не языка.
Аноним 23/03/15 Пнд 19:57:46 #175 №454198 
>>452748
>Это вся суть Акки. Акка написана петухами для петухов, не трать на неё время. По крайней мере не делай это бесплатно. Конечно, многие долбоёбы пихают её в прод и с ней приходится трахаться, но бесплатно-то зачем говно жрать?
Посмотрим как ты закукарекаешь когда типизированных акторов допидорят
Аноним 24/03/15 Втр 23:44:24 #176 №454732 
>>452748
>хуже Хаскеля
>ООП - уебанство
>Акка написана петухами для петухов
>Когда твой выбор ограничен сортами говн - выбирай Скалу. Во остальных случаях - язык программирования.
Ммм, какой толстый петух.
Аноним 25/03/15 Срд 19:29:49 #177 №455054 
Почему в языке нету параметризованных синглтонов?
хочется писать
object Foo[T] = ...

А в коде потом
Foo[Int].doStuff() или Foo.doStuff(intParam)

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

sageАноним 25/03/15 Срд 20:02:58 #178 №455072 
>>455054
Падажи, так синглтон у тебя один или по одному для каждого типа?
А когда они должны создаваться? При первом вызове? Или сразу для всех возможных типов?
Аноним 25/03/15 Срд 22:06:34 #179 №455143 
>>455054
sealed class Foo[T] {
def doStuff() = ???
}
object Foo {
def apply[T]() = new Foo[T]()
}
Аноним 26/03/15 Чтв 15:01:40 #180 №455327 
>>455054
Держи http://ideone.com/m6CwNg
Аноним 29/03/15 Вск 07:45:06 #181 №456488 
http://scalex.org/ - эта хуйня не работает?
Аноним 29/03/15 Вск 08:59:33 #182 №456492 
14276087730890.png
>>456488
Аноним 11/04/15 Суб 19:25:15 #183 №462504 
Пусть у меня (условно в жаве) в синхронном коде есть последовательность вызовов, которые могут выбросить исключения. Тогда я использую finally для кода, который гарантированно выполнится, прервется цепочка или нет. Каков аналог finally для композиции Future через andThen (recover/recoverWith - это же подобие catch|catch-maybe-throw?)?
Аноним 13/04/15 Пнд 10:44:25 #184 №463235 

AHTUNG
AHTUNG
AHTUNG
AHTUNG
AHTUNG

Новая сессия Principles of Reactive Programming на Coursera стартует через 11 часов.
https://www.coursera.org/course/reactive
Аноним 13/04/15 Пнд 19:46:28 #185 №463413 
>>463235
ГЕРОЯМ СЛАВА
Аноним 13/04/15 Пнд 20:14:31 #186 №463424 
>>462504
А чем обычный onComplete не устраивает?
Аноним 14/04/15 Втр 09:17:03 #187 №463612 
>>463235
Стоит ли вкатываться в этот курс, если скалу ни разу не видел и Principles of Functional Programming не проходил? В ФП могу на уровне хаскеллепараши.
Аноним 14/04/15 Втр 12:06:35 #188 №463699 
>>463612
да, но придется поднадрочиться, тут тяжелее, чем в хаскеле, лепить карринг и партиал фанкшнс.
Аноним 14/04/15 Втр 12:16:53 #189 №463705 
>>463235
А ни у кого нет архива заданий с предыдущего курса?
А то я начал делать вперед, а они буквально неделю назад закрыли доступ к предыдущему курсу.
Аноним 15/04/15 Срд 16:44:46 #190 №464213 
Пасаны поясните за web framework для scala хочу перекатиться с питона
Аноним 15/04/15 Срд 18:05:33 #191 №464262 
>>464213
play framework - если нужен честный веб фреймворк, где большинство фич из коробки
spray.io - есть есть желание клепать асинхронные rest сервисы.
Аноним 15/04/15 Срд 18:30:18 #192 №464285 
>>464262
Спасибо.
Аноним 21/04/15 Втр 14:13:24 #193 №466276 
Даже сам Одерски не знает о багах в своей поделке:
https://class.coursera.org/reactive-002/forum/thread?thread_id=232
https://groups.google.com/forum/#!topic/scala-debate/je4vZbR3WbA
Аноним 22/04/15 Срд 02:21:57 #194 №466596 
Анон, когда в православной scala запилят нормальный websocket?
Аноним 22/04/15 Срд 12:46:27 #195 №466728 
>>466596
https://github.com/wandoulabs/spray-websocket
Аноним 23/04/15 Чтв 23:59:42 #196 №467851 
>>466728
отстой. я за ним давно слежу
Аноним 24/04/15 Птн 11:19:32 #197 №467988 
>>467851
Следишь или используешь? В чем отстой-то? Все тесты автобана проходит.
Аноним 24/04/15 Птн 22:52:00 #198 №468459 
>>467988
не работала раньше с моей версией sbt. поэтому забил.
Аноним 26/04/15 Вск 01:47:05 #199 №468889 
>>466596
https://github.com/akka/akka/pull/17248
За новостями не следишь чтоли петух?
Аноним 26/04/15 Вск 04:30:01 #200 №468906 
>>468889
нет. прости
Аноним 26/04/15 Вск 22:07:34 #201 №469219 
>>435013
По-моему самая живая из статически-типизировавнных поделок - это микросовтовский TypeScript
То, что они написали, что больше не экспериментальный - это хуйня. Скала на джаве до сих пор экспериментальная, фактически, а они про жс
Аноним 26/04/15 Вск 22:09:21 #202 №469221 
>>435091
> Scala + Java - всегда
не благодари
Аноним 26/04/15 Вск 22:31:59 #203 №469241 
Работаю в проекте, написанном с нуля на скале. Дико пригораю с имплиситов. Ни один разработчик, долгое время работающий на проекте, пока не смог объяснить, в чём космический эффект этого говна: что-то где-то откуда-то берёт параметры, причём чтобы найти место, откуда всё-таки это приходит - ты должен прошарить все скоупы, которые тебе доступны. Как бывшей джава-макаке мне не понятно: нахуя прятать от кодера информацию?

Объясните полезность, в общем.
Аноним 26/04/15 Вск 22:35:28 #204 №469243 
>>469241
что бы можно было реализовать паттерн "тайпкласс"
Аноним 26/04/15 Вск 22:36:11 #205 №469244 
>>469241
Классика компьютерной науки http://isorecursive.livejournal.com/1622.html
Аноним 26/04/15 Вск 22:42:11 #206 №469246 
>>469241
Имплиситы это как раз та вещь, которой не нужно злоупотреблять.
Скала вообще специфический язык.
Чтобы нормально использовать его в промышленном программировании, нужно соблюдать ряд строгих ограничений на использование возможностей языка.

Например, скалаз идет нахуй сразу же.
И вообще любые нездоровые игрища с типами.
Про это много написано, гугол тебе в помощь.
Аноним 26/04/15 Вск 22:58:21 #207 №469251 
>>469244
И в первом же комменте - известный карго-культист - монадодрочер.
Что отлично характеризует целевую аудиторию подобной хуйни.

Моноид, блядь, пиздец вообще, хули там обсуждать? Так нет же, дрочат и дрочат, бессмысленно и беспощадно.
Конструкторы соломенных монад, блядь.
Аноним 26/04/15 Вск 23:00:13 #208 №469252 
>>469251
Удивительно, что ты автора поста не опознал. Да, мельчает анонимус.
Аноним 27/04/15 Пнд 09:04:03 #209 №469359 
>>469243
>>469244
>>469246
Спасибо за ответы.
Аноним 27/04/15 Пнд 10:32:31 #210 №469385 
Почему работорговцы такие тупые хуесосы? Неужели вы думаете, что если человеку мозги выебать и запугать, он станет хорошим дружком-наблюдателем? Неужели вы думаете, что если шкуру "натренировать", выебав по кругу во все дыры, а потом ещё мозги прочистить, она не станет противна ТОВАРУ? Неужели непонятно, что все эти подсадные обиженки не могут воспринимать ТОВАР как друга, любовника, не могут быть с ним искренними, а следовательно, на одной волне? Неужели вы думаете, что ТОВАР этого не чувствует, не замечает в их взглядах, жестах, интонациях? Неужели вы считаете, что уточка-"фпшница", которая с умирающим видом зевает, когда ты рассказываешь ей про комбинаторы парсеров, а в следующий момент пиликает "о госпаде это всё так интересно" - это охуенно мотивирующий и жизнеутверждающий икспириенс? Вы хоть пробовали анализировать, как меняются отношения ТОВАРА и близких после того как вы обработали последних? Я уже давно боюсь знакомиться с новыми людьми, потому что я знаю, что их сломают, и меня они будут в худшем случае ненавидеть, а в лучшем - рассматривать как мешок с деньгами, из которого и им перепадёт, если хорошо потрусить. Кароче, пиздец, господа, не знаю какая у вас там статистика успешности вашей деятельности, но у меня складывается впечатление, что всё, чем у вас по факту получается быть - это ёбаными чекистами, разрушающими всё святое, что было у человека. Хуй знает, как вы это потом продавать собираетесь. Мой вам добрый совет: меняйте парадигму. Пришло время переписывать методички.
https://www.youtube.com/watch?v=Log4mbxgiaM
Аноним 27/04/15 Пнд 12:51:16 #211 №469421 
>>469359
Изначально имплиситы были задуманы для "pimp my library" (по аналогии с pimp my ride) - добавления новых фишек в уже готовые чужие библиотеки (классы). В руби это называют monkey patching. Тайп-классы (на бытовом уровне) - примерно то же самое.
И плюсы и минусы тут очевидны. В руби-говне, например, разобраться бывает весьма затруднительно.

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

Вообще, скала вызывает у меня двойственные чувства. Как и у большинства людей. Например, рекомендую прочесть вот это (там 3 части): http://zeroturnaround.com/rebellabs/scala-sink-or-swim-part-1/

Также, весьма рекомендую вот это:
http://twitter.github.io/scala_school/

Вот хорошее про функторы-монады-хуяды (хаскель, но тем не менее):
http://adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html

Вот функторы и функциональная композиция на джаваскрипте, тоже хорошо для понимания:
http://functionaljavascript.blogspot.ru/2013/07/functors.html

По чистой функциональщине есть очень хорошая книжка "Functional Programming in Scala". Вообще по языку, включая функциональщину - Scala in Action, Scala in Depth. Для быстрого старта - Scala for Impatient.
Аноним 27/04/15 Пнд 15:13:53 #212 №469472 
14301368335010.jpg
>>469385
Аноним 27/04/15 Пнд 22:03:21 #213 №469742 
>>469421
Я начинал со "Скала для нетерпеливых", в книжке всё выглядело классно и круто, опережающие определения, крутые коллекции, опции, кейс-классы и паттерн мэтчинг. Потом, когда я столкнулся с продуктивным кодом, я понял, что функциональный язык - это экзотично, но ни разу не newbie-friendly. Очень много неявных механизмов, которые скрывают детали реализации. По итогу, для функциональщика скала слишком императивна, для императивщика слишком функциональна. Чисто моё имхо после полугода работы на скале после Java EE: скала не подходит для индустриального программирования, если в команде есть хоть один функциональщик. Даже одного достаточно, чтобы в коде появилась куча ненужных абстракций, которые экономят строчки кода, но отнимают у остальных разработчиков чувство контроля над кодом.

Строго говоря, я ещё сам не понял, может ли моё мнение претендовать на объективность, или это очередной баттхёрт утёнка.
Аноним 27/04/15 Пнд 23:31:44 #214 №469848 
>>469742
Это типичные ощущения человека, пытающегося писать на скале. Такой язык.

А функциональщину полезно изучать, экспериментировать, но в реале применять нужно весьма дозировано.
Аноним 28/04/15 Втр 01:49:42 #215 №469975 
>>469742
> Даже одного достаточно, чтобы в коде появилась куча нормальных абстракций, которые экономят строчки кода, но отнимают у умственно-отсталых императивных мартышек чувство контроля над кодом.
Аноним 28/04/15 Втр 12:08:43 #216 №470075 
>>469241
Обобщу то что написали челики выше. Имплиситы нужны для:
1) Pimp my library. Полезность очевидна, ничего нигде не скрывается.
2) Typeclasses (почему-то сразу все начинают выёбываться знаниями тривиальных вещей и кукарекать про монады с моноидами, и не говорият про TypeTag, всякие Reads/Writes из play-json и другие походие применения тайпклассов.
3) Dependency injection, без явного указания параметров по всей иерархии вызовов.
4) Неявные преобразования. Единственная спорная штука, чаще даже вредная, чем полезная. Обычно лучше использовать pimp my library и добавлять методы вроде asFoo/toBar. Это, кстати, одна из причин, по которой использование JavaConverters предпочтительнее JavaConversions.
5) Редко используемый приёмы вроде CanBuildFrom в коллекциях, для вызова различного кода в зависимости от типов.
>>469742
>Очень много неявных механизмов, которые скрывают детали реализации.
И в чем проблема? Программирование и есть абстракция от деталей реализации.
>скала не подходит для индустриального программирования, если в команде есть хоть один функциональщик. Даже одного достаточно, чтобы в коде появилась куча ненужных абстракций, которые экономят строчки кода, но отнимают у остальных разработчиков чувство контроля над кодом.
Как будто ненужные абстракции только функциональщики плодят. Для скала-команды важно чтобы её члены стремились учиться и обсуждали язык, новые техники и технологии, чтобы не было очень отстающих. Стайл-гайд тоже нужен, хотя бы неформальный, или хотя бы чтобы можно было сказать: чувак, ты написал херню, или что-то непонятное, объясни почему ты сделал именно так или перепиши нормально.
>>469421
>Вообще, скала вызывает у меня двойственные чувства. Как и у большинства людей.
>>469848
>Это типичные ощущения человека, пытающегося писать на скале. Такой язык.
Я понимаю, откуда берутся такие ощущения. Скала как раз тем и сложна что нужно постоянно балансировать между ФП и ООП и вообще между разными фичами, для чего нужна самодисциплина чтоле. Новички, слабые программисты и просто середнячки часто скатываются в стороны, что приводит к запутанному коду. Поэтому скала подходит далеко не для каждой команды.
Аноним 28/04/15 Втр 23:18:33 #217 №470427 
>>470075
> Dependency injection
Это тоже спорно. В случае когда из 10 имплисит зависимостей тебе надо передать один параметр явно, остальные имплисит параметры тоже придется передавать явно.
Так это скорее разумно использовать как внедрение контекста, как например ExecutionContext у Future, или Request в Play.
Аноним 28/04/15 Втр 23:25:20 #218 №470432 
>>470075
А неявными преобразования и имлисит классы как раз очень годная вещь, позволяющая делать сахарные DSL.
Аноним 29/04/15 Срд 00:48:31 #219 №470469 
>>470075
Новички-середнячки тут ни при чём.
Скала - академический язык, и его только-только начали доводить до возможности нормального промышленного использования. И ещё хуй знает, что в итоге получится.

>>469975
The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague.
Аноним 29/04/15 Срд 01:01:43 #220 №470471 
>>470432
Да, но, к примеру, idris ограничивает их одним преобразованием за раз, чтобы код не превращался в магию.

_мимопроходил_
Аноним 29/04/15 Срд 09:12:34 #221 №470533 
>>470471
Компейлятор скалы тоже не сможет вывести через 2 имплисит преобразования насколько мне известно.
Аноним 29/04/15 Срд 09:16:58 #222 №470534 
>>470533
Да, подтверждаю
Аноним 29/04/15 Срд 13:20:36 #223 №470642 
>>470533
Ну ок тогда. Хотя, возможно, стоит как-то контролировать количество неявных преобразований в пределах одного выражения?
Аноним 29/04/15 Срд 16:30:43 #224 №470741 
>>470427
Я это в основном и имел в виду, не знал как коротко написать.
>>470432
Годная, но имеет ограниченную область применения. ДСЛе писательство это вообще отдельная тема.
>>470642
>Хотя, возможно, стоит как-то контролировать количество неявных преобразований в пределах одного выражения?
Это может очень замедлить компиляцию.
>>470469
>he avoids clever tricks
Вопрос только в том что считать tricks. GoF выглядит как сборник tricks? Как по мне да.
>Скала - академический язык, и его только-только начали доводить до возможности нормального промышленного использования
А вот диванный иксперт закукарекал.
Аноним 29/04/15 Срд 20:46:29 #225 №470872 
>>470741
Ты неправильно понимаешь, что такое clever tricks.
Если хочешь пример - это функциональщина в ООП проекте ради экономии пары строк кода и ради того, что именно такой код тебе именно сегодня кажется красивым, хотя другим он кажется нечитаемой хуйнёй.
А ещё ради того, что ты сам себе при этом кажешься охуенно продвинутым, возвышающимся над серой массой как блестящая лиловая залупа, торчащая из пены в ванной.

Пассаж про диванного эксперта даже комментировать не хочу - это очевидная проекция.
Аноним 29/04/15 Срд 22:51:13 #226 №470952 
>>470872
Скала не только ООП язык, но и функциональный, так что мнение болезных мартышек, которым там что-то непонятно, всем похуй.
Аноним 30/04/15 Чтв 10:44:26 #227 №471113 
>>470872
> clever tricks - это функциональщина в ООП проекте ради экономии пары строк кода
Любое усложнение кода ради эконимии пары строк кода это плохо.
Че ты доебался к какой-то функциональщине? Что это вообще такое?
>ты сам себе при этом кажешься охуенно продвинутым, возвышающимся над серой массой
Что бы такого не было, нужно, как я уже писал про отношения внутри команды,
>чтобы можно было сказать: чувак, ты написал херню, или что-то непонятное, объясни почему ты сделал именно так или перепиши нормально
>это очевидная проекция
Сорре, но нет. Я уже почти как два года на скале пишу, в команде есть люди с 3+ годами опыта.
И для меня очевидно что у тебя нет опыта использования функциональных или гибридных языков, но есть мнение о них, о разработке с их использованием, о мифических clever tricks и функциональщине.
Аноним 30/04/15 Чтв 10:59:54 #228 №471116 
>>470872
Мне одному кажется что этот пост полон боли порванного императивного мартыхана?
Аноним 30/04/15 Чтв 12:19:19 #229 №471134 
Какой-то у вас тут странный спор.

Вообще, нормальные люди стараются писать код не столько для себя, сколько для команды. Аутисты, пишущие код, понятный только им самим, нахуй уже никому не нужны. Нормальные люди либо подстраиваются под команду, если она достаточно хороша, либо ищут такую, под которую или не надо подстраиваться вообще (настолько там все пиздаты и круты), или вообще можно всех подстроить под себя.
В связи с этим реально веселят функциональные мамкины илитисты, которые работают в толпе императивных макак, не находят понимания у коллег, а потом исходят на говно на анонимной борде, в попытках как-то оскорбить совершенно левых людей. Собственно как и императивные бибизяны, которые горят от необходимости адаптироваться под функциональную команду.
Аноним 30/04/15 Чтв 15:51:04 #230 №471195 
>>471134
Если я часть команды, то остальные должны подстраиваться и под меня тоже.
Вообще если команда полна мартышек, это не повод деградировать и писать дристню, а повод их обучить до уровня функциональных господ либо выкинуть на мороз.
Аноним 30/04/15 Чтв 15:58:18 #231 №471198 
>>471195
Двачую этого господина.
Аноним 30/04/15 Чтв 16:50:58 #232 №471288 
>>471195
Cкорее тебя выкинут на мороз, функцианальный господин ты наш
Аноним 30/04/15 Чтв 22:34:09 #233 №471471 
Тырпрайз команды переписывающие ява легаси на скалу в таком же императивном стиле чтобы было "ололо современно" считаю говноедством.

Пора свыкнуться с фактом, что функциональщина в скале - норма, ООП в ней нужен только как система модулей и для интеропа с явой.

Але бля! Посмотри на стандартный стек от Typesafe - Play Framework (Iteratee, ActionFuctions compositions), Slick, Akka Streams+Http. Не говоря уже о сторонних спарках, алгебердах (асбтрактная алгебра, ахуеть теперь), скалдингах.

ФП это не какие-то мифические "монады в хачкиле". В Spay используются typelevel свистелки на HListах из шейплеса, не верх ли мракобесия в продекшене.

Пора бы уже понять что динамический диспач виртуальных методов как единственная выразительная конструкция языка грубо говоря себя изжил.
Аноним 30/04/15 Чтв 23:04:07 #234 №471482 
>>471471
Ничего из перечисленной тобой хуеты не используется в энтерпрайзе.
Стандартный стек от тайпсейфа - для кого он стандартный?

Кстати, монады в хачкиле совершенно не мифические, а самые настоящие.
А вот фп в скале местами очень напоминает карго-культ.
Аноним 30/04/15 Чтв 23:30:08 #235 №471491 
>>471113
А кто тебе сказал, что это я не понимаю скалу или функциональщину? У меня, как раз, с этим всё хорошо.

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

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

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

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

В итоге, язык остаётся академическим говном, а я вынужден писать на джаве.

Такие дела.


Аноним 01/05/15 Птн 06:30:57 #236 №471549 
>>471288
Мартыхану неприятно
Аноним 01/05/15 Птн 06:32:21 #237 №471550 
>>471482
> Ничего из перечисленной тобой хуеты не используется в энтерпрайзе.
> Стандартный стек от тайпсейфа - для кого он стандартный?
Охуительные истории
Аноним 01/05/15 Птн 06:59:39 #238 №471553 
>>471482
мудаку неприятно.
ну пойди прочти книжечку по spring или там hibernate и напиши еще один петстор.

ты хотя бы посмотрел, какие кастомеры у того же typesafe.
это тебе не хайбернейтовский маппинг настраивать.
Аноним 01/05/15 Птн 11:49:14 #239 №471593 
>>471491
>А кто тебе сказал, что это я не понимаю скалу или функциональщину? У меня, как раз, с этим всё хорошо.
Я говорил про опыт использования, а не про то, понимаешь ты что-то или нет. Студентики 2 курса тоже "понимают" ООП, а когда приходят в первый бодишоп, все оказывается немного по-другому.
>Потому, что скала местами очень напоминает перл.
1) Наговнокодить можно на любом языке.
2) Еще раз мой комментарий по этому поводу:
>Я понимаю, откуда берутся такие ощущения. Скала как раз тем и сложна что нужно постоянно балансировать между ФП и ООП и вообще между разными фичами, для чего нужна самодисциплина чтоле. Новички, слабые программисты и просто середнячки часто скатываются в стороны, что приводит к запутанному коду. Поэтому скала подходит далеко не для каждой команды.
3) Перл академический это просто пиздец.
>А ещё я вижу, что типичный код на скале из интернетов состоит из clever tricks чуть более чем полностью.
Может бы потому что он написан для их демонстрации? Хочешь нормальный код увидеть - читай код библиотек. Их обычно челики поумнее пишут.
>А ещё я хочу сказать, что я изрядно разочаровался в скале именно из-за того, что среди коммюнити и контрибьюторов очень много долбоёбов
Примеры, я за два года не заметил такой хуйни.
>Поэтому, я думаю, что до массового применения скалы в энтерпрайзе ещё очень далеко.
Не знаю, почему ты и даун выше доебались к слову "энтерпрайз", как будто это показатель чего-либо, но тут ты прав, по большому счету:
http://www.javacodegeeks.com/2011/09/yes-virginia-scala-is-hard.html
http://www.javacodegeeks.com/2011/09/scala-use-is-less-good-than-java-use.html
Правда, проблема не в том что это "академический язык" ты вообще знаешь что это такое?, а в том что большинство программистов - дауны уровня пту (см. выше), в лучшем случае середнячки.
>>471134
Прав. Несколько раз подавлял желание добавить scalaz в проект. Пока доволен тем, что никто не пишет императивную дрысню и в планах есть курс по advanced scala & fp.
Аноним 01/05/15 Птн 13:19:37 #240 №471610 
>>471549
Так и знал, что тебе будет нерпиятно.
Аноним 01/05/15 Птн 13:54:45 #241 №471625 
>>471593
Что ты пишешь на скале?
"Опыт", "2 года" - это слишком общие слова.
Что именно?
Работаешь ли ты ин-хаус или в софтверной компании?
В каком городе/стране?
В общих чертах, деанон не нужен.

Также, правильно ли правильно ли я понял, что ты - тот самый жжист, который запостил пост про функторы (>>469244)?


Аноним 01/05/15 Птн 13:59:20 #242 №471630 
>>471625
Пост про моноиды, кончно же, просто забыл уже.
Аноним 01/05/15 Птн 14:05:27 #243 №471631 
>>471625
У Андрюши вроде сейчас другой прикол, думаю это не он.
Аноним 01/05/15 Птн 14:07:06 #244 №471632 
>>471593
Двачую этого, но scalaz таки импортнул не сдержался.
Аноним 01/05/15 Птн 14:13:54 #245 №471635 
Почитал ваш срач по диагонали насчет Скала.
За десять лет так и не выяснили как правильно на нём писать - охуенный язык. Спасибо Мартину.
sageАноним 01/05/15 Птн 15:57:26 #246 №471679 
14304850467410.jpg
>>471635
>как правильно на нём писать
Не писать на нем
Аноним 01/05/15 Птн 16:02:12 #247 №471680 
>>471635
Бро, спасибо, ты буквально в двух словах выразил всю ту гамму чувств, которую я по этому поводу испытываю, лол.

>>471491 - кун.

Аноним 01/05/15 Птн 17:24:16 #248 №471701 
>>471625
Работаю в киевской компании. В общих чертах, пишем систему для обработки множества событий и генерации аналитики по ним. До этого еще всякие сервер-сайд штуки писал, не буду уточнять, т.к. круг скалистов небольшой, может деанон случится.
>правильно ли правильно ли я понял, что ты - тот самый жжист
Нет. Я подытожил ответы про имплиситы: >>470075.
Аноним 01/05/15 Птн 18:12:18 #249 №471715 
>>471679
Ну я так и делаю, кстати.

Скалисты, расскажите мне о полезных штуках в Скале, которые вы используете постоянно, но таких не в Джаве. Я не про общее удобство и не про то, что реализовано в сторонних библиотеках. Например, ООП в C++, которого нет в C, и которое в последнем без здоровенных костылей не замутить. Кейс-классы и паттерн матчинг, например.
Аноним 01/05/15 Птн 18:35:43 #250 №471731 
>>471610
> мам ну скажи ему что это он мартышка!
Аноним 01/05/15 Птн 18:58:02 #251 №471743 
>>471731
Это ты мартышка.
Мама того анона
Аноним 01/05/15 Птн 19:42:49 #252 №471765 
>>471715
типы алиасы
Аноним 01/05/15 Птн 21:27:13 #253 №471793 
>>471715
лямбды (до java 8), система типов, миксины
Аноним 01/05/15 Птн 21:36:23 #254 №471799 
>>471715
Паттерн матчинг раскрывается полностью только когда научишься писать кастомные экстракторы (unapply, unapplySeq).
С помощью них можно даже последовательность байтов разобрать на параметры одной строкой. Я так недавно socks-сервер написал.
Аноним 01/05/15 Птн 21:59:05 #255 №471807 
>>471765
Как-то не впечатлило, но пойдет.
>>471793
Лямбды и до восьмерки реализовывались малой кровью.
Не понял что ты имеешь ввиду под системой типов.
Миксины - ок.
>>471799
>научишься писать
На курсы-то ходить не надо чтоб научиться?
Аноним 01/05/15 Птн 22:13:49 #256 №471818 
>>471807
> На курсы-то ходить не надо чтоб научиться?
Суть не в том чтобы научиться писать, а в том чтобы научиться применять. Человеку который до этого писал только на императивных языках, обычно очень сложно понять, где использовать все эти функциональные фичи, т.к. он уже привык делать всё императивно, у него сам образ мышления императивен. Это усугубляется тем, что скала без проблем позволяет писать говнокод джява-стайл, и не приучает сама к хорошему стилю.
Аноним 01/05/15 Птн 22:43:21 #257 №471833 
Поясните вообще в чём суть скалы в продакшене? Вижу вакансию вот на джуниора под скалу, но зачем? Смысл? Это же аутсорсерам заказывают такие проекты, смысл использовать такой язык? Порог вхождения высокий, я так смотрю на него и мне даже кресты в несколько раз проще кажутся, компилятор вон с багами, фич конечно полно. Но ведь вы понимаете что вы пишете на под компьютеры в которых возможно только императивное программирование? Ваш код так или иначе транслируется в императивный. Так зачем сопротивляться и писать на таких языках? Пишите на джаве, на крестах, всё-равно через 2 десятка лет и скала и все языки ныне существующие устареют и станут юзлесс.
Аноним 01/05/15 Птн 22:52:14 #258 №471838 
>>471833
> Порог вхождения высокий, я так смотрю на него и мне даже кресты в несколько раз проще кажутся, компилятор вон с багами, фич конечно полно.
Неправда, скала очень простой язык, по сравнению с крестами и джявой с её спрингами и гибернейтами.
> Но ведь вы понимаете что вы пишете на под компьютеры в которых возможно только императивное программирование? Ваш код так или иначе транслируется в императивный. Так зачем сопротивляться и писать на таких языках? Пишите на джаве, на крестах, всё-равно через 2 десятка лет и скала и все языки ныне существующие устареют и станут юзлесс.
То что ты ешь так или иначе транслируется в говно. Так зачем сопротивляться и есть человеческую еду? Жрите сразу говно за обе щеки.
Аноним 01/05/15 Птн 23:28:08 #259 №471859 
>>471838
Кстати про простоту скалы он без сарказма сказал. Многие вещи унифицированы и сделаны проще. Например выпилен специальный синтаксис массивов.
Аноним 01/05/15 Птн 23:29:45 #260 №471862 
>>471833
В твиттере, линкедине, нетфликсе тебе пояснят по хардкору.
Аноним 02/05/15 Суб 00:10:29 #261 №471910 
>>471859
>Например выпилен специальный синтаксис массивов.
Туда же можно добавить AnyVal|AnyRef вместо постоянных оговорок про элементарные типы. В 8-ой Яве пришлось делать несколько отдельных стримов для элементарных типов, в Скале все и так будет нормально приводится к элементарным типам.
Аноним 02/05/15 Суб 06:40:29 #262 №471998 
>>471910
а можешь раскидать по хардкору, как народ пишет эти ваши веб-приложения на скале? на java понятно - берешь спринг, сверху хибернейт, какой-нибудь шаблонизатор и вуаля!

со скалой это наверное какой-нибудь play framework или там scalatra (или вообще spray если у тебя там spa), а что народ использует для доступа к базе, как разруливает проблемы с секьюрити и вот это вот все?
Аноним 02/05/15 Суб 08:36:49 #263 №472012 
>>471799
Вбрось кусок кода.
Аноним 02/05/15 Суб 10:29:08 #264 №472030 
>>471807
Type inference, abstract types, existential types, path dependend types, type variance, ну и немного не в тему но и и имплиситы (context bound, view bound).
Аноним 02/05/15 Суб 19:47:25 #265 №472318 
>>472012
Я не он, но вот:
http://www.scala-lang.org/old/node/112
http://danielwestheide.com/blog/2012/11/21/the-neophytes-guide-to-scala-part-1-extractors.html
Аноним 03/05/15 Вск 03:03:15 #266 №472505 
>>471998
> для доступа к базе
Slick же
Аноним 03/05/15 Вск 03:09:55 #267 №472506 
>>472012
https://github.com/Karasiq/proxyutils/blob/master/src/main/scala/com/karasiq/parsers/socks/SocksClient.scala
Аноним 03/05/15 Вск 08:05:48 #268 №472567 
>>471998
Play2(там и сервер и шаблонизатор и Аллах), slick для базоебли в функшионал-стайл, дальше по вкусу. Для секурности либы тоже есть. Опять же никто не мешает впердолить что нибудь джавовое.
Аноним 03/05/15 Вск 08:12:44 #269 №472570 
>>471833
Есть мнение что скалка просто инструмент дающий больше возможностей, но при этом более сложный. Ты же яму можешь и лопатой выкопать, а можешь сделать быстро экскаватором. Но им надо уметь управлять. А джуниор скалы просто для снижения bus-фактора. Врагу не пожелаешь потерять хорошего разработчика и потом пытаться выучить скале спрингомакакена.
Аноним 03/05/15 Вск 10:15:25 #270 №472582 
>>472506
Не понял зачем toBytes везде PartialFunction.
Аноним 03/05/15 Вск 15:59:07 #271 №472703 
>>472506
>case v @ SocksVersion.SocksV4 ⇒ // SOCKS4

Вот так было бы более идеоматично:
case SocksVersion.SocksV4(v) => ...
Аноним 03/05/15 Вск 18:30:02 #272 №472784 
>>472703
Но это константа же, а не экстрактор
Аноним 03/05/15 Вск 22:06:12 #273 №472891 
>>472784
А сделать её экстрактором тебе религия запрещает?
Аноним 03/05/15 Вск 22:35:47 #274 №472905 
>>472891
Плюс, вместо
case SocksVersion(SocksVersion.SocksV4) :: ...
можно было бы
case SocksVersion.SocksV4(v) :: ...
и потом (v, command, ...)

Да и SocksVersion можно было бы при таком подходе трейтом сделать, наверное.

В итоге всё стало бы несколько больше похожим на скалу. А в нынешнем виде - это, скорее, си.
Во всяком случае, там куча сишных идиом.
Аноним 04/05/15 Пнд 00:34:05 #275 №472983 
14306888457860.jpg
>>470469
>его только-только начали доводить до возможности нормального промышленного использования
Скалу "только-только" начали подпирать костылями, чтобы она подходила хоть для какого-то использования. Достаточно взглянуть на её библиотеку коллекций, чтобы понять, насколько там всё плохо. При этом создатели Скалы находятся в очень неудобном положении вися между массивом стульев. С одной стороны, как в Джаве сделать нельзя, потому что работать с иммутабельными коллекциями без фильтров, мапов и тому подобным крайне неудобно. С другой, реализовать нормальные полиморфные функциии там тоже затруднительно (не в последнюю очередь из-за сабтайпинга). И наконец, отсутсвие ленивости, которое превращает списки и итераторы в принципиально разные вещи, и отсутсвие чистоты, которое делает фьюжн невозможным. Плюс заявка на индустриальный язык для серьёзного бизнеса, а в этом сообществе с большим подозрением относятся к сложно контролируемым оптимизациям вроде неявного фьюжена либо неявного форсирования ленивости (даже если это возможно). Как результат, появлятся всякие уродцы, вроде TraversableLike, TraversableOnce, GenTraversableLike, GenericTraversableTemplate, Iterable, IterableView, IterableViewLike, Iterator, GenIterable, SeqView, SeqViewLike, Seq, SeqLike, AbstractSeq, LinearSeq, LinearSeqOptimized, HasNewBuilder, CanBuildFrom, Patched, Prepended, Reversed, Zipped, ZippedAll, Sliced, Transormed с дополнительными параметрами типов, имплицитами, и прочей хуйнёй-молофьёй. Всё это можно освоить, но это ебанный пиздец по сложности ни с какими функторами-монадами не сопостовимый. Т.е. чтобы эффективно использовать банальную библиотеку коллекций в Скале, надо быть нихуёвым икспертом в области этой самой библиотеки.

Я думаю, половина местных скалаикспертов соснёт, если я попрошу написать эффективную полиморфную функцию над коллекциями. Потому что там слишком дохуя степеней свободы в выборе подходящих интерфейсов, маневрировании между общностью и эффективностью, выборе эффективного низкоуровневого доступа через билдер против более "функциональной" но менее эффективной реализациии через готовые функции, и просто в понимании тонкости сортов этого говна. В итоге, когда люди решают реальную задачу, они просто используют конкретный List, даже без полиморфизма по типу элемента, у них нет времени задрачивать скала-коллекции, им надо, чтобы работало. И вот тут происходит весьма интересная хуйня. Дело в том, что в Хаскеле тупо ебашить на листах и комбинировать готовые комбинаторы - это весьма правильно и идиоматично. Подразумевается, что комбинаторы заинлайнятся, промежуточные структуры дефорестнутся, что надо - зафорсится. В Хаскеле лист - тащем-то обычный ADT, ничем не отличающийся от остальных таких же. Т.е. человек, который тупо пишет на Хаскеле, как бы по дефолту прав и пишет правильный код. В нём большая часть библиотек так написана - тупое объявление базиса и дальше комбинирование базисных функций (подразумевается, что компилятор должен их оптимизировать, причем на это можно положиться, потому что в условиях отсутвия сайдэффектов правила перезаписи весьма тривиальны и доступны для понимания). В случае Скалы это не совсем так. Человек, который тупо использует List где ни попадя - не совсем прав. Потому что List в Скале - это весьма специализированная структура данных, оптимизированная для вполне определенных действий. Правильно в Скале писать именно так, как это сделано в её библиотеке коллекций. Срезать углы в Скале - неправильно. Поэтому человек, который тупо пишет на Скале, как бы по дефолту быдлокодит. А небыдлокодить на ней, как я уже писал, довольно сложно, в итоге большая часть кода, тупо написанная на этом "промышленном" языке, по умолчанию будет быдлокодом, в то время, код, написанный аналогично на Хаскеле - будет вполне идиоматичным.
Аноним 04/05/15 Пнд 01:04:05 #276 №472996 
14306906450130.jpg
>>472983
Какая хорошая экспертиза. Я бы ещё добавил, что для идеального языка достаточно удобных литералов, переменных, циклов, массивов, хешей, контекстов (ооп или тайпклассо-трейто-имплиситы для состояния, try-catch для исключений, nullity-as-falsum для short-circuiting), ну и подможества континуаций в виде yield/yield-from, в которое все интересные монады вкладываются удобнее чем в сами монады. То есть, кофе/ноджс или петон.
Аноним 04/05/15 Пнд 01:05:08 #277 №472998 
>>472983
Всё так.
Даже добавить нечего.
Аноним 04/05/15 Пнд 07:22:22 #278 №473082 
>>472891
А зачем, Маня, если это сравнение уже извлеченной константы?
Аноним 04/05/15 Пнд 07:24:21 #279 №473083 
>>472905
А SocksVersion это не трейт?
Аноним 04/05/15 Пнд 07:28:00 #280 №473084 
>>472983
хуита,
в скале говно только колекции, потому что их писали студенты-дауны.
Аноним 04/05/15 Пнд 08:30:15 #281 №473097 
>>472983
Как то ты сделал меня грустить. Только я думал что из жабомакакуса превращаюсь в функционалогосподина и ты так меня в говно мокнул. Скажи няша, а когда надо использовать лист а когда что то другое?
Аноним 04/05/15 Пнд 13:20:30 #282 №473202 
>>473097
Лучше использовать Vector, если не добавляешь много элементов в конец/начало, или не разбираешь рекурсивно через head :: tail
мимо
Аноним 04/05/15 Пнд 13:34:25 #283 №473212 
>>473202
> или не разбираешь рекурсивно через head :: tail
Срезы в скалку не завезли?
Аноним 04/05/15 Пнд 13:57:50 #284 №473216 
>>473212
Давай пример "срезов"
Аноним 04/05/15 Пнд 14:00:33 #285 №473220 
>>473084
Не только. Например, любой язык с иерархическими неймспейсами в любой их форме - говно, потому что способствует генерации безумной сложности на ровном месте. Одна библиотека - один ёбаный импорт - и заебись! Вот как живёт элита. Но это только один из секретов успеха. Общая парадигма такова: сложность можно побороть только простотой.
Аноним 04/05/15 Пнд 14:06:13 #286 №473223 
>>473220
> один ёбаный импорт - и
... область видимости засрана 9000 ненужными классами
Аноним 04/05/15 Пнд 14:12:16 #287 №473227 
>>473223
Ну хорошо, надо уточнить, что конечно же, должна быть возможность указать имена, импортируемые из либы "import Yoba, qux from liba", возможность переименовывания "import Yoba as Foo from liba", квалифицированного импорта "import gtk as GTK @ new GTK.YobaWidget".
Аноним 04/05/15 Пнд 14:20:24 #288 №473230 
>>473227
Так и сейчас так, import liba.Yoba
К тому же достаточно просто использовать йобу, и IDE автоматом найдёт и импортнет её.
Аноним 04/05/15 Пнд 14:27:46 #289 №473234 
>>473230
Сейчас так только в питоне и ноджс/ecmascript6. В хаскеле, сишарпе, жабе, скале, одна ссаная библиотека может распихивать свой свэг по нескольким десяткам различных неймспейсов в духе "com.petooshara.sosihui.ui.widgets", "com.petooshara.sosihui.ui.widgets.util", "com.petooshara.sosihui.business.model", "com.petooshara.sosihui.business.util" и так далее. В скале это говно усугубляется тем, что где-то там могут быть спрятаны нужные имплиситы, причём необязательно в пекедж-обжекте пакета, а например, в объекте-модуле, лежащем внутри объекта-модуля, лежащего внутри пакидж-объекта. И это ещё примитив, можно гораздо глубже. И проблема уже в самих этих иерархиях, в том что их надо осознавать, мейнтейнить, сёрфать, всякие поиски затерянных имплиситов - это вообще пиздец, до этого можно не доходить, проблема была намного раньше.
Аноним 04/05/15 Пнд 14:31:42 #290 №473236 
>>473234
> одна ссаная библиотека может распихивать свой свэг по нескольким десяткам различных неймспейсов в духе
Ну это логично, что виджеты и бизнес-модели в разных пакетах, а не смешаны в одну кучу. Иначе бы просто размазывали это говно на десять библиотек.
> Сейчас так только в питоне и ноджс/ecmascript6.
Т.е. скриптозашквар и не нужно
Аноним 04/05/15 Пнд 14:39:21 #291 №473242 
>>473236
Нихуя бы не размазывали. Бизнес-моделей в библиотеках не бывает, а подмодули текущего проекта могут работать как локальные библиотеки в духе import * from "/models".
Аноним 04/05/15 Пнд 14:40:18 #292 №473243 
>>473234
> Сейчас так только в питоне и ноджс/ecmascript6
как так?
я вообще не понимаю, что за баттхерт? проблема найти нужный символ в библиотеке? да, я вижу, как с имплицитами это может превратиться в анальный цирк, но в языках без них нету твоей надуманной проблемы.
Аноним 04/05/15 Пнд 14:45:51 #293 №473246 
>>473243
Например, в джаве все решается десятикратным тыканьем Alt-Enter
Аноним 04/05/15 Пнд 14:47:05 #294 №473247 
>>473243
Да, это проблема. Просто многие уже к ней привыкли, и считают это нормой. С типами так было, с io/st/ref'ами в хаскеле так было, и с имплицитами так будет. Просто программисты влюбляются в бессмысленные материи, не имеющие никакого смысла и самоценности и делают ради делания, не ради результата. Именно потому среди программистов так много тяжелодушевнобольших людей. Где-то в глубине подсознания они чувствуют этот парадокс и он разрывает их на части. Здоровый же человек вообще не может любить программирование, потому что оно является неприятным, но иногда необходимым способом достижения по-настоящему желанной цели. Ценность имеет эта цель, не способ её достижения.
Аноним 04/05/15 Пнд 14:48:54 #295 №473248 
>>473247
хуйня
Аноним 04/05/15 Пнд 14:50:15 #296 №473249 
>>473236
>Т.е. скриптозашквар и не нужно
А - Аргумент
Аноним 04/05/15 Пнд 14:51:22 #297 №473250 
далее, большой проект на рутнопе 10^5 строк, большой на джаве 10^6, судя по бенчмаркгейму питон выразительнее в три раза, значит джава майнтабельнее в 3 раза.
Аноним 04/05/15 Пнд 14:52:15 #298 №473251 
>>473247
> Просто программисты влюбляются в бессмысленные материи,
Б - бессмысленные материи)))
Аноним 04/05/15 Пнд 14:53:56 #299 №473252 
>>473246
Да, где-то решается. Только вот видишь, сначала придумали вредную хуйню, потом придумывали способ как её побороть. И сейчас это даже не везде есть, а лишь в каком-нибудь эклипсе да жидее, может ещё и подглючивает иногда. И там люди работают на фуллтайме, пилят все эти синтаксические анализаторы и пакетные, которые позволят запилить автоматическое вычисление нужного импорта. Это смешно и грустно.
Аноним 04/05/15 Пнд 15:37:21 #300 №473269 
>>473216
http://en.wikipedia.org/wiki/Array_slicing
Аноним 04/05/15 Пнд 15:40:45 #301 №473272 
>>473269
А, ясно, я думал это что-то из хачкиля, а оказывается ты обычный дебил.
Аноним 04/05/15 Пнд 15:48:44 #302 №473281 
>>473272
> я думал это что-то из хачкиля
Зависимые типы не из хаскеля, но всё-таки вам не завезут ещё лет десять, можешь быть спокоен.
Аноним 04/05/15 Пнд 15:58:38 #303 №473290 
>>473281
И какое у них практическое применение?
Аноним 04/05/15 Пнд 16:11:47 #304 №473298 
>>473290
Доказательство корректности программы или по крайней мере каких-либо её частей. Ну и к тому же дополнительная выразительность для системы типов.
Вот, возьми: https://vimeo.com/117221082
Аноним 04/05/15 Пнд 17:37:55 #305 №473352 
>>473202
Миморазбирающийся, а может ещё скажешь почему, в чем там подъебка и когда все таки стоит юзать тот же лист?
Аноним 04/05/15 Пнд 21:20:35 #306 №473463 
>>473352
Потому что лист это связанный список, а вектор массив. Поэтому вектор эффективнее для всего, кроме того что я написал. А вообще пиздуй читать документацию.
Аноним 04/05/15 Пнд 23:12:45 #307 №473575 
>>473082
>>473083
Да ты, оказывается, просто дурачок.
Не стоило тратить на тебя время.
Аноним 04/05/15 Пнд 23:20:42 #308 №473587 
>>473575
> предлагает извлекать из case object его же
> называет кого-то дурачком
Типичный /зк/-дебил
Аноним 05/05/15 Втр 00:12:04 #309 №473633 
>>473220
опять хуита, сьеби уже со своей экспертизой
Аноним 05/05/15 Втр 03:57:18 #310 №473712 
>>473587
Да ты даже ещё тупее, чем я думал.

Самое смешное в этой истории то, что выше ты пафосно рассказываешь об экстракторах, при этом не понимая, что это, и зачем это нужно.
И пишешь сишный код на скале в итоге.
Типичный жрец карго-культа, лол.
Аноним 05/05/15 Втр 09:37:02 #311 №473749 
>>473712
В каком месте он сишный?
Аноним 05/05/15 Втр 11:52:49 #312 №473792 
>>472983
>Я думаю, половина местных скалаикспертов соснёт, если я попрошу написать эффективную полиморфную функцию над коллекциями.
90% процентов разработчиков, приходивших к нам на собеседование соснули, когда их попросить написать на их языке программирования решение уравнение Ax^2 + Bx + C = 0
> В Хаскеле лист - тащем-то обычный ADT, ничем не отличающийся от остальных таких же. Т.е. человек, который тупо пишет на Хаскеле, по дефолту выдает ...
stack overflow на любом более менее крупном массиве данных. Большинство учебников Хаскеля для обработки данных содержат рекурсивные описания алгоритмов, которые в лучшем случае транслируются в обычной цикл (при этом выглядят как говно из-за хвостовой рекурсии), в худшем падают на паре миллионов элементов. И это при том, что fold сейчас не то что в Хаскеле, он в Яве есть.
Аноним 05/05/15 Втр 12:01:46 #313 №473794 
>>473792
> соснули, когда их попросить написать на их языке программирования решение уравнение Ax^2 + Bx + C = 0
Но ведь это МАТЕМАТИКА нужно знать формулу которая в жизни ненужна и соотвественно которую большинство людей забудет через год. Давать такие задачи на собеседовании тупо, если только вы не математика ищите.
Аноним 05/05/15 Втр 12:11:45 #314 №473796 
>>473794
Формула для уравнения второй степени при этом говорилась по требованию, там сыпались на проверке А=/=0, и отдельном случае для уравнения первой и нулевой степени. Проверка входных значений - это, блядь, основа программирования.
Аноним 05/05/15 Втр 12:25:22 #315 №473799 
>>473794
для второй степени нужно уметь выводить
это восьмой класс блядь
Аноним 05/05/15 Втр 12:29:29 #316 №473801 
>>473792
Решать надо было в общем случае для любого нелинейного уравнения? То есть все численные методы нужно помнить наизусть?
Аноним 05/05/15 Втр 12:38:21 #317 №473806 
>>473801
> Решать надо было в общем случае для любого нелинейного уравнения?
Нет. Но даже если и так, то не нужно помнить
> все
достаточно одного, дихотомий, например, но ты и его не помнишь
Аноним 05/05/15 Втр 13:31:41 #318 №473824 
>>473799
>>473806
И что? Я вот даже таблицу умножения уже забыл, ибо всё это нинужно в реальной жизни.
Аноним 05/05/15 Втр 13:56:06 #319 №473844 
>>473824
>>473824
ахаха ты меня затралел
Аноним 05/05/15 Втр 16:40:31 #320 №473951 
>>473084
Не поэтому. Если начинать разберать по частям всё там написанное, выяснится, что там большинство в общем-то по делу. Просто сделать лучше на Скале как-то не получается даже у недаунов.
>>473097
>Только я думал что из жабомакакуса превращаюсь в функционалогосподина
Не со Скалой. Скала - это мультипарадигма, там своя особая атмосфера. Освоить ФП на Скале ИМХО тяжлее, чем на Хаскеле. Потому что многие вещи там реализуются посредством весьма хитрых трюков, помимо самой вещи надо еще понимать суть трюка. Скала - это инструмент для тех, кто уже знает ФП и ООП, а не для тех, кто собрался учить хотя на курсере есть курсы ФП на Скале, сам я их не смотрел, попробуй, может быть всё не так страшно, как я здесь написал
>Скажи няша, а когда надо использовать лист а когда что то другое?
В каждом случае лучше что-то свое. Проблема не в том, что сложно выбрать структуру для конкретного случая, а в том, что сложно написать полиморфную функцию. Да и вообще следовало бы начать с того, что в Скале в принципе сложно написать функцию. Там функции над коллекциями - на самом деле методы, поэтому в проектах появляется всякое говро вроде RichSeq, RichArray, RichMap и т.п. (примеры реальные, наследование иногда необходимо, чтобы добраться до какого-нибудь защищенного метода, вроде newBuilder)
>>473220
>Одна библиотека - один ёбаный импорт - и заебись!
То что ты называешь библиотеками вообще не является элементами языка. В языке есть понятие модуля. Один модуль - один импорт, почти везде так. Библиотека (как compilation/distribution unit) может включать в себя несколько модулей, из которых тебе может понадобиться один. Иерархические пространства имён - говно. Но вот в Джаве, например, они не иерархические. Наличие точечки в имени там никак не влияет на результат импортирования. В C# они иерархические, да.
>>473792
>stack overflow на любом более менее крупном массиве данных.
Давай проверим. Допустим у нас есть список интов, нужно прибавить к крайнему элементу единичку.
Хаскель: https://ideone.com/OHnLHn
Скала: https://ideone.com/5p7yyA - ой, а как же так, всего 4к элементов, а мы уже всё?
Аноним 05/05/15 Втр 18:36:17 #321 №473992 
14308401772410.png
>>473951
https://ideone.com/69NTTd

Алсо, проиграл с пикрелетед.
Аноним 05/05/15 Втр 19:35:58 #322 №474026 
>>473951
@tailrec напиши
Аноним 05/05/15 Втр 20:20:50 #323 №474041 
>>473951
>а как же так, всего 4к элементов, а мы уже всё?
Ты бы ещё на ноль, блядь, поделил бы там где-нибудь.

Лол, сначала выдал неебическую экспертизу (спижженую откуда-то, естественно), а потом спалился на такой хуйне.
Фу таким быть.


Аноним 05/05/15 Втр 20:36:23 #324 №474051 
>>474026
Тогда вообще не сконпелируется, потому что функия не хвосторекурсивная.
>>473992
Что ты хочешь этим сказать? Что функцию можно к хвосторекурсивному привести? Я это и так знаю. Задача была показать человеку, знакомому с Хаскелем видимо из книжек, что его предубеждения о том, что самый тупой и прямолинейный код над ADT будет обязательно падать со stack overflow не верны. Скорее наоборот всё с полпинка запустится. Причем еще выдаст приличную производительность (0.17s 4596KB против 4.01s 322240KB, да).

Разумеется, в обоих языках можно сделоть правильно и это требует хорошего понимания принципов работы, разумеется, результаты оптимизаций будут примерно одинаковы и по времени и по памяти и по строкам кода (например: http://benchmarksgame.alioth.debian.org/u64/compare.php?lang=ghc&lang2=scala), но ручная оптимизация - это не то, чем бы хотелось заниматься большую часть времени. И вот в Хаскеле самый тупой вариант скорее самый правильный, а в Скале - скорее нет.

Примечательно, что это свойство Хаскеля не совсем хорошо для серьёзных продукционных систем. Потому что достигается оно использованием ленивости (в Хаскеле нет call-стека, SO там вылетает на паттерн-матчинге при раскрытии санков, что может быть сложнее для понимания и отладки) и хитрожопого фьюжена. Но на продукционной системе нет требования "посчитать за 0.17s", там и 4 секунды норм (просто железо подбирается под задачу). Зато есть требование "недопустить 30% просадки производительности из-за того, что после докручивания новой фичи внезапно слетела какая-то автоматическая оптимизация и никто не знает, что именно". Это одна из причин, по которой для продакшена выбирают более тупые (в плане оптимизаций и модели исполнения), но более предсказуемые языки.
>>474041
>спижженую откуда-то, естественно
Ха-ха!
>а потом спалился на такой хуйне
На какой хуйне? Просто написал код, а он не работает. Печалька же.
Аноним 05/05/15 Втр 21:06:08 #325 №474070 
>>473951
https://ideone.com/8VEkQn

Ленивая скала, ай-ай.
Аноним 05/05/15 Втр 21:31:59 #326 №474088 
>>474070
Вот!

Кстати, параметр list там лучше передавать by name.
Только вчера об этом читал:
http://blog.dmitryleskov.com/programming/scala/stream-hygiene-i-avoiding-memory-leaks/
Аноним 05/05/15 Втр 21:36:19 #327 №474095 
>>474051
Для скалы нужно пускануть JVM поэтому тут расход памяти такой конский, тут глупо сравнивать с рантаймом хачкиля.
Аноним 05/05/15 Втр 22:17:58 #328 №474130 
>>473951
>>stack overflow на любом более менее крупном массиве данных.
>Давай проверим. Допустим у нас есть список интов, нужно прибавить к крайнему элементу единичку.

Конкретно в твоем случае оптимизация сработала, дальше что?
https://ideone.com/rgf94x
https://ideone.com/vHZdqI
Аноним 05/05/15 Втр 22:27:53 #329 №474141 
>>474088
Быстрофикс.
Насчёт by name - в самой рекурсивной функции это не нужно. Это надо, если есть ещё внешняя функция, в которую передаётся стрим, и внутри которой выполняется рекурсивная функция.
Аноним 05/05/15 Втр 23:27:34 #330 №474181 
>>474070
>Ленивая скала, ай-ай.
Ай-ай. Я уже писал об этом здесь >>472983 Слишком дохуя сложностей вникать во все тонкости и вибирать между List, Stream, Seq, Iterable и TraversableOnce, который может быть isTraversableAgain. Давай уж ты напишешь функцию по всем канонам Скалы, чтобы если я передаю ей List, то и получал бы на выходе List, а не обрезанный Stream.
>>474095
Что есть такое очень нужное в рантайме JVM, чего нет в рантайме Хаскеля? Может быть охуенный мусоросборник, гринтреды и STM? Ой, нет, та же хуйня по сути.
>>474130
>Конкретно в твоем случае оптимизация сработала
Конкретно в моём случае сработала WHNF, которая тащем-то детерминирована и не зависит от оптимизаций конпелтора.
> дальше что?
Дальше, например, укажем типы: https://ideone.com/58bSgu В Скалке же ты их указал, почему в Хаскеле не указываешь?
Аноним 05/05/15 Втр 23:57:12 #331 №474202 
>>474130
>дальше что?
Дальше - на майдане скакать теперь: https://ideone.com/5tWbnt
Аноним 05/05/15 Втр 23:58:15 #332 №474204 
>>474202
маладец. на лурке нашол?
Аноним 06/05/15 Срд 06:35:37 #333 №474299 
https://vandreev.wordpress.com/2007/06/18/feistel-ciphers-and-des-in-haskell/
feistel :: (Bits a) => (a -> b -> a) -- Mixing function
-> (a -> k -> b) -- Round function
-> a -- Block to be encrypted
-> [k] -- Key schedule
-> (a, a) -- (L, R)
подобным каррингом в скале себя проще в жопу выебать/
Аноним 06/05/15 Срд 08:21:32 #334 №474303 
>>474051
>Если начинать разберать по частям всё там написанное, выяснится, что там большинство в общем-то по делу. Просто сделать лучше на Скале как-то не получается даже у недаунов.
студент из лазаны закукарекал чтоли?

Аноним 06/05/15 Срд 08:34:03 #335 №474304 
>>472983
пизже студентов из лозанны только студенты из sbt
Аноним 06/05/15 Срд 10:57:00 #336 №474325 
14308990205110.jpg
>>474051
> Примечательно, что это свойство Хаскеля не совсем хорошо для серьёзных продукционных систем
Ой, бля, да хаскель банально неудобен, зачем в такие дебри залазить?
sageАноним 06/05/15 Срд 12:08:28 #337 №474338 
>>474181
>В Скалке же ты их указал, почему в Хаскеле не указываешь?
Но ведь речь шла о поведении по умолчанию, вывод типов в рекурсивных функциях, теорема Хиндли-Милнера, вот это все. А оказывается все также нужно указывать тип. Печалька.
И да, главная проблема Хаскеля - >>474325
Аноним 06/05/15 Срд 12:36:49 #338 №474347 
>>474325
Я пишу о реальном опыте, а не о своей диванной икспертизе, диванных искпертов тут и так полно. Так вот, причин отказа по причине "Хаскель не удобный" я не встречал. Более того, у нас часто на Скалу жалуются, мол линзы там неудобные, не композятся нихрена и многое другое. А вот отказ по причине недоверия к ленивой семантике и автоматической оптимизации был. Люди в прод-системах очень серьезно относятся к производительности. Причем не к абсолютной производительности, а к гарантиям что она внезапно не изменится.
>>474338
>Но ведь речь шла о поведении по умолчанию
А там отличное поведение по-умолчанию. Просто по-умолчанию Хаскель использует Integer, а не Int32. Integer немного медленнее, зато не переполняется, что по-умолчанию лучше для большинства задач, если тебе не нужно заниматься крохоборством. Например, твоя ёба на fib47 уже пизданётся https://ideone.com/p2huYW А Хаскель - нет https://ideone.com/99qcxQ
>И да, главная проблема Хаскеля - >>474325
Главная проблема /зк, что тут сидят диванные иксперты.
Аноним 06/05/15 Срд 13:19:49 #339 №474366 
>>474347
https://ideone.com/czpJPY
Аноним 06/05/15 Срд 14:58:33 #340 №474420 
>>474366
Поздравляю, вы осилили подсчёт числа Фибоначчи на Скале. Это прорыв.
Аноним 06/05/15 Срд 17:01:03 #341 №474470 
>>474347
>Я пишу о реальном опыте, а не о своей диванной икспертизе
А выглядит как диванная экспертиза, а учитывая, что тема посвящена Scala, а не Haskell, то еще и как довольно тупой троллинг.
Если хочешь, чтобы тебя считали человеком, то приводи примеры проектов, которые ты реализовал, с примерами кода. Примеры чисел фибоначи и проходов списков никого не ебут, они на чистом Си и выглядят нормально и работают быстро.
Покажи работу с асинхронными запросами, построение интерфейсов, ORM с нормальную, как раз работа для системы типов Haskell.
Аноним 06/05/15 Срд 17:12:55 #342 №474477 
>>474470
Пусть полный аналог Akka покажет.
Аноним 06/05/15 Срд 17:19:24 #343 №474479 
>>474470
>А выглядит как диванная экспертиза
Если это для тебя так выглядит, просто не читай. Кому надо - почитают.
>Если хочешь, чтобы тебя считали человеком, то приводи примеры проектов, которые ты реализовал
Какая-то идиотская просьба. Во-первых что значит "я реализовал"? Есть куча проектов, над которыми я работал в составе команды. В одиночку разве что Золотце Симту реализовал, но это хобби-проект, а не продукционная система со всеми вытекающими. Во-вторых - тема треда Скала, а не "хвастаюсь своими проектами", вот я и пишу о языке и сравниваю с ближайшими аналогами.
>Покажи работу с асинхронными запросами, построение интерфейсов, ORM с нормальную
С какими запросам? Каких интерфейсов?
Аноним 06/05/15 Срд 17:25:30 #344 №474483 
>>474477
Полный аналог всему идиотизму?
Аноним 06/05/15 Срд 17:37:13 #345 №474488 
>>474483
>пок-пок нинужна нинужна!!!
Что, простите?
Аноним 06/05/15 Срд 17:49:51 #346 №474497 
>>474488
Тебе полный аналог всему идиотизму, или разобрать по задачам и показать, как делать правильно?
Аноним 06/05/15 Срд 17:59:05 #347 №474498 
>>474497
Давай, сделай правильно распределённый кластер http://doc.akka.io/docs/akka/snapshot/scala/cluster-usage.html
Аноним 06/05/15 Срд 18:08:37 #348 №474503 
>>474498
Мне кажется ты пришел размахивать каким-то дерьмом, про которое вчера прочитал в интернете и начал им размахивать как красным флагом. Какой именно вопрос тебя интересует в реализации распределенных кластеров?
Аноним 06/05/15 Срд 18:13:17 #349 №474505 
>>474503
Так как ты реализуешь это без акторов, Маня?
Аноним 06/05/15 Срд 18:32:35 #350 №474512 
14309263556350.jpg
> пишу о реальном опыте
> линзы
О да.
Аноним 06/05/15 Срд 18:50:35 #351 №474519 
>>474505
Акторы не имеют прямого отношения к "распределенным кластерам" (что бы ты не имел ввиду под этим), и в интернете ты можешь нагуглить достаточно реализаций их без Акки. Чтобы убедиться в истинности мной сказанного достаточно посмотреть на дату первого релиза Акки (2009), а кластеры существовали до этого.

Теперь конкретно по акторам. Как я уже писал, я вижу смысл здесь обсуждать только свой реальный опыт, потому что нагуглить какую-нибудь хуйню и радостно ей размахивать может любой школьник, я тоже гуглить, мне это не интересно. Что касается реального опыта: у нас есть один сервис, использующий акторы из Акки как примитив синхронизации/элемент декомпозиции (да, первая проблема акторов в том, что они пытаются быть чем-то большим, чем примитив синхронизации, примерно как объект в ООП) и netty + finagle для реализации протокола коммуникации. По этой системе у меня следующие выводы:

netty - поделка для домашек и хелло-ворлдов. Для серьёзных систем противопоказана ввиду фундаментальных ошибок дизайна. Может быть хороша, чтобы экспериментировать с новыми протоколами, возможно для этого изначально и создавалась.
finagle - ничего против не имею, но и особых профитов от неё не заметил. Сейчас у нас связка netty+finagle выпиливается, в новой finagle скорее всего не будет. Ну можно было бы заюзать просто я не понимаю зачем и не настаиваю. Остальным тоже как-то пофиг.
Акторы в том виде, в котором они реализованы в Акке и actor model как подход к проектированию - фейл. Собственно поэтому я и говорю, что Акка - говно. Может там какой-нибудь очень классный коммуникационный протокол, может быть там есть какие-то классные тулзы для мониторинга нод, алгоритмы fault-detection и т.п. (мы не строили на Акке распределенных кластеров поэтому я не эксперт в этом вопросе). Но внутри Акки - акторы, т.е. дерьмо. Поэтому я и писал, что это идиотизм, по крайней мере на core level. Что там накидано сверху - я не знаю.
Аноним 06/05/15 Срд 18:58:37 #352 №474525 
14309279173240.png
>>474512
Ну у нас есть один любитель. Вообще проверил, использует мало, видимо потому что не удобно. Собственно он на них и жаловался. Я сам как-то обхожусь без линз в Скале. В Хаскеле использую. Тоже по-началу долго старался обходиться без них, но потом появились задачи, которые с линзами идеально декомпозируются, я не выдержал и переписал на линзах.
Аноним 06/05/15 Срд 19:16:50 #353 №474534 
14309290108670.gif
>>474525
Хороши ли линзы где-либо, кроме задач по пересборке персистентных иммутабельных структур данных с изменившимся где-то в глубине значением? (у меня таких задач никогда не возникало, но могу представить, что раз в 10 лет что-то такое понадобится, если менять работу каждые полгода) Есть ли какие-то случаи линзо-геттеров, которые не было бы удобнее написать элементарными средствами js/петона/java/етц типа точечки, квадратных скобочек, функций/методов?
Аноним 06/05/15 Срд 19:35:21 #354 №474540 
>>474519
>а кластеры существовали до этого
И что теперь, это значит, что они были написаны лучше, чем могли бы быть с аккой?

>Акторы в том виде, в котором они реализованы в Акке и actor model как подход к проектированию - фейл кукареку я так сказал
Ясно
Аноним 06/05/15 Срд 20:07:38 #355 №474549 
>>474534
>Хороши ли линзы где-либо, кроме задач по пересборке персистентных иммутабельных структур данных с изменившимся где-то в глубине значением?
Собственно для этого они и нужны. Еще хороши для декомпозиции, когда меняющий что-то алгоритм лежит отдельно, а структуры данных - отдельно. Тогда в алгоритм передаётся набор линз, чтобы он мог что-то менять. В ООП для этих целей можно было бы добавить к структуре данных интерфейс, реализующий геттеры и сеттеры, или использовать паттерн адаптер.

Проблему свойств в ООП можно иллюстрировать следующим кодом: window.getPosition().setX(10). Что должна возвращать getPosition()? Если копию Position, то такой код работать не будет. Если ссылку, то:
Position position = window.getPosition();
position.setX(10);
работать будет, а:
Position position = window.getPosition();
window.setPosition(new Position());
position.setX(10);
уже нет. Т.е. объект position в некоторых случаях является аксессором, а в некоторых - самостоятельным объектом, статически чем он является не определить. Линза всегда является аксессором. Кроме того, существуют более слабые, чем линзы типы. Например, траверсалы, которые отбирают 0 значений, или одно, или несколько значений. Операция получения значения для них не валидна. Зато валидна, например, операция обновления всех значений, удовлетворяющих критерию.
Аноним 06/05/15 Срд 20:11:45 #356 №474551 
>>474540
>И что теперь, это значит, что они были написаны лучше, чем могли бы быть с аккой?
Нет, это значит, что кластеры могут быть написаны без Акки. И еще это не значит, что с Аккой можно написать что-то лучше, чем без неё.
>Акторы в том виде, в котором они реализованы в Акке и actor model как подход к проектированию - фейл кукареку я так сказал
Кукарекаешь здесь только ты, я могу подробно описать какие проблемы существуют в акторах, т.к. у меня продакшн-система, сделанная на акторах, а ты тут исходишь на говно и сыплешь оскорблениями. Вангую в тебе фанбоя и мамкиного тролля, а посему иди нахуй.
Аноним 06/05/15 Срд 20:22:10 #357 №474555 
>>474551
>Нет, это значит, что кластеры могут быть написаны без Акки.
Давай, рассказывай, как ты будешь писать кластер на хачкеле, кукаретик.
Аноним 06/05/15 Срд 20:24:12 #358 №474557 
>>474555
Ты хамишь и задаёшь дебильные вопросы. Почему я должен тебе что-то рассказывать?
Аноним 06/05/15 Срд 20:33:32 #359 №474565 
14309336125560.jpg
>>474549
Идейно, конечно, расписал, но проблема такая есть только в головах. На практике вне жабосишарпов всем похуй на все эти геттеры-сеттеры и в большинстве случаев есть просто поля, которые можно прочитать и записать. Если вдруг надо сделать какое-то составное вычисление, пишут сбоку функцию getYoba (или calcYoba) или метод в классе. В редком случае когда требуется составная логика не только гета, но и сета - тогда будет действительно пара getYoba, setYoba, а так как документацию надо читать в любом случае и везде (даже в скале, даже в хаскеле), это вообще ничего не меняет, ведь ты и так будешь смотреть в доке как этим пользоваться.
> добавить к структуре данных интерфейс
Номинативные статикопроблемки. В динамике вообще похуй, всё полиморфное ровно настолько, насколько оно полиморфное физически по своей природе.
Аноним 06/05/15 Срд 20:42:11 #360 №474568 
>>474557
>кукареку
Ясно, слился
Аноним 06/05/15 Срд 20:49:31 #361 №474571 
>>474565
Я и не говорил, что линзы решают какую-то мировую проблему. Я их долго и не использовал именно потому, что считаю проблему малозначимой, а полноценная их реализация напичкана матаном по самое небалуй. Но в итоге я всё равно пришел к выводу, что с линзами удобнее.

Что касается аргументов "проблема есть только в головах" и "всё равно читать документацию", советую дополнить их "всё дело в кривых руках", "всё равно корректность программы доказать невозможно", "нормальный программист может писать на чём угодно" и поехать к Амишам программировать на Коболе.
>В динамике вообще похуй, всё полиморфное ровно настолько, насколько оно полиморфное физически по своей природе.
Я не встречал ни одного серьёзного проекта, написанного на динамике.
Аноним 06/05/15 Срд 20:50:22 #362 №474572 
>>474568
Я не понял, в школах весенние каникулы что ли?
Аноним 06/05/15 Срд 21:02:58 #363 №474584 
>>474571
Спасибо, но кобол ещё более неудобный и избыточный чем хаскель и скала, хотя, конечно, они умудрились в этом обогнать большую часть мейнстримных языков.
> Я не встречал ни одного серьёзного проекта, написанного на динамике.
Ну ты серьёзно? Наоборот же, на жабках/сишарпах пишут только корпоративный аутсорсинг распил, к этой же тусовочке пытаются подмазать скалу и хаскель, потому что любят разработчиков, которые могут увлечься глубоким (и бессмысленным) инструментом и перестать обращать внимание на реальность. Весь реально полезный софт написан либо на байтоёбских языках, либо на динамике, либо вперемешку.
Аноним 06/05/15 Срд 21:04:46 #364 №474586 
>>474519
Акторы в akka изначально и задумывались как низкоуровневые примитивы синхронизации, просто из-за сходства с Active Object и обилию туторов (воркер <-> менеджер) мисюзается по полной.

На скала дейз 2014 (вроде) есть видео где авторы Акки, как раз сравнивают акторы с потоками и так далее.

В Akka-Stream например ты декларативно описываешь стримы, а потом "материализуешь" их в акторах, то есть обрабатывается это акторами, но сам ты об акторы на уровне апи не шкваришься.

По поводу класстеров в акке - стоит почитать раздел todo, очень много еще только в планах, на данный момент реализованы только базовые вещи, health, векторные часы, госсип.

Единственная интересная тема в Akka, это Persistance, позволяющая реализовать CQRS с евенторсингом на кластере. Но опять же кривовато и это мисюз акторов.

Общая императивность и антайпность делает использование акки довольно зашкварным делом.
Аноним 06/05/15 Срд 21:07:38 #365 №474588 
>>474519
Расскажи поподробнее про netty. Я так понимаю до недавнего времени особо выбора кроме netty под java/scala не было. Опять же play на netty.
Аноним 06/05/15 Срд 21:21:32 #366 №474596 
>>474584
>Ну ты серьёзно?
Я это говорю исходя из своего опыта. Типичная задача, которая возникает в достаточно сложном проекте - это понять, на что повлияют вносимые изменения. Статический анализ кода этому в некоторой степени помогает - можно хотя бы посмотреть, где используется твоя функция. Как это делать в динамике? Грепать по всему проекту функцию по имени? Динамика подходит либо для небольших тулзов, либо для чего-то вроде сайтов, генерирующих независимые друг от друга странички.
>на жабках/сишарпах пишут только корпоративный аутсорсинг распил
У тебя представления о корпоротивном софте на уровне какого-то школьника-тролля. Дохрена корпораций, которые неработоспособны без своего софта и у которых IT - чуть ли не основная статья расходов, а ты тут что-то про распилы, откаты.. /po/ обчитался что ли?
Аноним 06/05/15 Срд 21:25:16 #367 №474598 
>>474584
В манямирке весь тырпрайз на ноде и рельсах.
Аноним 06/05/15 Срд 21:35:45 #368 №474607 
>>474586
>Акторы в akka изначально и задумывались как низкоуровневые примитивы синхронизации
Как низкоуровневый примитив синхронизации им следовало бы ограничиться типизированным FIFO каналом, что собственно и есть в акторе от синхронизации. И это норм. Всё остальное - антипаттерны и шарлатанство. При этом я не отрицаю, что именно для распределенных кластеров метапарадигм в Акке могут быть какие-то годные тулзы, которых нет у остальных. Тогда, возможно, её имеет смысл использовать ради этих тулзов, но не ради акторов конечно же.
Аноним 06/05/15 Срд 21:50:24 #369 №474612 
>>474607
Дак акторы дуальны CSP. http://en.wikipedia.org/wiki/Actor_model_and_process_calculi

В акке экспериментально выпустили типизированные акторы http://doc.akka.io/docs/akka/snapshot/scala/typed.html может быть будут не такие зашкварные.
Аноним 06/05/15 Срд 22:03:36 #370 №474620 
>>474596
Реально полезные проекты - это сайты, десктопный и системный софт. У больших и сложных сайтов типа вконтакта, фейсбука, реддита, гитхаба, битбукета, бекенды пишут на всяких динамических языках. Десктопный софт написан по большей части на байтоёбских, но сперва туда начали потихоньку протаскивать скрипты для расширяемости, а сейчас уже не стесняются вообще целиком на динамике писать (я вот сириусли пользуюсь повседневно tagspaces, которая на ноде через node-webkit). В аутсорсинге обычно занимаются сайтами, но бекенд пишут на какой-то лютой хуйне чтоб денег побольше выбить на разработку и чтоб разработчики были помозгопромываемей. Те сложные проекты о которых ты говоришь - они вписываются в эти категории или нет? Они хоть как-то обозримо воздействуют на эту реальность или всё внутренняя хуйня в стол? Можно ли попросить примеров, хотя бы просто о чём этот софт? Я сколько в аутсорсинге чялился - почти везде хуйня в стол была. Типа: внутрення ирп-системка вместо одинэс или сяп или десятков других при этом чисто для себя, внутренняя консолька на жс чтоб вместо скл зделать велосипед поверх, внутренняя кококорасшияемая веб-ирп в которую можно вставлять расширения на жс (тоже чисто для внутреннего использования лучше было взять даже какое-то опенсорсное готовое решение), реальные форекс приложухи на жс для мобилок (но этот проект свернули когда люди попытались этим пользоваться а оно пиздец глючило в андроиде), и далее опять какие-то ёбаные внутренние админки для никого и ничего на жабе. Не знаю, может это просто мне так повезло, но складывается впечатление, что 99% аутсорсинга просто пишут в стол бессмысленную хуету на голимых технологиях для шизодопланктонин.
Аноним 06/05/15 Срд 22:21:10 #371 №474629 
>>474620
Ты втираешь нам какую-то ДИЧЬ.
Аноним 06/05/15 Срд 22:25:45 #372 №474631 
14309403456590.jpg
>>474629
Просто мне хватило любознательности задумываться, а что мы вообще делаем. Суть корпоративных разработчиков на пикрилейтед. Они обмазываются там своими архитектурами на языках максимально в это немогущих и фундаментальными проблемами бытия вроде насколько гибче будет вносить изменения если написать геттеры и сеттеры вместо полей, и оно им всё так свято и интересно, что понять что они ничего по сути не делают, просто времени не хватает.
Аноним 06/05/15 Срд 22:40:50 #373 №474636 
>>474519
> я тоже гуглить, мне это не интересно.
я тоже ебать, ее рука
Аноним 06/05/15 Срд 22:47:27 #374 №474643 
>>474620
> сайты
пишутся на статико говне
Аноним 06/05/15 Срд 22:48:05 #375 №474646 
>>474636
рука сестры?
Аноним 06/05/15 Срд 22:51:56 #376 №474650 
>>474646
ее рук
Аноним 06/05/15 Срд 22:52:52 #377 №474651 
>>474650
брат sbt скачал?
Аноним 06/05/15 Срд 22:56:52 #378 №474655 
>>474651
решил чем то занять руки пока пол мавен репозитория скачивается.
Аноним 06/05/15 Срд 23:01:17 #379 №474657 
>>474655
руки сестры)
Аноним 06/05/15 Срд 23:13:22 #380 №474659 
>>474620
Двачую этого >>474629 Мне как-то даже осуждать это не хочется, потому что это относится не к программированию, а к твоему мировосприятию. Я, например, считаю, что реально полезные продукты - это айфоны и велосипеды. А трубопрокатные заводы строят, чтобы побольше денег выбить на строительство и чтобы инженеров было чем занять. Потому что трубы - это хуйня в стол, я за свою жизнь ни одной трубы не купил и ни один из моих знакомых тоже. И еще автомобилестроение не нужно. Потому что велосипеды экологичнее и полезнее для здоровья. Просто москвичи этого не понимают нихрена. Вот если бы они все пересели с автомобилей на велосипеды, на дорогу тратили бы те же 3 часа, но здоровее были бы. Сейчас я начну тут всем эту хуйню втирать, и пускай меня переубеждают, доводы мне всякие приводят.
Аноним 06/05/15 Срд 23:29:58 #381 №474664 
>>474659
Так ведь с этого надо начинать. А с таким подходом будет как в науке - тонны макулатуры, дроч ради дроча. При том, что область чисто инфраструктурная и должна обслуживать реальность, а не наоборот. С трубами пример неправильный, потому что их надобность очевидна, в корпоративной параше совсем не так - там реально хуйня в стол. Вот примеров чего полезного релевантного ты так и не привёл.
Аноним 06/05/15 Срд 23:32:59 #382 №474667 
С автомобилями пример тоже неправильный. Очевидно, что так как запасы нефти на планете ограничены, нужно переходить на электромобили. Одними велосипедами не обойтись, потому что они медленее, намного менее удобны, на них затруднительно ездить в дождь и зимой, и не всем подходят по здоровью.
sageАноним 06/05/15 Срд 23:35:57 #383 №474668 
Ахахаха, местные скалаебы сломались как только им сказали, что 99% софта - ебаное говно и пишутся на таком же ебаном говне такими же ебаными говнюками, но только у этих петухов реальные задачи и сложные проекты, только как они называются и что они делают почему-то они не знают. Это, видать, слишком неведомая хуйня, недоступная простым смертным.

мимокрок
Аноним 06/05/15 Срд 23:49:37 #384 №474676 
>>474668
эталон шизофазии
Аноним 06/05/15 Срд 23:50:09 #385 №474678 
>>474668
>ебаное говно и пишутся на таком же ебаном говне такими же ебаными говнюками
Если софтом пользуются - он не говно, смирись и не визжи.
Аноним 07/05/15 Чтв 00:10:20 #386 №474688 
>>474659
Так ведь с этого надо начинать. А с таким подходом будет как в науке - тонны макулатуры, дроч ради дроча. При том, что область чисто инфраструктурная и должна обслуживать реальность, а не наоборот. С трубами пример неправильный, потому что их надобность очевидна, в корпоративной параше совсем не так - там реально хуйня в стол. Вот примеров чего полезного релевантного ты так и не привёл. С автомобилями пример тоже неправильный. Очевидно, что так как запасы нефти на планете ограничены, нужно переходить на электромобили. Одними велосипедами не обойтись, потому что они медленее, намного менее удобны, на них затруднительно ездить в дождь и зимой, и не всем подходят по здоровью.
Аноним 07/05/15 Чтв 00:31:48 #387 №474699 
>>474664
>>474667
>>474688
Андрюшу подглючивает
Аноним 07/05/15 Чтв 01:15:15 #388 №474710 
>>474664
>Так ведь с этого надо начинать.
Нет, это путь в никуда и разговор ни о чем. Доказывать что-либо друг другу можно только при совпадении аксиоматических базисов. А у нас с тобой либо явный конфлитк аксиом - твоя аксиома в том, что корпоративное говно не нужно, а моя, в том, что нужно; либо неявный - ты говоришь, что трубы очевидно нужны (т.е. у тебя есть некий набор лемм, из которого необходимость труб является тривиальным следствием), а у меня такого набора нет, поэтому для меня это нихуя не очевидно.

Особенность человеского сознания в том, что человек превращает теоремы в аксиомы. Это логично - часто запоминанине полных импликаций гораздо более затратно, чем запоминание готовых фактов. Ты можешь проверить это на примере бурбакистов - они свели аксиоматику к минимуму. Но людям нихуя не удобно оперировать понятием единицы, состоящей из 2 409 875 496 393 137 472 149 767 527 877 436 912 979 508 338 752 092 897 символов, проще добавить теорем, создать теорию категорий, теорию графов, евклидову геометрию это всё.

Что мы можем сделать дальше? Раскручивать наши "синтетические" аксиомы до теорем, пытаясь найти общий базис. Но его нет. Я не думаю, что ты насколько туп, что смог сделать на каком-то тривиальном шаге нелогичные выводы. И я не на столько туп. Тем не менее наши конечные выводы противоречивы. А это значит, что в поисках общего базиса нам рано или поздно придётся дойти до предела. Предел - это единственный вопрос: в чем смысл человеческого бытия? Я думаю, что тебе очевидно, что ответа на этот вопрос нет. Попытка ответа на этот вопрос равнозначна попытке построения теории в условиях полного отсутсвия аксиом. Теория без аксиом невозможна. Собственно ппоэтому люди придумали Бога и Священное Писание, как некую терминальную аксиому, сведение которой к набору теорем или споры о писании приравниваются к ереси, т.е. запрещены. Но Бог у каждого совой, более того, поняние Бога внутренне противоричиво. Ты хочешь поговорить о Боге? Или ты хочешь съебать в другой тред, предоставив нам возможность обсуждать, как в Скале и Хаскеле решаются проблемы написания ненужного корпоративного софта?
Аноним 07/05/15 Чтв 02:17:44 #389 №474723 
Бог - есть абсолют, всеобемлющее понятие, включающее в себя все возможные аксиомы и правила вывода. В этом суть всемогущества Бога. Бог может всё, любое утверждение в аксиоматике Бога выводимо. А это означает её противоречивость. Это также означает бесконечность аксиоматического базиса Бога. Человеческий разум конечен (следует хотя бы из конечности нейронов и синаптических связей) Т.е. любая человеская религия - это лишь проекция бесконечного божественного замысла, выраженная в конечном наборе откровений. Что мы получим при попытке проецирования бесконечного множества на конечное? Некую сурьекцию, причем число возможных сурьекций бесконечно. Даже если принять число возможных религий счетным (что, очевидно, противоречит наблюдаемым фактам о конечности энергии Вселенной, но пусть будет счетным: больше - не меньше) речь пойдёт о проекции алеф-инфинума на алеф-нуль. Это означает, что любое Божественное Откровение истинно. И в то же время, что Откровений может быть сколь угодно много. И в то же время, что любая паста на дваче может являться и суть является Божественным Откровением. Но что же есть одно откровение по отношению к другим? Оно есть ересь, αἵρεσις. Ересь - означает "разночтение". Разночтение Божественного Замысла. Ересь неизбежна, ибо человек не спобен понять Божественного Замысла полностью, ересь отностиельна, ибо любой человек, понявший часть Бога посчитае еретиком иного, понявшего иную часть Его. Послание к Коринфянам первое гласит: "Ибо, во-первых, слышу, что, когда вы собираетесь в церковь, между вами бывают разделения, чему отчасти и верю. Ибо надлежит быть и разномыслиям между вами, дабы открылись между вами искусные." Значит ли это, что Церковь должна бороться с ересью? Нет, ни в коем случае, ересь лишь раскрывает наиболее искусных, и их трактовка Замысла Бога и будет новой Церковью.
Аноним 07/05/15 Чтв 02:22:21 #390 №474724 
>>474710
>Доказывать что-либо друг другу можно только при совпадении аксиоматических базисов

Ты, анон, сейчас выразил мысль, которая вертелась около моей черепной коробки уже полгода как. Спасибо тебе, Анон.
Аноним 07/05/15 Чтв 09:06:46 #391 №474772 
>>474710
Хорошо, не хотим о отсутствии полезных проектов на статике (кроме байтоёбства) - ладно, можно остановиться на присутствии большого количества полезных проектов на динамике. Только ты скажешь, что все эти сайты, игры, десктоп, системщина - это всё детский сад, а реально сложные проекты - это только внутренняя корпоративная хуйня под NDA. И уж там-то действительно всё надо писать на скале/хаскеле/жабе/сишарп а не на ноде/петоне/раби/пхп, иначе будет немайнтабельно и вообще надо будет всю папку с проектом грепать в поиске символов.
Аноним 07/05/15 Чтв 10:57:29 #392 №474814 
>>474772
>можно остановиться на присутствии большого количества полезных проектов на динамике
На Коболе и C++ (мне кажется ты его ошибочно относишь к байтоёбству, хотя он часто успользуется как джава) написано в 100 раз больше кода и полезных проектов что на динамике, а на PHP в 10 раз больше кода чем на питоне. О чем это говорит? Да только о том что при должном старании можно из говна сделать конфекту говенную.
>>474584
>на жабках/сишарпах пишут только корпоративный аутсорсинг распил
Idea, eclipse, hadoop, spark, lucene, android, twitter да иди нахуй короче, гугли сам.
>>474565
>прочитать и записать
>записать
Отказано.
>>474607
>Всё остальное - антипаттерны и шарлатанство
Например?
>>474519
>Акторы в том виде, в котором они реализованы в Акке и actor model как подход к проектированию - фейл.
Из-за их динамической натуре чтоле?
>>472983
> чтобы эффективно использовать банальную библиотеку коллекций в Скале, надо быть нихуёвым икспертом в области этой самой библиотеки.
Только если тебе нужно её расширить. Обычно это не требуется.
-
А вообще вы зря на хаскелиста накинулись, что динамико-питух, что скала-господа. Он по делу все пишет.
Кстати, если уж тут развели срач Scala vs Haskell, позволю себе процитировать свой старый пост, может кто-то не видел ссылку
>>441433
>http://tonymorris.github.io/blog/posts/what-kind-of-things-are-easy-in-haskell-and-hard-in-scala-and-vice-versa/index.html
Аноним 07/05/15 Чтв 10:59:57 #393 №474816 
Не понимаю чего вы сюда бога и всю эту поебень притащили. Нужно было всего-то привести пример полезного внутреннего корпоративного продукта. Но, как и полагается представителю корпорации – вместо того чтобы честно признаться "да, мы тут занимаемся хуйней", представитель корпорации начинает нести отвлеченные беседы о боге, ереси, истине и абсолюте.

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

Все как с богом, действительно.
Аноним 07/05/15 Чтв 12:54:57 #394 №474878 
>>474816
> пример полезного внутреннего корпоративного продукта
хуйня через которую я отпуск беру
Аноним 07/05/15 Чтв 13:21:37 #395 №474894 
>>474814
До хаскелиста доебался какой то писатель фибонач. Все скала-господа и так понимают что сравнивать ерзац язык под JVM с хаскелем глупо. Скала удобнее явы + потешный ФП каргокульт, но до хаскеля в плане ФП ей далеко.

Но с другой стороны можно отмахиваться аргументом "но это же та же ява только на ололо односрочниках" можно применять скалу в продакшене. Убедить же кого-то не понимающего профит ФП использовать хаскель в продакшене довольно проблематично (невозможно).
Аноним 07/05/15 Чтв 13:25:57 #396 №474900 
>>474878
Сколько абстрактных фабрик фасолин и человекочасов было потрачено? Какие технологии использованы?
Аноним 07/05/15 Чтв 13:26:56 #397 №474901 
>>474900
да мне похуй
вопрос ведь о пользе был, а не о затратах
Аноним 07/05/15 Чтв 13:27:07 #398 №474902 
>>474894
Хачкель говно без задач просто
Аноним 07/05/15 Чтв 13:33:09 #399 №474903 
>>474901
Вопрос о пользе включал в себя контекст. То есть, если ты можешь просто отправить письмо эйчару и у тебя будет отпуск (и такая система не будет доставлять неудобств тебе и эйчару), но погромисты для этого полгода пишут абстрактные заводы – это не польза, это убыток для всех, кроме аутистов-погромистов, которым вообще похуй что писать; и их начальника, который на этом бюджеты компании пилит.
Аноним 07/05/15 Чтв 13:49:31 #400 №474907 
>>474903
> То есть, если ты можешь просто отправить письмо эйчару и он выдумает причину, чтобы послать тебя нахуй, то с программой просто берёшь и получаешь отпуск
Аноним 07/05/15 Чтв 14:04:39 #401 №474916 
>>474907
Ты, видимо, не понял сути того что я написал.
Аноним 07/05/15 Чтв 14:06:17 #402 №474918 
>>474916
Да, ты написал "кукареку нинужно"
Аноним 08/05/15 Птн 00:17:55 #403 №475252 
>>473951
И с чего тогда лучше всего начинать знакомиться с ФП? На ум ничего не приходит, кроме sicp и scheme
Аноним 08/05/15 Птн 00:21:18 #404 №475253 
>>475252
схема
хаскель
shen (Есть книжка Functional programming in Qi)
да можно и со скалы по курсу одерского, но там уровень слабенький
Аноним 08/05/15 Птн 11:39:03 #405 №475372 
>>475252
http://learnyouahaskell.com/
Аноним 08/05/15 Птн 13:32:48 #406 №475418 
>>475372
сразу видно книжку эту не читал
Аноним 08/05/15 Птн 13:59:48 #407 №475424 
>>475418
Как ты пришел к такому выводу? Ты считаешь что она не подходит как вступление в ФП?
Аноним 08/05/15 Птн 14:02:56 #408 №475425 
>>475418
По мне дак learnyouhaskell + Real World Haskell достаточно быстрый старт в практическое ФП.

Конечно если ты хочешь годами долбиться в теорию категорий и лямбда счисление, то она тебе не пойдет.
Аноним 15/05/15 Птн 06:02:44 #409 №478639 
Котаны, проходил мимо и прочитал дофига всякой критики и видяшек про говняность языка. Так ли все плохо? Не замечал такой критики того же шарпа, вот джавы да.
мимо полный нуфаг
Аноним 15/05/15 Птн 11:09:55 #410 №478686 
>>478639
Шарп просто не сравнивают с теми языками, с которыми сравнивают скалу.
Аноним 15/05/15 Птн 15:19:52 #411 №478776 
>>475252
SICP, TAPL и PFDS. В качестве языка - scala. Это perl6, только на стероидах и можно использовать в продакшене.
Аноним 15/05/15 Птн 18:40:36 #412 №478867 
>>478686
Почему? Если сравнивать, то в чем он проигрывает?
Аноним 15/05/15 Птн 21:04:57 #413 №478951 
>>478867
1. это функциональный язык без ленивости
2. а тайп инференц просто пиздец, что приводит к невъебической сложности, см карринг и тд
3. от предыдущих двух пунктов у скалы случились пизданутейшие коллекции, см батхертнутого(дохуя ошибок, пизданутейшие зависимости)
но какой бы скала плохой не была, она все равно лучше ебаной джавы и шарпа
Аноним 15/05/15 Птн 22:15:07 #414 №478977 
>>478951
Тайп инференц пизданутый из-за присутсвия сабтайпинга.

А по поводу коллекций, такое ощущение что батхертнутый коллекции особо не использовал. Потому что все что он написал - детали имлементации, которые обычного кодера ебать не должны.
[1] Аноним 17/05/15 Вск 10:59:06 #415 №479630 
Посоветуйте какой-нибудь опен сорс проект для разбора полетов на практическом уровне. Прочел скала ин экшн, хочу теперь глянуть реалити.
Аноним 17/05/15 Вск 12:25:58 #416 №479653 
>>479630
Akka
[1] Аноним 17/05/15 Вск 13:26:20 #417 №479681 
14318583802680.jpg
>>479653
Не сильно ли круто сразу исходники акки? Или это поможет лучше понять как с ними работать?
Аноним 18/05/15 Пнд 00:55:12 #418 №480001 
>>479681
Можешь ещё библиотеки отсюда поковырять https://github.com/lauris/awesome-scala
Аноним 19/05/15 Втр 02:36:54 #419 №480607 
>>394310
Как так scala утонула? Нужно поднять!
Аноним 19/05/15 Втр 11:30:18 #420 №480701 
>>480607
в ньюфаг треде полно ребят, которые спрашивают как сделать сортировку на крестах, ты знаешь, что нужно делать.
Аноним 19/05/15 Втр 19:31:56 #421 №480895 
Аноны, мне тут предлагают на scala-у свалить - стоит оно того? Достигну ли просветления или это просто java с сахарком?
Аноним 19/05/15 Втр 19:42:45 #422 №480902 
>>480895
Конечно стоит
Аноним 19/05/15 Втр 20:18:21 #423 №480922 
>>480902
Меня терзают сомнения - неужели смена языка может сильно сказаться на производительности/эффективности ?
Аноним 19/05/15 Втр 20:19:12 #424 №480923 
>>480922
Да
Аноним 19/05/15 Втр 20:27:34 #425 №480932 
Народ, а есть же какие нибудь проекты, которые пытаются сделать компилятор для scala-ы не таким тормознутым? Киньте линков плз
Аноним 19/05/15 Втр 20:59:51 #426 №480964 
>>480922
Естественно. Если бы это было не так все бы остановились на С и не было бы даже твой лоботомированный java.
Аноним 19/05/15 Втр 21:01:38 #427 №480965 
>>480932
Собирай проекты на sbt, инкрементная компейляция же.

Ну и на том же sbt можно компилировать на кластере (хотя в прочем не знаю впилен ли этот функционал в стабильные ветки).
Аноним 19/05/15 Втр 23:05:39 #428 №481097 
>>480895
>Достигну ли просветления или это просто java с сахарком?
Это не просто джава с сахарком. Хотя её можноно не нужно и так использовать.
>неужели смена языка может сильно сказаться на производительности
На производительности написания кода - да. Могу точно сказать, что
1) я практически не борюсь с языком при написании кода, по сравнению с С#, на котором я писал до раньше,
2) больший процент багов связан с неправильным/неполным пониманием требований, а не с некорректным кодом,
3) намного легче менять код, тоесть фиксить баги и прикручивать фичи, рефакторить и т.д.
4) легче читать код, он более dense не знаю как это на русском сказать, лаконичный немного не то, намного меньше синтаксического и смыслового мусора, не столько из-за сахара, а чтоле из-за способа мышления, к которому подталкивает язык,
5) очень мало изменяемого состояния, что тоже помогает и в ловле багов и в понимании чужого кода,
6) дело вкуса конечно, но я просто получаю удовольствие, когда использую скалу, если бы я писал на джаве, я бы в рот уже всю эту работу ебал, что очевидно имело бы негативное вляние на производительность.
>предлагают на scala-у свалить - стоит оно того
Стоит, не попробовав все равно не узнаешь. Так и будешь скетпически задаваться вопросом про джаву с сахарком. Если не понравится, чего исключать нельзя, сменить работы на джаву не проблема, возможно даже в той же компании куда ты пойдешь работать.
Аноним 19/05/15 Втр 23:39:01 #429 №481127 
>>481097
Спасибо анон, придал уверенности. Просто вроде и книжки по scala-е почитал и тестоваое задание сделал, а все таки до ощущения перестройки рабочего процесса не дошел.
Аноним 19/05/15 Втр 23:40:45 #430 №481128 
>>481127
Т.е ощущения вида - ну да, круто, но выстрелит ли это все вместе при написании боевого кода не понятно.
Аноним 19/05/15 Втр 23:54:45 #431 №481135 
>>481097
В чем пишешь?
ИДЕ ведь намного хуже, чем студия для си-шарпа
Аноним 19/05/15 Втр 23:55:19 #432 №481138 
>>481097
> dense
плотный, так и говори
Аноним 20/05/15 Срд 08:40:56 #433 №481273 
>>481135
IntelliJ IDEA же
Аноним 20/05/15 Срд 13:31:08 #434 №481371 
>>481273
Как будто есть другие IDE для jvm-based языков...
sageАноним 20/05/15 Срд 15:30:48 #435 №481467 
>>481371
Мне постоянно говорят, что Scala IDE лучше чем плугин для идеи. Сам я в идее пишу на джаве, а на скале писал в ней полхеллоуворлда. А Scala IDE пиздец
Вообще склоняюсь к просторедактору.
Аноним 20/05/15 Срд 21:49:03 #436 №481847 
>>481128
>выстрелит ли это все вместе при написании боевого кода не понятно.
Важно в какую команду попадешь, я об этом выше писал. Может и не выстрелить, в смысле не будет сильно отличаться от джавы, но тебе-то что с этого?
>>481138
Компактный - самое подходящее слово наверное.
>>481135
Пишу в IDEA.
>ИДЕ ведь намного хуже, чем студия для си-шарпа
IDEA для джавы примерно как студия + решарпер. Поддержка скалы похуже, но я лично от недостатка фич не страдаю. Разве что иногда подсветка хромает и один раз, при использовании очень громоздких хитровыебаных типов, редактирование кода в некоторых файлах вешало идею намертво. Приходилось в текстовом редакторе эти файлы править, лол.
Что там со Scala IDE не знаю, два года наза она мне меньше понравилась чем IDEA, да и сам eclipse бесит.
Аноним 20/05/15 Срд 22:39:27 #437 №481874 
>>481467
>просторедактору
Это ты так о имаксе?
Аноним 20/05/15 Срд 23:10:05 #438 №481894 
>>481874
о виме
Аноним 20/05/15 Срд 23:48:43 #439 №481916 
>>481467
Плагин заебись, батя грит хорошо сделали
Аноним 21/05/15 Чтв 00:13:37 #440 №481930 
>>481894
Не дерзи!
sageАноним 21/05/15 Чтв 00:48:36 #441 №481942 
14321585169810.jpg
>>481916
Indexing...
Аноним 21/05/15 Чтв 09:58:13 #442 №482035 
14321914931050.png
>>481942
SSD + i7
Аноним 21/05/15 Чтв 17:26:05 #443 №482270 
Можно ли как нибудь (может с помощью макросов) автоматически добавлять в case классы методы, например я хочу что бы в каждом case классе появился метод storeToDB()?
Аноним 21/05/15 Чтв 21:14:07 #444 №482404 
>>482270
Сделай имплисит-класс для Serializable
Аноним 21/05/15 Чтв 21:50:55 #445 №482416 
AKKA не нужна http://proseand.co.nz/2015/05/17/akka-honeymoon/
Аноним 21/05/15 Чтв 23:01:25 #446 №482469 
>>482416
Автор очередной неосилятор просто.
Аноним 21/05/15 Чтв 23:20:18 #447 №482486 
>>482469
Ну почему, там есть здравая критика, например то что меняется состояние, и нет статической типизации.
Аноним 21/05/15 Чтв 23:39:07 #448 №482504 
>>482416
> I wish I just had a bunch of functions which return a Future composed together to build our application

Лол. Ему RxJava/Scala нужна была, а не akka
Аноним 22/05/15 Птн 10:43:00 #449 №482705 
>>482486
Акторы и нужны для инкапсуляции стейта. Если код внутри акторов превращается в спагетти значит херово провели декомпозицию либо абузят акторы для высокоурвневых задач.

Отличный пример использования акки - Akka Streams, стримы состоят из Stages, каждый стейдж материализуется в актор, но для потребитель API этого не видит.

Вообще в таких историях успеха можно спокойно заменять слова Actor на Thread. Если бы обосрались на голых тредах, скорее всего обосрутся и на акторах.
Аноним 22/05/15 Птн 12:09:52 #450 №482751 
>>482486
У акторов динамическая природа. Попытка прикрутить к ним типы знатно эту систему типов усложняет. Есть конкурентне модели на статической типизации, например join-calculus, но они на мой взгляд громоздкие и сложны в использовании, поэтому за пределы всяких экспериментальных языков и либ не выходят. Можешь попробовать ScalaJoins, мож понравится.
Аноним 22/05/15 Птн 13:46:51 #451 №482790 
Что такое линзы в скале (в самых общих чертах, для быдла)?
Аноним 22/05/15 Птн 19:16:38 #452 №482986 
>>482790
Геттеры и сеттеры
Аноним 22/05/15 Птн 22:18:32 #453 №483071 
http://pastebin.com/pb5jVRRc
Аноним 23/05/15 Суб 03:02:24 #454 №483172 
>>482790
Линзы нужны чтобы менять значения полей во вложенных иммутабельных структурах
Аноним 23/05/15 Суб 04:19:28 #455 №483176 
>>483172
Пример плз. Как понимаю должно быть что то вроде такого по функционалу:

case class Person(name: String, lastName: String)

val p1: Person = Person("Jon", "Smith")
val p2: Person = p1.set("name", "Suze")
p2 == Person("Suze", "Smith")

?

Аноним 23/05/15 Суб 08:55:13 #456 №483197 
>>483176
http://ruhaskell.org/posts/packages/2015/01/23/lenses-hello-world.html
http://ruhaskell.org/posts/packages/2015/01/28/lenses-real-world.html
Аноним 23/05/15 Суб 13:38:46 #457 №483305 
Кто-то недавно спрашивал про годные примеры использования экстракторов. В Play Framework можно найти много годных примеров:
https://www.playframework.com/documentation/2.4.x/ScalaTestingWithGuice
https://www.playframework.com/documentation/2.4.x/ScalaContentNegotiation
Аноним 23/05/15 Суб 13:39:36 #458 №483306 
>>483305
Первый линк неверный. Правильный линк
https://www.playframework.com/documentation/2.4.x/ScalaSirdRouter
Аноним 24/05/15 Вск 00:29:24 #459 №483694 
https://www.youtube.com/watch?v=Cc2QtbjUX60
Скалеры, как написать Аноним 24/05/15 Вск 18:31:01 #460 №484032 
let (|>) g f = f g

?
Аноним 24/05/15 Вск 19:26:57 #461 №484082 
>>484032
f(g)
в scalaz есть этот символ, но он неособо работоспособен, вот, например, какой-то дед реализовал его
Аноним 24/05/15 Вск 19:28:12 #462 №484085 
>>484082
блять, ебаная макак СЛОВО ИЗ СПАМ-ЛИСТА
хететепе://stevegilham.блогспот.ком/2009/01/pipe-operator-in-scala.html
Аноним 24/05/15 Вск 20:28:23 #463 №484131 
>>484082
Хм.
Я пару лет назад присматривался к скале.
И я написал пайп оператор, но помню, что пришлось тайп-сигнатуру нифига не интуитивно понятную расписать.

То, что написал этот Стив Гилам работать не будет
Аноним 25/05/15 Пнд 21:23:10 #464 №484644 
Подмогите, пожалуйста.
Как передать в
def fun[T](xs : java.util.List[T], comparer : (T, T) => Boolean)) ....
из джавы второй параметр? Лямбду мою не берёт.
Аноним 25/05/15 Пнд 23:00:09 #465 №484723 
>>484644
Попробуй заинстанциировать Function2
Аноним 25/05/15 Пнд 23:20:00 #466 №484730 
>>484723
Не получается конвертнуть boolean в scala.Boolean
Аноним 27/05/15 Срд 00:39:55 #467 №485510 
>>484644
import collection.JavaConversions._
— попробуй импортировать эту библиотеку
Аноним 31/05/15 Вск 15:14:54 #468 №488404 
14330744941920.jpg
Кто нить хотел бы совместно куклопроект пилить простенький? ради знакомства с языком или просто начальной практики. я кое-что пилю уровня джуниора, мне был бы кстати компаньон, ибо сложно самого себя пинать и заставлять что-то делать.
Аноним 31/05/15 Вск 15:25:07 #469 №488408 
>>488404
что ты делаешь?
Аноним 31/05/15 Вск 15:32:39 #470 №488417 
>>488408
небольшую говнину на playframework. сбор некоторой околоспортивной статистики с data mining в перспективе и кое чем еще.
Аноним 31/05/15 Вск 16:10:18 #471 №488434 
>>488417
ненавижу спорт, есть бэклог подробное объяснение?
Аноним 31/05/15 Вск 16:23:43 #472 №488442 
>>488434
мне было бы удобнее через чатик на вопросы ответить. вот асечка 695594342, скайпик quilted.jacket
Аноним 31/05/15 Вск 16:24:50 #473 №488444 
Аноним 10/06/15 Срд 16:08:13 #474 №494593 
https://github.com/flatlizard/blog/blob/master/app/views/newPost.scala.html
https://github.com/flatlizard/blog/blob/master/app/controllers/Application.scala
есть проект на 2.4(спасибо деду за победу и за депенденси инъекшн) и есть вот такая охуительная ошибка(см внизу), погуглил но нихуя не понял, там, где она возникала она была связанна с интернационализацией страницы,
вот например https://blog.sourcy.io/2015/05/27/porting-scala-play-2-3-application-with-slick-2-1-0-to-play-2-4-slick-3-0-0/ , но мне это толком нихуя не помогает, может подскажете что?

Error:(5, 19) Play 2 Compiler:
C:\Users\Pain\Play\activator-1.3.2-minimal\blog\app\views\newPost.scala.html:5: could not find implicit value for parameter messages: play.api.i18n.Messages
@inputDate(postForm("date"))
^

вьюха: [code lang='scala']
@import helper._
@(postForm: Form[Post])

@form(routes.Application.createPost) {
@inputDate(postForm("date"))
@textarea(postForm("title"))
@textarea(postForm("content"))
<button id="submit" type="submit" value="Submit" class="btn btn-primary">Submit</button>
}
[/code]

Аноним 11/06/15 Чтв 19:23:21 #475 №495496 
could not find implicit value for parameter messages: play.api.i18n.Messages
почему от меня требуют эту ебучую хуйню? пизда
Аноним 11/06/15 Чтв 20:19:47 #476 №495519 
>>495496
Ты в гугле искал текст ошибки или сразу сюда пришел?
Аноним 11/06/15 Чтв 23:27:43 #477 №495554 
>>495519
Искал, сука, спросил на стек оверфлоу, ничего толкового нету, на со какой-то тип из цюриха что-то подсказал, но это не помогает, уже пиздец как заебало. Глупо спрашивать здесь какие-то вопросы синтетического характера, когда все можно нагуглить оперируяю ключевыи словами, связывая их примитивным английским, но я ничего не нашел и застрял, а спросить нет у кого, я в отчаянии, поэтому и написал здесь.
Аноним 12/06/15 Птн 00:50:53 #478 №495603 
>>494593
http://stackoverflow.com/questions/9733082/i18n-error-controller-and-templates-uses-different-implicit-languages
Может локаль не та из заголовка запроса или переменной окружения берется?
Аноним 12/06/15 Птн 01:30:39 #479 №495620 
>>495603
Не знаю, я вообще не понимаю, нахуй она здесь нужна, у меня в конф по дефолту английский стоит и менять мне ничего не нужно.
https://github.com/flatlizard/blog/blob/master/app/views/newPost.scala.html
Аноним 12/06/15 Птн 11:40:34 #480 №495676 
@(postForm: Form[Post])(implicit messages: Messages)
Не пробовал?
Аноним 12/06/15 Птн 11:42:45 #481 №495677 
>>495676
Ну и соответсвенно в контроллер нужно применшать I18nSupport, в экшен объявить вида = Action { implicit request => ... }
Аноним 12/06/15 Птн 11:47:44 #482 №495680 
>>495677
Ну и I18nSupport потребует инъекцию messagesApi: MessagesApi в конструкторе контроллера.
Аноним 12/06/15 Птн 11:49:49 #483 №495682 
В 2.4 имплисит Lang заменили на Messages и соотвественно имплисит преобразования на RequestHeaders=>Messages. Это нужно чтобы узнать Accepts-Language входящего реквеста, скорее всего его требует какой нить стандартный темплейт хелпер который ты используешь.
Аноним 12/06/15 Птн 12:18:54 #484 №495693 
>>495620
https://www.playframework.com/documentation/2.4.x/api/scala/index.html#views.html.helper.inputDate$

apply метод требует имплисит messages: Messages как я и говорил.
Аноним 12/06/15 Птн 20:46:28 #485 №496012 
https://www.playframework.com/documentation/2.4.x/Migration24#I18n
спасибо всем, решил проблему следующим образом:
import play.api.i18n.Messages.Implicits._
import play.api.Play.current
Аноним 12/06/15 Птн 22:08:31 #486 №496050 
>>496012
Но так ты используешь global app (Play.current), который скоро будет депрекейтед. Более чистый вариант с инъекцией нужных зависимостей.
Аноним 12/06/15 Птн 22:40:50 #487 №496070 
>>496050
спасибо, почитал уже, изменил
comments powered by Disqus

Отзывы и предложения