М.Двач / Программирование

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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

18 Кб, 400x400

PLTBorat благославляет этот тред 11 Фев, 00:39 #649725 В конец треда | Веб

Предыдущий: >>=495156

Ответы>>650797>>654364>>716349>>728592>>747703

11 Фев, 00:58 #2 #649730

>>644772
>Чистота функций подразумевает передачу данных как бы по значению.
Чистота функций подразумевает, что результат функции зависит от её аргументов и ничего больше. Как там что передаётся - чистоте глубого ортогонально. "Явно через монадки" ты в Хаскелле хуй что заменеджишь, монадки лишь подразумевают упорядочивание сайд-эффектов, но не отмену чистоты. Есть вариант - либо заниматься байтоёбством, используя Foreign вместо нативных структур Хаскеля, либо писать на банальной прелюдии. По моему опыту ручное байтоёбство особых преимуществ не даёт в плане скорости, поэтому пиши всё максимально тупо для начала, а если уж появятся проблемы производительности, тогда их и решай вручную.
>>646867
Не надо декомпозировать в терминах теорката, декомпозируй функциями.

Ответы>>650810

11 Фев, 01:28 #3 #649736

>>495156 (OP)

12 Фев, 01:33 #4 #650797

>>649725 (OP)
Пиздарики. ГДЕ ШАПКУ ПРОЕБАЛИ, УРОДЫ?!

12 Фев, 01:52 #5 #650810

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

Ответы>>651924

12 Фев, 23:52 #6 #651924

>>650810
>Еще же у функции не должно быть сайдэффектов.
У функции не должно быть наблюдаемых сайдэффектов. Наблюдаемый - это как раз и означает, что нельзя определить функцию, результат которой зависит от какого-то внешнего контекста, кроме её параметров. У всех функций в Хаскелле есть сайдэффект - они процессор нагревают. Но наблюсти его Хаскель запрещает. Поэтому результат чистой функции будет тем же, вне зависимости от того, что ты до неё вызывал. Это и есть чистота.

Ответы>>718082

15 Фев, 00:46 #7 #654364

>>649725 (OP)
Вопрос про работу на Хаскеле

Ответы>>655512

15 Фев, 01:02 #8 #654379

Какой смысл учить енту вашу скакалку, если на ней 2 вакансии, и на тех уже требуется опыт коммерческой разработки?

Ответы>>654441>>654603>>655538

15 Фев, 01:51 #9 #654441

>>654379
Забугорный контракт, видимо.

Ответы>>654537

15 Фев, 02:37 #10 #654537

>>654441
Это реально существует или это легенды уровня "имиджборда на Idris"?

15 Фев, 03:14 #11 #654603

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

Ответы>>654783

15 Фев, 09:14 #12 #654783

>>654603
Для стартапов характерно отсутствие денег на чсв-хаскель-даунов и нормальное серверное железо, поэнтому, значится, энтот ваш хуячкель даже Goвну прососнёт в этой области.

Алсо, опознал тред только заглянув в прошлый. ОП там спился от безысходности чтоле?

Ответы>>654974

15 Фев, 15:17 #13 #654974

>>654783
Ты не находишь, что твой ответ про применимость хачкелля на мой ответ на ответ анона про применимость скалы выглядит несколько странно?
Ребе рекомендовал бы тебе проспаться.
С чего ты решил, что я предлагаю устраиваться на работу в стартап с хачкеллями? Там был юзкейс - у аутиста возникла гениальная идея, меняющая мир, и аутист попиздил воплощать её на скалке, польхуясь сверхбыстрыми фреймворками на акторной модели, программированием на типах, и использованием одного языка во всем стеке. Ребе еще раз рекомендует тебе проспаться.

15 Фев, 23:50 #14 #655512

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

Ответы>>657675

16 Фев, 00:20 #15 #655538

>>654379
Никакго. Если ты на той стадии, когда тебе надо "учить" язык программирования, ты просто еще не сформировался как программист. На Скалу берут не тех, кто "выучил Скалу", а тех, кто может решать задачи выбирая оптимальные инструменты (какие именно тебе дядя не скажет, это же не сопровождение легаси-говна в кровавом энтерпрайзе, где за тебя уже всё решили). Ну да, сегодня они пишут на Скале, скажем потому что под Spark удобнее писать на Скале. Но они так же пишут на R или на Питоне под Jupyter. А завтра какой-нибудь новый язык появится, более подходящий, и эти люди будут писать на нём, и меньше всего их будет волновать то, что они его "не знают".

Язык - это инструмент, как молоток. Изучать язык - это как изучать молоток. "Я выучил этот молоток и теперь буду всю жизнь забивать гвозди этим молотком." "Нам нужен специалист по Молоток 0.200кг слесарный фибергласовая ручка SPRING." "Опишите ваш опыт владения молотком 0.200кг слесарный фибергласовая ручка SPRING." "Перечислите паттерны забивания гвоздей, какими патернами забивания гвоздей вы владеете, мы забиваем гвоздь гвоздь строительный 4х120 мм сколько у вас лет опыта забивания гвозьдя строительного 4х120 мм?" "Я выучу молоток 0.200кг слесарный фибергласовая ручка SPRING и буду успешным, те, кто учат Молоток Kraftool 500г AutoKraft цельнокованый - сосут!" Вот Скала как бы не про это. Хотя, может быть, после того, как весь наш R&D на Скале окончательно уйдёт в энтерпрайз, а мы сами уйдём на новые проекты и новые инструменты, энтерпрайзу потребуются скаладебилы, чтобы всё это сопровождать, и тогда будут искать сеньор-скала-индусов со 100 годами опыта в уёбищных моструозных скала-фреймворках, примерно как сейчас энтерпрайз нанимает быдлокодеров на джаве.

Ответы>>655571>>655899>>657674

sage 16 Фев, 01:05 #16 #655571

>>655538
в анусе у тебя молоток, быдлан

16 Фев, 13:28 #17 #655899

>>655538
Отлично!

17 Фев, 04:22 #18 #657232

Бля, подъебался с коллбеками в ScalaJS React, которые оказались монадическим типом. Долго пытался подпихивать вместо них обычные лямбды `(arg) => Unit`, и аутировал, отчего нихера не работает, лол. Наконец, прочитал документацию, переписал нахуй единообразно на `(arg) => Callback`, c расстановкой в нужных местах callback.runNow(). Теперь все и выглядит заебок, и понятно как работает. Люблю скалу за такие выкрутасы пейсателей библиотек.

Ответы>>659108

17 Фев, 16:54 #19 #657674

>>655538
>На Скалу берут не тех, кто "выучил Скалу", а тех, кто может решать задачи выбирая оптимальные инструменты
Где берут?

Ответы>>657678

17 Фев, 16:56 #20 #657675

>>655512
>потому что нормальный хаскеллист знает хуеву тучу языков и технологий.
Apache/PHP/MySQL/Javascript/CSS/HTML

Ответы>>659109

17 Фев, 17:00 #21 #657678

>>657674
>Где берут?
Расшифрую для даунов: пионеры, выучившие захайпенный язычек не нужны. Последние детектирутся наличием отсутствия нормального бекграунда.

Ответы>>657741

17 Фев, 17:58 #22 #657741

>>657678
То есть нигде, и реально ты будешь на работе писать на Java.

Ответы>>657750>>657753

17 Фев, 18:07 #23 #657750

>>657741
С чего ты так решил? Я вообще под с JVM на работе не пишу. Будет подходящий сайд-проект, напишу на Скалке, problems?

17 Фев, 18:09 #24 #657753

>>657741
И вообще, ты странный. Думаешь, здесь одни безработные теоретеги сидят?

Ответы>>657757

17 Фев, 18:16 #25 #657757

>>657753
да

18 Фев, 21:51 #26 #659046

Это тред хачкеля или все-таки скалы?

Ответы>>659099>>659112

18 Фев, 22:54 #27 #659099

>>659046
Хачкеля.

Ответы>>659105

18 Фев, 23:03 #28 #659105

>>659099
где хоть один хачкелист тогда?

Ответы>>659127

18 Фев, 23:19 #29 #659108

>>657232
Враппер React-а - какое-то говно ебанное (как и большинство либ на Скале). Автор сделал это даже хуже, чем оригинальный React, затипизировал в усмерть то, что ненадо типизировать, наебашил имплицитов, добавил эти ёбанные коллбеки (сначала я думал, что это как-то связанно с асинхронностью, но потом внезапно посмотрел исходники и понял, что это обычная функция, завёрнутая в его тип, чтобы её "случайно" не вызвали откуда не надо). Дети, не делайте так, как делал автор React-а, это, блядь, какой-то фанбой, который открыл для себя тайп-левел и стал его использовать "потому что может", а не для того, чтобы сделать удобно.

Ответы>>659130>>659131

18 Фев, 23:20 #30 #659109

>>657675
Ну эту хуйню он тоже знает, но вряд ли станет использовать.

18 Фев, 23:21 #31 #659112

>>659046
Это тред PLT-Бората)

18 Фев, 23:36 #32 #659127

>>659105
define хачкелист

18 Фев, 23:38 #33 #659130

>>659108
> добавил эти ёбанные коллбеки
ЛОЛ. Тоже немного с них поплевался, потом читнул документацию, и понял, что они охуенны.

> обычная функция, завёрнутая в его тип
Вообще, там запилен аналог монады IO

> затипизировал в усмерть то, что ненадо типизировать
Еще больший ЛОЛ.

