Наблюдая определённое число адептов этих замечательных языков, зачинаем второй официальный ОБЪЕДИНЁННЫЙ ЭРЛАНГО-ЭЛИКСИРОТРЕД!Erlang - один из немногих функциональных языков, разработанный специально для применения в реальном мире.OTP - платформа, содержащая огромное количество библиотек для построения приложений на Erlang, рассматривают с языком как единое целое.Изначально ориентированный на высоконагруженные распределённые отказоустойчивые системы, тем не менее имеет более широкую сферу применения.Среди самых популярных приложений, написанных на Erlang стоит упомянуть RabbitMQ, Riak, CouchDB, Wings3D, сервер-сайд WhatsApp и Chef.Язык поддерживает все основные концепции функционального программирования, но при этом не перегружен академичностью, писать на нём легко и приятно.Кажущийся с первого взгляда перегруженным синтаксис очень быстро становится привычным и интуитивно понятным.Elixir - язык созданный для виртуальной машины BEAM, соответственно имеет те же самые преимущества. При этом имеет более привычный синтаксис в духе Ruby/Python, а также унаследовал от Lisp-семейства мощную систему макросов.1. С чего начать? http://www.tryerlang.org/https://github.com/patrickgombert/erlang-koans2. Что читать? Joe Armstrong "Programming Erlang"Fred Hebert "Learn You Some Erlang for great good!"+книги из шапки ньюфаготреда3. В чём писать? Emacs + erlang-modeVim + https://github.com/vim-erlangSublime TextIntellij Idea + Erlang плагин%% принимаются предложения и замечания по шапке треда
>>845348 (OP)https://www.youtube.com/watch?v=rRbY3TMUcgQ
Erlang Factory SF Bay 2016https://www.youtube.com/playlist?list=PLWbHc_FXPo2i4xDdRd-sGvZZiKjSABOk4
Вот о чём давеча думал: хороший оператор |> в Elixir.Создатели языка честно сказали, что спиздили его с F#. В Erlang чего-то такого не хватает.
>>845354Согласен, шикарная вещь.
>>845354В Elixir неплохо было бы завести ещё и <|А лучше |N>, где N - номер аргумента. Как Джое предложил, в коментах к этой статье http://joearms.github.io/2013/05/31/a-week-with-elixir.html когда demeshchuk доебался, что НИТАК КАК В ОКАМЛЕ И ХАЧКИЛЕ.
Ждём охуительных рассказов от тех, кто пишет на работе на Эрланге!
>>845363А они тут есть?
>>845388Ну я пишу (хэлловорлды, пока начальник не видит).
>>845398двачую
>>845348 (OP)Я прям двигатель прогресса. Оп из прошлого треда.
>>845398Похвально. Я тоже.
>>845408Точно помню типов из анкето-треда начала этого года, которые в работе используют Erlang. Да и вакансии есть по СНГ, так что должны быть.
>>845388>>845423Не в тот актор отправил.
Исходники самой вм эрланга открыты?
>>845461Да.
Эрлангил год, в итоге проект начали переводить на скалу. Язык ниче такой, но все жеХуйня без задач
>>845485В какой сфере проект? Какими либами/фреймворками пользовались, типа Yaws, Cowboy, N2O?
>>845485Александр Алексеев, ты?
>>845498Payment systemsmnesya, yaws, N20Изучать, прогать на языке интересно, но когда хорошо придрочишься приходит суровое понимание Хуйня без задачНе скажу за whats app и прочие варгейминги, но многие знакомые ерлангисты рассказывали что и в других фирмах потихоньку мигрируют на друге экосистемы, обычно это jvm\scala. Скалка мертва только в фантазиях борщехлебов с pr. Так что вкатывальщикам, планирующим зашибать баблину потому что язык не дрочит каждый второй школьник как это сейчас с ява, питоном, js и которые надеятся стать таким типа нестандартным спецом язык не рекоммендую.Для фана и ментального онанизма мастхэв.
>>845533Для ментального онанизма ирлонг слишком прост.
Эрланг - это говно, а не язык.Скоко там игр написано на Эрланге-то?
>>845533Реально стоит вкатиться в скалу?
ОП очень плохой человек, очень. Взял смешал говно и конфетку. Вот зачем нужно было сюда пропихивать эликсир. Тот единственный , прочитавший шапку анон
Джо Армстронг - физик, а все физики. как известно, геи.
>>845551Алан Т. одобряет.
>>845533Раз вы не на эликсир переходите, то видимо с самой платформой что-то не так. Чем устроила jvm и не устроила beam? Или вам очень статической типизации захотелось?мимо-эликсир-феникс-фуллтайм-макака
>>845545Нет. Это говно, а не язык, ещё и на убогой кривой платформе. Знаю минимум джва крупных проекта, которые съябывают с жвм и скалы в частности.
>>845556Лол. Куда можно со скалки перекатываться?
>>845559Куда угодно. Язык-то объективно хуёвый, громоздкий и многословный как её отсталая старшая сестра. Олсо, жду уже полномасштабного её форса с дальнейшим вливанием зиллионов индусов в и без того блевотное скала-комьюнити с последующим скатыванием в русский джява мир.
>>845568Ясное дело, что скалка не идеальна, однако совсем не ясно, куда может быть целесообразно валить.На жабу? Так "валить" не требуется, жвм есть жвм.Шарп? Те же яйца, вид сбоку.Традиционная динамикопараша? Кложурапораша? Хаскелль? Выигрыша перед скалкой как-то не видно.
>>845539На скалке много готовых решений для задач фирмы.Расскажи чем сам занимаешься? тут в pr эликсир и феникс форсят как хипстера-наследника RoRНадеюсь это был не ты>>845553Хз, хз мне скалка куда легче зашла, хотя с функциональщиной был знаком еще до нее
>>845540На эрланге пишут сервера для игр, а не игры.
>>845579>тут в pr эликсир и феникс форсят как хипстера-наследника RoRНет, не он, это я. Но всё так и есть. Задачей Ruby/RoR было вернуть фан в программирование, Elixir/Phoenix - славные продолжатели этой традиции. Во-вторых, RoR в своё время был самой прогрессивной веб-бекенд технологией, сейчас эта эстафета перешла к Phoenix и никакие парашные Play 2 даже рядом не валялись.
>>845589Что в нем такого прогрессивного, в чем профит? Кроме очевидных преимуществ, даваемых BEAM и совершенно нинужных в 99 случаях из ста.
>>845590Правильный подход к флоу веб-бекенд приложения вообще, к работе с DB-сущностями, выдаче представления, работе с сокетами и очередями и много другое.Попробуй, базарю ещё захочешь.>совершенно нинужных в 99 случаях из ста.А вот и нихуя. Нужно почти везде, где есть риалтайм.
>>845595Слишком абстрактно звучит. Профиты интереснее выглядят, когда есть хоть какое-нибудь сравнение. В Koa, например, поток мне кажется идеальным: получаем запрос — передаем вниз по цепочке миддлевари — всплываем обратно по этой же цепочке — выдаем ответ. Как он выглядит в Фениксе?>Нужно почти везде, где есть риалтайм.Согласен, нужно, где есть реалтайм. И ненужно для 99 веб-проектов из ста.
>>845596Проход в одну сторону по конвейеру от фронтконтрллера до вью, так же через подключаемые на разных уровнях миддлвари (плаги). Плаги подключаются почти на любом уровне, от объявления пайплайна и декларации его использования в конкретном скоупе в роутере, до использования в любом модуле или даже отдельной функции.Это, плюс простота создания DSLей позволяет писать большую часть приложения вообще декларативно, сама логика есть только чуток в контроллерах и в командах.
>>845596>И ненужно для 99 веб-проектов из ста.Хуй знает, это что-то из мира пехепе и майэскюэль. Давно с таким не встречался.
https://www.youtube.com/watch?v=G0eBDWigORY
>>845579Мы на него с RoR как раз и мигрируем. Работаю в основном с беком, хотя иногда и с фронтом, в уже довольно большом стартапе связанном с займами.
>>845754Ах да, когда выбирали на что мигрировать я был за скалу, но тим лид пропихнул эликсир. Поначалу было обидно, что такой-то шанс поднабраться опыта в скале упустил, но сейчас мне очень даже норм.
>>845546Хипсторы попросили.LFE вот оказался незаслуженно обделён вниманием, в следующей шапке упомяну и его.
>>845761Слушай Batyu. Тимлид дело знает.
А давайте кто-нибудь на мои тупые вопросы ответит:- как создать race condition в эрланге? (я знаю что это можно сделать)- можно ли написать программу которая попадет в дедлок?- алсо, с чего можно начать если хочешь разобраться в моделях параллельных вычислений (акторы, пи-исчисление, cps и все такое). Знаний в CS на уровне первокура, если не меньше
>>845388я пишу на эликсире>>8458091. зачем? Обычно пытаются от них избавится.2. программа в дедлок не попадет, можно заблочить (но это довольно сложно) пару процессов которые циклично будут ждать ответа друг от друга если ты лошпен не прописал таймауты и не юзаешь otp (otp прописывает 5 сек таймаут для всего по дефолту именно чтобы новички не стреляли себе в ногу)3. пи исчисление и cps мне не знакомы, за акторы посмотри вот это https://www.youtube.com/watch?v=7erJ1DV_Tlo
>>845830> зачем? Обычно пытаются от них избавится.Чтобы от них избавиться, надо знать где они могут возникнуть. Ладно, это я балды. Просто мысля на досуге, может возможно доказывать что в такой-то программе при таких-то условиях гарантированно не будет гонок/дедлоков.Ну типа как в coq'е иногда доказывают корректность для safety-critical софта.Жаль я в этом слабо пока шарю.За видео отдельное спасибо
>- как создать race condition в эрланге? (я знаю что это можно сделать)Например, создать gen_server, который инкрементирует значение переменной в своем стейте по сообщению, которое посылает сам себе по таймеру, скажем, каждую миллисекунду. Так же он может вернуть значение этой переменной из стейта. И есть несколько процессов-воркеров из другого gen_server, поведение которых как-то зависит от читаемой переменной. Если при подразумевается, что они должны одновременно прочитать значение и это как-то повлияет на их поведение, то будет тебе типичное состояние гонки.
>>845603Это есть везде. Даже в сраных сервлетах жабовских. Все аргументы какие-то детские и пустозвонкие. Ты можешь что-то конкретное привести? Потому что вот эта вот >простота создания DSLейлишь пук в лужу.
>>845603>В Koa, например, поток мне кажется идеальным: получаем запрос — передаем вниз по цепочке миддлевари — всплываем обратно по этой же цепочке — выдаем ответ.Django и куча других фреймворков работает так уже довольно давно. Но только завезли ЖС-дебилам, сразу начинается ИДЕАЛЬНО, О БОЖЕ 10 ИЗ 10!
>>845916Просто иди нахуй, даун.При желании ты мог бы сам за 15 минут всё нагуглить и посмотреть, но тебе похуй, тебе не интересно, ты просто хочешь устроить срач ни в чём не разбираясь, потому что ты предвзятый пидарас, который всё будет подводить под то, что ЭТА УЖЕ ЕСТЬ ВИЗДЕ, будь это хоть 100 раз не так.Тебе сказали что отличие есть, сказали в каких именно местах. Дальше, если бы ты не был пидарасом, ты мог бы поставить эликсир и феникс за 2 минуты и ещё за 10 минут развернуть прилу и посмотреть что да как. Вместо этого ты начинаешь кукарекать что тебе не объяснили, всё слишком абстрактно, что вот в коа (как будто кто-то обязан знать очередной нодопердильный недофреймворк) всё идеально, сам при этом нихуя толком не объясняя НУ ТАМ МИДЛВАРИ ЕПТА ТУДЫ-СЮДЫ. Уже на этом моменте тебя следовало бы послать к хуям, но тебе всё же ответили на том же уровне как проходит реквест, что там однопроходной конвейер, тоже мидлвари + MVC, только за счёт фениксовой метамагии декларативно описывается на eDSLке. Ты, вместо того чтобы разобраться или хотя бы прочитать одну из сотен сравнительных статей, продолжаешь чирикать что всё это детсад и дайте конкретные примеры. Просто укатывайся обратно в свой жс-тред, анальный ты клован.
>>845987А ну ты значит из тех которым из пустого в порожнее DSL-и из DSL-ей лепить в кайф? А тут еще шедулить шедулером DSL-и можно. И даже делать DSL шедулинга DSL-ей. Охуеть как. Люди там распределенные системы, субд, ОС пишут, программируют вещи в интернете и только руби-программисты декорируют декораторы и перекладывают с формы в базу и обратно (DSL-ями). А эликсир программисты к тому же и пошедулить DSL-ями могут. Системы автоматического управления автомобилем на эликсире не пишут, но если когда-нибудь будет предоставлен API для распределенного шедулинга, можно будет написать DSL для всего этого.
>>845978Ой, иди нахуй. Я не говорил, что это есть только в Koa, я лишь привел пример, с которым мне интересно было увидеть сравнение.
>>845991Что ты хочешь от ребенка? Он еще плохо разбирается в програмной инженерии и не способен отличить яркие фантики от серьезных вещей (судя по тексту). Может, кроме эликсира и сравнить ему не с чем.
>>845994>Koa, Node, JS>Он еще плохо разбирается в програмной инженерии и не способен отличить яркие фантики от серьезных вещей.Сходи зависимости проверь, вдруг нпм-плагин какой удалили.
>>845994>нодоперделка>джиява сервлеты>серьёзных вещейТолсто.
>>845990Прими таблетки.
Не понимаю откуда срач, а всех языках веб параша делается одинаково, будь то си или хаскель, просто на эликсире ее делать более приятно чем на эрланге (есть удобные структуры которые более компактны в коде и можно мапить всякие жисоны туда-сюда). Сам феникс весьма деревянный, экто странный. На рельсах ту же самую вебопарашу делать было много приятней. Единственный плюс эликсира в том, что под капотом эрланг с полным интеропом и это открывает перед разработчиком хуилион возможностей которых в других языках не будет никогда. Но нет блять мы будем сраться по поводу чем мидлвари коа отличаются от мидлварей феникса, пиздец, да ваще ничем не отличаются. То что должно быть важно, так это семантика джаваскрипта и семантика эрланга и что эта семантика позволяет сделать. Кто хочет писать магазины на ноде тот пусть и пишет, это его дело, что ему в этом треде делать?
Завтра аж митап по Эликсиру в ДС:http://tceh.com/event/elixir-lang-moscow/
>>846023А смузи будут подавать?
>>846025Да, с фалафелем.
>>846012Срача нет. Есть майевтика фанбоев в форме ненавязчивого троллинга.
>>846023хуйня стыдная, как в принципе и все митапы. Пару дней назад прошел Erlang User Conference. уже есть видосы и слайды в сети
Затянул эликсир. Но судя по эко-системе эрланга он уж слишком заточен под определенный круг задач, что в общем-то очень даже хорошо.Но минус в том, а что можно на нём эффективно мелкое писать для себя, пользуясь его преимуществами? Подкиньте идей пожалуйста.
>>846565Да хоть гостевухи на нем пиши.
>>846565эликсир скорее заточен именно на одну задачу, делать веб в эрланговских проектах, например такая офигенная фича эрланга как битсинтаксис не реализована в эликсире совсем, эликсир приманивает рэилс разработчиков своим феникс фреймворком. Но потом новички знакомятся с декларативной парадигмой и эрлангом и через пол годика мы получаем нового человека. Почитай programming erlang джо армстронга, learn you some erlang for great good или Erlang/OTP in action. А лучше их все, так как они рассматривают эрланг с разных точек зрения. Если будешь знать эрланг, то будешь знать и эликсир ибо это лишь чуток другой синтаксис и веб-тулинг. Что реализовывать в эрланге чтобы насладиться его возможностями - можешь попробовать сделать мессаджинг, стриминг, распределенную базу данных, какую-нибудь p2p сеть, какой-нибудь биддинг, сервер для ммо, tcp-text бейзед имеджборду лол или платформу по запуску вебприложений (типа хероку). Все это интересные задачи. Только не делай казино, делай полезные системы.
>>846571>Только не делай казино, делай полезные системы.Казино делаю на работе, лол.А коллега посадил на эликсир, ознакомился совсем немного с эко-системой эрланга, очень впечатлен, правда после ооп головного мозга немного мозг восстанавливать надо чтобы программировать по-настоящему.
>>845754Ненавижу вас займеров! Пидоры ебаные! Почему вас как казино всякие не запрещают?
>>846571Что такое биддинг?Распределенный чат хорошая идея для вката в erlang\otp или такого сейчас как говна и спмописных имиджборд?Еще как-то думал о самописной поисковой системе для всем известной социалочки. Такая задача хорошо ложиться на философию erlang\elixir?
>>846725>Что такое биддинг?баннерные\рекламные сети, автоматизированные торги, хотя торги это уже ближе к трейдингу но они оба примерно одинаковые задачи решают, тут есть много маленьких асинхронных операций которые должны в софт-реалтайме отдавать ответы, эрланг для этого дизайнился.>Казино делаю на работе, лол.Жизнь не такая долгая. Программисты получают хорошие деньги и мы можем выбирать, чем нам заниматься. В конце жизни мне лично будет приятно вспоминать о том, что я создал что-то полезное, а не что-то что паразитировало на чужих слабостях.
>>846744> В конце жизни мне лично будет приятно вспоминатьТащем - то программисты занимаются автоматизацией и сокращением рабочих мест. А вообще, вряд ли ты будешь об этом вспоминать в конце жизни.
>>846686Платеж за микроволновку просрочил что ли? Можешь тушиться, мы займами для малого/среднего бизнеса занимаемся.
>>846749>Тащем - то программисты занимаются автоматизацией и сокращением рабочих мест.Тащем-то программисты снижают порог вхождения во многие профессии, и таким образом занимаются созданием новых рабочих мест.Терпи.
>>846773Расскажи это людям, которых уволили/не наняли после переезда на мой софт.
>>845987Вот это хипстерка разнесло!
>>846949битордик_палится.jpg
>>846571>заточен именно на одну задачу, делать вебElixir умеет всё то же само, что Erlang.>фича эрланга как битсинтаксис не реализована в эликсире совсемЩито? Полностью то же самое поддерживается, тот же паттерматчинг, сайзинг, маскирование, указанием типа.http://www.zohaib.me/binary-pattern-matching-in-elixir/>приманивает рэилс разработчиков своим феникс фреймворкомОн пытается приманивать вообще всю прогрессивную молодёжь, а вот Erlang - язык для усатых марсиан из 80х, потому то The Cool Kids Don't Use Erlang, и это заведёт его в могилу рано или поздно. Ещё забавно, что до феникса под BEAM вообще не было нормальных вебфреймворков, всякую сцанину типа чикагобос, зотоник и цмску N2O вообще считать не будем, настолько это всё прошлый век и говно деревянное. Олсо, в качестве критики в сторону Erlang: полное отсутствие хоть какого-то полиморфизма (ad-hoc на арности и типах функций - хуита в стиле паскаля и этого явно мало). Ну и говняный parse_transform (который ещё и выпилили с 17 версии) вместо метапрограммирования, совсем недавно только запилили более менее мощные либы под него, но все они громоздкие, сложные и видно что прикручено сбоку. Elixir же частично решает первую проблему, вводя кложуровские протоколы, и вторую, вводя нативное метапрограммирование, с квазицитированием, антицитированием и т.д. Ещё можно сказать про неймспейсы, нормальные способа импорта, которых в Erlang не было, и которые появились в лишь Elixir. Ну и прочие чисто инрфструктурные штуки, типа адекватного пакетного менеджера (rebar перестал быть говном только с 3 версии, да и в отличие от mix не имеет подключаемых к нему плагинов) и нормальная система кофигурирования. Так же появились стримы (в Erlang никакой эмуляции ленивости вообще никогда не было) и удобные конкурентные абстракции (как блять имея в Erlang такую пиздатую элементную базу не запили даже сраный async/await я не понимаю).Короче, Elixir это именно капитальная модернизация Erlang и перевод его в это тысячелетие, а не просто какой-то там вебтулинг.
>как блять имея в Erlang такую пиздатую элементную базу не запили даже сраный async/await я не понимаюПоясни, зачем оно нужно если есть spawn/receive? Это же другая модель конкуррентности, нет?
>>846979В Elixir тоже есть spawn/receive, просто spawn/receive - это низкоуровневая конкурентная штука. Часто в Erlang поверх него приходится лепить свои абстракции, заворачивать в функции, реализовывать свои протоколы. Elixir вводит две конкурентные абстракции Task и Agent, которые хорошо подходят для общих случаев.
>>846970Вот этому два параллельных процесса. Всё чётко расписал.
>>846970Каюсь! Не видел битсинтаксиса ни разу в эликсире ваще нигде и думал что его нету. Наверное мое отношение предвзято, потому что в эликсире x = x + 1 валидное выражение и поэтому у меня от него перманентный батхерт, хотя и им сейчас и зарабатываю на жизнь. Но как-то протоколы мне никогда и не были нужны, синтаксис эликсира считаю уебищным хоть я и рубиеб в прошлом. hex и mix рили за что эликсир стоит уважать, они ахуенно повлияли на сам эрланг. Это хороший пример как надо рулиться и сейчас ребар3 будет включен в otp в 20-м мажорном релизе. Ленивость можно сделать самому в пару простых функций в исключительных случаях когда она нужна. парстрансформы говно, да, но и за quote unquote в продакшен коде тебя выебут, годится только чтобы делать дсли для библиотек. Таски и агенты удобны чтобы что-то быстро наваять но при первых же изменениях требований всеравно переписываются на генсерверы. Асинк и авейт можно написать самому в пару строчек. В общем наверное я усатый марсианин из 80, только родился в в девяностых. Согласен что некоторые вещи в эликсире сделаны приятно, веб-тулинг например лол. Но x = x + 1 это пиздец имхо. Главная претензия у меня к эликсиру в том, что все эти рюшечки погремушечки и обвесы мешают мыслить декларативно и асинхронно, я понимаю что это звучит очень субъективно. Но блять x = x + 1. Что ты можешь сказать по этому поводу? Реально надо идти на поводу у крутых детей чтобы такое завозить в язык?
>>847093x = x+ 1 это маразм конечноглавное что не нужно, в основном я догадываюсь макаки будут пользовать когда не смогут название новой переменной придуматьт. вкатывальщик-скриптомакак
Приветствую, браться. Я руби-миддл, по совместительству ОП руби-треда. На руби пишу в основном функциональный код с иммутабельными структурами данных, так что Эликсир мне весьма по душе. Кстати, уже сейчас работу на Phoenix можно найти на https://rubyjobs.ru
>>847135http://rubyjobs.ruв HTTPS не смогли, суки
>>847125>>847093От чего у вас, обезьяны, с x = x + 1 жопу рвёт?Вот по существу?
>>847213Садись, два тебе по математике.
>>847244Но ведь я вангую что это не присваивание, а та же декларация с затенением старого имени x как в sml или нет?
>>847093Где работаешь, сколько платят? Сам рубист, хочу давно в эликсир, но никак не срастается пока.>>847135А ну покажи.
>>847213Начитались статей от западных "математиков". У нас в школе информатика была с 10го класса только, и когда нам объясняли x=x+1, никто не удивлялся и не заявлял и "нематематичности". А вот один американский дурачок удивлялся, потом написал об этом статью, и теперь макаки ему подражают, чтобы казаться умнее.
>>847263Два актора адекватуЕще всегда проигрываю со статей о том что 90% программистов не понимают сути указателей и поэтому в принципе не могут в сишку. Почему-то в моем окружении 100% понимают концепцию, даже ваниль-тян в розовых стрингах.
>>847263>>847251При этом эти же макаки нахваливают data immutability в языке. Может даже в одном предложении.
>>847213>>847251Ребайндятся переменные.Да, я отличаю single assignment и immutability, и понимаю что в эликсире убрали только первое, и да это мне не нравится.За sml не скажу, но в Caml есть мутабельность, о которой чаще всего надо специально просить (let mut var = 4). То есть ты явно пишешь что переменная writable.Но Caml собственно для других задач делался, по производительности он кстати делает многие языки и даже может использоваться как числодробилка, но при этом ЕМНИП до сих пор не может в concurrency нормально.Я кодил на питоне, жс, немного перл видел. Все императивные. За пистон скажу что в общем-то всегда, абсолютно без исключений когда видел повторный байндинг переменной вида x=f(x) вне лупа, он был там нах не нужен, ни для читаемости ни для чего-то еще.Ты просто увеличиваешь количество потенциальных ошибок. При том что фп там вообще перпендикулярно.
Работаю на Эрланге (за деньги).Понимаю, что экосистема Эрланга - одна из самых уебищных в индустрии (даже в Питоне лучше). Что синтаксис неприятен императивным дебилам. Что толковых фреймворков для веба нет (N2O-баттхерты в студию). Вопрос: зачем нужен Эликсир? Почему бы не попытаться решить проблемы существующей технологии, не плодя N+1 стандарт? Фред Хеберт вот пилит rebar3, можно помочь ему.OTP-команда наконец-то перевернула календарь и смогла в нормальные багтрекинги, релизы и проч.
>>847277Двачну.
>>847093> Но блять x = x + 1. Что ты можешь сказать по этому поводу?Иммутабельность означает что твои data structures не меняются. Локальный ребиндинг сам по себе не является чем-то плохим, и я понимаю в чём поинт Хосе, который он озвучил ещё в Programming Elixir. Если структуры не меняются ни локально, ни из другой точки программы, ни из другого треда - то переменные никакие не переменные, а просто лейблы, и от их реюза ничего не меняется. Баттхёртят от этого только клоузмайнды под эффектом утёнка, что ой блять как они посмели - убили нашу священную корову. Касательно остальных аргументов НИНУЖНО и МОЖНАСДЕЛАТЬ - ну так тебе не нужно, а кому-то как раз не хватало. Удобство феникса обусловлено как раз метапрограммированием, ты можешь сам его не использовать, но используя феникс - ты уже пользуешься тем, что было сделано с его помощью. Подключая какой-нибудь JaSerializer, который позволяет описывать JSON-API вьюхи вообще декларативно, как модели - ты пользуешься тем, что кто-то запилил либу с едслькой. В Erlang этого не было, и например, авторы mochiweb пердолились с parse_transform, а могли бы сразу юзать нормальные средства, если бы они были. То же самое с протоколами, я вообще не понимаю как они могут быть нинужны, если до них не было нормальных средств делать обобщённые функции над разными типами коллекций и структурами. Всё что в Erlang было, это сраный behaviour и extends (который к счастью выпилили в 17). Наличие Enum это просто охуенно и это обязано именно протоколам. Возможность к той же Ecto Model (да и прочим высокоуровневым структурам) применять функции из стандартных протоколов - повышает органичность, чистоту и понятность кода при работе с ним.>Не видел битсинтаксиса ни разу в эликсире ваще нигде и думал что его нетуЭто, возможно, потому что в Elixir в отличие от Erlang'а есть нормальные строки, а не отмазки, что список циферок это строка. Поэтому в Erlang как правило ложат хуй на стринги и данные от инпута до аутпута протекают в бинарном виде. Это конечно норм, если у тебя там какая-то низкоуровневая штука, вроде пересылки бинарных пакетов туды-сюды по олдовому протоколу. Но когда работаешь с более высокоуровневой областью (да тот же уеб), то нужны именно строки. Поэтому в Elixir I/O тоже в бинари, но вот во всяких либах/фреймворках - опционально, и народ выбирает строки, потому что в отличие от Erlang боятся нечего и строка это просто строка.
>>847278Эм, а почему не Эликсир, если он уже есть? Бери и пользуйся или тебе поныть?
>>847278Может плохая аналогия, но в мире жс появился коффескрипт (тоже рубисты сделали).Потом вышла новая версия ES, и некоторые фичи из коффескрипта засунули в жс (сам коффескрипт сейчас уже малопопулярен, но это другая тема).То же со скалой и жавой.Т.е. это необязтельно плохо.
>>847278Л Е Г А С ИЕГАСИ
>x = x + 1Но ведь это уравнение не разрешимо на области действительных чисел. Что за ерунду портвешковые байтодурачки придумали в очередной раз?
>>847289Ты как сюда попал? На доске такое не пишут.
Смысл персистентных структур в том, что все их версии не уничтожаются до выхода из скоупа. Ребиндинг же уничтожает старую версию, заменяя новой. Десктруктивный апдейт, другими словами. Если он локальный и не содержит сайд-эффектов, то в принципе, вроде даже референс трансперти не нарушается, но если есть работа с World, то тут нужны мандады или линейные типы, чтобы проконтролировать что никто не обосрался. Но так как в Erlang/Elixir все изначально ложили хуй на тайп-сейфети, то всё похуй.
>>847289Очередной питушок из пидорахинского унивирситета, которому с детства отождествили понятия программирования и математики, что по факту пережиток далёкого прошлого, как и местная система образования с царицей наук во главе.
Удивительно, как на одной доске соседствуют чёткие пацанчки и тотальные дебилы.Ананас >>847296 >>847280 два чая тебе за свет в массы.
>>847296>Ребиндинг же уничтожает старую версию, заменяя новойЕсли старая версия используется, то она продолжает использоваться после ребиндинга, если нет то невозбранно уничтожается сборщиком, все логично. Поправь еслине троль я что то недопонел.
Эти плебеи, даже не слышавшие про изоморфизм Карри-Говарда ещё и имеют наглость хамить. Представляю, какого будет их удивление, когда через несколько лет программирование наконец будет сведено математике и станет предметом нормальных людей, а не специально выведенных компьютерных аутистов с их мерзкими указателями и архаичным байтомирком. Даже не знаю что им придётся предпринять, устроиться в ближайшую закусочную официантом или же сразу наложить на себя свои грязные мазутные ручонки.
http://blog.plataformatec.com.br/2016/01/comparing-elixir-and-erlang-variables/Ну вот собсна адекватный пост на тему от эликсироадепта.Я конечно несогласен вообще ни разу, но свой пойнт он объясняет.Ребятам хочется так.x = chlenx = f(x)x = g(x)x = h(x)Но эти проблемы прекрасно решаются компоновкой функций.Пока писал еще параллельно функцию пайп написал.W = pipe(x, [f, g, h]). Делает то же самое абсолютно, простой фолд.ЕМНИП, сам факт того что эликсирщики добавили в язык иероглиф ^ который гвоздями прибивает переменную, характеризует.
>>847304Как она может продолжать использоваться? Её потёрли. Персистентные структуры, это когда ты такой A = something:new(),B = something:do_something(A),C = something:do_something_else(B)и у тебя есть все версии структуры, самая первая связана с A, связана с B, третья с C и они будут уничтожены только тогда, когда ты выйдешь из скоупа. С ребиндингом же:a = Something.new()a = Something.do_something(a) %хуяк тут проебали старую версию структуры, потому что a теперь связана с её новой версией, а со старой уже ничего не связано, но при этом ты ещё не вышел из скоупаb = Something.do_something_else(a)
>>847307> маняфантазии борщехлеба
>>847313>вторая связана с Bfastfix
>>847313персистентность тащем-то не означает, что прям нужно хранить все состояния. Достаточно иметь контрольную точку и команду изменяющую состояние. Тогда полностью персистентная структура сводится к дереву команд применяемых к начальному состоянию.
>>847316хотя если команда деструктивная, то дельту измениний надобы сохранить. да
>>847313>хуяк тут проебали старую версию структуры, потому что a теперь связана с её новой версией, а со старой уже ничего не связано, но при этом ты ещё не вышел из скоупаИ что в этом плохого? Пусть память жрёт, что ли?a = Something.new()a = Something.do_something(a)b = aa = Something.do_something_else(a)И пользуйся старым a через b, если тебе это надо. На тебе аналогичную претензию:a = f (2 + 2) %хуяк, тут проебали результат выражения 2 + 2, но при этом ты ещё не вышел из скоупаb = do_something(a);
>>847326> Пусть память жрёт, что ли?Вот вообще ни разу не аргумент.Когда есть single assignment, о корректности программы проще рассуждать.Плохо когда в один момент вычислений Х=2, в другой Х=4.Я хочу знать что где бы в рамках одного скоупа я ни увидел Х, это именно тот же самый Х.И еще раз, функции прекрасно пайпаются и компонуются, и получается читаемо даже с синтаксисом эрланга.Тебе не нужно байндить переменную больше одного раза, просто собери все функции в одну.Или в несколько функций, если хочешь сохранять промежуточные результаты.
>>847326Ты просто не понял о чём идёт речь.
>>847280>Локальный ребиндинг сам по себе не является чем-то плохимНо зачем? Я, как и пара анонов сверху поддерживаю идею что надо делать композицию функций и преобразовывать структуру данных декларативно, а не дробить все на какие-то блядские шажочки и биндить все к одной переменной как какой-то императивный дебил, конечно в эликсире нету всяких точек и долларов как в хацкеле, но есть |>, так зачем надо перебиндивать переменные, какую проблему это решает когда в исходном эрланге уже был сингл асайнмент. Какую проблему этим самым решили?Да, убили мою священную корову и я не понимаю зачем это было делать.
>>847307Вообще то не примазывайся, сейчас макают псевдо-функциональщиков, подорвавшихся на x = x + 1. До байтоёбов очередь еще не дошла. Так что не надо тут стрелочки переводить, в очередь на порку.
>>847350Деклартивно преобразовал тебе за щеку. Пнятнько?
>>847385Пнятненько, ожидал какую-то нормальную дискуссию на дваче, был дураком. Исправлюсь.В общем всех эликсирщиков прошу простить меня, я зря поебывал им голову со своей декларативностью, кому это надо когда есть новые быстрые рельсы. В любом случае эликсир это позитивное явление, я его всячески поддерживаю.
http://thisotplife.tumblr.com/post/79636930817/seeing-people-flock-to-elixir
>>847388Спору нет, позитивное. Два чая за оптимизм.
>>847350>и я не понимаю зачем это было делатьА почему это не делать? Убрали ненужное ограничение, которое ничего не меняет.>что надо делать композицию функций и преобразовывать структуру данных декларативноНу понимаешь, имея лишь голый |> без функторов/монад ты не можешь делать чейнинг всего. Там где значение подходящие - можешь, но там есть сайд-эффекты или где нужно что-то из чего-то распаковывать - нет. Допустим у тебя есть функция a которая возвращает эрланговский вариант Maybe, то есть {ok, Result} | {error, Reason}, где Result - скажем список. А вторая функция b принимает список. Ты уже не можешь их счейнить. Были бы функторы/монады, всё в инстансе было бы определено, а так - придётся пошагово ручками распаковывать. Да и вообще есть много мест где нужно именно выстраивать порядок вычисления, и в том же Haskell зделоли do-нотацию для эмуляции императивности, чтобы не пердолится с лямбдами и их склейкой, да и просто есть let и where чтоб не подставлять всё в огромную лямбду, тут даже не в порядке вычисления дело, а в удобстве и понятности записи.
итт какие-то говнари от ФП пытаются умничать как миломимо-элитарный-хаскеллист-кодачер
>>847401>Ты уже не можешь их счейнитьhttp://elixir-lang.org/docs/stable/elixir/Kernel.SpecialForms.html#with/1
>>847401это понятно что чейнинг всего пайплайн оператором сделать нельзя и что последовательные конструкции обязательно нужны. Но ребиндинг я считаю ведет в ад, имхо это ненужная и непонятно чем мотивированная штука. Сингл асайнмент это не просто ненужное ограничение, это то как ты мыслишь о своей программе. Ты привязываешь терм к переменной и строишь следующие термы основываясь на существующих термах. Пускай ты и не применяешь точки с долларами и не вяжешь все в лямбды, но ты явно видишь как данные преобразовываются в процессе. Когда ты видишь что у тебя произошла ошибка при обработке терма привязанного к переменной X1 ты можешь легко найти где этот терм был привязан ты явно видишь все этапы которые проходят с структурой данных, явно видишь как из терма X выходит терм X2. По итогу я так и не понял чем ребиндинг мотивирован, разве что X0 X X1 X2 выглядят не очень красиво, неужели это и есть причина?
>>847406Ну конечно, куда нам до тебя.
>>847401> ты не можешь делать чейнинг всегоЗачем тебе в цепочке больше 1 функции с сайд-эффетом?Можешь пример привести?> Допустим у тебя есть функция a которая возвращает эрланговский вариант Maybe, то есть {ok, Result} | {error, Reason}, где Result - скажем список. А вторая функция b принимает список.Мы говорим про язык с исключениями, я не стану просто делать {ok, Result}.Если что будет рантайм ошибка при чейнинге, возможно предусмотренная и пойманная (есть try/catch).А если не предусмотренная то пускай крашится.
>>847432> неужели это и есть причинаАга
>>847406Но в хаскеле же нет теории категорий
>>847432С ребиндингом ты точно так же идёшь вверх от ошибки и смотришь, чему твоя Х равна. Мне кажется, ты просто шедовинг с мутабельностью путаешь.
>>847406Сочувствую.
>>847466А если без траллинга, чего плохого в хаскеле?Я руками не трогал, но видится пока один недостаток -- слишком много способов сделать одно и тоже.
>>847476Ничего в нем плохого нету. Прекрасный язык. просто есть много долбоебов которые зазря выебываются и зарабатывают языку хуевую репутацию у джавистов. Хаскель изучается за пару недель под пивко и несет в себе многие реально крутые концепции. Я бы советовал всем попробовать пописать на хаскеле.
>>847476>слишком много способов сделать одно и тожеЭто скорее плюс.Это значит, что сам язык очень простой и элегантный, а все эти заигрывания с императивным программированием - просто синтаксический сахар к уже привычным лямбдам.
>>847476А я разве писал что - то плохое о няшном?Сочувствовал я мимо-элитарный-хаскеллист-кодачер-у.
>>847539>>847538>>847483>>847476Хаскелисты в треде, все в империатив!
>>846970>Олсо, в качестве критики в сторону Erlang: полное отсутствие хоть какого-то полиморфизма (ad-hoc на арности и типах функций - хуита в стиле паскаля и этого явно мало)Чем не устраивает полиморфизм на уровне модулей?
>>847256>А ну покажи.Мониторить надо. Не знаю, может это и не оптимальный путь поиска вакансий. Но это первое место, из тех что я мониторю, где они начали появляться. На апворке, кстати, как с этим дела?
Pid ! {self(), bump}.
Люди поясните очень подробно за это?x = x + 1 Зачем оно надо? Не нарушает ли это идеологию самого инструмента?И есть ли всё-таки переменные в эликсире?
>>850347>Зачем оно надо?Локальные деструктивные апдейты. Т.е. реюз уже объявленных лейблов.>Не нарушает ли это идеологию самого инструмента?Нет.>И есть ли всё-таки переменные в эликсире? Нет, это просто переписываемые лейблы.А вообще прочитай тред, выше всё разжёвано.
>>850286self() ! bump же. А еще лучше timer:send_after(24 60 60 * 1000, self(), bump).
Анон, я довольно часто слышу про ужасный деревянный тулинг у Erlang, расскажи как оно на самом деле? Сам пока пользовался только rebar3.
>>853979>про ужасный деревянный тулинг у ErlangДа было дело с билдингом аппов и релизов, но уже в прошлом. Теперь есть rabar3, в который, вроде, даже relx вшили, так что кроме него тебе вряд ли что-то ещё понадобится. Ну может ещё relflow от RJ'ея для упрощённого менеджмента аппапов https://github.com/RJ/relflow
>>853979есть такая проблема, ее все видят, она актуальна, ее решают, как отписал анон сверху rebar3 решает почти все проблемы, но там где не решает тебе помогут в мейлинг листе или в irc
>>854105>>854144Мэйкфайлы это прошлый век или как?
>>854417Да, прошлый век. Встречаются только в старых проектах, написанных когда ребар ещё не был распространён. Или в проектах, где NIF'ы или ещё какая нативщина собирается.
Вот смотрите. Я вообще ничего не понимаю в этом вашем ерланге. Как установить https://github.com/groupoid/exe и https://github.com/groupoid/om ?
>>862811это ребар проекты, читай документацию к rebar. Гугли как компилировать и загружать erlang код.Забавно, знакомится с эрлангом из блога Максимушки, не думаю что это круто, так может сработать защитный рефлекс. Почитай первые пару глав из Programing Erlang где рассказывают про шелл и как загружать код с основными конструкциями языка.
>>862846Мне не эрланг как таковой интересен, а именно этот максимушкин прувер. И вот тут-то я и понял, что даже поставить его не в состоянии. Т.е. мне нужно поставить вот это http://erlang.org/download/otp_win32_19.1.exe потом ребар н-р как написано тут https://habrahabr.ru/post/112681/ правильно?
>>862851Тебе нужна виртуалка с прыщами (да хоть убунту). Под виндой без серьезного опыта с Эрлангом заебешься все заводить.
>>845348 (OP)Аноны, какая сейчас ситуация на рынке с эрлангом?Например если я хочу вкатиться и найти работу с эрлангом/эликсиром, но опыта у меня нет и диплома специализированного тоже нет.Смотрят ли вообще на диплом или не важно? Если я приду устраиваться с дипломом спортфака не обсмеют ли?
>>862872В целом диплом не так важен, но без опыта твои шансы стремятся к нулю. Все всё понимают, поэтому экспертного знания Erlang/Elixir требовать вряд ли будут, но пару лет опыта Джавы/Крестов/Питона иметь нужно.Учитывая ~5 вакансий на весь ДС, шансы у тебя очень хуёвые.
>>862872есть вакансии, но их мало. Не знаю как дела в ДС, я из Минска. У нас тут только гдето в 2-3х местах пишут на эрланге и они не хайрят. Я сам работаю удаленно. Нужно чтобы у тебя было годика 2-3 успешной разработки бекенда на других технологиях. Хороший английский и 2-3 книги об эрланге за плечами, что-то сделанное на гитхабе на эрланге и понимание акторной модели, лет ит краш. То есть реально hard way, но оно того стоит. поверь мне, это стоило того чтобы хлебать борщи и уходить с насиженных мест.
>>862917Анон, будь добр ответить на несколько вопросов, раз уж ты пишешь на Эрланге. 1) Какой фреймворк/сервер/набор библиотек используете?2) Приходиться ли писать NIFы?3) Какие вообще языки нужны на работе, помимо Erlang?Сам я пишу асинхронщину на Питоне, работу менять не собираюсь, ибо у меня и тут всё довольно интересно в плане задач и технологий. Через год, может, покатаюсь по собеседованиям на Эрланг/Эликсир ради интереса. И я другой анон, если что.
>>862917> Хороший английскийЕсть. Читаю документацию и книги на нем без проблем, могу говорить и слушать>2-3 книги об эрланге за плечамиТоже есть, даже больше. >что-то сделанное на гитхабе на эрлангеДелаю как раз проект на Фениксетот самый кун с дипломом спортфака
>>862879А вот что шансы хуевые жаль. Эрланг мне очень нравится и писать на нем в радость. Даже код читать в принципе легко и понятно.
>>863091Начни с чего попроще и популярнее (Нода, Руби, Пайтон, etc), дальше видно будет.
>>862951Сейчас пишу на эликсире самую обыкновенную бизнесс логику лол, ту же, что писал и на других технологиях. Но в функциональном языке все это делать много интересней и многие вещи много гибче, с теми же объектами в функциональном языке ты рулишься, но мыслишь немного под другим углом и можно и нужно использовать в некоторых местах объектный подход в котором у тебя вместо объекта рекорд который обслуживают чистые функции из одноименного модуля. Просто надо немного мыслить под другим углом, это очень круто так как каждый день на работе что-то новое открываешь и код написанный месяц назад уже знаешь как улучшить, я сейчас можно сказать эрлангист джуниор. Работу искал лениво пару месяцев, работая на прошлой. Потом меня все заебало, я решил, что я делаю сейчас полную хуйню и от меня требуется именно такая хуйня и весь энвайронмент способствует только написанию хуйни и созданию илюзии продуктивности. И я не могу больше сидеть в этом болоте, быть тупым выебщиком, решил твердо что буду писать теперь на эрланге(или эликсире, я делал упор именно на эрланг и читал книги по эрлангу и перся именно по нему, но эликсир и эрланг в принципе одна хуйня, кроме некоторых как приятных так и неприятных моментов, я тот долбоеб сверху который залечивал за декларативность и то что я за сингл асайнмент топлю) и сыбал с работы в пустоту, дальше нашел работу через 3 месяца, сбережения позволяли в принципе год не работать и я параллельно иногда ходил на собесы на маминых сеньеров и тимлидов по старым технологиям и только больше утверждался в том что мне с этими чуваками не место и что я лучше буду джуниором эрлангистом чем тупым сеньером с выслугой в команде где вообще никто нихуя не знает что они делают. за все это время прошел около 3-х технических собесов, все удаленные. Везде меня какой-нибудь прикольный чувак долго распрашивал про OTP, асинхронность, платиновые вопросы про переполнение мейлбокса, как смоделировать в акторах решение какой-нибудь проблемы и всегда как-нибудь унижал, но все после собеса дружественно советовали что подучить и были в целом рады что кто-то стремится изучить эрланг. Было не просто нихуя, но сейчас я очень доволен тем чем я занимаюсь и то что за мной присматривает чувак с 10 годами опыта разработки, 5 из которых на эрланге. Учишься очень быстро и опытный человек может донести до тебя, как правильно надо мыслить в пару предложений. Удачи, мне помогло то что я полностью комитнул что теперь буду писать только на эрланге и мне похуй на всех этих эйчаров и рекрутеров которые меня баксом заманивают писать херню, хотя в некоторых местах было реально тяжко, вроде и знаешь что там говнокод и команда даунов, но предлагают оче дохуя, но сейчас не жалею ни о чем, напротив как будто всю эту тему заново переживаю.
>>862951забыл на вопросы ответить лол>>8631931. Феникс, экто, таймекс, поизон, это то что я юзаю2. Не приходилось3. Мне никакие, я пишу чисто на эликсире и возможно когда-нибудь меня пустят в хардкорную часть проекта написанную на эрланге, но наверное нет лол. Но знаю еще хаскел и кложу, изучал просто чтобы прошарить функциональную парадигму поглубже.Вообще есть типа платиновый джентельменский набор из ковбоя, рэнча, пулбоя, какой-нибудь amq, xmpp, ребар. Но это специфично для проекта. Про это будет в описании вакансии, но я изучал все это просто чтобы повысить свои шансы на найм
>>863193>>863200Спасибо за ответ, теперь ты мой герой.
>>862951Я не тот анон, но тоже отвечу.1) Никаких фреймворков, ребар для построения и компиляции, используем и cowboy и misultin, последний только для вебсокета. 2) Крайне редко, в основном в случаях, где сильно нужна производительность и никаких других вариантов не осталось. Писать нифы это охуенная ебля в жопу, без лишней надобности связываться не стоит.3) Зависит от работы, очевидно, но точно надо уметь в какую-нибудь скриптопарашу (хотя бы баш).
>>863193научись, хотя бы иногда нажимать кнопку 'enter', тыж программист, блядж.>>863193а за рассказ спасибо.
>>863330И тебе спасибо.
Здраститя, это опять я выхожу на связь и опять по поводу максимкиного прувера. Поставил бубунту, поставил эрланг, сконпелял ребар. Что делать дальше, как поставить >>862811 это?
>>865666Спроси у самого максимки, чего ты.
>>865700Засмеют, стесняюсь жи. У него в жежешечке такие умные камменты... Но видимо других вариантов нет, напишу Максимке.
>>865666>>865765В итоге окажется, что это нихуя не работает, а написанный код-просто бред максимки-шизофреника лол.
>>866844Зря ты на Максимку гонишь, оно реально конпеляется и даже работает. Там, правда, ошибка странная вылезает, но м.б. это я какую-то хуйню сделал. Да, если кроме меня это кому-то интересно, весь процесс установки:erlang:sudo apt-get updatesudo apt-get install erlangrebar:git clone git://github.com/rebar/rebar.gitcd rebar./bootstrapinotify:sudo apt-get install inotify-toolsom:git clone git://github.com/groupoid/om && cd ommake./mad shexe:git clone git://github.com/groupoid/exe && cd exemake./mad sh
>>865666>>867065>Консолечка замаскирована под древний терминалНихуя ты эстет нет
Если я уже хорошо знаком с ФП и хочу как следует разобраться в эрланге, то книжка Армстронга мне подойдет или нет?
>>867152если уже знаком с фп, то значит опыт уже есть, можно и просто референс прочитать за вечерhttp://erlang.org/doc/reference_manual/users_guide.htmlhttp://erlang.org/doc/efficiency_guide/users_guide.htmlhttp://erlang.org/doc/design_principles/users_guide.html
>>867184А если я хочу именно пдф, да еще и со всякими советами от бывалого (тм), обсуждением спорных решений и всем таким прочим? Публицистичское повествование хочу, а не сухие доки. Мне нравится, как Армстронг пишет и говорит. Или в той книжке слишком много воды для меня будет?
>>867189вторая ссылка - не сухие доки, а именно советы.Книга норм, воды не так много (500 страниц-то), задания всякие
>>867202Задания, йей! Ок, спасибо, прочитаю и то, и то.
>>867152Лучше erlang and otp in action наверни.
В чем логика "арности", кроме другого названия количества аргументов у функции?после амстронга Learn You Some Erlang for great good стоти читать или сразу как >>869722 этот анон советует? С фп тоже знаком
>>869907Математическое название же.Либо после Армстронга пиздуй практиковаться, либо читай всё, лол.ФП в эрланге с гулькин нос.
Наткнулся на блог феерически ебанутого айтишника из России. Жалуется на быдло, которое живет в его подъезде и его избивает:http://keinkeinkein.livejournal.com/127017.html?thread=2362665#t2362665Считает что Россией должен управлять искусственный интеллект и технократы. Искусственный интеллект предлагает писать на Эрланге:http://keinkeinkein.livejournal.com/110772.htmlРадуется успехам своих украинских собратьев:http://keinkeinkein.livejournal.com/122965.htmlТам же в комментах призывает всех россиян и украинцев войти в айти:http://keinkeinkein.livejournal.com/122965.html?thread=2181717#t2181717
>>870056>призывает всех россиян и украинцев войти в айтиВот это пидор, блеать!Ишь, чего захотел! Из нас индусов сделать надумал?Да ему надо в жопу паяльник раскалённый поглубже засунуть за его галерную пропаганду!
Так что все таки на эрланге для веба пизже?
>>872676asp.net, j2ee, php, руби в конце-концов. Только не Эрланг, нахуя он там? Не, ну с вебсокетами еще можно попердолиться, но... Есть же сециально заточеные под веб платформы.мимоэрлангоёб
>>872676n2o
>>872727максимка-шизик, залогинься.
>>872686Чем тебе связка эликсир + феникс не угодила?
>>872676Эликсир или кложа, если хочется быть в тренде.
>>872686Для чего тогда ты используешь эрланг?Хочу замутить веб приложение чтобы прочувствовать эрланг, но с другой стороны не хочеться садиться на точеный стул, а взять какую-нибудь ебу, которую активнее используют в продакшне>>872775Планирую сначала писать как диды, на эрланге, а уже потом перекатываться на эликсирА что на джавалиспе можно писать что-то серьезное? я думал чисто игрушечный язык, для скобкоебов
>>872847>Хочу замутить веб приложение чтобы прочувствовать эрланг, но с другой стороны не хочеться садиться на точеный стул, а взять какую-нибудь ебу, которую активнее используют в продакшнеУ меня такая же болезнь, двачую вопрос этого господина
>>872847> А что на джавалиспе можно писать что-то серьезное? я думал чисто игрушечный язык, для скобкоебовФронтенд более чем (имхо это даже единственный способ писать фронт, ибо js/elm/pure/прочее - говно). А вот бэк хз, ничего интересного для бэкэнда я там не нашел, разве что можно использовать edn вместо json как формат между бэком и фронтом).
>>872847Про фронтенд уже сказали, сейчас это самая крутая штука для фронтенда ВООБЩЕ. Бэк - ну, среди эрлангеров проводили опрос, типа какой бы язык вы использовали вместо эрланга. Самым популярным вариантом была кложа, потом скала с акторами.
>>872953>>873036Пзц, подробнее ознакомился с вашим лиспом и возникло желание попробовать написать фронт на нем. Таким и темпами я так и останусь до старости мамкины борщи хлебать
>>873083Чому борщи? Ты ж вместе с этим будешь осваивать реакты-хуякты и правильную архитектуру клиентсайда, вполне потом можешь взять и на жс-миддла пойти.
>>873094Только Кложура усралась полутора конторам, если честно.
>>873179Как и ерланг, как и хаскель, как и эфшарп, как и скала. Они все в одном эшелоне, просто кложа (и эфшарп) самые молодые из них.
>>873184Да, всё это борщехлёбство в той или иной степени, так что всё это мы пишем для себя в стол и унылый гитхаб, только особо упорные и удачливые проталкивают в прод.
>>873202Но это неплохо если ты работаешь конечно, ведь иначе выгоришь. Особенно когда ты JS программист.
>>873202Ну, не скажи. На самом деле это проще, чем кажется. То есть упорные и удачливые, да, но удача тут сочтоит только в адекватной команде и подходящем проекте.Ну и опять же, если дрочишь кложурсчкрипт, то прокачивается навык клиентсайда вообще, так что профит в любом случае. Если дрочишь ерланг, прокачивается навык дистрибьютед-хуютед и всего такого. Опять профит. Так что все не так плохо.
Хочу верить братишки, а то иногда тоска такая нападает, что кажется тщетны все эти прочитанные книги и написанные кластеры метапарадигм.
Двачаны, а в эрлане вся эта типизация активно используется? Вроде годнота, не качкель конеш, но на уровне. При желании можно такую себе статику динамировать.
>>873245Не жди, пока дядя соизволит тебе выбрать нормальный язык! Открывай свой бизнес по написанию динамических оперденей сейчас!
>>873279Ерлонг? Типы? А?
>>873292Type specs + Dialyzer предоставляет что-то похожее на статический анализ кода. LYSE не читал что ли?
>>873371> статический анализ кода> типы
>>873480Не так выразился, может, в общем проверяет функции на соответствие type/spec декларациям.
>>873480И чем это принципиально отличается от проверки типов компилятором?
>>873529Стиль написания друггй же. И интеграции типов в рантайм нет.
Если феникс такой охуенный, то почему на нем ничего не пишут?
>>876683Да в общем те же, почему до сих пор кто-то пишет на устаревших языках: страх, закостенелость и т.д..
>>876683Ну и проще вчерашних верстальщиков набрать на Ноде писать, ты понел.
>>876683Что не пишут? Лендинги и визитки?
Ну по логике если это такой охуенный фреймворк то должны появляться крутые проекты, которые теперь под силу написать без батальона манкискриптеров, но что-то я такого и близко не наблюдаю. С руби например был твитер, гитхаб и тысячи других. Я бы и рад погрузиться, но если такие хвалебные оды поют прогеры, открывшие для себя другие акценты в вычислительной модели или беам то нахуй надо. Есть ли в треде критически настроенный анон, который обмазался фениксом и по-хардкору, без сектанства пояснит за все плюсы и минусы?
заебали, что за додики на зекаче пошли>>876960кому ты нахуй нужен, убеждать тебя что оно тебе нужноесли бы хотел попробовать - давно бы уже всё поставил и проверил, подходит тебе оно или нет, а ты ломаешься как барышня, ждёшь чтоб тебя накормили советами мудрымикороче, так и быть, поясняю - эликсир/феникс - нинужон, нет там ничего интересного, это всё хипсторы тупые, задач тоже нет, проходи мимо, если кто-то утверждает обратное - это фанбой, его не слушай
>>876989>кому ты нахуй нужен>ломаешься как барышняХуя тебя рвануло. Дедлайн проебал? Никто не ломается, только времени не анлим и когда оно будет, тогда и попробую. А возможно и нет, если окажется что есть куча минусов, о которых фанбои и создатели фреймворка часто умалчивают и все "мелочи" вылазят когда ты уже закоммитил кучу времени впустую.
>>877006если времени нету, то откуда у тебя возьмется время на изучение эрланга? Книжки надо читать, просто так взять и начать быдлить как на ноде и руби не получится.
>>877006Дура, над тобой весь тред смеется, ты нахуя сюда приперся, клоун?
>>877983>весь тредОдин шизик говорит за весь тред, спешите видеть.
>>878420двачую. Посмешище - это когда кто-то говорит за всех какую-то хуйню.
>>878569>>878420семен плес
Я тут угорел по метапрограммированию. Расширил немного ecto своими макро которые экспандятся в макро экто, которые экспандятся в эликсир, которые экспандятся в эрланг. Зависимость есть, начал к эликсиру теперь лучше относится, система макросов крутая.Читал сразу цикл этих статейhttp://theerlangelist.com/article/macros_1потом Metaprogramming ElixirНу еще вот это было полезно чтобы понять чем postwalk отличается от prewalk https://en.wikipedia.org/wiki/Tree_traversal
>>878948А я нашёл-таки «Programming Phoenix» в формате PDF. Апрельский, первая версия.
>>879658она же не дорогая. Но в принципе и знаний там сильно крутых сакральных нету. Если бы я знал как вытереть аннотации что книга подготовлена для меня то скинул бы последнюю.
На доу объявление висит, мол, требуется сервер-сайд си шарп девелопер со знанием эрланг:https://jobs.dou.ua/companies/crytek-ukraine/vacancies/35342/Кто пойдёт?
>>879663Но ведь это же не эрлангерская вакансия.
>>879708Это я на счёт того, что на Эрланге работы нет.Но! Он таки будет ПЛЮСОМ!
>>879719>>Это я на счёт того, что на Эрланге работы нет.>Но! Он таки будет ПЛЮСОМ!Но ведь я работаю на эликсире фултайм и вижу постоянно новые вакансии на апворке и эрланг централе :3
>>879722У тебя видения.
>>879724
>>879722Что пилите?
>>879771Мужей своих.
>>879791Тебе бы стендапером работать, дружище.
>>863193Дико хочу повторить твой путь. Подскажи, с чего начать ? Чем можно новису набить портфолио на эрланге/эликсире?
>>880143Любая асинхронная поебота. Можешь написать банковский аккаунтинг с всякими крутыми транзакциями чтобы много подключений тянуло без потерь бабла и написать нагрузочные тесты для этой штуки, собирать проценты с транзакций на отдельный счет и расчитывать опердени для сбора годовых со счета. Вроде прикольная задачка на пару вечеров но прикольно будет смотреться в гитхабе.Я когда искал работу делал стриминговый сервер, как у джо армстронга, только OTP совместимы на рэнче с выводом текущих треков и списком подключений через ковбойский rest. Еще у меня была идея запилить анонимный мессаджинг полностью без хранилища, даже без очередей и шифровать трафик своими сертификатами или пользовательскими ключами. Вроде тоже на пару вечеров.Можно сделать что-нибудь прикольное с сбором данных из многих источников. Хоть банального поискового паука запилить который будет в тыщу потоков сканить даркнет. В общем все где надо много потоков будет прикольно делать на эрланге\эликсире и обычно не долго, если тебе не надо сотня формочек или сотня интеграций с другими сервисами, это очень много времени занимает и в резюме кисло смотрится и ваще не очень понятно, зачем это писать на эрланге
сажа приклеилась>>880147
>>880147Спасибо!А что по функциональным и параллельным алгоритмам лучше почитать ?
>>880150Я думаю лучше всего почитать книги по эрлангу в первую очередь. Programming Erlang 2nd edition, Erlang and OTP in Action эти книги нацелены на то чтобы именно в прикладном стиле тебе объяснить как что делать и почему в эрланге сделанно именно так, а не по другому. В общем просто мастхев.А если погружаться в теорию то в первую очередь надо выкупить акторную модель, но ты ее в принципе и так выкупишь когда книжки прочитаешь.https://www.youtube.com/watch?v=7erJ1DV_TloИ еще есть крутая книга, я сам ее не читал, она у меня следующая к прочтению. Выглядит более чем сочно и алгебраично. Некоторыми продвинутыми эрланг пацанами считается чем-то вроде библии :)http://usingcsp.com/cspbook.pdfНу и очень поможет смотреть выступления пацанов с Erlang Factory и Erlang User Conference.https://www.youtube.com/user/ErlangSolutionsОсобенно те, где чуваки рассказывают про свои проекты, хорошим тоном считается не просто рассказать как мы тут все пиздато сделали, покупайте наш продукт а именно про то как чуваки преодолевали сложности, они там на каждом проекте уникальные у челов.
>>880152СпасибоПока что у меня абсолютно ебанутая идея есть точнее даже две типа для десктопного эрланг приложения. На неделе приступлю и параллельно читать буду.Программинг эрланг уже начал
Десктопное эрланг приложение? Забавно.Но я думаю что эрланг раскрывает себя именно при разработке сервера или распределенной системы.
>>845348 (OP)>для применения в реальном миреА остальные разработаны для применения в мире единорогов? Что за поебень!
>>880187>А остальные разработаны для применения в мире единорогов? Что за поебень!Хуево написано, имелось в виду что он дизайнился для решения конкретных проблем, а именно, написания динамических асинхронных опердений без обязательного приседания со штангой
>>880191Спасибо, что за меня ответил.Пальцем не будем показывать, но есть языки, которые очень долго выходят, если вообще это делают, из своих альма-матер и даже потом споры, зачем они нужны, не утихают. Здесь же изначальная ориентация на решение определённых задач + батарейки в виде OTP/Mnesia/etc.
>>880184Ну, мне потребуются достаточно хардкорные реал-тайм вычисления и обмен данными между процессорамиМожет я потом это даже в железку запихаю, хз
>>880333процессамиfix
>>880333>Ну, мне потребуются достаточно хардкорные реал-тайм вычисления и обмен данными между процессамиЕсли тебе там потребуются реально хардкорные еще и реалтайм вычисления то эрланг может там всосать, он не самый быстрый парень на деревне. Ты не смотрел на другие технологии. На эрланге вычисления будут надежными распределенными, но не быстрыми. Для того чтобы их сделать быстрыми надо сделать дофига финтов ушами. В общем я предупредил. Лучше подумай хорошенько подходит ли он под твою задачу
>>880343А что у нас есть функциональное и более быстрое? Я на си не хочу писать, нахуй нахуй Не то что бы там было что то совсем хардкорное, но непрерывно ведущееся преобразование фурье - как ? Достаточно хардкорно? И/или генерация звука, напримерв принципе сосущие части можно и на си написать же, насколько я понимаю - механизм интеграции есть
>>880348Преобразование фурье и генерацию звука должен вытянуть. Попробуй сразу запилить эти штуки и сделать бенчмарки.Механизм есть, но там тысяча подводных камней. Если тебе надо 1 процесс который будет что-то генерировать и это надо будет потом распылять на много потоков то напишешь линкованный процесс средней кровью, если тебе таких процессов надо много то появится боль и кровь будет большая. OCaml посмотри наверное, я на нем не писал но вроде как он хорошо подходит именно для десктопных шустрых прилаг, свяжешь ее потом по сокету с своим эрланг сервером
>>880348>в принципе сосущие части можно и на си написать же, насколько я понимаю - механизм интеграции естьЕсли там нет чего-то, для чего НУ ВООБЩЕ ПИЗДЕЦ КАК нужна скорость, то сосущие части проще и быстрее будет написать на джаве (в математике она будет куда быстрее эрланга), джава с эрлангом интегрирована хорошо.
>>880333Бери С++ и не выебывайся. В обработке сигналов нет ничего, что требовало функциональный язык, даже в теории.
>>880456>>880664Джава то интегрирована хорошо, но мне лично например бы совесть не позволила писать на джаве или плюсах, у меня это 2 самых нелюбимых ЯП, я бы все-таки постарался либо написать на языках которые заточены под десктоп или же попердолился немного с pure c. Но я диванный инженер-системотехник которого в универе целый год когда-то ебали сишечкой, так что может это для меня сишечка так проста и няшна. Но это все вкусовщина.Одно я знаю точно, эрланг врядли себя проявит как хорошее решение для десктопного приложения. Хотя чем черт не шутит.
>>880674>>880664НО на плюсах есть много готовых библиотек для работы с сигналами, я когда-то интересовался как сделать свой vst синтезатор и эффекты и C++ там дефолтное решение. Но и на pure C там много готового и няшного.
>>880675Нихуя там нет няшного, сишка очень лоулевельный язык и мысль там теряется среди кучи деталей типа ручного копирования буферов. Эрланг - ну это вообще клиника. Тебе бы подошел haskell c vector fusion, на нем будет быстро и довольно высокоуровнево, но ровно до тех пор, пока тебе не потребуется запилить какой-то сложный алгоритм.Java, кстати, выбор тоже хуже, потому что сборка мусора здесь не нужна, перегрузки операторов нет, и вообще система типов не очень.
>>880674Как насчёт взять GOLANG? Говорят, что на вкус как земля сишка.
>>880674Я впервые за долгое время нашел посильную задачу, которая мне по фану, так что я почитаю по поводу синтеза звука приерно составлю схему в голове, как это делать и может даже запощу в тред какие-нибудь бенчи через некоторое время.Просто мне реально хочется примерно дохуя независимых процессов, которые можно будет добавлять - убивать в риалтайме, а писать такое на цэ мне просто страшноНу и плюс я очень устал от императивного говношлепства на раби в последние два года, хоть и за хорошие деньги, потому я бы лучше поработал на чем-то радикально другом>>880675А литературы не подскажешь ? Интересуют архитектурные моменты, как сделать максимально качественный осциллятор программно, складывать несколько волн и пихать их в аудиовывод.Я конечно и сам уже погуглил, но вдруг ты что-то уже читал и можешь порекомендовать или отсоветовать.
>>880749У тебя нет независимых процессов, все зависимо, у тебя есть направленный граф, в котором есть источники звука, обработки и сливы. Нужно брать слив, и раскручивать его в обратную сторону, лениво запрашивая данные. Это реактивное программирование с параллельностью, но нужная обвязка быстро делается на любом языке. Эрланг тебе тут точно не нужен, как и убивать в реалтайме какие-то там процессы.>как сделать максимально качественный осциллятор программноНа music-dsp читай сам сайт и его список рассылки. KVR audio еще есть.tldr; Синусоиду можно генерировать наивным образом, пилу и квадрат нельзя, будет алиасинг.Самая простая в реализации технология их генерировать - оверсэмплинг, генерируешь на очень высокой частоте дискретизации, фильтруешь (например, sinc-фильтром), и делаешь даунсэмплинг. Там алиасинг будет, но значительно более тихий. Есть большее колдунство, менее грузящее процессор, например MinBLEP.Более сложные формы волны и FM-синтез делаются только оверсэмплингом, поэтому в современных синтезаторах только он и есть.>складывать несколько волнВнезапно, с помощью операции сложения.
>>880824Спасибо, может и не нужен, а жаль, на самом делея посмотрю еще, на чем можно по фану это сделать. Убивать в реалтайме процессы придется, я хочу сделать пучок таких синтезаторов, играющих синхронно, чтобы можно было регулировать их количество прямо во время воспроизведения.
>>880749> байтоебство> конкуррентность> без гцБратан, тебе же раст нужен! И функциональщина как раз, и все остальное идеально подходит.
Внезапно сам планирую и собираю инфу как писать генератор музыки машиной.
Какой же ублюдочный синтаксис матчинга списков.
>>883382[x|xs], помоему норм. как в прологе. КАК У ДИДОВ
Programming phoenix есть где-нибудь спираченая?
>>883969https://rutracker.org/forum/viewtopic.php?t=5283272
>>883382уж лучше чем x:xs
бля насколько же GenStage охуенная идея...
>>883996Нет.
>>883811>нормНет.
https://rambler-co-e-org.timepad.ru/event/413260/
>>884010Да. Это рил лучше. Это не сильно важно, но у меня немного подгорало от хаскеля, что там синтаксис для списков разный для разных случаев, типа> f []> f [x]> f (x:xs)в то время как в эрлах все красиво и однообразно> f []> f [x]> f [x|xs]
>>884037>синтаксис для списков разный для разных случаевЛогично, что для разных случаев нужен разный синтаксис.>однообразноИ нелогично.
>>884038настолько дохуя аргументов, что я осознал, что проиграл спор
>>884042>настолько дохуя аргументовПриводить аргументы любителям инфиксно-циркумфиксных операторов/паттернов — себя не уважать.
Вообще говоря, я зря доебался. Я сейчас понял, что в erlang всё норм с синтаксисом и [H|T] это не матчинг списка, а матчинг cons-пары (списков в erlang в нормальном смысле нет, т.к. это язык без типизации).[H|T] некорректно сравнивать с x:xs из Haskell, а нужно сравнивать с (h,t). Ок, все претензии к инфиксности-хуинфиксности снимаю. Такой смешанный синтаксис для матчинга пары — норм.
Типизация есть, нету анального тайпчекера которому надо делать глубокий отсос чтобы он позволит тебе писать программы, ты хотел сказать? :3
>>884047> нету анального тайпчекера Анальный тайпчекер есть, вопрос лишь в том, когда он порвёт твой пердак: в компай- или рантайм.
>>884053В эрланге не принято так мыслить. Let it crashЕсли процесс не знает как использовать апи или работает не верно, то он не достоин жить. НЕ НАДО пожалуйста переносить философию хаскела в эрланг. оно тут не скомпилица :)
>>883981Благодарствую, вчера столько говна перелопатил, а на рутрекере то и не додумался глянуть>>884053Dializer И можешь пощекотать анус в compile-timeЯ щитаю это охуенно, используешь тогда, когда тебе это выгодно. И не нужно постоянно думать как ублажить компилятор. А юзкейсов, где мне бы понадобилась интеграция типов в рантайм, я чет не могу придумать. Могу предположить что это бы могло пригодиться в метапрограммировании, но чет хз. Надеюсь практикующие статикоштангисты меня просветят
>>884037Ну так икс - элемент, а иксес - список же. В этом плане все логично. У меня вот к другому претензия: я до сих пор нет-нет, да и прочитаю х:хс как "икс имеет тип хс". Символов им мало, блждад?>>884078Код же по-разному проектируешь. К сожалению, это только в теории "давайте сперва хуяк-хуяк и в продакшен, а как наймем еще десять человек - прикрутим типы и все будет заебись". На практике это не работает, кложурцы проверили на реальных кодобазах.
>>884097Ну да, ты можешь мыслить от верхнего апи и реализовывать то что тебе надо чтобы апи работало (top-down). А можешь мыслить от структуры данных, которая тебе надо и писать функциональный интерфейс к этой структуре данных (bottom-up). В эрланге помоему оба подхода отлично живут друг с другом и кложуровцы, помоему, именно что доказали то, что bottom-up подход очень эффективен.Имхо хаскел через чур защитен. Мне просто не надо на столько типобезопасный код, это приятная фича, но цена слишком высока. Типы очень многословны, требуют поддержки и тупо вообще никак не дружат с распределенными системами и недетерминизмом. Я не говорю про идрис, там зависимые типы вроде позволят тебе самого себя в жопу выебать и проверить математически что ты это сумеешь, но как по мне, то это еще более тяжелая штанга, нахуй нахуй. Проще(и быстрее в моем ковбойском стиле программирования) двигаться напрямую к цели по золомоу пути используя top-down подход и в случае какой-нибудь хуйни супервизор скинет трупец процесса в ганг. Кложур мне нравится всем, кроме того, что они не умеют в акторы, ну и соответственно у них нету своего OTP, во всем остальном наверное это самый крутой, сейчас доступный язык программирования.
>>884057Да я кагбэ не против подхода эрланга. Просто меня проклятые писатели книжек запутали "списками" (которых нет) и я был недоволен синтаксисом матчинга. Который на самом деле матчинг пары, а не списка.
>>884360Ну так список это концепция, а не тип "список" из хачкеля.
>>884141Ну все-таки типы недетерминизму и распределенным системам как минимум ортогональны (если забыть на время про пи-калькулюс и линейные типы). И многословными они не являются, вывод типов же.Но речь не об этом - мой поинт был в том, что опциональные системы типов, когда сперва пишешь на динамическом языке проект, а потом сверху нахреначиваешь туда типов, - они не работают. В кложуре как раз была инициатива запилить такую систему типов на основе typed scheme. Собрали деньги, сделали исследование (чувак там мастер'с дигри на этом защитил вроде, лол), запилили код, отрелизились, их начали использовать в продакшене чуваки из серклсиай. Ну в общем все вроде бы круто. А потом через полгода где-то те самые чуваки и говорят: не, нахуй это все, ебались мы с этими типами, ебались, и в итоге пришли к выводу, что это того не стоит: цена поддержки слишком высока.А слишком высока она из-за того, что а) все библиотеки динамически типизированы, приходится писать к ним аннотации, если хочешь тайпчека б) уже написанный динамический код часто имеет слишком сложный тип, так что приходится переписывать уже рабочий код только ради того, чтобы написать аннотацию типа в) нет нормального вывода типов.Так что в теории опциональная типизация - это вроде бы хорошо и удобно, как раз избавляет от этой чересчур защитности. Но на практике - ад, пизда и израиль, не работает это. Если уж брать типы, то полноценные, как в хачкеле, вот.С другой стороны, кложур.спек выглядит очень многообещающе, например. Если они потом смогут прикрутить к нему какие-то статические проверки, то это будет очень интересно.Да, кстати, насчет акторов в кложе - насколько я помню, там были отдельные бибилиотеки, которые давали обработку ошибок как в эрланге и более эрланг-стайл обертку над агентами, в том числе распределенную. Но это все отдельные библиотеки, а вот единой платформы к сожалению нет, а в этом случае целое больше суммы своих составляющих, как мне кажется. Вообще, мне больше всего жаль, что эрланг-стайл обработка ошибок там не прижилась, по-моему было бы очень в тему.
>>884360Ну как бы изначально слово "список" и означало конс-пару, так что зря ты так, как мне кажется.
>>884504Два актора, за развернутое пояснение
PSHHHH ALO YOBA ETO TI?OK
>>884564Лол. Добавьте нижнего левого мужика в оп-пост в следующем треде.
>>884504>А зачем в принципе нужны были типы ребятам из circle ci? Как раз я считаю что если ты пишешь с типовой системой типа как в хаскеле то ты приседаешь со штангой долгие часы выводишь типы которые тебе надо пилить и потом пишешь код который должен матчиться в эти типы, или тайпчекер скажет "пішов нахуй". И все ради чего? Ради иллюзии защиты от крашей в рантайме. Концепция тестов мне кажется на много лучше подходит для того чтобы описать корректное поведение программы. Есть тысячи способов как программа может вести себя некорректно, все даже нельзя себе представить и всего лишь 1 способ корректен. Ты просто пишешь тест на этот 1 способ и это дает мне необходимую уверенность чтобы писать код на эрланге и применять top-down подход когда я пишу именно 1 тест на самый благоприятный путь и потом ковбойствую до победы. Но кому-то и эта уверенность не надо, он просто знает что делает и пишет код который достаточно прост, чтобы его вообще не тестировать. Мало шестеренок => нечему ломаться. Главное смириться что отказов полюбому не избежать, нельзя предугадать состояние программы на 100%. Отказы будут случаться в любом случае и никакая типовая система и жесточайший тайпчекер не спасут тебя от этого (ну кроме может какой-нибудь ебы на зависимых типах, но это для особых любителей). В эрланг системах отказы это ожидаемое поведение.
>>884923Ты из беларуси?Никаких подъебок, просто любопытно
>>885012да
>>885029У вас там што, пифон научилсо отличать пустые строки от пустых массивов?
>>885070Я не понял вопроса
>>885095NJHJGS;RF ,SK UJKJLYSQGHJUKJNBK EN.U [JKJLYSQF D ,JKMYBWT UJDJHZN:C EN.UJV - BLB YFPFL!VS NFRB[ ,JKMYS[ YT KTXBV,VS NFRB[ ,JKMYS[ - RFKTXBV.WO.
>>885070>>885110Ты бот? Как капчу проходишь?
>>884923> Зачем нужны были типыЧтобы повысить качество кодобазы, чтобы была документация, чтобы было больше уверенности при внесении изменений. Все как обычно же. Кодобаза растет - вот и думали, как ее эффективнее поддерживать в хорошем состоянии.Типы - это не про "иллюзию защиты", это про корректное проектирование. Слушай, эта тема уже тыщу раз разжевана, мне лень сейчас опять тут расписывать.Тесты не могут описать поведение программы, они только дают примеры. Нет никакого одного корректного способа, ты чего? Для того, чтобы описать тестами хотя бы целочисленную функцию инкремента (только корректные ее вызовы!), тебе нужно по одному примеру на каждое возможное значение целочисленной переменной в твоем языке. Короче, извини, но твой подход попросту некорректный и ничего не дает (кроме той самой иллюзии защиты) - по-моему в любой книге про тдд написано, что тестировать нужно в первую очередь corner cases, а не самый благоприятный путь.Я уж молчу про то, что тестирование by example потихоньку устаревает в пользу тестирования by specification - которое, кстати, Джо Армстронг и придумал, хе.Наконец, ты путаешь отказы и некорректное поведение. Лет ит краш не имеет никакого отношения к корректности. Лет ит краш - это способ обработки исключений. Корректность (ради которой пишутся тесты) - это другое, совершенно ортогональная вещь.>>885110>>885070Я тоже не уловил, что ты хотел сказать.
>>885110>ТОРОПЫжКА бЫЛ ГОЛОДНЫЙ>ПРОГЛОТИЛ УТюГ хОЛОДНЫЙ>А В бОЛЬНИЦЕ ГОВОРЯТЖ>С УТюГОМ - ИДИ НАЗАД!>МЫ ТАКИх бОЛЬНЫх НЕ ЛЕЧИМб>МЫ ТАКИх бОЛЬНЫх - КАЛЕЧИМю>ЦЩюРеально похож на бота. На эраланге хоть?
>>885148Ну я не согласен, командир. Корнер кейсы ты не знаешь, ты знаешь только то, что от тебя требуется. И лет ит краш это не просто способ обработки ошибок, эта тема немного глубже.>чтобы была документациятайпспеки, а вообще нормально функции называть в первую очередь.>чтобы было больше уверенности при внесении измененийДля меня так работают зелененькие тесты и я им доверяю больше чем типам, там у меня конкретно список того, что мне надо, для того, чтобы моя система считалась рабочей, не больше и не меньше.Качество кодобазы будет лучше если руки будут не кучерявые, а во время написания кода не отвлекаться на ютубчик, типы прибитые гвоздями не уверен что в этом деле помогут.Но я понял про что ты. Видимо это индивидуально.
>>885198Ну как не знаешь? Если функция получает список, например, - то надо передать ей пустой список в первую очередь. Если натуральное число - то надо передать минимальное и максимальное значение. Ну и так далее, генеративное тестирование как раз этот процесс хорошо автоматизирует.Вкинь хороших материалов про то, как лет ит краш относится к корректности программ тогда, я бы почитал.> тайпспекиНу дык... Как бы... А я про что? Про тайпспеки и говорю. Которые еще и чекаются.Алсо, по-моему несколько самонадеянно с твоей стороны говорить, что у ребят из серклсиай руки кучерявые, они функции именовать не умеют и вообще дураки, а не были б дураками - типы бы им и не понадобились. Ну как-то странно это, согласись.И еще раз: тесты и типы - это вообще ортогональные вещи, тесты не могут заменять типы (и наоборот). Типы дают тебе интерфейс, который ты не можешь поломать при внесении внутренних изменений в систему - я это имел в виду. Тесты тоже в приннципе могут служить интерфейсом, но только генеративные, когда ты спецификацию пишешь, а не example-based.
>>885369>Ну как не знаешь? Если функция получает список, например, - то надо передать ей пустой список в первую очередьНу это ты слишком упростил, тут нечего комментировать, об этом вообще не стоит париться. Не надо тестировать все на свете. Тебе надо тестировать поведение процессов или модулей с бизнес-рулами. Тесты будут почти полностью соответствовать тому, что кастомер ожидает увидеть от системы или другие процессы ожидают увидеть от процесса который ты тестируешь. Если тесты не покрыли какой-то особенный баг, как ты говоришь, корнер кейс. То это значит только что ты добавляешь еще один кейс в тестовый модуль и исправляешь баг. Не надо придумывать все возможные баги еще до того как они появились.У меня тесты высокоуровневые, я проверяю конкретно фичи и в тестах отображаю стори от кастомера. Я не тестирую всякую перхоть и не пишу тесты на каждую функцию. Только самый верхний интерфейс, если где-то случается ошибка, то это абсолютно ок, мой процесс упадет сразу же и я посмотрю логи об ошибках.Лет ит краш это не просто способ обрабатывать ошибки, это то, как ты думаешь об ошибках в общем при разработке. Когда ты пишешь код, ты не используешь вообще никакой попытки проверить результат на корректность, никогда не проверяешь на nil лол и никогда не бренчишь свой код, ты идешь к цели напрямую, защиты нету вообще никакой, кроме случаев где она нужна, это и есть исключительная ситуация их очень мало и там правильно будет если за тебя все поправит супервизор опять же, но если тебе таки очень надо защититься внутри одного процесса(Бывает ну писец как редко) то уже тогда развлекаешься с опшианал тайпами и добавляешь ветвления(И ЛОГИРУЕШЬ!!!). Литературки подкинуть никакой, к сожалению не могу, потому что не видел ее, это сложно объяснить на словах, меня учат этому на проекте, причем в основном через кровь.То есть я сначала пишу в защитном стиле и потом мне опытные ребята объясняют почему то, что я сделал это не достойно мержа. Сам принцип в общем такой: вообще ничего не проверять и идти напрямую к цели, освободить свою голову от этой неуверенности что что-то там сломается и все такое, когда сломается, тогда и будешь об этом думать, либо если не надо чтобы ломалось. То линкуешь с супервизором. Но никогда(или ахуеть как редко) не проверяешь коды возврата или умалчиваешь неопределенное состояние системы.Состояния только 2, либо все ахуенно, либо все поднимает супервизор (сорт оф ахуенно, завтра поправишь)По поводу сёркл сиай, я на сёркл сиай ничего не гнал, но для меня реально выглядит это глуповато. Ну какие типы в лиспе то, зачем. Ну ладно, никого не хочу обидеть. Просто я считаю что надо в первую очередь учиться программировать и мыслить так, чтобы задачи решались быстро, функционально и имьютабельно и чтобы получались impress your cat systems. А типы это такая психологическая ловушка, ребята их юзают из-за неуверенности. В тех системах, с которыми я работаю и где активно применяется эрланг, отказы это нормальное состояние и статическая типовая система сделает эрланг не эрлангом, а хер пойми чем. (каким-то хаскелом :o)При всем при этом мне нравится по вечерам поаутировать в какой-нибудь теорем прувер и посмотреть на типизированные лямбдочки, но это то, что вообще нельзя пускать в эрланг системы, это совсем другой мир.
>>885478>Тесты будут почти полностью соответствовать тому, что кастомер ожидает увидеть от системы или другие процессы ожидают увидеть от процесса который ты тестируешь. Если тесты не покрыли какой-то особенный баг, как ты говоришь, корнер кейс. То это значит только что ты добавляешь еще один кейс в тестовый модуль и исправляешь баг. Не надо придумывать все возможные баги еще до того как они появились.> Если тебе надо доехать из точки A в точку B, то надо расставить столбы так, чтоб удары об них не давали съехать с нужного направления. Если вдруг оказалось, что столбы не покрыли какой-то участок пути, то это значит только что ты вкапываешь ещё один столб. Не надо вкапывать все возможные столбы до того, как съедешь в кювет.Типикал test driven development.
>>885481Надо предложить альтернативу или хотя бы аргументы против такого подхода, а то получается просто пук в лужу.https://www.infoq.com/presentations/Simple-Made-Easy
>>885484>https://www.infoq.com/presentations/Simple-Made-EasyДа, аналогия про столбы оттуда (хотя там не совсем про столбы было)
>>885485Так ты не будешь предлагать альтернативу? Рич Хики предлагает простоту, но там где без простоты не обойтись (процессы и бизнес требования) там нужны тесты. Что ты можешь сказать против такого подхода или как его можно улучшить?
>>885486>Так ты не будешь предлагать альтернативу?Гомотопические зависимые типы + моноид в категории пердофункторов.
>>863105Есть опыт с руби и пхп. Нода сама по себе не нравится. Как раз на руби пишу очередную борду.
>>885478Нет, баг и корнеркейс - это все-таки не одно и то же. Я согласен с твоим первым абзацем в целом. Я имел в виду, что тестирование by example наиболее эффективно не тогда, когда ты пишешь только какой-то типичный пример того, как код будет использоваться, а когда ты сразу проверяешь какие-то граничные условия - потому что именно при них чаще всего обнаруживаются ошибки. Это просто бест практис такой, в любой книге по тдд это описано, как я уже сказал. Про лет ит краш и ошибки - опять же, ты понимаешь под ошибками какие-то конкретные отказы системы. А я говорю про корректность. Это разные вещи. Если у тебя в системе возможна атака на переполнение буфера, xss какой-нибудь или просто-напросто ее поведение не соответствует спецификации - это не ошибка в том смысле, о котором ты говоришь. Ничего не упадет и не поднимется, просто ответ будет неправильный. И говорить "ну когда найдем баг - вот тогда и поправим" в таком контексте - это как-то не очень, согласись. Когда у тебя сольют базу с данными юзеров, например, поправлять баг будет уже поздно.Конечно, практически невозможно предусмотреть все варианты развития событий, если ты не гребаный робат, некорректное поведение все равно будет. Но твоя задача как программиста и проектировщика как раз в том и состоит, чтобы минимизировать эти риски, разве нет? И искусство тестирования, если это можно так назвать, в том и состоит, чтобы интуитивно увидеть, что может пойти не так, и проверить это до того, как оно утечет в продакшн.Наконец, типы - это не психологическая ловушка, это математический формализм. И в лиспах они достаточно давно были таки. И лично я не вижу, каким образом типы противоречат философии эрланга. К тому же, они там все равно есть, просто проверять их или не проверять - это вопрос удобства.>>885487Вот вам бы все в моноиды пердолиться!
>>886005Ты все верно говоришь. Но мне кажется тут уже начинается какой-то околорелигиозный спор, что важнее и о чем стоит рассуждать, я думаю это зависит только от внутренного состояния программиста. Может я не дорос, а может ты, я не знаю. В любом случае я со всем согласен. Но я предпочитаю не задумываться о том, на что я не могу прямо повлиять или что просто не требуется и не сделает мой код лучше или жизнь легче. Например от моих программ не требуется 100% корректности и чтобы ее достичь мне надо потратить огромное количество сил. Я интересовался в какой-то момент этими вопросами и пытался присесть со штангой, но у меня не получилось и я решил что для меня будет много полезней смириться с тем что я не совершенен и мои программы соответственно тоже и больше концентрироваться на том, на что я могу повлиять. Например я могу быть лучшим программистом, писать более понятные интерфейсы, применять более явные абстракции и дизайнить подходящие для задач структуры данных, ну и так же оценивать время на выполнение задач и достигать результатов. Когда я наберу достаточно опыта в этих дисциплинах я может вернусь к зависимым типам и теоремам, но пока для меня много полезней про эти вещи не задумываться. Как минимум я лучше высыпаюсь. :)
Есть ли годные мануалы по эрлангу на русском?
>>888253LYSE и Programming Erlang вроде переведены. Но без англицкого освоить будет сложно ибо русскоязычное комьюнити очень не большое и если будут какие-то проблемы, то спрашивать надо будет на английском. Ну и все референсы, доки и остальные книги на английском.
>>888189Так не, я про стопроцентную корректность и зависимые типы и не говорил. (я воще лишпер, какие мне зависимые типы, лол) Корректность как соответствие спецификации, то есть адекватность задаче. Это не обязательно подразумевает формальную верификацию, тут все от задачи зависит.Но вообще да, разговор куда-то совсем в абстрактные философские высоты потихоньку уходит, так что... "Отличное начало; кажется, пора завязывать." :3
Почему erlang\1, а elixir\0?
>>888438В первом треде Эликсир вскользь упомянут был, сейчас первый объединённый тред. Хуйня в общем, не обращай внимания.
>>888345Привет! А про что ты говорил? Что ты используешь чтобы повысить корректность программ и ужесточить структуры данных с которыми ты работаешь? Если это конечно не зависимые типы и моноид в категории эндофункторов. Проперти-бейзед тесты? Может есть какая хорошая литература?
Аноны, вижу в треде макаки не сидят, поэтому реквестирую у опытных анонов годных книг по CS и related.
>>890725http://www.dmoz.org/World/Russian/Компьютеры/Программирование/Хватит на год.
>>890725Sicp
>>891172>>890727Я имею ввиду качественное advanced чтиво, которое перевернуло ваш мир. А не книги для вката в IT.Вроде этого списка большинство прочел:http://catap.ru/blog/2008/08/08/knigi-kotorye-stoit-chitat-v-it/
>>891178хорошие книги с виду
>>891178Dcpl еще, eopl, еще cpsbook тут упоминали выше.
>>891178Concrete Mathematics: A Foundation for Computer Science.
>>891612Годная книжка, уже читал, но упражнения на доказательства вообще не идут, надо будет повторить.>>891543>Dcpl>eoplСпасибо обмажусь, я как раз языками люблю упарываться.
Мамкины ирлангусты, читайте уже пожалуйста Erlang in Anger, не будьте вы такими уёбками.Рекомандую такой порядок:1. LYSEFGG2. OTP in Action3. Erlang in AngerДве недели должно хватить, лол
>>893107почитаю, бро, спасибо
>>893107>Две недели должно хватитьХуясе, это я один такой тормоз, что одну книжку месяц читаю, а если делать хотя бы часть упражнений и вдумываясь разобрать каждый кусок кода может и на полтора растянуться?3 шт. за две недели, вот это унизил
>>896276Да это старый прикол: Ирланг учится за 2 недели, то есть за год можно выучить до 26 Ирлангов.Но в целом, он внатуре учится быстро, за пару дней я бы даже сказал. А потом ещё год-полтора учится OTP
>>896406>Ирланг учится за 2 недели, то есть за год можно выучить до 26 Ирлангов.Ору
Что-то притихли эрлангоны. Подкиньте какой-нибудь годноты
поясните за hipe поцоны!? нахуй оно всралось? че это ваще такое? типа оптимизатора байт-кода или че?
Все тихо, системы работают.>>898952Помоему это просто набор патчей для beam чтобы оно работало быстрее, хрен знает кароче. А чего ты интересуешься?
>>898952И ты с какого района вообще?
На erlang/elixir есть годные биндинги opengl?В гугле не банили
>>899053>>899098с девятого. Да и че, поинтересоваться уже нельзя? Че ты дерзкий такой? Есть телефон позвонить?
>>900128обколются своей марихуаной
>>900267Нашел только wx Widgets, но это по сути просто библиотека куда можно рисовать framebufferЛюбитель подрочить языки
>>845574> Выигрыша перед скалкойв чем, по-твоему, выигрыш скалки? какое-то гипотетическое удобство написания или не менее гипотетическая персональная производительность? напомню, что ты пишешь код для корпорации, корпорацию не ебет ни твое удобство, ни твоя персональная производительность, у них совсем другие критерии, типа TCO (как пример), и по этому критерию скала выигрывает только у ассемблера.
>>845987>При желании ты мог бы сам за 15 минут всё нагуглить и посмотретьебать, ты предлагаешь ему нагуглить опровержения на собственный тезис? да ты упорот наглухо
Подустал от руби экосистемы(5+ лет опыта), начинаю щупать альтернативы, пайтон не интересует(такое же болото).Феникс интересен, Жозе тот еще евангелист, правильно понимаю что лучше пару недель потратить на Эликсир и лишь потом смотреть Феникс? Нужен ли Erlang, в принципе или на первых порах можно обойтись?Иду по getting started с сайта эликсира, есть роадмап проверенный уже по гайдам/книгам? Спасибо!
>>901565А чего не кложурец?Пацаны вроде советуют с эрланг отп ин аксьон вкатываться.
>>901578а зачем? если честно ведусь на хайп, ну и джаву не очень люблю, пусть даже в виде кложы, личное предпочтение.А по собственному опыту? Просто боюсь начать с Ерланга, перегореть и обосраться, а по итогу окажется что он и не нужен особоНу то есть по примеру Си Руби Рельсы, я си только с универского курса знаю, и за более чем 5 лет работы с рубями и рельсами мне си не понравились. Вру один раз понадобились для перфоманс тюнинга и все.Не то же ли самое в связке Ерланг Еликсир Феникс?
>>901580не понадобилисьбыстрофикс
>>901565>правильно понимаю что лучше пару недель потратить на Эликсир и лишь потом смотреть Феникс?Да. Вообще в сети учебников/гайдов навалом, но начать лучше со стандартной комбинации Programming Elixir/Metaprogramming Elixir, но не сильно на ней зацикливаться. Эрланг учить не обязательно.
мне кажется есть смысл потратить один-два дня на ирланг, но без OTP. он простой как трусы, не ленитесь
>>901648Подкинь ка урлецов
>>901748libgen.io
Автор N2O в треде, какие были вопросы?
>>902725хуи сосёшь?
>>901580Ну просто с руби обычно в кложу укатываются, вот и спросил.Ерланг с си я бы не стал сравнивать, ну вообще никак. В ерланге главное отп, а не сам язык. Уж перкгореть ты точно не перегоришь, но зато поймешь, откуда у элексиров ноги растут. По-моему имеет смысл короче.
>>902725Почему ты такой мерзкий?
>>902725что врачи говорят насчет твоего диагноза, перспективы есть?
>>902725Раскажи вкратце про опыт использования, плюсы-минусы, корнер кейсы. Если ковырял фениксы, поясни за отличия.В ближайшее время пользовать не планирую, но простынку от анона бы почитал>>902728>>902739>>902799Семен плиз
>>902725Чё там с прувером? С деньгами математику разобрался?
>>902812>Семен плизДетектор сломался.
>>902812Ну Фениксы ковырял и сравнение с Elixir делал:http://maxim.livejournal.com/467426.html>>902823С прувером есть рабочее ядро. Уровня примитивных лиспов на 300 строчек. В этом и заключается суть работы. А то что языка верхнего уровня для теорем нет, то такое. Еще будет. Не все сразу. На самом деле OM — это адванснутый порт Morte с Erlang таргетом.По баблу я ж писал что заплатили математику в полном объеме: http://maxim.livejournal.com/484972.html
>>902862Это не ты снимал видосы, где ковырял эликсир и феникс в прямом эфире?
Даже если вы никогда не будете писать на эрланге, сделайте следующее:1. Запустите erlang шелл и посмотрите на observer.2. Почитайте как работает Erlang VM.3. Поймите, что для программирования достаточно паттерн мачинга, функций, модулей и receive send.4. Не учите OTP ни в коем случае, учите vanilla erlang, именно на vanilla erlang написан N2O Synrc стек, OTP — это говно мамонта которому 30 лет.На самом деле Erlang — это трушная LISP машина, как Smalltalk например. Это культурка как APL, K. Это достаточно хорошая виртуальная среда, чтобы начать строить на ней свой мир, что мы и сделали. Никто не говорит вам бросать сишечку или свои руби, но почувствовать вкус Эрланга нужно, вы поймете, что остальные современные стеки, включая даже один из самых технологичных минималистичных — Clojure — переусложнены. Пока вы не столкнетесь с Эрлангом вы это не поймете. Даже Хаскель после эрланга не кажется такой уж хорошей идеей. Ну и вообще CPS интерпретаторы — это особый класс и он никогда не пропадет несмотря на GHC и LLVM более технологичные решения позволяющие делать глубокие оптимизации.Несмотря на то, что мы отошли от дел и текущим майнтейнером Synrc стек является московская группировка Erlang One мы крайне рекомендуем серьезно отнестись к нашему стеку. Если лежит душа в Эликсир прыгайте незамедлительно, так как я писал месяц на эликсире и это не тот эликсир который был еще год назад, прогресс — колосальный!Мы даже сделали для вас эликсировцев Ecto Mnesia Adapter: https://github.com/nebo15/ecto_mnesiaТакие дела котаны
>>902865не не я
>>902867Спасибо, потом ознакомлюсь. Правда действительно ли мнезия так будет круче постгреса? И правда ли эрланг труевейший лисп чем кложур лол>>902862Привет Максим. N20 выглядит слишком лунно. Я лучше на фениксе в вебе буду кататься или на голом плаге. Будешь в Минске сигнализируй :)
>>902869Мнезия не круче постгресса. По своему устройству мнезия больше классифицируется как MUMPS или KDB. Впринципе мнезия такое же говно мамонта как и OTP, она часть OTP. Но для вебчика ее достаточно. То где в 80% используют постгресс для стартапов где надо меньше 1000000 пользователей в секунду Mnesia отличный вариант так как позволяет быстро забустрепится. Меня Ecto адаптері не впечатлили, KVS стек круче думвю, да и у него версионирование есть. Ecto бедноват.
>>902869>Будешь в Минске сигнализируй :)Айсед ты?
Выбрал Erlang в качестве своего первого ЯП.Эликсир показался унылой Python -like парашей.У меня крыша не поедет?
>>903662не поедет. Erlang это динамическая опердень как ваши питоны, луа и перлы. Там даже даун с лоботомией сможет писать.
>>903718даун это не болезнь, а раса человеческих существ
>>903718>не знает, что такое оперденьДержите ньюфага!
>>903662Разницы между ними очень мало, в Эликсире только сахарка накатили.Мне лично по душе Эрланг и его хардкорный Prolog-inspired синтаксис. Можешь начинать с него, но я вангую, что ты всё-таки охуеешь, если он тебя первым будет. Даже книги ни одной нет для ньюфагов, все полагают хоть немного знания о языках.
>>902867Охуенно, в шапку.
>>903662>Эликсир >Python -likeПроиграл с дебила. Олсо Elixir > LFE > Erlang.>в Эликсире только сахарка накатили.Ещё один дебс, на эликсире, очевидно, не работавший.
Кто не знает, внезапно, есть даже мелкoбopдa на Эрланге - Эрлач.coМне вкатила - простенько и со вкусом.
>>906502Url дай
>>906919Сам нашелгодно задизайнили
Пустой тред пустого языка
>>910413может быть
О, нихуя себе, эрланг. Говно. Писал на нем за деньги некоторое время назад, сейчас выкатился. Уебищный дсл для написания распределенных систем. Ах да, он еще и ТОРМОЗИТ.
>>914942несомненно, говно без задач
>>914942Куда укатил?
>>914960Ненужно!
>>914942наркоман, ты блять манер биткоинов на нем писал чтоли?
>>914942>ще и ТОРМОЗИТНа какой задаче он у тебя тормозил?>пок-пок никрасивый кудааах!Я осознаю, что существуют безмозглые пидоры, у которых в список значимых кримериев может входить, к примеру, синтаксис языка. Hу так накласть на них. Интересуют объективные критерии, а не цацки всякие.
>>915250да хватит тебе, давай уже остановимся на том, что эрланг не нужен :3
>>915257Наоборот же, всё кроме эрланга и говняшной не нужно.
Посоны, имею возможность вкатиться в эликсир налегке - после рубей и рельс предлагают работать с эликсиром и фениксом.Вопрос такой, а насколько это правильно - не работая с эрлангом начать работать на эликсире? Это будет какой-то принципиальный пробел в знаниях и понимании или это норм?
>>915885Вроде выше как-то задавали такой же вопрос, и мнения разделились. Но вроде норм, к тому же если уж предлагают.
>>915885Ну вот был недавно эликсир митап полный рубистов, первые выступающие рубисты рассказывали как за пару-тройку дней переписали сервис с руби на эликси и оно заработало. Эликсир все видели в первый раз. Ну правда там и в общем опыт разработки был ~6 лет емнип.
>>915885Можно без эрланга. Ну то есть, если бы ты его знал - было бы проще, конечно, так как меньше осиливать пришлось, но вообще и так можно. К тому же чтоб феникс программировать скорее больше рельсовые знания пригодятся, чем эрланговские :D У рельсовиков чаще затык с переключением с ActiveRecord на Ecto, чем с какой-то OTP ёбой.
Так че там с эликсиром, взлетит, количество вакансий в ближайшие пол года\год повысится? Я просто сейчас рельсы дрочу, но нихуя для джуна вакансий нет. Начальные знания эрларга есть, феникс тоже немного колупал, да и другие всякие йобы знаю. Так что посоветуете аноны: дрочить сразу эликсир и посвятить все время ему, писать в стол, коммитить в эликсировские проекты и ждать пока на птицевакансии начнут брать джунов или продолжать дрочить рельсы?В каком случае я раньше от голода умру?
>>916002Не думаю что в ближайшие несколько лет можно будет устроится где-то на эликсир джуном. Это вообще нонсенс, эликсир и джун. Разве что напрограммировать себе стажа хотя бы до мидла, а там можно в удалённый проект куда-то вкатится попробовать.
>>916002На эликсир вообще вакансий нет, куда там джуновские. С рельсами сейчас куда проще вкатиться.
>>916002>птицевакансии Что?
>>916276Бля, сначала запостил, потом понял. Фейспалм.
>>915885я бы не нанимал джуниора без опыта. Ты же все сломаешь нахуй и ничего не напишешь, смотреть еще за тобой. Кому это нахуй надо кроме больших компаний? Ну а дальше ищешь большие компании и понимаешь что там эликсира нету.
>>917792Интересно, как тогда по твоему получаются эрлангисты и эликсирщики, если большие компании эти языки не используют, а джуниоры без опыта на этом языке все ломают нахуй и их лучше не нанимать?
>>917796Приходят из других технологийДаже в начальной книжке от Джо Армстронга подразумевается что у тебя есть какой-то бекграунд разработки серверов, вполне справедливо.Я не понимаю вообще, как может эрланг закатить как первый язык программирования, он хорош в сравнении с другими языками в определенных нишах, как это вообще может подкупить новичка? И нах такой новичок надо? Сам бы нанял такого девелопера?
>>916002На hh по ДС динамика околонулевая. Не думаю, что что-то изменится в ближайшие год-два, а в итоге, скорее всего, и не взлетит Эликсир. Компании предпочли олиГОФЕРена.>>917805Когда был нуфагом, меня подкупил эзотерический синтаксис.
>>917805>Посоны, имею возможность вкатиться в эликсир налегке - после рубей и рельс предлагают работать с эликсиром и фениксом.Это по твоему не бэкграунд? Я не тот анон, но ты какую-то хуйню на его пост написал
>>917820http://jobs.elixirdose.com
>>918176Я рашкореалии, естественно, имел в виду.
>>917976Бля и правда хуйню написал. Я как-то прочитал по диагонали и думал что у чувака 0-й опыт. После руби и рельс нормально, но надо прочитать тот же программинг эрланг и что-нибудь по OTP(хотя если делать планируется на фениксе то не обязательно, можно обойтись только книгой Джо Армстронга)
>>917820Ну не правда. Язык в авангарде, но и не мертв, а весьма бодро развивается для своей ниши и своего комьюнити. У го и эликсира мало пересекающиеся парадигмы при близкой нише. Обязательно будут команды как на го так и на эликсире, ну на эликсире меньше. Но тебе же и не много надо команд, а всего одна :)
>>918218Мотивации тратить время на изучение Эликсира всё равно нет. Взлетит-будет интересно, но у меня настрой скептический.Смайлоблядь ты эдакая!
>>918206Так надо смотреть шире. С такими языками, как мне кажется, проще всего перекатиться.
>>918176>λ Software EngineerKek
Сап потокослесари, где можно почитать об устройстве виртуальной машины ерланга, узнать почему она такая охуенная. Да и вообще в целом какое-нибудь чтиво, поясняющее таинства виртуальных машин. А то я на базовом уровне знаю, но это знания уровня хеллоуворда на хаскеле
>>920337Подробную инфу надо выкапывать в мейллистах и эриксоновских пейперах, а лучше в исходниках. Ссылки же на краткий принцип работы:Щедулер:http://jlouisramblings.blogspot.co.uk/2013/01/how-erlang-does-scheduling.htmlhttps://hamidreza-s.github.io/erlang/scheduling/real-time/preemptive/migration/2016/02/09/erlang-scheduler-details.htmlМемори лейаут:https://hamidreza-s.github.io/erlang%20garbage%20collection%20memory%20layout%20soft%20realtime/2015/08/24/erlang-garbage-collection-details-and-why-it-matters.htmlМусоросборщик:https://www.erlang-solutions.com/blog/erlang-19-0-garbage-collector.htmlПринципиальная модель:http://www.it.uu.se/research/publications/lic/2005-001/
>>845348 (OP)Три красавчика на диване. Я знаю, что будет дальше.
>>920337http://beam-wisdoms.clau.se/en/latest/
>>920700чаепитие?
>>920700Дальше родится эрланг
>>920465>>920804Ультрагоднота аноны, благодарствую.
http://gittrends.io/#/explore?page=1&language=Erlang&domain=All&growth=All
>>923302Что там?
>>923809По ссылкам с двачей не ходишь?
>>920700Так они поибалсь хоть?
>>926677Ну там потом Страуструп пришел и его всей толпой выебли.
>>923809Ебут тваю аналофильную мамашку.
>>920700Cделают барекбон тваей мамашке вафлистой.
>>926673Да.
>>927150Правильно делаешь, посоны не ходите, там цп. Дали пять лет исправительного программирования на коболе. Теперь сижу в кандалах, опердени сопровождаю, выдали элт монитор и засаленую мышку с шаром.Эрланг со всех машин деинстальнули и не разрешают качать, вся жизнь под откос пошла, чтож ты делаешь
>>927182Статические опердени на коболе. Тяжело, братан, понимаю. Это тебе не штангу тягать и не вижеокурсы в пинджаке продавать. Тяжело, братан. Держись.
>>845348 (OP)Поясните за акторы. Что будет, если сообщение проебётся при пересылке?
>>927444система сдетонирует и нам всем пизда
>>927446Ну как такое обрабатывать?
>>927447Дружище, притворяться дураком - не самый лучший способ развеселить окружающих.Если ты послал сообщение и не ждешь - значит тебе наплевать дошло оно или нет
>>927444Каким образом оно проебется?
>>927519Ну допустим, акторы находятся на разных машинах, а я случайно перерубил сетевой кабель топором. И сообщения не проходят.
>>927556Я не помню как именно ведет себя эрланг, если у него исчезнет соединение с удаленной машиной (предполагаю, что N раз попытается переконектиться, потом выдаст ошибку), но эта ситуация в любом случае обрабатывается не на уровне сообщений между акторами, а ниже. На уровне сообщений между акторами ты не должен думать о том, что сообщение не дойдет, как ты не думаешь об этом, когда делаешь, скажем, REST-сервис и хэндлишь урл-запрос. Гарантию доставки сообщения на себя берет нижний уровень - TCP/IP. А срубленный кабель это форс-мажор, который в любом случае выведет систему из работоспособного состояния.
>>927563> А срубленный кабель это форс-мажор, который в любом случае выведет систему из работоспособного состояния.По идее сириус бизнес системы должны переживать кластер партишоны, и просто сгоревшие сервера, вот я и пытаюсь понять, как этого добиться.
при асинхронной передаче Алиса отсылает Бобу сообщение и ей похуй, пришло ли оно. При синхронной, Алиса ждет сообщение таймаут и потом умирает, не дождавшись (кабель перерубили какие-то пидоры). Сева, личный врач алисы, когда увидет на мониторе что у Алисы отказало сердце, поставит на место Алисы, Алису1 и заставит переделывать задачу, на которой Алиса остановилась, возможно надо будет еще позвонить бобу и сказать что Алиса мертва, поэтому забей на все с чем рулилась Алиса и вот знакомься, это Алиса1.Так понятно? А вообще, качай книжку Programming Erlang, там про все это написано.
>>927570возможно, прийдется даже убить боба и заменить его клоном, потому что хуй знает чего его сообщения не приходят, может он ахуел.
>>927573Но ведь тогда в одном кластере будет два набора акторов, которые нахуевертят конфликтов
>>927570Сука, больше всего бесят ебучие foo bar и Алиса с Бобом, я бы за такое на ториевые рудники ссылал. Пиздец у мебя бомбит от твоего поста.
>>927580Всмысле? Опиши задачу и тогда придумаем решение, сферических дженерик способов все сделать заебись нету, за это нам бапки и платят.Какие кластеры?>>927599Бесит? Ну ладно, держи нас в курсе :)Наверное просто ты не знаешь что Алису с Бобом юзают потому что у них имена начинаются на А и Б, вот и бесишься.
>>927603https://en.m.wikipedia.org/wiki/Split-brain_(computing)
>>927625Прочитай книгу, а потом сформулируй свой вопрос, если он останется
>>927568например riak так и делает и там всё очень просто - посылвается сообщение не одной ноде, а ей и её репликам, а дальше все эти ответы руками мерджатся (на самом деле только при кофнликте)https://habrahabr.ru/post/75202/
http://fforum.winglion.ru/viewtopic.php?f=4&t=363 смотрите что я откопал
>>928220прикольно, а зачем это?
>>928220наркоманкая хуитаболее наркоманская только unlumbda, программировать на комбинаторной логике, пиздец развлечениние, для этого нужен особый парень>>928408может потому что в ерлаше строки тоже списки
>>928411Согласен, подрачивал factor, ну по началу прикольно, че. Но по сути - хуйня без задач.
>>928220>>928411>может потому что в ерлаше строки тоже списки Охуеть вообще, один Форт находит в 2017, другой вообще не знает, что почти во всех языках строки это списки.
>>928452В каких это почти всех? Только в старье всяком, во всём более менее современном String - это String, а не список чаров, список интов или список ещё какой-то хуиты.
>>928454В качкеле - лист, в крестах - лист, гопараша - туда же, в D вроде бы тоже самое, не помню. Руби, js, питон - ну да, тут нет чаров, но в остальном такое же поведение + мутабельность. Какая именно характеристика делает "String - это String"? И почему для тебя это так важно? Весь тред тут со своими строками носишься.
>>928469в руби есть чары и со строками можно работать как с массивом. Так что тоже мимо, у меня такое же непонимание как у тебя, бро.Да и строки используются как набор чаров только когда надо, в остальных случаях всегда бинари.Я этого наезда не понимаю, ой у вас строки это список чисел, ну да хули, заебись хуйня. Можно заворачивать в {string, <<"mamku ebal">>} если хочется свой особый тип для строк
>>928649>>928469Да невозможно удобно работать в эрланге со стрингами, потому что там НЕТ настоящих стрингов, нет такого типа, поэтому их почти никто там и не использует, бинари на входе - бинари в системе - бинари на выходе, всё если нужно сделать конкетнацию - просто юзают иолисты с теми же бинарями>не понимаюну да, это же так охуенно когда у тебя is_list выдаёт true и на строку и на список с хуй знает чем, и "pizda" матчится с [Ti|Hui], а когда нужно работать скажем рекурсивными функциями с гетерогенным списком, где могут быть строки, а могут быть списки со строками, или с списки с дилдами, или списки с интами в перемешку с уникодовскими кодепойнтами - это так всё весело просто пиздец. Видишь в программе где-то гуард do_shit(A) when is_list(A), стразу интуитивно понятно что человек ждёт строку на вход, агая уже не говорю о ебле с конвертациями туды-сюды через блевотный unicode модуль когда работаешь с юникодомкороче это был изначальный проёб эрланга и в эликсире String сделали поверх бинари, в эликсире x = "abc" значит что x - это бинари закодированный в UTF-8, но так как там ещё есть и сигилы, то в принципе значение того что в "..." можно менять просто указывая префикс, вжух ~r"...." у нас регулярка, вжух ~c"..." у нас чарлист, вжух - список атомов, плюс наконец то нормальная интерполяция типа "text goes #{here_int} times in #{here_struct} because #{here_string}" без бесконечных эксплиситных конвертаций и ++. радует только что в ерланг это тоже скоро добавят
>>928938так а почему тебе и правда не замотать строки в кортеж {string, list()} если так уже жопа горит, и матчся на них сколько душе угодно. Ну серьезно.
>>928948ага чтобы потом везде в коде делать {string, MyString} = MaybeStringdo_huita_with_my_string(MyString)а так же case MaybeString of {string, String}и так далее в таком же ко-ко-ко стилеохуенное решение, напоминает самый уёбищных json парсер для эрланга всех времён и народов mochijson2 с его {struct, [{strKey, <<"strVal">>}, {intKey, 10}, {arrayKey, [1, 2, 3]}]}
>>928953Я не понимаю в чем проблема. Юзаешь везде бинари. Когда надо поработать с кодпоинтами, то используешь определенные модули. У тебя есть предложение как сделать лучше? Давай внесем рацуху. Если ты предложишь что-то пиздатое то так и быть, сделаем предложение пацанам из эриксона. Вируталка опенсорсная и не поносно написана, давай захуярим.
>>928980ничего уже делать не надо, в эликсире уже всё сделали, а пацаны из эриксона судя по Sigils are great. Erlang could have had these 15 years ago, and they can be added now without breaking backwards compatibility. и так знают что делать
Братаны, укажете в следующей шапке LFE? помню кто-то грозился
>>929517Ок, но перекат я не думаю, что стоит сразу пилить, через полгодика, может.Алсо, в шапку Лиспотреда LFE уже добавил.
>>929521Чтобы пофаниться и пописать свои распределенные кластеры метапарадигм что лучше: erlang LFE или clojure?
>>929542>erlang, LFE или Clojure?пунктуациофикс
>>929542LFE, но это мнение с дивана. Кложура всё-таки сильно упирается в Джава ВМ, где много чего нет, с другой стороны в ней больше всякого сахарка.
>>929542Точно не кложура, ничего фанового в ней нет.
>>929548> Джава ВМНу или нода. Но для кластеров метапарадигм как раз в джававорлде куча всякого говна же.>>929549Ой-йо, скобкохейтер итт?
>>929542Elixir или Clojure. Но лучше Elixir конечно, с его божественными GenStage и Flow.Где ещё ты можешь делать:http://teamon.eu/2016/tuning-elixir-genstage-flow-pipeline-processing/https://hexdocs.pm/flow/Flow.html
>>929630Выглядит сочно.Кстати, а какими языками владеют аноны сидящие в треде? Пару хеллоувордов и факториалов - не считается.
>>929647Ну если считать стаж чисто в продакшене то 2 года эрланга, 1 год эликсира, 1 год жееса, пол года кложурскрипта, пол года перла, пару лет пехепе, лол.
>>929679С пхп начал чтоль?
>>929647[python]На окамле правда написал пару алгоритмов уровня laba 1488 - vtoroi kurs, но ничего реального.
>>929694Ну да.
>>929647на руби (<3) и джаваскрипте сервера делал, за то что делал на джаваскрипте стыдно правда, но в свое оправдание я делал идиоматический код :3
>>929679Как в эрланг/эликсир вкатился? Что на работе делаешь?
>>929697Пили саксес стори как пришел к эликсирлангам. Это не ты тот анон с беларуси?(или нас вас тут вообще несколько?)
>>929863После ебли тваей мамашки пришло озаренье, хехе.
>>929879Я только что спросил у твоей, грит пиздишь, все совсем не так было.
>>929887Тебя снова наебали, бббгеее.
>>929954>сноваЧет тебя на маняфантазии потянуло
>>929863Не, это я из Беларуси. Который на руби быдлировал раньше :3 Хотя вроде тут в треде проскакивают эрлангеры из варгейминга, на сколько я знаю.
>>929647С Эрлангом только играюсь, очень хотелось бы зарабатывать на нём деньги, но в ДС полторы вакансии. А так на работе на Питоне пишу, ну и на ЖС ещё, но это не язык программирования.
Почему вы так не любите
Джаваскрипт жс
Питон?Блядь, ебаный спам-лист только что не давал отправить пост. И какое блядь слово ему не понравилось? Ненависть.
как- - будто питон лу-чше
Не любит-е жсПиздец, я не ебу, что там за сочетание в спам-листе стоит, идите нахуй все извините, что тред засрал немножко
ПИЗДЕЦ. "Не люби-те жс" в спам листе (без дефиса). Уровень идиотизма зашкаливает, ящитаю.
>>930199Если спамлист блочит просто скринчик поста делай.А жс отличный язык, после плюсов и джавы мне он очень понравился своей простотой и гибкостью.Вангую что это обычный каргокульт, макаки постоянно подхватывают разные мантры от солидных людей. Особенно если какой-нибудь гугль напишет что надо так, а не иначе, все пиздец. В андроиде постоянно такое наблюдаю, еще есть даже дурачки яростно защищающие венгерскую нотацию(в явке это m перед именем поля объекта).Хз че там в правилах приведения сложного, просто не надо, как уебок, запоминать эти таблицы приведения, а вкурить идею зачем так было сделано. Прототипное ооп хаить это вообще дебилизм, напоминает как в пыхе подражают джаве и только делают хуже, я например сразу подорвался в es5 когда в классах не поставил this перед именем поля при попытке присвоить что-то, да и в целом может мне продвинутые jsники объяснят зачем ввели все эти классы, в чем преимущество новой и недостаток старой системы, кроме мифического ощущения ущербности: "ну ебана, все нормальные посоны на классах сидят, а мы как дебилы прототипируем"?
>>930218Евангелист, проследуй из этого треда.
>>930218> скринчик постаМне было интересно выяснить, что же было запрещенного в таком безобидном посте.Ну, справедливости ради - после плюсов и джавы даже анальный секс с неграми тебе покажется веселой прогулкой. Так что это не аргумент. Как язык джаваскрип, конечно, говно - это факт и коммон ноуледж - но вот такое противопоставление ("на питоне пишу, а жс - не язык") мне кажется необоснованным, так между этими двумя языками никакой гигантской пропасти в этом плане нет.Насчет прототипного ооп соглашусь. Насколько оно удобно - это другой вопрос, но вот подход "давайте сделаем как в джаве чтобы было как в джаве" и "давайте сделаем как в джаве чтобы индусам было проще" лично меня раздражает.
>>930221Ты ебанусля? Мне в общем-то похуй на дж, но он не настолько плох как о нем постоянно кричат>>930223>после плюсов и джавы даже анальный секс с неграми тебе покажется веселой прогулкой. Так что это не аргумент.Схуя это? Я рад если ты начинал с относительно элитных языков вроде руби, эрланга, перла или боже упаси, качкеля. Но это меньшинство.А о хуевости джса как раз часто кричит спласплас элитка, пыхеры, сами жсники неосиляторы или джава-шарпо интерпрайз
Уходите в ЖС-тред, здесь распределённые кластеры метапарадигм обсуждают.
>>930229Да ладно, о хуевости жса "кричит" любой здоровый человек, который с ним сталкивался. Ну говно язык, ничего тут не поделаешь, да все и привыкли уже. Плюсы - оче СЛОЖНА, джава - оче СКУШНА, как-то так.
>>929630http://doc.akka.io/docs/akka/current/scala/stream/stream-graphs.html
>>930236Cрал тебе в ротешник.
>>930401Ну да. Ничего удивительного, Хосе в одной упряжке с Акка тим в рамках Reactive Stream Initiative, и GenStage, как и Apache Stream был написан по их спеке, ну разве что с некоторыми отличиями, вызванными особенностями Erlang-style месседж-пассингом."E.g. backpressure is a thing that is not easily supported implicitly in Erlang/Elixir in the same way as in FBP languages where the bounded-buffer channels provide implicit backpressure by blocking the sends on the outport they are connected to when the buffer is full."Вообще интересная тема в целом.https://www.youtube.com/watch?v=khmVMvlP_QA
>>865765Почему у нее цвет кожи на ушах не совпадает с цветом кожи лица?
>>930856Бля, тебя ебет вообще? Пиздец, у меня в коворкинге за такие вопросы убивают нахуй!Сперва подумал, что твой пост относится к посту прямо над ним. Долго думал, где ты в той презентации увидел ее уши.
>>930856Двачую, давно хотел спросить, но в коворкингах за такие вопросы убивают нахуй, надеюсь хоть на двачах ответят
>>845348 (OP)Функционало-господа, обоссыте, но не бейте! Решил для себя (с дальнейшими планами) вкатиться в функциональное программирование. Что выбрать между Эрлангом и Хаскелем? нет, я не троллюВкатываюсь из жабы, если кому интересно, жаба настоебенила. Знаю что и в эрланге и в хаскеле есть збс веб фреймворки, на которых писать одно удовольствие. я прав?
>>930968>Что выбрать между Эрлангом и Хаскелем?Clojure
>>930968Если работать, а не борщи хлебать то конечно эрланг\эликсир.На хаскеле веба не пишут, максимум банковскую хуйню(и то инфа уровня "один качок сказал")
>>930968Во-первых, тут на нулевой где-то недалеко был ФП-тред. Ну да ладно. Нужно выбирать Haskell, это флагманский язык из мира ФП. Всякие скалы, эрланги, кложури - они тоже как бы ФП, но они больше не о ФП, а о скрещивании ФП со всякой хуйнёй, с ООП, с метапрограммированием, с конкурентными моделями и т.д. Поэтому если ты хочешь угореть чисто по ФП, без всякой лишней хуйни - выбирай Haskell, а потом уже можешь на всякие гибридные языки смотреть.Добра тебе, путник.
>>930979на хаскеле есть фреймворки под веб (даже не один)
>>931030Не сомневаюсь, на расте, дишке тоже есть, да я даже уверен что на ассемблере уже есть пару веб-фреймворков, а толку?
>>931030Там только один юзабельный фреймворк под веб и он слишком сложный и неудобный.
>>930968This -> >>930973
Блять, откуда эти говноеды сюда прибежали? В кунсткамере на помойку выбрасили заспиртованные экспонаты и они скопом вкатились в этот ИТТ тхред? Идите дрочите на свои event-zaloop'ы в других местах
Уважаемые, тред подходит к бамплимиту, посему хочу поздравить всех причастных, потому что предыдущий просто смыло, а этот продержался без малого полгода.Когда создавать следующий и что добавить в шапку?ОП
>>934289просто не обращай на них внимание и не отвечай им и они сами уйдут, бро.>>934289ссылки на lfe, elixir, дизайн референс otpbeam wisdoms, ну и книги указать. Programming Erlang, LYSE, Erlang and OTP in action, Design for scalability with Erlang/OTP, Programming Elixir, Metaprogramming Elixir, ссылку на канал erlang solutions с ютуба, ссылку на erlang central
>>934289Лол, откуда такая фотка?
>>934333А, нагуглил уже.
>>934335А в тред не вбросил. Ну конечно, давайте все гуглить по очереди, зачем в тред вбрасывать, мы же программисты, мы любит копипаст и не любим экономию.
>>934598http://ru-foto.livejournal.com/56672901.htmlДа хуйня полная, ни какой логики и аналогий, тупо на одной и той же бабе намалевали логотипов и все. В эрлаче с анимедевочками и то лучше хоть аниме и говно.На соски с пика чуть не блеванул.
>>934622Хм, понятно. Спасибо.
>>934622фу-бля, голый мужик и то симпатичнее. да, да рубипидор негодует
>>934622Фудзияма
Сап эрлач, вопрос не про эрланг, но не гоните ссаной. Планирую переписать одно крупное десктоп приложение которое сейчас на плюсах. В моих влажных фантазиях я разделяю его на модули и пилю эти модули на абсолютно любых языках. Так вот, если ли какая то годная методичка или книга, как это делать, чтобы пояснялось на какие маркеры обращать внимание и где искать границы модулей, как рефакторить и т.д.? Есть ли какие-нибудь наработки по универсальным межязыковым интерфейсам, как вообще организовать общение кусков проги, если одна хуитка на каком-нибудь хачкеле, другая на эрланговском лишпе, а третья на расте? Как ты наверное понял делаю я это для удовлетворения собственных комплексов так что аргументы типа "ко-ко-ко зачем?", "нипрактично", "сука, а мне потом поддерживать" мимо цели. Еще особо не углублялся в микросервисы, но вроде бы это не про то т.к. работы с сетью там вообще нет. Монолитного говна то набросать я горазд, а вот в такой дзен-модульности у меня чет затуп, помоги аноний
>>935340Интересный таск, удачи!>Есть ли какие-нибудь наработки по универсальным межязыковым интерфейсамДа, конечно, что-то типа такого https://en.wikipedia.org/wiki/Foreign_function_interface
>>935340>живые бабы значит не нравятся>а секс-куклы нравятсяТВОЁ СОСТОЯНИЕ НАЧИНАЕТ МЕНЯ БЕСПОКОИТЬ
>>935353Так уже давно, можешь не беспокоиться. Лучше подскажи годноты, если знаешь
>>935340Да нет по этому нихуя, все наощупь.
Покажите, пожалуйста, зачем нужен атомарный spawn_link? У меня не получается заспаунить процесс, который тут же делает exit, и не успеть к нему прилинковаться.
>>939303
>>939381В programming erlang сказано, что были введены атомарные spawn_link и spawn_monitor специально для тех случаев, когда процесс крэшится до того, как ты успеваешь залинкаться к нему.Но следующие два варианта (spawn_link и spawn + link) работают одинаково - https://ideone.com/VLjMNo
>>939503Они не одинаковые, просто скедалер не нагружен, при нагрузках, скедалер может сразу начать выполнять свежий процесс, который умрет без линка.
Какие есть интересные и несильно большие эрланг проекты?Чтоб можно было сорцы в одиночку осилить за пару недель
>>939849>не сильно Фикс
>>939849помоги с https://github.com/benoitc/hackney будь мужиком блятьон простой как ситцевые трусы твоей мамаши
Ну что вы, эрланганы. Как думаете, долго еще тредик проживет пока его не смоет? Я бы не торопился с новым.
>>940127>Я бы не торопился с новым. И правильно, не смыло - неча и починать
Сап, петуханы.https://new.corezoid.com/jobs/Senior Erlang DeveloperRequired skillsRequirements for applicants:Excellent knowledge of Erlang/OTP;Experience in development of Web-services and server applications using Erlang/OTP, Mnesia;Knowledge of network protocols (HTTP, TCP, UDP, SSL, XMPP etc.)Relational databases PostgreSQL, MySQL;NoSQL storages (MongoDB, Redis)Experience with messaging systems (RabbitMQ)Experience in development of highly loaded and scalable systemsExperience with Unix/LinuxAdvantagesUnderstanding of Lisp, Haskell functional programming languagesWe offerhealthy work in a good teamopportunity to learn and participate in trainingscomfortable operating environmentattractive employment benefitsDnipropetrovsk, Ukraine, remote work
>>942481Слава Украине!
>>942481И сколько на подобных должностях платят?
>>942647Заметь вся петушиннная тройка на месте.Erlang, Lisp, Haskell>>942948Пройди собес узнаешь.
>>9470001. Я не прохожу их требования, хотя "петушиную тройку" неплохо знаю.2. Я из беларуси, шило на мыло.Любопытно почем щас качки. Сколько потом просить
Тредж умер?
>>950425ниет
>>950456Посоветуйте тогда по поводу динамической опердени, выжерлангеры. Даже не знаю, где еще на этой доске спросить.В общем представьте себе мультплеерных шутер навроде квейка. Есть клиенты, есть сервер с риалтаймовым тяжелым вычислением. Теперь добавьте сюда условный майнкрафт, то есть создаваемое\разрушаемое клиентами окружение, которое живет своей жизнью, даже когда никого рядом с ним нет. Задача - сделать это все как можно дешевле по вычислительным ресурсам.Я себе это так представляю: есть легкие игровые сервера (ноды), которые все держат в памяти и говорят с клиентами по удп. Есть тяжелые глобальные сервера, которые хранят все созданные клиентами карты и список нод, общаются с клиентами и нодами по хттп. Есть легкие клиенты, которые могут сами себе запускать локальную ноду.Процесс выглядит примерно так: клиент запускает себе локальную ноду, лепит там карту, отправляет ее на валидацию на хттп-сервер, если все ок - он рассылает ее нодам и запускает симуляцию, клиенты подключаются к нодам, хттп-сервер останавливает симуляцию, идет матч с разрушением террейна, в конце матча нода делает дифф между исходной и текущей картой и отправляет новую версию на хттп-сервер, он запускает симуляцию обратно, повторить.Все правильно? Можно это как-то оптимальней сделать? В частности, при таком сценарии все ноды (кроме локальных, на которых можно отстраивать карту) нужно поднимать мне на своих машинах - мне интересно, можно ли как-то безопасно оптимизировать этот момент, не позволяя читерства. В голову приходит только запись сторонними нодами полного лога всех действий с последующей его прокруткой на доверенных серверах, но это какое-то шило на мыло... Или нет? Самый неоптимальный случай получается, когда к ноде подключается всего один клиент, и мы ради него одного загружаем в память всю карту. Раз клиент один, то и действий на карте будет мало, а значит лог действий можно будет проверить относительно быстро в часы простоя. То есть если клиент на карте один, то ему можно поднять свою, локальную нодуя а нам потом отправить лог действий. Верно или обосрался?
Поясните, где в LFE начинается Lisp и заканчивается Erlang?
>>951740лисп это подход к написанию кода. Где ты пишешь весь код в виде AST которое представлено списками, позволяет красиво метапрограммировать да и вообще по заверениям светлых умов поднимает настроение и улучшает аппетит. А эрланг это в первую очередь ахуенная виртуальная машина. А какой язык уже превращается в инструкции для нее не так важно. LFE это минималистический набор специальных форм и эвалюатора для форм. Почти все остальное это макросы и dsl.Подозреваю что для нормальной реализации лиспа поверх BEAM надо описать специальные формы ветвлений, паттерн матчинга, спавна, отправки\получения сообщений. Остальное прикручивается макросами.Тащемта эликсир это тоже макроязык поверх эрланга. Там тоже почти все это макросы и семантика into: и протоколы говорят о том что Хосе смотрел на clojure когда делал эликсир
>>950564Ну бля, я зря писал что ли? Хули вы тут лиспы обсуждаете, а конкретную задачу игнорите((
>>951919это никак не относится к эрлангу и ты там ничего не распределяешь, у клиента есть реплика состояния но всеравно все синхронизируется через сервер. Ты нормально все написал, зачем оптимизировать то, что еще не написано? Сделай прототип по той модели что ты описал и там будет видно. Модель с виду вполне рабочая, на ней тысячи игровых серверов работает
>>951950К ерлангу относится, конечно, очень опосредованно, но я все-таки распределяю чуть-чуть - в конце же об этом написал, и как раз это у меня сомнения и вызывает. Ну ладно, раз никто не советует, то не буду навязываться.
Как заставить elixir работать c unicode в windows?
>>954040Забыл добавить. При интерпретации тоже вылетает ошибка.
>>954040Поставить прыщи второй системой и не ебаться в будущем еще с тысячей других эргангопроблем на окнах.
>>954235Спасибо, Кэп. Но все же хотелось бы заставить этого осла работать под виндой.
>>845348 (OP)Манагер версий нужен, не? Заебался до треда листать.
Аноны, вкатываюсь в ерланг, нужна ваша помощь.Написал я программу в сублие, сохранил ее как code.erlКак ее скомпилировать и запустить? Читаю книгу, но терминал выдает ошибки Кстати, пытаюсь скомпилировать так:compile:file(code)Но я как только не пробовал, не работает. Если что то запускаю терминал из той же папки где и программа, тут я не ошибся.
>>964484На венде пытаешься?
>>964675Специально убунду поставил. С компиляцией уже разобрался, но в ебанном мануале написано криво.
>>964703Книжку джоя читани, там все по пальцам обсасывается.