> Враппер React-а - какое-то говно ебанное
Отличный враппер. Еще рекомендую вот эту хуйню вместо Redux - https://github.com/ochrons/diode

С ES6 и Риакт с меня безудержно льется поток мысли, код которого я через неделю не понимаю, со ScalaJS React же все выходит довольно стройно и продуманно, т.к. в нужных местах горячку боя приходится ограничивать и больше думать.
Кстати, псевдотеги в JSX я считал решением нормальным, теперь же понимаю, что в ScalaJS React решение намного лучше.

Ответы>>659179

18 Фев, 23:39 #34 #659131

>>659108
>как и большинство либ на Скале
тебе наверное на джаве больше нравится писать?

Ответы>>659179

19 Фев, 00:55 #35 #659179

>>659130
>и понял, что они охуенны.
И какую задачу они решают?
>Вообще, там запилен аналог монады IO
Нахуя аналог монады IO в языке, где IO делается без всяких монад? Карго-культ?
>Еще больший ЛОЛ.
Почему ЛОЛ? Профит типизации в том, что она позволяет ловить потенциальные ошибки на этапе конпеляции. Минус типизации в том, что программист должен доказыкать тайп-чекеру, что он прав. Нормальная типизация должна быть нацелена на проверку тех мест, где ошибка наиболее вероятна и на релаксацию в тех местах, где ошибка маловероятна, но доказательство корректности сложно. В Реакте всё наоборот.
>>659131
Джава - отличный язык в своём классе. Встречный вопрос: что лучше, быть примитивной Джавой, но делать всё по высшему классу в своём ОО-мирке, либо быть жалкой пародией на функциональный язык, пытаясь эмулировать Хаскель через говно, жопу и имплициты?

Ответы>>659199>>659220>>663969

19 Фев, 01:20 #36 #659199

>>659179
>И какую задачу они решают?
>Нахуя аналог монады IO в языке, где IO делается без всяких монад? Карго-культ?
Какую задачу решает монадический тип? Цитирую док по коллбекам:
>meant to be run by an event handler or React lifecycle

Ответы>>659200>>659205

19 Фев, 01:21 #37 #659200

>>659199
то есть, коллбеки запускаются именно в нужном месте датафлоу.
>repeatable. It can be run more than once.
repetable именно за счет отсутствия побочных эффектов. хороший коллбек - функция, которая принимает коллбек и возвращает композицию коллбеков.

Ответы>>660660

19 Фев, 01:24 #38 #659202

>>659194
F# - честный закос под OCaml. Все шарпоёбы, которые попробовали F# и поняли, что функциональное программирование им по нраву, быстро переметнулись с закоса на оригинал (ибо нахуй пользоваться закосом, если есть оригинал), а когда поняли, что OCaml - говно, переметнулись с него на настоящий функциональный язык. Причем большая часть шарпоёбов OCaml вообще пропустила и сразу начала кодить на Хаскелле. Поэтому F# не сыскал популярности - это переходный язык.

Ответы>>663969

19 Фев, 01:26 #39 #659203

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

19 Фев, 01:28 #40 #659205

>>659199
>Какую задачу решает монадический тип?
Никакой. Конкретно в Хаскелле монада IO решает задачу IO, там по-другому IO не сделать, by design. Какую задачу решают каллбеки во враппере над реактом. Конкретезируй, пожалуста.

Ответы>>659208>>663969

19 Фев, 01:36 #41 #659208

>>659205
Значительная часть действий над враппером возвращают коллбеки, например, setState возвращает коллбек, dispatch экшена в стор возвращает коллбек. Таким образом, в своих обработчиках мы раньше времени не вызываем побочные эффекты, а только комбинируем вычисления, их вызывающие, и передаем их выше по dataflow. Итого, мы меньше раз воздействуем на State, следовательно, и VDom обходится лишних без промежуточных обновлений.

Ответы>>660660

19 Фев, 02:11 #42 #659220

>>659179
А что, по твоему мнению, в ScalaJS React излишне затипзировано, и его не стоило бы типизировать?

Ответы>>660660

sage 19 Фев, 10:26 #43 #659296

>>659240
Он всё правильно сказал.
Кстати сисярп - тупое гавно как и ява. То что он реализует все твои хотелки, значит лишь что хотелки эти у тебя на уровне пхп-макаки.

Ответы>>660683

19 Фев, 12:18 #44 #659348

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

Ответы>>659366

19 Фев, 12:44 #45 #659366

>>659348
> доднет изо всех щелей торчит
Это же самое охуенное, как ты не понимаешь

Ответы>>660593

19 Фев, 16:39 #46 #659554

Мультипарадигма это такая лалка. Вот хочешь ты написать нормальный императивный код. Но где же break, continue, if с одной веткой, premature return? А ха, ведь все же это нинужно. Или можнозделоть. Ну заебись теперь.
Про функциональные же грабли монадогоспода могут еще больше охуительных историй рассказать.

Ответы>>659583>>660429>>734792>>734797>>735501

19 Фев, 17:12 #47 #659583

>>659554
>Но где же goto? Ну заебись теперь
Аутисты, говноеды, почему до вас так медлено доходит, что ваше дерьмо не нужно?

Ответы>>659683

19 Фев, 18:38 #48 #659683

>>659583
Я бы и goto не сбрасывал со счетов если использовать его умеренно. В сишке особенно. Просто у "евангелистов" старой школы бомбило от этих конструктов потому что они никак не вписываются в их "троечки". Вон они и рассказывали охуительные истории что все это нинужно. А кодерки рты пооткрывали - говно жрут, да добавки просят.

Ответы>>659819>>659842

19 Фев, 19:58 #49 #659819

>>659683
Ты бы и собаку со счетов не сбрасывал, говнокодер

19 Фев, 20:12 #50 #659842

>>659683
В общелиспе и сейчас goto активно используется. Правда не напрямую, а в макросах.

Ответы>>660343

19 Фев, 23:07 #51 #660343

>>659842
Для чего? В Си goto используется только для фалоимитации RAII и в кодогенерированных стейтмашинах.

Ответы>>661008

19 Фев, 23:45 #52 #660429

>>659554
>break, continue, if с одной веткой, premature return
whileM, when, чо там у вас еще есть, хасканы?

Ответы>>734790

sage 20 Фев, 00:57 #53 #660593

>>659366
Пошел нахуй, клоун.

20 Фев, 01:29 #54 #660660

>>659200
Но ведь у каллбеков вполне могут быть сайд-эффекты. Реактовский каллбек - это обычная скала-функция, никто сайдэффекты для них не отменял.
>>659208
Пожалуйста, опиши проблему и способ её решения.
>>659220
Скаловский враппер React-а не сильно затипизирован, он неправильно затипизирован. Скажем так, у компоентов React есть определенный жизненный цикл и не все действия для них корректны в произвольный момент времени. И это нормально для подобных фреймворков, сотни подобных решений в сущетвуют ОО-мирке. Скажем, ты не можешь писать что-то в файл до того, как откроешь его для записи, и тому подобное, никого это особо не смущает при работе с файлами. В скаловском Реакте типизируется жизненный цикл компонента. Это приводит к порождению мусрных классов, вроде ReactComponentB, ReactComponentC, ReactComponentU, ReactComponentM и цепочки коструктора вроде .initialState(..).renderBackend(..).componenDidMount(..).componentWillUnmount(..).propsRequired... Единстсвенное назначение этой хуеты в том, что ты не вызовешь что-то на этапе componenDidMount, что доступно только в renderBackend. Цепочки, кстати, онально типизированы и даже макросы там приплели, поэтому с композабельностью у них проблемы, а в оригинальном Реакте - это просто вызовы методов компонента. Ну и какую проблему в итоге решают эти ональные изъёбства? Ведь если я программирую под React, я более-менее знаком с его архитектурой, и шанс ошибиться в жизненном цикле компонента для меня достаточно низок (жизненный цикл у всех компонентов одинаковый, я скорее в модели данных накосячу). А издержки такой типизации весьма велики.

Но хватит теории, давай перейдём к практике. Практическая задача: я использую Реакт и стороннюю либу, которая рисует графики. Для отрисовки графика я должен передать либе уникальный айдишник html элемента, в котором я хочу этот график отрисовать. Т.е. нужно банально генерировать уникальные айдишники. Решение на оригинальном Реакте:
[code]
React.createClass({
componentWillMount() {
this.id = newId();
},
render() {
return (
<div id={this.id} />
);
}
});
[/code]

Решение на скаловском враппере: есть оно у меня, но я тебе оставлю удовольствие написать его самостоятельно, чтобы ты на собственном опыте убедился, насколько скаловский враппер юзер-френдли

Ответы>>667973

20 Фев, 01:58 #55 #660683

>>659296
>Кстати сисярп - тупое гавно как и ява.
Не такое тупое. Есть тупое гавно как Ява. Есть попытка TPL-Боратов реализовать аналог функционального языка над Джавой, она называется Скалой и с ней всё понятно (полный проёб юзабилити). Есть Сисярп, который, в целом, слабее Скалы по выразительности, но зато с юзабилити у него всё охуенно - брали лучшие функциональные паттерны и вшивали их в язык, да так, чтобы пользоваться ими было удобно. Есть F# - он очень нужен Микрософту чтобы отработать функциональные паттерны перед тем, как вшивать их в C#, но не очень нужен программистам. В итоге мы имеем:
1. Скалу, где можно любые ональные трюки, но через жопу
2. Сисярп, где не любой онал возможен, но тот, который возможен, сделан удобно и энтерпрайзно
3. Джаву, которая убога, но, зато, хороша и предсказуема в своём убожестве.

Ответы>>663969

20 Фев, 15:42 #56 #661008

>>660343
Ну, например, циклы через них реализуются (loop, dotimes, dolist и т.д.). Для фсм тоже.

385 Кб, 345x428

20 Фев, 17:45 #57 #661112

> она называется Скалой и с ней всё понятно (полный проёб юзабилити).

Ответы>>667156

23 Фев, 17:55 #58 #663969

>>660683
Фантазер-теоретик ИТТ. Я писал на этих языках (кроме F#, на нём наверное вакансий меньше чем на Хаскеле, в Киеве их вообще не видел) и по юзабилити C# близко не стоит со скалой.
>Есть F# - он очень нужен Микрософту чтобы отработать функциональные паттерны перед тем, как вшивать их в C#, но не очень нужен программистам
Подробнее с этого момента, желательно со ссылками.
>>659205
>там по-другому IO не сделать, by design
Это не так, можно (и раньше было) на продолжениях.
>>659202
> поняли, что функциональное программирование им по нраву
Очень часто (почти всегда) платформа значит больше чем чистота парадигмы.
>>659194
>F# такой популярности не сыскал, как раз потому что C# уже неплох и все хотелки реализует
Он не сыскал популярности из-за закрытой платформы и почти польного отсутствия маркетинга.
>>659179
>что лучше, быть примитивной Джавой, но делать всё по высшему классу в своём ОО-мирке
Ты же не писал на джаве, челик, иначе о каком высшем классе идет речь?
>жалкой пародией на функциональный язык, пытаясь эмулировать Хаскель через говно, жопу и имплициты?
Тут свобода выбора: хочешь эмулировать хакель - эмулируешь сам или берешь уже сэмулированный - scalaz/cats, не хочешь - не эмулируешь, пишешь идиоматичный скала код.

Ответы>>667156

25 Фев, 23:31 #59 #667015

Что взять для сайтов на Haskell?

Ответы>>667169

26 Фев, 00:42 #60 #667156

>>661112
Всё познаётся в сравнении, по сравнению с говном и уксус сладок.
>>663969
>Фантазер-теоретик
Спасибо, я тоже руководитель разработки.
>по юзабилити C# близко не стоит со скалой
Вот именно, сравни Slick c LINQ.
>Подробнее с этого момента, желательно со ссылками.
Async Workflow. Проверили на F#, поняли, что нужно, добавили в C#, причем на уровне языка, сделали заметно лучше, народ доволен.
>Это не так, можно (и раньше было) на продолжениях.
Нет. Или покажи код.
>Ты же не писал на джаве
Блядь, ну почему какой-то сраный уёбок в анонимном чате объясняет мне на чем я писал и на чем я не писал? Ну как же так? Ты, может быть, длинну моего члена сейчас так же назовёшь? Ну напиши мне "Ты же не писал на джаве, а член у тебя 18 сантиметров", и завтра я проснусь и пойму, что я нихуя не писал на джаве, и вообще не руководитель разработки, зато член у меня - 18 сантиметров, а не восемь, как сейчас. Я тебе даже благодарен за это буду.

Ответы>>667455

26 Фев, 00:53 #61 #667169

>>667015
Я бы ответил Yesod, очевидно. Хотя нахуй писать сайты на Хаскелле - отдельный вопрос. Если у тебя возникло желание писать сайты на Хаскелле, значит у тебя есть на это причины, т.е. ты его, как миниум, достаточно хорошо знаешь. Если ты его достаточно хорошо знаешь, значит ты в курсе и про Yesod. Если ты задаешь при этом вопрос "Что взять для сайтов на Haskell?" значит ты нихуя не знаешь языка и его инфраструктуры и спрашиваешь "я нихуя не знаю Хаскель, но как на нём писать сайты?" Ну и нахуй тебе Хаскель, пиши сайты на том, что знаешь.

26 Фев, 11:54 #62 #667455

>>667156
>Фантазер-теоретик
>руководитель разработки
Одно другому не мешает. Можно педалить какую-то хуйню на шарпе и теоретизировать о других языках, чем ты и занимаешься.
>Async Workflow. Проверили на F#, поняли, что нужно, добавили в C#, причем на уровне языка, сделали заметно лучше, народ доволен.
Ок. А как поняли что нужно? Или как бы поняли что не нужно? Где вообще про эту "обкатку" фич можно почитать?
>Вот именно, сравни Slick c LINQ.
Ты про Entity Framework? Любитель подолбиться в жопу ORM'ами?
>Нет. Или покажи код.
https://donsbot.wordpress.com/2009/01/31/reviving-the-gofer-standard-prelude-circa-1994/
>Ты же не писал на джаве
Хуй знает, писал так писал, просто такое впечатление складывается после слов о том что язык с типами вне объектной иерархии и отсутствием наследования реализации делает
>всё по высшему классу в своём ОО-мирке

26 Фев, 15:39 #63 #667645

Хасканы, есть что-то типо codecademy, но для Хачкеля?

Ответы>>667946>>667949

26 Фев, 18:52 #64 #667946

>>667645
Есть разбросанные по интернету курсы вроде того, что на stepic или school of haskell, ну и блог посты типа 24 days of hackage или описывающие отдельные расширения/либы/опыты программиста.

26 Фев, 18:54 #65 #667949

>>667645
Ну и тайпклассопедия с хаскел вики, конечно

26 Фев, 19:12 #66 #667973

>>660660
Просто не стоит обмазывать скалу жс-говном, лучше взять чистые скала-решения, вроде ScalaRx и ScalaTags
мимо

28 Фев, 00:24 #67 #669308

https://youtu.be/5t4WntcsZZo?t=1744
Вот где реальная движуха, а не ваш пердолинг с комбинаторами комбинаторов. Оправдывайтесь, мрази.

Ответы>>669313>>669340>>745407

28 Фев, 00:28 #68 #669313

>>669308
на 29:05 самая мякотка

28 Фев, 00:53 #69 #669340

>>669308
ниочём вообще

29 Фев, 22:26 #70 #671698

Несколько лет назад был срач, Functional Dependencies vs. Type Families. Очень часто приводились доводы, что TF круче FD во всех отношениях.
Но победили в результате FD. mtl основана на FD. Вся инфраструктура Кметта основана на FD.
Почему так получилось?

Ответы>>671737>>687461>>692084

29 Фев, 22:56 #71 #671737

>>671698
Двачую вопрос. В Mercury тоже, кстати, отказались от TF в пользу FD.

Мне кажется, что FD более общий концепт, который может быть применён хоть в реляционной теории, хоть где ещё, в то время как TF просто костыль для языков с хаскель-подобной системой типов.

14 Мар, 14:28 #72 #687461

>>671698
Тому що нет инжективных TF. А для случая `class Foo a b | a -> b` они не нужны вовсе.
Они для хазохизма и всяких servantов

14 Мар, 18:54 #73 #687840

А бамп, не?

18 Мар, 23:21 #74 #692084

>>671698
>Почему так получилось?
Адепты TF постоянно рассказывали про то, что FD - это частный случай TF. Но в FD можно сделать class Yoba a b | a -> b, b ->a. Как это делать в TF я так и не понял. Да, в TF можно вообще убрать один параметр тайпкласса, если у тебя зависимость только в одну сторону, т.е. сделть class Yoba a where type YobaB a, что удобно и ускоряет работу тайпчекера. Но в некоторых случаях FD явно удобнее. Поэтому оба подхода следует оставить и использовать наиболее подходящий по случаю.

Haskell et FRP 21 Мар, 21:42 #75 #694654

Знатоки, посоветуйте нормальную либу для FRP. "Нормальная" для меня значит по крайней мере доведенная до рабочего состояния.

Ответы>>696905

24 Мар, 11:12 #76 #696905

>>694654
Reactive Banana, Reflex

50 Кб, 600x365

Ибо грядёт! 12 Апр, 01:32 #77 #714341

Считанные дни остались до релиза GHC 8.0.1, cчитанные тикеты осталось закрыть. 20 коммитов было замерджено за понедельник в ветку 8.0, 20 коммитов за один день, Карл, и это не считая либ! Snoyberg, Conal Elliott, Ben Gamari, Thomas Miedema, Simon PJ, Joachim Breitner, Richard Eisenberg и многие другие мастера не покладают своих рук, чтобы дать тебе этот инструмент! Десятки статей, нашедших воплощение в коде, сотни высококлассных программистов, тысячи автоматических тестов, это The Glorious Haskell Compiler 8.0.1, намеченный в апреле. Апрель, месяц весны, месяц любви, ты влюбишься в этот компилятор, я тебе обещаю.

Что он подарит нам, как изменит наш подход к программированию? Прежде всего, 8.0.1 - это первый шаг, первая фаза интеграции полноценных зависимых типов в практически уже индустриальный компилятор: https://ghc.haskell.org/trac/ghc/wiki/DependentHaskell/Phase1 Да, мы знаем, как сделать зависимые типы пргодными для практического использования, у нас есть roadmap и мы сделаем это. Как всегда, на самом высоком уровне, под брендом Haskell и ставшими уже привычными для вас стандартами качества Haskell.

14 Апр, 10:22 #78 #716349

>>649725 (OP)
есть ли шансы у с++ макаки перекатиться в хаскель?
что читать посоветуете, чтобы не совсем для нубов, но понять все аспекты языка и начать что-то писать на нем?

Ответы>>717790>>718077

15 Апр, 18:45 #79 #717790

>>716349
Что значит "перекатится"? Писать для себя - изи. А работу на нём найти практически нереально, даже опытным хаскелистам - её просто нет.

Ответы>>718084

16 Апр, 00:07 #80 #718077

>>716349
>есть ли шансы у с++ макаки перекатиться в хаскель?
Не надо с++ макаке перекатываться в Хаскель. Хаскель никак не отменяет сепепе, сепепе - это низкоуровневый язык, почти такой же, как се, может быть в чём-то удобнее, но задачи решает почти те же. Поэтому сепепе-макака должна не перекатываться в Хаскель, а осваивать Хаскель в дополнение к сепепе. Ну вот глянь для примера на хаскелевские хешь-табилцы: https://github.com/gregorycollins/hashtables Ой, что там у нас, 88.8% кода на Хаскелле, а 10.6% - на се. И что там у нас на се? Ой, SSE4 для вычисления хешей и линейного поиска. Ну т.е. может ли в природе существовать абстрактная хаскель-макака, которая кроме Хаскеля ни на чем не программирует? Нет, не может, любая реальная хаскель-макака - это макака, которая знает Хаскель, но так же в любой момент не стремается написать немного кода на се. В конце концов хаскель-кабал прямо из коробки сешный код компилирует, что намекает, и даже в чистом Хаскеле не считается каким-то моветоном использовать сишный препроцессор. Поэтому тут нет никакого "перекатиться", что-то тебе после освоения Хаскеля тебе уже не захочется писать на сепепе и ты будешь делать это чисто на Хаскеле. А что-то ты так и будешь писать на сепепе или вообще на чистом се.

16 Апр, 00:18 #81 #718082

>>651924
>У всех функций в Хаскелле есть сайдэффект - они процессор нагревают
Чет мне этот пост напомнил какую-то фантастическую книжку. Там люди получили по радио от инопланетян с другой звезды код какой-то программы. Долго ссались ее запускать (мало ли что она там делать будет, вдруг весь инторнет захватит), в итоге запилили специальный компьютер, который был так спроектирован что при наличии любых сайдэффектов тут же плавился нахуй. Не система самоуничтожения у него была (ибо вдруг ее злобная алиенская программа тоже взломает?) а именно сам физический принцип устройства.

Ответы>>718097

16 Апр, 00:23 #82 #718084

>>717790
> её просто нет
А мне сегодня очередная вакансия по Хаскелю упала в почту. Правда не из России, а из Нидерландов. Ну в Нидерланды мне ехать лень. С другой стороны, в России я работаю скала-программистом. И знаете кто эту вакансию создал? Мой начальник. Т.е. до него в конторе никто на Скале не писал, и Скала была такой же изотерической хуйнёй, как и Хаскель. А потом пришел мой начальник, и сказал, что теперь будет Скала. И написал программы на ней, и начал нанимать программистов. Т.е. чувак захотел, чувак сделал. И теперь там Скала. Ну а вы продолжайте ныть, что мол на Хаскелле нет вакансий. Да, для вас их нет, вакансии не появляются, их делают. Пока ты не сам способен создавать вакансии, учи, что от тебя большие дядки требуют и не выёбывайся с Хаскелем или там чем-то еще, знай своё место, студент)

Ответы>>720006>>720658>>721560

16 Апр, 00:36 #83 #718097

>>718082
Я бы почитал твою книжку. Но на самом деле в своём посте я сделал акцент на "наблюдаемый" эффект как раз потому, что у любой программы сайдэффект есть. Ну чисто физически. А "наблюдаемый" означает именно то, что програма способна наблюсти свой эффект и её результат может зависеть от этого наблюдения. Ну т.е. в Хаскелле предложили афинно-центральные преобразования https://wiki.haskell.org/Top_level_mutable_state Вполне себе сайдэффекты, но такие, что результат работы программы от них не зависит.

18 Апр, 12:20 #84 #720006

>>718084
Перестал дрочить на языки после 5 лет опыта. Предметная область и решаемые задачи - вот что гораздо интереснее.

Ответы>>720021>>721480

18 Апр, 12:35 #85 #720021

>>720006
>Перестал дрочить на языки после 5 лет опыта.
Лол, я перестал после полугода хелловорлдов.

Ответы>>720024

18 Апр, 12:41 #86 #720024

>>720021
Ну дык мне еще на жизнь надо было зарабатывать, семью кормить.

Хелловордами на мамкиных борщах далеко не уедешь, лол.

19 Апр, 00:53 #87 #720658

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

Ответы>>720834>>721480

19 Апр, 11:40 #88 #720834

>>720658
>под которую всё давно есть
Можно примеры того, что есть под скалу, и нет под хачкиль, и при этом сильно нужно? Мне правда интересно, я не троль

20 Апр, 01:09 #89 #721480

>>720006
Я давно не дрочу на языки, но просто когда надо какой-нибудь machine learning закодить на чем-то, отличном от Хаскеля, это как в говне обволяться. Нет, я это прекрасно делаю, в том-то и отличие нормального программиста от студента, что нормальный программист любую задачу решит на любой технологической платформе. И пока студенты кукарекают "ко-ко-ко надо всё переписать!!1" я просто вижу, что действительно надо бизнесу и делаю это, и бизнес доволен, ведь ему похуй, что внутри, ему надо чтобы было быстро, дешево и удобно. Но чисто для себя, а не для бизнеса, обмазываясь каким-нибудь говном, вроде скалы или сепепе, я думаю, "Господи, ну до чего же это всё убого".
>>720658
Охенно под неё всё есть, недавно резали на модули скалаговнокод, потому что баг в компиляторе. Ну да, порезали, баг обошли, заработало. Но ты какой-то дебил, если сравниваешь эти два инструмента. Тот уровень качества, который в Хаскелле является абсолютно неприемлемым, то, что Хаскель-сообщество вообще никогда под никаким предлогом не выпустит, потому что сделано хуёво, в мирке Скала считается нормальным.

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

Ответы>>721500>>721537

20 Апр, 02:09 #90 #721500

>>721480
>потому что баг в компиляторе
Охуеть проблема. Если ты ни разу не натыкался на баги в компиляторах других языков то ты какой-то хуевый программист с маленьким опытом.

Ответы>>721610

20 Апр, 06:12 #91 #721537

>>721480
> machine learning закодить на чем-то, отличном от Хаскеля
На хаскеле есть machine learning? Ломающие новости.
>Тот уровень качества, который в Хаскелле является абсолютно неприемлемым, то, что Хаскель-сообщество вообще никогда под никаким предлогом не выпустит, потому что сделано хуёво, в мирке Скала считается нормальным.
Ой да не пизди. Тонны багов, просто они реже встречаются, потому что на хаскеле, внезапно, никто не пишет.

Ответы>>721610

20 Апр, 07:59 #92 #721544

О чем тред, аноны? Нихуя не понимаю! ФП-СРАЧ-ТРЕД?

20 Апр, 08:44 #93 #721560

>>718084
Что за компания? Нормально платят?

Ответы>>721612

20 Апр, 10:48 #94 #721610

>>721500
В нормальных языках компилятор тестируют перед выпуском. Если скалу и другое говно выпускают в таком виде, так это только указывает на качество этого говна.
>>721537
>Тонны багов, просто они реже встречаются
Потому что их количество ничтожно мало по сравнению со Скалой. И большинство - даже не баги, а небольшие регрессии.

Ответы>>721619

20 Апр, 10:49 #95 #721612

>>721560
Х.з. я с ними не связывался. Не ехать же в Нидерланды.

20 Апр, 10:59 #96 #721619

>>721610
>отому что их количество ничтожно мало по сравнению со Скалой.
Мало кода -> мало багов. Это то самое there are only two kinds of languages: the ones people complain about and the ones nobody uses.
Лично я находил баги в каждой библиотеке которую юзал. При том, что на других языках это редкость.

Ответы>>723106

21 Апр, 23:07 #97 #723106

>>721619
>Мало кода -> мало багов.
Это не совсем правильно. Лучше так: меньше мест, подверженных ошибкам -> меньше ошибок.
Насколько помнится, лицокнига использует систему фильтров сообщений на хаскеле и плюсах, и за время работы всплыло только несколько багов.
Вот пруфец https://code.facebook.com/posts/745068642270222/fighting-spam-with-haskell/
По-моему, это действительно говорит о качестве. В конце-концов, GHC пишут люди, неспешно осваивающие гранты на GHC, а не макаки, трясущиеся за подачку от работодателя.

Ответы>>729399>>730443

27 Апр, 18:30 #98 #728592

>>649725 (OP)
Эй, профессионалы, а шо там с производительностью GHC, фиксят или всем похуй? Наталкивался как-то на тред на реддите

Ответы>>735491

28 Апр, 13:40 #99 #729399

>>723106
>В конце-концов, GHC пишут люди, неспешно осваивающие гранты на GHC, а не макаки, трясущиеся за подачку от работодателя.
Ради справедливости замечу, что это нихуя не показатель качества. Ученые на гранты могут годами вариться в собственном соку, высирая абсолютно ненужное и неюзабельное говно. Главное чтобы отчеты были в порядке и заявки на новые гранты вовремя подавались, ну и тема была актуальная.
Наблюдал это на примере Мейера и его Eiffel

28 Апр, 14:36 #100 #729448

Шапка №103
Очередной тред про самый лучший язык для JVM.

Лучшая книга по Скале: http://www.ozon.ru/context/detail/id/31921731/
Учебник по Скале на русском: http://twitter.github.io/scala_school/ru/index.html
Второй учебник по Скале на русском: http://twitter.github.io/effectivescala/index-ru.html
Курс по fp на Скале для слоупоков: https://www.coursera.org/course/progfun
Список годноты: https://github.com/lauris/awesome-scala
Презентации летнего ScalaDays: https://www.parleys.com/channel/53a7d269e4b0543940d9e535/presentations?sort=views&state=public
Два недавних форка компилятора, один от тайплевела и второй от баттхертнутого:
https://github.com/typelevel/scala (https://github.com/typelevel/scala/wiki/Differences)
https://github.com/paulp/policy

Завтра ищешь в интернете книжку Programming in Scala. Похуй если ничего не поймешь. Затем идешь на scala-lang.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию скала кода - от EPFL естественно, чтобы от зубов отскакивало. Когда напишешь свой первый клон Twittera, по пути изучив основы дискретного и лямбда исчисления, скачиваешь и изучаешь любой асинхронный скала вебсервер, рекомендую Play!. Как переделаешь твиттер клон, чтобы выдавал по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop и Spark, сверхбыстрые асинхронные key-value хранилища, NoSQL и прочие мира открытого исходного кода приблуды. Отсос хиккующих питонистов / просто неудачников типа годаунов или рубифанбоев, сосут по жизни, не заставит себя ждать и уже через пол года ты будешь подворачивать штаны, есть маффины, запивая смузи и любая баба будет течь от упоминания твоей зарплаты.

29 Апр, 12:32 #101 #730443

>>723106
>В конце-концов, GHC пишут люди, неспешно осваивающие гранты на GHC
А скалу по-твоему кто пишет, пионер?

05 Май, 02:36 #102 #734790

>>660429
ContT

05 Май, 02:44 #103 #734792

>>659554
Так нормальный или императивный? Ты уж определись.

05 Май, 03:05 #104 #734797

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

05 Май, 10:41 #105 #734894

Good news, everyone! В кабал добавили Nix-like local builds:
http://blog.ezyang.com/2016/05/announcing-cabal-new-build-nix-style-local-builds/
Попробовать можно хоть сейчас, поставив свежий кабал с hackage.

Ответы>>735498

05 Май, 23:56 #106 #735491

>>728592
Фиксят, деградация производительности GHC считается багом. Чего не скажешь про Скалу, там время компиляции уходит в небеса, но всем похуй, лишь бы свистоперделок навернуть.

06 Май, 00:05 #107 #735498

>>734894
Какие задачи решает? Собираю Stack-ом, зависимость есть, брат жив, самостоятельный деплой GHC у меня скорее по историческим причинам и потому что плагины для Атома его юзали. Раньше. Теперь вроде им тоже Stack-а достаточно. Поэтому планирую вообще снести свой GHC, и оставить только Stack. Вот нафиг мне думать, какой GHC установить, что там за кабалинсталить, если Stack всё это делает одной командой и это просто работает?

Ответы>>738733

06 Май, 00:09 #108 #735501

>>659554
>if с одной веткой
Хмм.. и что эта хуйня должна делать?

Ответы>>739017

09 Май, 23:32 #109 #738733

>>735498
>Какие задачи решает?
Глобально запоминает зависимости при сборке, так что если тебе еще раз надо собрать что-то, требующее либа-14.88, она не будет второй раз компилироваться IIRC

Ответы>>740956

10 Май, 10:36 #110 #739017

>>735501
return))
ну или сайдэффект какой

12 Май, 00:42 #111 #740956

>>738733
>Глобально запоминает зависимости при сборке
Если ты про reproducible build, то Стек именно это и делает.
>так что если тебе еще раз надо собрать что-то, требующее либа-14.88, она не будет второй раз компилироваться
Это вообще ортогонально, и было решено в самом всратом алголе мохнатого года. Я вообще затрудняюсь назвать язык, который будет перекомпилировать модуль, если он уже скомпелирован, ну кроме С++ конечно же. Но С++ - не язык, а Лисп с типами.

Ответы>>741483

12 Май, 00:44 #112 #740959

>>73901
>return))
https://hackage.haskell.org/package/base-4.8.2.0/docs/Control-Monad.html#v:when

монады, мои монады 12 Май, 01:35 #113 #741023

Недавно пришлось перечитать кучу статей про монады, чтобы подобрать нормальную схему типизации для своей проги, нашел несколько вещей, которые не очень широко известны, но довольно занимательны:
1. Оказывается параметризованные монады Atkey полностью эквивалентны индексированным монадам McBride. Есть доказательство, что одни выражаются через другие: https://www.eyrie.org/~zednenem/2012/07/29/paramonads. Это не очень распространённое знание, даже бородатые хаскеллисты до сих пор думают, что монадки McBride более гибкие, но это не так, они совершенно одинаковые. Далее, в статье утверждается, что параметризованные монады вообще не нужны, потому что нет генерализованных алгоритмов над ними. И я с этим согласен, они действительно не добавляют ничего нового. Но добавляют весьма приятный сахарок, в том плане, что все хаскеллиты привыкли к монадическому синтаксису и в любой непонятной ситуации хуярят монаду на автомате. И если нужно как-то упорядочить вызовы функций, то почему бы не использовать параметрическую монаду и привычный синтаксис чисто ради однообразия, пусть даже она не нужна, строго говоря?
2. Оказывается есть аналог mtl: http://okmij.org/ftp/Haskell/extensible/ Без лифтинга. Впрочем, другой аналог mtl без лифтинга можно хуярить на индексированных монадах: http://www.muddsnyder.com/pubs/monadfactory.pdf, но он не отменяет проблем производительности mtl. В целом можно так классифицировать эти два подхода: оба решают проблему квадратичного роста инстансов. Как mlt, так и вторая либа приводит к тому, что продятся вложенные замыкания на монадических bind-ах, зато любой вызов non-proper морфизма происходит напрямую. А первая либа гарантирует, что будет только одно замыкание, но вызов non-proper морфизмов реализуется через паттерн chain-of-responsibility, также она полиморфна по порядку монадок в стеке (т.е. ту монадку, к которой обращяются чаще, можно расположить ближе, в итоге обращения к ней будут быстрее). Т.е. имеет смысл выбирать тот или иной паттерн в зависимости от того, как ваша либа используется, это может оказать заметное влияние на производительность.

Ответы>>741898>>742374>>743075

12 Май, 17:01 #114 #741483

>>740956
>Стек именно это и делает.
Я знаю. А теперь и кабал

12 Май, 23:58 #115 #741898

>>741023
А теперь быстро объяснил мне, почему все то же самое нельзя сделать с помощью классов, коллекций (и, возможно, еще каких-то стандартных средств языка) в Java или C#.

Ответы>>742175>>742250>>742545

13 Май, 12:51 #116 #742175

>>741898
>А теперь быстро обьяснил мне почему всё это нельзя реализовать средствами ассемблера

Ответы>>742181>>742191

13 Май, 13:09 #117 #742181

>>742175
Я должен здесь увидеть какую - то тонкую аналогию? Типа её здесь и нет вовсе. Если ты это не понимаешь, то никакие моноиды в эндоморфизмах тебе не помогут. (Подсказка: высокоуровневые и низкоуровневые языки программирования).

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

Ответы>>742235

13 Май, 13:20 #118 #742191

>>742175
>>А теперь быстро обьяснил мне почему всё это нельзя реализовать средствами ассемблера
Жаль, что этот хаскелист порвался так быстро, а как же напомнить, что, если программа на Haskell скомпилировалась, то она в 95% случаев работает так, как ожидается?

Ответы>>742235

13 Май, 14:08 #119 #742235

>>742181
>>742191
Не семени.
>Всё то же самое
Что "то же самое"? Параметризованные монады Atkey, которые полностью эквивалентны индексированным монадам McBride?
Это как если бы анон#1 рассказывал про интерфейсы и абстрактные классы, а анон#2 спрашивал, почему то же самое нельзя. сделать средствами структурного программирования. Очень грамотный вопрос.

Ответы>>742241>>742292

13 Май, 14:16 #120 #742241

>>742235
А самое смешное в твоей аналогии - это можно сделать средствами структурного программирования, и выйдет лучше, чем с ооп.

Ответы>>742275>>742287

13 Май, 14:38 #121 #742250

>>741898
в жаве/шарпе нет higher-kinded types

Ответы>>742292

13 Май, 15:19 #122 #742275

>>742241
Что это, блджад?! Меня бесит твоя тупость

sage 13 Май, 15:30 #123 #742287

>>742241
>структурного программирования
Как там в 70-х?

Ответы>>742295

13 Май, 15:35 #124 #742292

>>742250
>>742235
Это нам известно. Они вообще едва ли есть в промышленных языках. Поконкретнее можно?
>почему все то же самое нельзя сделать с помощью классов, коллекций
Без кококо махания руками и туманных аналогий, пожалуйста.

Ответы>>742344

13 Май, 15:39 #125 #742295

>>742287
Заебись. ООП нинужно.

Ответы>>742299

13 Май, 15:43 #126 #742299

>>742295
ООП конечно много ругают, может и за дело, но мне все равно кажется интересным, как можно писать действительно большие, огромные программные системы без ООП?

Ответы>>742353>>742366

13 Май, 16:16 #127 #742344

>>742292
>почему все то же самое нельзя сделать с помощью классов, коллекций
>Спрашивает о "том же самом", хотя из контекста вывести что же такое "то же самое" нельзя.
>На это было указано дважды
>Всё равно спрашивает, почему "то же самое" нельзя реализовать какими-то средствами

Ответы>>742374

13 Май, 16:25 #128 #742353

>>742299
Ты это на полном серьёзе в треде функци-анальщиков спрашиваешь?

13 Май, 16:31 #129 #742366

>>742299
Подумай, на чём написанна твоя ось, и сколько строк кода в её исходниках

Ответы>>742492

13 Май, 16:36 #130 #742374

>>742344
Пока что только только махание руками и зеленый текст. Ладно, помогу. Eсли проследить контекст (это несложно - несколько переходов по ссылкам), то можно увидеть как началось обсуждение этого ананаса >>741023. Это и есть контекст - содержание статьи, если угодно.

Ответы>>742383>>742480

13 Май, 16:43 #131 #742383

>>742374
Вдогонку. Только пожалуйста без мутных аналогий, а по существу.

13 Май, 18:40 #132 #742480

>>742374
Пока что ты петух
То же самое нельзя сделать с помощью классов, коллекций (и, возможно, еще каких-то стандартных средств языка) в Java или C# потому что происходит что-то, а ещё кое-что. Понял, говно? Помахал тебе руками за щеку, проверяй

Ответы>>742487

13 Май, 18:45 #133 #742487

>>742480
Ух-ты! Аргументация достойная лучших тредов /b! Как и ожидалось - ты никчемная макака нацепившая очки, толком не разбирающаяся в предмете. Чего я не ожидал, так это насколько звонко ты порвешься. Это все адепты такие, или ты один попался, необычайно вонючий?

Ответы>>742501

13 Май, 18:50 #134 #742492

>>742366
Ну и?
Хочешь сказать, что без ООП можно уменьшить количество строк?

Ответы>>742501

13 Май, 18:54 #135 #742501

>>742487
Ладно. Ты побдил, няша, то же самоечто бы это ни значило удобнее и лучше реализовывать с помощью классов, коллекций (и, возможно, еще каких-то стандартных средств языка) в Java или C#. Теперь иди к своим друзям в крестотред и расскажи о своей решительной победе над тупыми хаскель-задротами
>>742492
Конечно. Можно удалить все комментарии например

Ответы>>742503

13 Май, 18:56 #136 #742503

>>742501
Подъебал, зануда. Очевидно, что речь шла о строках чистого кода.

Ответы>>742717

13 Май, 18:57 #137 #742504

Почему хаскелисты рвутся так быстро?

Ответы>>742508

13 Май, 18:59 #138 #742508

>>742504
Очевидно, что это не настоящий хаскеллист. Умный и опытный товарищ сам бы понял и объяснить смог. Нес бы просвещение, так сказать. А это клоун подражатель какой-то.

13 Май, 19:26 #139 #742545

>>741898
В хаскеле все дружно решают выдуманную ими самими проблему - жизни при изоляции IO. В Java и C# таких проблем просто не возникает, так же, как не возникает проблем со сборкой мусора, к примеру - потому что есть сборщик. Поэтому и задач у монад почти нет, не говоря уже о том, чтобы их параметризировать.

Ответы>>742717>>743244

13 Май, 21:21 #140 #742717

>>742503
Но ООП это ведь не про экономию строк, а скорее, про организацию и сокрытие реализации подсистем. И всё это выливается в большее количество строк: обьявления классов, интерфейсов, конструкторов, и прочего. HelloWorld на Сях будет раза в три меньше чем на Джаве
>>742545
Ваше мнение очень важно для нас. Держите нас вкурсе.

Ответы>>742731

13 Май, 21:35 #141 #742731

>>742717
Попробуй заценить такой язык, как Kotlin, это типа Java XXI века, только пока она компилится под JDK 1.6, ну это вопрос времени. Там нет мудянки с бойлерплейтом, как в классической джаве (где надо руками прописывать все геттеры и сеттеры, ну не совсем руками, но суть такая). В Kotlin классы для сущностей (data class) объявляются одной строкой и к ним генерятся все необходимые стандартные методы (геттеры, сеттеры).
И строк в таком коде процентов на 30 мекньше, чем на джаве. Да, возможно, в хаскельном коде строк меньше, но мне лично морально тяжело читать кашу из кучи стрелок и букв a, b, f, t (при чем в двух подряд идущих строках они могут значить разное).

Все говорят, мол, монады, функторы, шмункторы, но на самом деле в Хаскеле сложна общая эзотеричность кода, а не какая-то кастрированная ТК.

Ответы>>742854

13 Май, 23:49 #142 #742854

>>742731
> Java XXI века
Зачем нужна ещё одна скала?
> Хаскеле сложна
С какой стороны посмотреть. Если бы ты знал как больно после хачкеля писать на языке без автоматического вывода типов.

Ответы>>742975>>743034

14 Май, 05:38 #143 #742975

>>742854
Прикинь, знаю. А если бы ты писал промышленные системы, а не приложения уровня лаб и хелловорлд, то знал бы что существенными становятся другие факторы разработки. И что х3 -x10 выигрыш в числе строк для 100LOC приложения становится выигрышом x2-x5 для 1KLOC или x1.5-x2 для 10KLOC (примерные числа отражающие тренд). Выводы сам способен сделать?

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

Ответы>>743157

14 Май, 10:58 #144 #743034

>>742854
>Зачем нужна ещё одна скала?
Затем, что в Kotlin на несколько порядков меньше ФП-дерьма.

> С какой стороны посмотреть. Если бы ты знал как больно после хачкеля писать на языке без автоматического вывода типов.
Ну он сейчас есть везде, кроме Джавы (да и там в лямбдах есть).

Ответы>>743044>>743055>>743247

14 Май, 11:13 #145 #743044

>>743034
> >Зачем нужна ещё одна скала?
> Затем, что в Kotlin на несколько порядков меньше ФП-дерьма.
То есть на несколько порядков больше императивного дерьма, так что твоя недоджява-недоскала не нужна.

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

Ответы>>743193

14 Май, 11:47 #146 #743055

>>743034
В жабе кстати тоже планируют запилить локальный вывод. И если быть корректным - он уже есть (в пределах вывода дженериков и лямбд).

14 Май, 12:36 #147 #743075

Так кто - то может объяснить почему описанное этим >>741023
>нельзя сделать с помощью классов, коллекций (и, возможно, еще каких-то стандартных средств языка) в Java или C#.

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

Есть адекваты ИТТ?

Ответы>>743154

14 Май, 13:51 #148 #743154

>>743075
>описанное этим
Ты можешь обьяснить что именно ты хочешь сделать с помощью классов, коллекций (и, возможно, еще каких-то стандартных средств языка) в Java или C#, зелень ебливая? Параметрезированные монады? В джваве и сишаре нету монад, так что параметризированные сделать точно не получится.

Ответы>>743186

14 Май, 13:57 #149 #743157

>>742975
Пишу приложения уровня лаб и хелловорлд. Тем не менее, то, что существенными становятся другие факторы разработки для меня очевидно.
>Мощь функционального программирования
Мощь статической, сильной и выразительной системы типов, ты хотел сказать?

14 Май, 14:24 #150 #743186

>>743154
Меня интересует решение проблем. В смысле - какие проблемы решают эти монады которым даже имя дали. К примеру, я представляю для чего нужна Maybe или State. И какой аналог могу / не могу сконструировать вне хаскелла.

Твое дрочево монад ради монад или ЧСВ мне не особо интересно.

> Мощь статической, сильной и выразительной системы типов
Про лямбда-куб слышал? Вот оказывается что наиболее продвинутые системы типов в функциональных языках и развиты.

Ответы>>743195>>743256

14 Май, 14:45 #151 #743193

>>743044
>То есть на несколько порядков больше императивного дерьма, так что твоя недоджява-недоскала не нужна.
То есть на несколько порядков меньше эзотеричного write-only bullshit'а.
Мне программы на Scala вообще напоминают гон молодого оленя, если в Хацкеле еще есть какой-то закос под псевдоматематическую строгость, то тут просто разгул, какое-то бесилово.

> Даже в скале нет такого как в хачкеле, для рекурсивных функций не выводится например.
Да просто это никому не нужно при адекватной системе типов (как в большинстве современных ООП-языков). Лично я считаю, что выведение типов - это возможность писать
> s = "Fuck you"
Вместо
> String s = "Fuck you"
Ну и чтобы в лямбдах не надо было указывать тип, ну и в функции мог вывестись тип по return. Всякие остальные изъебства нахуй не всрались.

Ответы>>743203

14 Май, 14:48 #152 #743195

>>743186
>Меня интересует решение проблем. В смысле - какие проблемы решают эти монады которым даже имя дали

Монады решают только проблемы, искусственно привнесенные ограничениями ФП (чистота, иммутабельность). Больше они ровным счетом ничего не решают.
Да Maybe/Optional - это полезная штука, позволяющая избегать null pointer exception, но ее можно использовать без этой монадической чертовщины.

Ответы>>743291

14 Май, 15:02 #153 #743203

>>743193
> То есть на несколько порядков меньше эзотеричного write-only bullshit'а.
Наоборот, больше. Чем код императивнее, тем хуже он читается.

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

Ответы>>743374

14 Май, 15:48 #154 #743244

>>742545
Скажем так, IO можно сделать через монадки. Да, IO является монадой. Но, скажем, в Джаве File является классом. Говорить, что монады нужны для IO, это всё равно, что говорить, что классы нужны для работы с файлами. Ну еще можно привести в пример паскаль, где классов нет, но можно работать с файлами и заявить, что джависты решают своими классами надуманные проблемы.

Ответы>>743442

14 Май, 15:51 #155 #743247

>>743034
>Ну он сейчас есть везде, кроме Джавы (да и там в лямбдах есть).
Его практически нигде нет. То, что есть в Скале - это убогое говно, которое адово тормозит почти никогда нормально не работает.

14 Май, 15:58 #156 #743256

>>743186
>какие проблемы решают эти монады
Можешь считать, что это представление hoare logic. Т.е. есть предусловия и постусловия, которые представлены параметрами монады, компилятор проверяет, что у линкуемых действий пред- и постусловия корректны. Ну а аналоги mtl нужны для того, чтобы обеспечить композабельность и расширяемость монадок без ебучего лифтинга.

Ответы>>743515>>744052

14 Май, 16:23 #157 #743291

>>743195
>Монадическая чертовщина
>Для того чтобы тип был монадой, для него должно быть определено две ДВЕ, КАРЛ!операции
Скажи мне, что вызвало у тебя в голове такое разжижение мозгов, помоги людям которые хотели бы этого избежать

Ответы>>743387

14 Май, 17:02 #158 #743374

>>743203
>Наоборот, больше. Чем код императивнее, тем хуже он читается.
Нет, это не так.
Типичный императивный код довольно сносно отображает течение процесса, как правило, имена объектов и функций в нем имеют осмысленный характер. Это я про нормальный императивный код, конечно, а не про высер школьника.
Функциональный код страдает обилием загадочных букв a, b, f, t и т.д. при чем в двух соседних строках они могут означать совершенно разные сущности, это не говоря про более экзотические символы типа >>=, >=< и прочие <|*|>. Это относится к нормальному коду, который можно встретить в тутах по Хаскеллу или Скале.
К тому же, в функциональном коде многие вещи делаются далеко не так очевидно, как в императивном. Что уж говорить, даже унтуитивное понятие цикла в нем замещено значительно более сложной (как в вычислительном плане, так и в плане мыслительной деятельности, требуемой на написание/прочтение кода).

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

Ответы>>743822>>743978>>743981>>744148

14 Май, 17:05 #159 #743387

>>743291
Тем, что для выполнения привычных и простых действий надо изъебываться так, как это описывает любая книга типа learn you a haskell.
Есть много вещей, которые определяются одной формулой/одним предложением, но по сути своей нетривиальны. Монады - классический пример.

14 Май, 17:33 #160 #743438

Всё таки решил вкатиться, хотя всегда считал что хаскель плохо применим в реальных промышленных проектах, в том числе и собственных.

А вкатиться решил потому что якобы хаскель прочищает мозги от налёта ООП/императивного программирования. Давно замечал, что исключительную полезность для мозгов давали концепции, которые были для меня новы

14 Май, 17:35 #161 #743442

>>743244
>Говорить, что монады нужны для IO, это всё равно, что говорить, что классы нужны для работы с файлами.
Пиздец, ну так и есть. Только ты опустил первые 2 слова зачем-то.
1. В хаскеле монады нужны для IO.
2. В джаве классы нужны для работы с файлами.

И вопрос "как мне сделать то же самое в джаве" лишен смысла - если тебе нужна статическая корректность, то ты из любого места Java-программы можешь написать Runtime.getRuntime().exec("format c:"); и монады тебе не помогут ничем, поэтому тебе придется писать DSL.

14 Май, 18:35 #162 #743515

>>743256
Ух-ты. Отличная инициатива. И объяснение доходчивое. Спасиб за объяснение.

15 Май, 00:23 #163 #743822

>>743374
>Нет, это не так
Это так

15 Май, 10:40 #164 #743978

>>743374
> Нет, это не так.
Охуительные истории. Вылить бы тебе на еблет си-портянок, и посмотреть как ты будешь их читать.

15 Май, 10:44 #165 #743981

>>743374
> К тому же, в функциональном коде многие вещи делаются далеко не так очевидно, как в императивном.
> унтуитивное понятие цикла в нем замещено значительно более сложной (как в вычислительном плане, так и в плане мыслительной деятельности, требуемой на написание/прочтение кода).
Пиздец, ясно короче всё с тобой.

Ответы>>744052

15 Май, 12:30 #166 #744052

>>743981
Я тот анончик, который вытягивал разъяснение про использование монад Atkey.

Если бы ты меньше вонял и ругался, а аргументированно излагал как >>743256, то может быть у твоих слов был бы какой-то вес.

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

15 Май, 14:50 #167 #744148

>>743374
>Это я про нормальный императивный код, конечно, а не про высер школьника.
Подозреваю в тебе самом ебучего школьника, у которого кругом пидарасы. На самом деле это не так. Потому что как раз "осмысленный характер" названий процедур низначит совершенно ничего - для кого-то он осмысленный, для кого-то - не осмысленный и за каждым названием может скрываться что угодно и в двух соседних строках они могут означать совершенно разные сущности. А символы >>=, >=< и прочие <|*|> (половину из которых ты сам придума) - это как раз комбинаторы стандартных тайпклассов, для которых заданы теоремы и означают они везде строго одно и то же. Ты просто не знаешь Хаскеля, но пытаешься про него рассуждать с высоты своего невежества.

Ответы>>744434

15 Май, 20:05 #168 #744434

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

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

Ответы>>744497

38 Кб, 750x427

15 Май, 20:10 #169 #744441

https://docs.google.com/presentation/d/1rrHWik3hs5hvYVkpU6V3x_rl1TCbckkwHfd83fM3f2Q/edit?pref=2&pli=1#slide=id.p

Ответы>>744594

15 Май, 21:18 #170 #744497

>>744434
>Поверь, если заменить слова "тайпклассы" на "ненужная хуйня" в соответствующем склонении, получится то же самое
Для дауна-аутиста вроде тебя - возможно. Что может быть более естественным и самоочевидным чем тайпкласс? ООП-дегенераты не знали что такое тайпкласс, но даже они чувствовали необходимость в нём, хоть и не могли обьяснить её в рамках своего примитивного мировосприятия. И поэтому придумали дефективного уродца - интерфейс, с которым по сей день и живут в манямирке.

Ответы>>744630>>744647

15 Май, 22:23 #171 #744594

>>744441
Зачем ты принес сюда этого старого вонючего прото-ватника? Идеи для слайдов этот пердучий мудак спиздил, должно быть, отсюда http://math.mit.edu/~dspivak/informatics/talks/galois.pdf

Ответы>>744646>>745863

15 Май, 22:48 #172 #744630

>>744497
>Для дауна-аутиста вроде тебя - возможно. Что может быть более естественным и самоочевидным чем тайпкласс? ООП-дегенераты не знали что такое тайпкласс, но даже они чувствовали необходимость в нём, хоть и не могли обьяснить её в рамках своего примитивного мировосприятия. И поэтому придумали дефективного уродца - интерфейс, с которым по сей день и живут в манямирке.

Мне жаль, но тайпклассы - это попытка занести необходимые при разработке концепции в дефективные ФП-языки.
Собственно, даже ФПшники признают, что тайпкласс - это тот же интерфейс в Java, просто с функциональными закидонами. Зато никто не объясняет интерфейсы Джавы как отражение хаскельных тайпклассов.

Ответы>>744646>>744647>>745396>>753204

15 Май, 22:59 #173 #744646

>>744594
Спасибо за ссылку это не сарказм

>>744630
>даже ФПшники признают
Можно пример признания?

Хочу обмазаться зависимыми типами и даже написать целую программу их использованием. Проясните за Idris: насколько оно готово (для обучения, не для продакшена)? сильно хуже агды? у компилятора идрис есть бекенд в жс: он выдает сколько-нибудь работоспособный код или нет?
Насколько все-таки хаскель далек от зависимых типов?

Ответы>>744665>>753324

15 Май, 23:00 #174 #744647

>>744630
>>744497

Так забавно смотреть за вашим перебрасыванием какашек.

Ответы>>744654

15 Май, 23:05 #175 #744654

>>744647
Что, даже забавнее, чем наблюдать как фичи из ФП пропихиваются в мейнстрим?

Ответы>>744659

15 Май, 23:15 #176 #744659

>>744654
Это как раз не забавно. Грешно смеяться над убожеством. А это то что получается в результате пропихивания.

15 Май, 23:24 #177 #744665

Игнорируйте петушиных адептов императивной динамико-дрисни и они уйдут
>>744646
Обещали уже вот-вот запилить в GHC 8.*

16 Май, 23:20 #178 #745396

>>744630
дауненок не вкурсе, что хаскель старше жабы

16 Май, 23:35 #179 #745407

>>669308
Самые бессмысленные 58 минут в моей жизни. Насрал мудель. Нахуя ты этого петуха притащил?

Ответы>>745469

17 Май, 01:34 #180 #745469

>>745407
Ты тупой, нет? У меня ссылка открылась где-то на середине, т/е либо это было не 58 минут, либо ты перемотал на начало и действительно целый час до тебя доходило, что это видео не для тебя.

Алсо, сам видео не смотрел - но выяснил, что речь о Dafny. Вещь годная, пробовал, собирается под маком, но к сожалению из опций IDE только Visual Studio под оффтопик.

Ответы>>745865

17 Май, 15:05 #181 #745863

>>744594
Краткое содержание слайдов:
> Смотрите кажется что я просто ковыряюсь в жопе - а на самом деле я использую теорию категорий!
или это краткое содержание всех работ по теории категорий?

Ответы>>745961

17 Май, 15:07 #182 #745865

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

17 Май, 16:47 #183 #745961

>>745863
Пойди, ещё ORM наверни, ООП-блядок

Ответы>>746074

17 Май, 19:24 #184 #746074

>>745961
>ORM
Любой червь-пидор >>> сикулеговно, не могущее ни в модульность, ни в типы, ни в нихуя. Нелепый коболовысер, мне просто омерзительно иметь что-либо общее с этой хуйней.

Ответы>>746189>>746224>>753239

17 Май, 21:12 #185 #746189

>>746074
Ты же понимаешь, быдланъ, что и сам недалеко ушел?

Ответы>>746250

17 Май, 21:37 #186 #746224

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

Ответы>>746250

17 Май, 21:56 #187 #746250

>>746189>>746224
Даже в обоссанной жабке есть f-bound полиморфизм, а в сикуле ничего кроме "хуй"+""""+"пизда"""+пизда+""""+хуйхуй.

Ответы>>746603

18 Май, 11:44 #188 #746603

>>746250
Сравнил жопу с пальцем, молодец. Язык общего назначения с DSL.

19 Май, 16:49 #189 #747703

>>649725 (OP)
Анон, как вкатиться в GHCJS? Нихуя не понимат

Ответы>>747719

19 Май, 17:11 #190 #747719

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

97 Кб, 466x604

19 Май, 19:28 #191 #747839

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

Выбор языка определяется в основном не "задачей", а наличием команды. Задачи набираются под имеющиеся проверенные команды, команды набираются под имеющихся проверенных техлидов и освоенный ими (пока были джуниорами, миддлами и сеньорами-кодерами) и "испытанный" технологический стек. Под "испытанностью" подразумевается либо использование в пилотном проекте, либо использованием конкурентов. Если "соседи" по индустрии пишут игры на С++ - то один этот факт (при наличии С++ лида) может определить выбор С++ как языка.

Работать на одном стеке гораздо выгоднее, чем каждый раз его менять. Если предприятие начинает использовать какой-то стек по причинам выше (а не "исходя из задачи") - то дальше работает только на нём. Там же целый завод по выпуску ПО - отлаженные технологические процессы, построенные цеха, настроенная инфраструктура, сработавшиеся с друг другом специалисты разных профилей в рамках стека (админы-QA-девы-аналитики-эйчары-пмы и т п). Соответственно, выбора языка на уровне предприятия как такового нет.

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

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

В моём случае С++ я знал "со школы", а "заделами" являлось изучение Perl (это был 1998 год, PHP был относительно маргинальным, а Perl - проверенным решением) и Haskell.

Пилотным для Perl был проект сайта брачного агентства, который сделал одногруппник, а я мейнтейнил (т.е. заметьте, безрисково!). JS учил в проекте с одногруппником, который более-менее его знал. А Haskell я учил по сути все 15 лет последние, с пилотной обкаткой на опенсорсных хобби HNC и N2O.hs и небольших утилитках в продакшене.

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

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

Т.е. я намеренно, в течение 15 лет сменял специализацию. "Элитизм" тут проистекает из зарплат порядка 100 дол в час, достижимых на ниве хаскель кодерства.

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

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

Короче, "языки под задачи" - это для
а) джуниоров, берущихся за что попало;
б) начинающих контор, берущихся за что попало;
в) при поиске субподрядчика.
http://nponeccop.livejournal.com/488373.html

Ответы>>748064>>748183

20 Май, 01:42 #192 #748064

>>747839
а у вас тут весело. то nponeccop, то ivan-gandhi, такое впечатление что не pr читаю, а френдленту.

Ответы>>748187>>748203

928 Кб, 3968x2232

20 Май, 10:12 #193 #748183

>>747839
> "Элитизм" тут проистекает из зарплат порядка 100 дол в час, достижимых на ниве хаскель кодерства.
Сделал мой день, содомит.

Ответы>>748189

20 Май, 10:21 #194 #748187

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

20 Май, 10:27 #195 #748189

>>748183
Ты странный. Судя по комментарию, ты не любишь ни хаскелла, ни борщ (да еще так аппетитно сервированный). И кто тут извращенец?

Ответы>>748206

20 Май, 10:51 #196 #748203

>>748064
почитал, оба дурачки. Тот который пишет про 15 лет освоения хаскеля просто туповат. За 15 лет можно выдающимся ученым стать, а он все велосипед пердолит. Отсутствие ума пытается задротством компенсировать.

20 Май, 10:59 #197 #748206

>>748189
Это всего лишь стеб над "зарплатами порядка 100 дол в час". Таких даже у востребованных в энтерпрайзе эрланге и кожуре нет.

Ответы>>753243

8 Кб, 459x335

Покровы сорваны! 21 Май, 20:06 #198 #749662

Группа ученых под руководством Дэниела Лебреро из Лаборатории Торговых Программных Интерфейсов британской компании IG Markets Ltd провела статистическое исследование о связи числа баг-репортов и языков программирования на базе информации об открытых проектах на сайте "Центр деятельности мерзавцев" (GitHub.com, организация разрешена в России, за исключением некоторых периодов, когда она запрещена). Выяснилось, что наличие статической типизации и продвинутой системы типов не помогает в уменьшении ошибок, а порой даже вредит, в то время как меньше всего ошибок получается в программах на максимально простых языках.

Теперь научно доказано, что theiced был прав: типы не нужны, а писать надо на Кложури. А также Эрланге и Го. Адептам сложных языков и развитых систем типов надлежит раскаяться, одуматься и перестать уже своими надуманными неработающими идеями отвлекать благородных донов, занятых TDD.

http://thedeemon.livejournal.com/112666.html

Ответы>>749749>>749971>>750251>>753245

21 Май, 21:38 #199 #749749

>>749662
>научно доказано
Не доказано.

22 Май, 01:04 #200 #749971

>>749662
На паскале меньше всего ошибок так как на нем только лабы делают. Это просто список популярности языков.

Ответы>>749994

972 Кб, 312x213

ITS HAPPENING 22 Май, 01:10 #201 #749978

https://mail.haskell.org/pipermail/ghc-devs/2016-May/012098.html

Ответы>>749997

22 Май, 01:26 #202 #749994

>>749971
Я пофиксил, не благодари:

-Невнятные потуги на аналитику
+Языков, использовавшихся в популярных проектах.

22 Май, 01:28 #203 #749997

>>749978
Не нашёл никакого упоминания о завтипах.

22 Май, 14:23 #204 #750251

>>749662
> "Центр деятельности мерзавцев" (GitHub.com, организация разрешена в России, за исключением некоторых периодов, когда она запрещена)
В голос.

Ответы>>752701

24 Май, 15:16 #205 #752701

>>750251
Еще и с подливой небось, животное?

24 Май, 23:52 #206 #753204

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

25 Май, 00:34 #207 #753239

>>746074
ORM-говно тоже не может в модульность. В модульность могут построители запросов, типа LINQ, Slick и куча поделок на Хаскелле. Но что интересно, эти поделки на Хаскелле пилят, и вроде всё с ними заебись, но потом они надоедают автору и остаются гнить на хакадже никому нахуй не нужные. Через несколько лет кто-то новый, молодой, шутливый пилит новую поделку, которая еще круче предыдущих, но в итоге она повторяет судьбу предшественников. А разгадка проста - нет задач. Ну т.е. охуенно как нужен парсер json-а или командной строки, охуенно нужны притти-принтеры, quickcheck ой как нужен, а еще criterion, чтобы производительность мерить, без этих двух либ почти никакой Хаскель-проект не обходится. Еще хешь-таблицы быстрые нужны и векторы, mtl нужен, куда без него, байтстринги, бинарная сериализация, аттопарсек тоже частенько бывает полезен. А ОРМ-гона не очень-то нужны. Ведь можно просто написать SQL-запрос, и никакой фундаментальной разницы, типа жизнь без ORM/жизнь с ORM/жизнь с самописной недо-ORM, которая запилина чисто под нужды проекта нет. 20% либ решают 80% задач, ORM к этим 20% не относится.

25 Май, 00:38 #208 #753243

>>748206
>Таких даже у востребованных в энтерпрайзе эрланге и кожуре
Эрлан и Кложура маргинальнее Хаскеля. С разморозкой. На дворе 2016.

25 Май, 00:40 #209 #753245

>>749662
Уже Сшные {} в сравнении с OCaml'ом должны давать уменьшение плотности ошибок в 2 раза. А если мы добавим функцию return, обязательные include, шапку коммента сверху, то можно добиться и 3-х кратного уменьшения плотности ошибок.

Ответы>>753289

25 Май, 01:40 #210 #753289

>>753245
А тоньше нельзя?

25 Май, 03:24 #211 #753324

>>744646
>сильно хуже агды?
Агда - dep-types говно с юникодом, написанное на Хаскелле.
Идрис - dep-types говно без юникода, написанное на Хаскелле.
Как ты сам понимаешь, выбор мкжду этими двумя инструментам диктуется твоим отношением к юникоду.

05 Июн, 23:05 #212 #762661

Бамп

Ответы>>767009

11 Июн, 15:27 #213 #767009

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

Ответы>>767454

11 Июн, 23:49 #214 #767454

>>767009
Кто, я?

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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion