что такое Erlang? это первый функциональный язык общего назначения, разработанный, в первую очередь, для промышленных нужд. в отличие от того же хаскелла, erlang создавался не для бесконечного аутирования над кучей абстракций (и мастурбацией на свою охуительность), которые надо было каким-то образом повязать друг с другом, а для решения прикладных задач – в первые годы его существования такие нужды определила сфера телекома. язык разрабатывался в CSLab с середины восьмидисятых и был представлен уже компанией Ericsson для промышленного использования в 95 году, и сразу же взорвал общественность своим появлением.Шапка треда: http://telegra.ph/SHapka-treada-Erlang-12-18
>>1109086 (OP)В Эрланге/Элексире полезна в основном только натуральная параллелизация и отказоустойчивость всего с этим связанного. Очень ситуационный язык/семейство языков, на мой взгляд.
>>1109087Это язык для некоторых аспектов промышленного кода, имо. Вообще странно его немного выделять в отдельный тред, тред о ФП в целом зашёл бы лучше.
>>1109088Создавать треды широкой направленности имо не очень продуктивно, потому что разговор будет идти обо всем, и не о чем одновременно. Если бы делал тред про фп, то делал бы его максимально оторванным от языка и больше о теории.По поводу нишевости тут достаточно спорно. Я как евангелист вижу скорее то, что на Erlang можно code the world для всего, где не нужны числовые операции (хотя даже это ограничение легко можно обойти с помощью нифов) и воспринимаю ERTS больше как полноценную ОС, чем просто язык. Тред и создал затем, чтобы внести свою лепту в популяризацию языка, чтобы скрипткиддис и ноде.жс брейнлеты познали настоящую силу HPC.
Правильно ли я понял, что Erlang похож на Go? По сути, многопоточность в нем такая же? “Do not communicate by sharing memory; instead, share memory by communicating”?
>>1109094Go не альтернатива Erlang для бекенда, где доступность и низкая задержка для большого числа одновременных запросов является обязательным требованием.
>>1109094https://www.reddit.com/r/golang/comments/3zpyet/difference_erlang_and_golang_concurrency/
>>1109086 (OP)Есть вакансии?
>>1109095>>1109096Благодарю. Аж рученки зачесались попробовать Erlang
Работы на нём нет нихуя удаленной :-/ Так-то я уже в трех конторах проекты на нём прострелял, но вот фиг теперь удалёнку на нём найдешь. Приходится страдать с жавой, дотнетом и жабаскриптом.
>>1109095Го вообще ебанутая игрушка оверхайпнутая. Какой смысл сравнивать говнуэ с Эрлангом? Говнуэ умеет уже на bare metal работать, без операционки? То-то.
>>1109110Ну потому я и написал что он для промышленных нужд.
>>1109107Если мне нравятся сети и телекоммуникации (увлекаюсь физикой) - ерланг - мой выбор?Сейчас пишу на Го, в прошлом джавист
>>1109162Однозначно.
>>1109162смотря что за коммуникации. эрланг не для операций с матрицами. хотя, хуй знает.
>>1109189Норм матрицы там заходят
Освящают тред. Проникся otp, функциональщиной. Осталось работу найти.
>>1109088Не зайдёт он в треде о ФП. Erlang/Elixir надо в разрезе конкурентного программирования/распределённых систем обсуждать: actor model, flow-based-programming, reactive streams вот этого всего.
>>1109450Плюсую
>>1109086 (OP)С чего начинать учить?
Вкатываюсь в Elixir, сам PHP-шник.Похоже это то что мне хужно.
>>1109569Erlangoбоги не одобрят
>>1109820Кто их спросит? У языков одни и те же возможности.
>>1109839В шапке последний абзац.
> который масимально эффективно использует нагрузку всего процессора.Мне говорили с SMP у BEAM проблемы. Кто в курсе?
>>1109954Спроси у того, кто говорил.
>>1109088Не согласен. В эрланге ценность ФП заключается в довольно базовых вещах: иммутабельность, TCO, pattern matching. Хуль тут обсуждать то? А вся польза лежит в пиздатом рантайме и в actor model.
>>1109094В Го грин треды шарят память между собой. В Эреланге нет.
>>1109095Поясни почему у го будут какие-то проблемы с задержкой на высоких RPS? Я читал похожий блог-пост 200мохнатого года, до того как в Go сделали пиздатый GC, который подходит для soft real time. Можно с бенчмарками.
https://www.quora.com/When-did-Facebook-switch-away-from-using-Erlang-for-Facebook-Chat-What-was-the-reason-for-it-What-did-they-replace-it-withЧто скажете, Эрланганы?Алсо, вам не кажется, что дефолтные для Эрланга механизмы кластеризации немного ограничены для реального мира, когда постоянно происходят net split'ы? Нет ли более мощной либы для этого?
>>1110090Бля
>>1110090Самая большая проблема разработки – сложность кода как правило превышает способности человеческого мозга. Поэтому главные критерии кода должны быть: простота и понятность (ваш кэп)
>>1110090> Бля, ну чет там короч ебаться надо было с отп, мы не разобрались короче, а тут у нас уже целый отдел сидит костыли на крестах хуярит, ну хуль мы, зря им деньги платим что ли? пусть еще костылей нахурят, зато свое, родное, invented hereЯ охуеваю с их практик разработки, например. Из этой же серии их история про то, что они наговнячили свой сайтик на пхп, а потом ВНЕЗАПНО обнаружили, что под нагрузкой оно тормозит и постоянно падает, а еще слаботипизированную динамикодрисню оче трудно поддерживать - и что они сделали? НУ КОНЕЧНО накостылили свой тайпчекер для пхп и навелосипедили свой компилятор для пхп. Просто пиздец, ебаная галера.
>>1110466Эрлангую адеквата. У меня такое же отношения к их говноподходам и к их HHVM.Они просто руководствуются техникой запила быстро чтобы бабки рубить, а в случае проблем сделать оптимизацию. И заодно других говном полить не забыть.
>>1110497>быстро чтобы бабки рубить, а в случае проблем сделать оптимизациюТак в том все и дело, что они НЕ пилят прототип, выкидывают, пишут стабильную версию, грубо говоря. Они пилят прототип, а потом обмазывают его сотнями костылей, просто потому что NIH и чтобы иметь контроль над максимальным количеством кода. Эдакий младший брат-дауненок у гугла.Тот же реакт - концептуально говновелосипед, переизобретающий webcomponents и virtual dom просто потому что МЫ ФЕЙСБУК, МЫ МОЖЕМ ССАТЬ НА СТАНДАРТЫ, АХАХАХА.
>>1110523 >говновелосипед, переизобретающий webcomponents и virtual dom -- вот буквально вчера ночью о том же думал. Почему не могу с новой строки написать, абу совсем охуел?
>>1110878Лучше пока нет.
>>1110878По энтеру пост отправляется? У меня вчера тоже было.>>1110948Есть подозрение, что уже и не будет.
>>1110090>one server in the group would fail and cause cascading issuesИ это в заизолированном асинхронном мирке акторов. Если нормальную топологию построить не могёшь, то никак ершланг не поможет, да.>we found a number of instances where Erlang wasn't scaling well to multiple cores.А по докладам он скейлился отлично даже не тысячеядерной Paralella. Ну и ушли обратно жрать говно на сипипи, ясно.А по факту: ни кода, ни конкретных проблем, о чём базар вообще? Конечно хотелось бы верить что фб-шники не просто хипстеры меняющие шило на мыло каждый год, и у них действительно были реальные причины, но в посте никакой конкретики же.
>>1109898Там написан какой-то бред.мимо-эликсирщик-до-этого-эрлангист
>>1111313Напиши свою
>>1111313вроде норм
>>1111333Всё остальное можно оставить, но конкретно абзац про Elixir лучше переписать или вообще выпилить.>"erlang для ленивых"Не совсем понятно. Имеется в виду что есть масса полезных абстракций, а значит не понадобится набивать кучу лоулевельного бойлерплета? Но с другой стороны эти абстракции нужно будет изучать и уметь применять, так что хз насчет "для левнивых".>по сути – erlang с ruby синтаксисом.Какая глупость. Там от руби синтаксиса почти ничего не осталось, кроме do end блоков и ещё пары мелочей. Ну и да, это больше чем erlang с руби синтаксисом, что уже не раз обсуждалось в Erlang/Elixir тредах. >на самом деле, можно начать с него погружение в erlang-средуНа самом деле Elixir надо рассматривать как отдельный язык, и перекот с него в Erlang это как перекот со скалы в джаву, или с крестов в сишку, т.е. такие уникумы конечно найдутся, но это скорее исключение.>всё вышеописанное действительно и для Elixir, но у него намного проще абстракцииШтооу? У него сложнее абстракции, их больше и они разнообразнее. Это как раз ерланг простой и прямой как палка (в чём конечно есть определённое преимущество).>а и комьюнити у него, как ни странно, более активноеНу да, следует напомнить что в плане активности комьюнити Elixir за три года своего существования обогнал Erlang в несколько раз. Как ни странно, ведь это всего лишь "Erlang с руби-синтаксисом".>но я бы не советовал, честно, на нем зацикливаться, потому что Elixir много вещей пересоздает зановоВ смысле? Он ничего не пересоздаёт заново, везде где можно и целесообразно используется то, что уже есть в erlang, другое дело, что в последнем для комфортной разработки чего-то, кроме прошивки для роутеров, толком ничего и нет. Более того erlang суппортеры и комьюнити настолько распиздяйское, что даже типовые проблемы в лучшем случае выносили во внешнюю недолибу, в худшем вообще ничего не делали, продолжая из проекта в проект набивать однотипный бойлерплет. Сейчас, с появлением Elixir ситуация несколько улучшилась, одни работают над языком (эликсиром), другие над вмкой (в основном). И судя по последним изменениям, влияние первых на вторых таки усилилось, и благодаря этому в языке наконец-то появятся вменяемые сообщения об ошибках (и это в 2017 году), если бы не Джозе, так всю жизнь жили бы с error: bad argument.>чтобы хорошо писать на elixir нужно все же хорошо познать erlang/OTPЭто вовсе не обязательно. Ну вернее OTP обязательно, но это можно сделать и в контексте Elixir. К тому же там есть некоторые отличия, например в Elixir GenEvent был справедливо выкинут нахуй, сразу с выходом GenStage, хотя и без него это имело смысл.Итого: Elixir нужно рассматривать как отдельный язык, и из шапки про Erlang вовсе выпилить, чтобы не сбивать неофитов с толку. А про Elixir пусть спецы по Elixir расскажут а не предвзятые телебайтоёбы у которых уже всё есть и ничего не нужно.
>>1111416Спасибо добавим если тред еще будет жить.
>ни кода, ни конкретных проблем, о чём базар вообще? Конечно хотелось бы верить что фб-шники не просто хипстеры меняющие шило на мыло каждый год, и у них действительно были реальные причины, но в посте никакой конкретики же.У вас ООП
>>1112054ЧТА?
C наступающим всех функциональщиков!
>>1109086 (OP)>в отличие от того же хаскелла, erlang создавался не для бесконечного аутирования над кучей абстракцийКак-то противно сразу стало, повеяло оскорбляющими друг-друга школьниками, травлей, аргументами ад хоминем и прочим пиздецом.Вьеби ка сажицы.
>>1113383Пшел вон, пес.
>>1113383Все правильно сказал
Где все вакансии?
>>1113494hh.ru
>>1113494Вакансий много на западе.
>>1113714двачую
>>1109086 (OP)С новым годом эрлухи
Двачек, ну скожи, что лучше для поиска работы полуркать, erlang или scala? С жаббой как-то не очень хочу мазаться, но вроде скала популярней.
>>1115333скала
>>1115333hh.ru
>>1115369Москвичи идут нахуй, у нас половины вакансий там нет.
>>1115333В рашке на Erlang/Elixir вакансий нет. Все эти фирмы смотрены-пересмотрены давно. Так что Java и Scala.
>>1115510> В рашке на Erlang/Elixir вакансий нетНу хуй знает, меня знакомый уже с полгода к себе зовёт на эликсире писать, а мне всё лень его нормально выучить, так и сижу на жаве. И все полгода вакансия открыта, никого не могут найтимимо
>>1115527
>>1115527Удаленку рассматривает? Требования озвучь, а?
>>1115567Бен привет
Я совесем нуб, решил поковырять немного этот ваш Erlang. Скопировал какой-то простейший пример кода из книжки Армстронга. Запускаю, а он мне вместо ответа выдает:exception error: no match of right hand side value XXX, где XXX- правильный ответ. Что это?
Еще один нубас на связи. На чем потренироваться, что сделать в качестве самого-самого первого приложения? Нужно что-то максимально простое, вкат для начинающих почти с нуля.
>>1115740данжн кроулер, граббер. Или реши какое-нибудь тестовое на п2п-сеточки - вроде тех, что давали в echo.>>1115708Ну паттерн-матчинг недописал где-то.
>>1115838>реши какое-нибудь тестовоеХристос Воскресе!
Оффтоп, но все же. Дело такое: я долгое время влачил жалкое существование на совсем уж чмошной работенке. В один прекрасный момент решил, что так дальше нельзя и надо что-то менять. Решил стать погромистом. Все же закончил технический недовуз и хотя бы самое общее представление о теме имел. Начал учить. Через 7 месяцев удалось вкатиться в неожиданную тему. Погромирование на руби, рельсы. Точнее... я не могу назвать это погромированием. Есть уже готовый, достаточно большой проект. И вот команда "разработчиков" в Мухосрани, под присмотром из Москвы занимается тем, что устраняет косяки, добавляет нехитрый функционал, правит имеющийся и тп. В свободное время решил чем-то себя дополнительно занять. Сначала думал о Java как о "штуке, которая всегда пригодится"(в том числе и в той конторе, где работаю сейчас). Но потом душа попросила чего-то нового, неизведанного и потянулась к Erlang. Вот я помеленьку его осваиваю. Мне это кажется даже приятным, но... есть такая проблема. Она есть и в том, чем я занимаюсь на работе сейчас, но в Erlang выражена сильнее. Ну ок, когда есть готовый код и надо что-то подправить- я смогу... наверное. А вот написать что-то свое- нет. Дело даже не столько в том, что я не могу написать что-то свое с нуля, а в том, что у меня нет понимания "а что я вообще мог бы создать пользуясь теми инструментами, которые у меня есть". Может Erlang все же не для таких как я? Или погромирование в принципе не моя тема?
>>1115923Читай @ ПишиКогда что-то создашь теми инструментами, которые у тебя есть - тогда и поймешь, что вообще мог бы создать теми инструментами, которые у тебя есть. Довольно просто.
>>1115956Т.е пока все нормально, просто продолжать?
>>1116000Не продолжать, а начать целенаправленно пилить для себя проектики параллельно с чтением книжек.
>>1116200А нет у меня идей для проектиков. Тупенький я.
Хочу изучить скалу, с ФП раньше дел не имел поэтому думаю почитать какую книгу. Есть советы?
>>1116253Совет: искать ответ вне Erlang-треда
>>1116253Есть же скала тред
Эталонный нуб снова на связи. Читаю книжку армстронга. Решил поковырять примерчик, но... не могу его запустить. https://dyp2000.gitbooks.io/russian-armstrong-erlang/content/chapter11.htmlВ пятом параграфе читаем "Для запуска приложения получите исходные коды веб-сайта этой книги и распакуйте их в какой-нибудь каталог." А дальше терминал и make.Как это понимать? Я посмотрел на github, но что-то не увидел там make-файлов
>>1116431Никто не знает что и откуда ты качаешь.
>>1116210Напишу борду. Потом напиши p2p-борду.
>>1116253Курс на coursera по основам ФП на скале от создателя этой самой скалы. Не благодари.
>>1116431Там же есть ссылки на все файлы с исходниками. Про какой гитхаб ты говоришь мы, как заметил анон выше, не знаем (эх, щас бы гуглить, что он там скачал, чтобы ему помочь, потому что ему самому лень было ссылки в пост добавить). Просто возьми и собери проект, как собираешь все остальные проекты - исходники-то у тебя есть.
>>1116664На этой странице есть исходники нескольких файлов. Я их скачиваю, кладу в нужный каталог. И... дальше?
>>1116794к автор говорит мне делать что-то через make, когда среди скаченного только erl файлы?
>>1116796*как автор
>>1116662Я пока на том уровне умственного развития, на котором вообще нихуя не понятно как написать борду не использую фреймворки
>>1116841Пора расти
>>1117683Я расту, просто я пока так мал, что мне до этого далековато
>>1117698Может ты просто пока не определился, чем больше сего нравится заниматься в программировании? Какой софт вы там вышлифовываете у себя в конторе мухосранской?
>>1117791что-то вроде системы документооборота
>>1117894битрикс?
>>1118054Нет. Сама хуйня написана для крупного ведомства.
Насколько похожи между собой функциональные языки? Ну, т.е. если я буду на сносном уровне владеть Erlang, просто ли при необходимости переключить на Haskell?
>>1118173Не похожи. Алсо, не надо ими владеть, пока вакансий мало.
Есть ли прецеденты использования Erlang'а в разработке игрушек? а в AI применяется?
>>1116841Ну так используй фреймворки. Параллельно прочитай какую-нибудь книжку про хттп.>>1118173Настолько же, насколько между собой похожи джава, кресты и сишарп, например. Нет, не очень просто, но в разы проще, чем если бы ты не владел ерлангом.>>1118900У LoL часть сетевого стека на ерланге, емнип. Нет никакого "AI".
>>1118900да
Какую IDE под WinOS взять? Хочу просто побаловаться, посмотреть, затянет, нет, потому менять ОСь и ночами танцевать с бубном желания пока нет.
>>1118922Так. Это все хорошо.А может ли в качестве первого упражнения выступать не борда, а что-то... ну, в общем "не сайтик"? Варианты есть?
>>1119044Я вот телеграмм бот делать буду.
>>1119044Нет, не может. Как тебе такое только в голову пришло?!
>>1119284Ты видимо не понял ключевых слов в моем вопросе.
>>1119609Ты видимо не уловил ключевой причины моего сарказма. Хуярь, а не выбирай, что хуярить!
>>1119726Ты, видимо не прочитал все с самого начала. Я бы рад хуярить, но для этого все равно придется сначала выбрать что именно хуярить. У меня как раз большая проблема с выбором цели. Вот есть инструмент - Erlang - я не понимаю какие задачи я мог бы решить с его помощью. Мне нужно что-то более менее типичное и достаточно простое
>>1119772Ну и захуярь себя цепью от велосипеда. Возьми что-то связанное с сетевой байтоеблей, да хоть к libpcap драйвер захуярь.
На каком уровне надо знать математику, что бы вкатиться в эрланг?
>>1119776Я думал вешаться на цепи от велосипеда, но тут вдруг оказалось, что я пригоден хотя бы к говнокодингу. А раз так, то надо же как-то развиваться. Но у меня общий кругозор по части кодинга очень слабый, поэтому и не знаю, что запилить.
>>1119945Где для виндовса ide взять для эрланга? Я скачал эклипс, а он виснет при создании прожекта...
>>1119946Нахуй тебе иде? У тебя жава головного мозга?
>>11199461. hyper-v/любаявиртуалка2. прыщеблядикс3. гцц4. емакс с erlang-mode (в поставке ирлонга)5. ???6. щизофренияНету иде под эрланг кроме емакса, так-то. Ну хуярь хоть в саблайме, раз без винды не можешь, а код через repl перегружай.
>>1119963Емакс и под шиндосом пашет, тащемто
>>1119772>>1119945Ну давай теперь ты еще неделю будешь выбирать, что бы такого запилить, это нихачу, это нибуду, ой как же так почему я ни расту как прогормист((9>>1119963А ерлайд?
>>1120169Я думал, что в этом треде мне легко и просто накидают вариантов 5-7, из которых я выберу тот. который больше понравится. Но...
Поясните нубу: вот я вижу ошибку Error in process <0.320.0>, как мне понять, что это за процесс?
>>1120302Ну тебе же пид выдан. https://azunyanmoe.wordpress.com/2011/04/01/getting-process-information-of-erlang-runtime-system/http://erlang.org/doc/man/observer.htmlИщи сам дальше. Алсо, ctrl+g в шелле по-моему списочек выбивает, где есть list jobs
>>1120127Я под ним тут и пишу, хех.>>1120169>А ерлайд?Это к intelij idea и прочим червям-пидорам, я вообще хз, зачем для эрланга иде.
>>1120395Да я как бы понял, что это пид, я не знаю как этот пид связать с конкретным куском кода, буду у компа- попробую Ctrl+g
Какой идеальный язык братья!
У меня появилась задача написать небольшую прогу. Функционал состоит из двух частей, для первой части идеально подходит Erlang, а вот вторая подразумевает возможность делать скриншоты и делать на них пометки. Erlang подойдет?
>>1120721da
>>1120397> intelij idea Нет, к эклипсу.>зачем для эрланга идеЧтобы писать код.
>>1121088Но редакторы наивнее справляются с написанием кода.
>>1121105Эффективнеет9
>>1121088vim + vim-erlang - лучший ide
>>1121105Ты где-то видел ide без редактора?>>1121116Отличная шутка, братан!
А в sublime писать на этом вашем Erlang неудобно?
>>1121259Я не шутил. Сам так пишу и ловлю каеф.
>>1121287Да хоть в notepad.exeЯ емаксом пользуюь по привычке уже, без него некомфортно.
>>1121378Как погода на Марсе?
>>1119943бамп
>>1121416Скажу, что ты должен чувствовать тригонометрию и любить её. Именно там в школьной математике используются чистые функции.
Эликсир разве не пизже?
Начал изучать erlang. Дошёл до списков и кортежей. Чем лучше строить бинарное дерево? Списком или кортежем? Или кортежем внутри списка? Или наоборот? Оцените дерево на ОПпике.
>>1119943Ни на каком.>>1121417Ерунда.>>1121528Это зависит.>>1121572https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D1%80%D1%82%D0%B5%D0%B6_(%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0)> Кортеж — упорядоченный набор фиксированной длины.
>>1109086 (OP)Кстати, вроде же не было тут:https://www.opennet.ru/opennews/art.shtml?num=47869>Заметный рост интереса также отмечается для языков: Swift (с 14 на 12 место), Erlang (c 44 на 23) и Kotlin (с 89 на 39). >По уровню роста популярности лидирует язык Си, который за год повысил свои показатели на 1.69%. Далее следуют Python (+1.21%) и Erlang (+0.98%).
>>1121599скоро на фронте эрланг будет
>>1121590>> Кортеж — упорядоченный набор фиксированной длины.Это проблематично для создания деревьев? Я просто нюфаня в программировании.
>>1121791Нет
>>1109086 (OP)>>1109497https://github.com/mpyrozhok/learnyousomeerlang_ru/blob/master/pdf/learnyousomeerlang_ru.pdf
>>1109086 (OP)Короче пока изучал эрланг пришла идея для одного приложения. Вобщем нужно будет загружать и выгружать объявления с фото через мобилу, естественно нужно будет делать выборку по фильтрам. Собственно вопрос - на чём пилить серверную часть - elixir или erlang? Думается мне - приложение должно быть устойчивым к большим нагрузкам. На чём пилить клиентскую часть, я так понял программирования под андроиды эрлангу ещё не завезли?
>>1122734пиздец ты шизофреник, ты сам понимаешь что несешь?
>>1122734>программирования под андроиды эрлангу ещё не завезли? http://code.google.com/p/erlang4android/
>>1122734>на чём пилить серверную частьНа том, что лучше знаешь.
>>1109086 (OP)Помогите плиз, не могу понять в чем дело..."C:\Program Files\erl9.2\bin\erl.exe" -pa C:/Users/Iven/IdeaProjects/erltest/out/test/erltest -pa C:/Users/Iven/IdeaProjects/erltest -eval shop:cost(1). -s init stop -noshellinit terminating in do_boot ({function_clause,[{shop,cost,[1],[{_},{_}]},{erl_eval,do_apply,6,[{_},{_}]},{init,start_it,1,[{_},{_}]},{init,start_em,1,[{_},{_}]},{init,do_boot,3,[{_},{_}]}]})Crash dump is being written to: erl_crash.dump...{"init terminating in do_boot",{function_clause,[{shop,cost,[1],[{file,"c:/Users/Iven/IdeaProjects/erltest/src/shop.erl"},{line,14}]},{erl_eval,do_apply,6,[{file,"erl_eval.erl"},{line,670}]},{init,start_it,1,[{file,"init.erl"},{line,1099}]},{init,start_em,1,[{file,"init.erl"},{line,1085}]},{init,do_boot,3,[{file,"init.erl"},{line,793}]}]}}
>>1122876>-eval shop:cost(1)
Решил вкатиться в этот ваш Erlang. Начал читать вот это https://www.gitbook.com/book/dyp2000/russian-armstrong-erlang/details. Актуально, или говно мамонта?
>>1132763Неустаревающая классика™.Всё остальное — блеяние стада баранов.
>>1132781В книге сказано, что в языке нет for, совсем нет. Ок, допустим. Он просто не нужен? Или же когда он нужен используют что-то готовое для этого? Или же каждый раз пишут руками что-то подобное примеру из этой книжки?
>>1132841Рекурсия же
>>1132841Нахуй тебе for? Совсем ебанутый? Может тебе еще goto сделать чтобы было все как в твоей любимой процедуропараше?
>>1132855не петушись
>>1132841http://learnyousomeerlang.com/higher-order-functionshttp://erlang.org/doc/man/lists.html например
Что всегда не нравилось в подобных книгах, так это то, что порой не ясно, что действительно важно и должно быть как можно быстрее изучено глубже, а что просто абстрактные, сугубо учебные примеры слабо связанные с реальной жизнью
Посоны, я тут пытаюсь вкатываться, и у меня назрело желание увидеть реальный код на Эрланге. Где бы посмотреть на Эрланг-код типичного реального или близкого к реальному проекта?
>>1133570https://github.com/rabbitmq/rabbitmq-server/tree/master/src
Начал читать про Эралнг. Написано, что переменные не меняются. Смотрим на любой receive. Приняли сообщение. Сопоставили с шаблоном, получили совпадение, к переменной из шаблона теперь привязано значение. Приняли второе сообщение, оно совпало с тем же шаблоном и в ту же переменную попало другое значение. Янихуянепонял. Не бейте, только обоссыте.
>>1134572>Янихуянепонял.Не удивительно, ты не знаешь даже основ. Начни с SICP, там всё разжевано для таких как ты, а потом вкатывайся в Эрланг.
>>1134572Двачую оратора выше. sicp, http://htdp.org/ - в ПРОМЫШЛЕННОЕ ПРОГРАММИРОВАНИЕ тебе пока рановато.
>>1134738>>1134855и все же, можете мне объяснить в двух словах?
>>1135423Да хуй знает, как объяснить даже. Ну вот ты сам ее меняешь? Нет, она неизменяемая. Тебе просто извне приходят какие-то данные, а сам ты их изменить не можешь. Но они приходят по одному и тому же каналу в одно и то же место, а потому ты их можешь обозначить каким-то именем. Имя одно, данные - разные (и неизменяемые). Ну вот представь, что ты работаешь в офисе банка, у тебя есть окошечко, куда подходят клиенты за консультациями. Ты можешь назвать человека, который стоит в данный момент в окошечке, клиентом. Это каждый раз разные люди: клиент Вася, клиент Петя. Но для тебя важно, что у тебя в окошечке клиент, потому что у тебя есть алгоритм действий: ну, типа, поздороваться с клиентом (а не Васей, Петей и т.п. - кто там конкретно нам неважно), выслушать вопрос клиента, ответить клиенту. Вот, и еще ты изменять своих клиентов не можешь: вот они какие к тебе пришли, с такими тебе и надо работать. Ты не можешь сделать их менее тупыми, не можешь им отрезать руку или ногу, не можешь изменить их вопрос, с которым они к тебе пришли; какие есть - такие есть. И ты с ними работаешь по единому алгоритму - то есть у тебя не тыща разных алгоритмов для Васи, Пети и т.п., а один алгоритм, который работает для любого клиента.Но еще раз: это все абсолютно базовые вещи, тебе нужно читать книжку по основам программирования, а не по эрлангу. От объяснения в двух словах никакого понимания не будет.
>>1135472Я для себя это примерно так и понял. Т.е. принципиально важно не то, чтобы Х был только одним самым первым из присвоенных, а в том, чтобы если я его откуда-то получил(как вариант сам создал и присвоил значение) то тогда уже менять не могу, а получать разный могу сколько угодно раз новый.
>>1135555то, что в скобках зря написал, но почти уверен, что все понял правильно. А так да, теоретической базы мне сильно не хватает, но в 29 поздно ее нарабатывать
>>1135555>>1135557Не поздно. К тому же это не "теоретическая база" (обмазываться монадами и разбираться в лямбда-комбинаторах тебя никто не заставляет), а минимальные необходимые основы.
Еле нашёл вас.Короче, я немного рубирую, и сейчас мне мой клиент такой говорит: а давай ты лучше попишешь тесты для моей приложеньки на Elixir + Phoenix, там ничего сложного, просто критичный функционал онлайн-биржи с реальными юзерами, так что если накосячишь, нам всем пизда, и тебе в первую очередь. Знаешь, что они делают в тюрьмах со снежками вроде тебя?Следует добавить, что до этого момента я видел эликсир только в паре снов. Там было что-то про то, как я задаю значение переменной, а она не меняется, я пытаюсь снова и снова, но ничего не выходит и только в консоль валятся сообщения об ошибках. Тогда я начинаю проваливаться сквозь код в текстовом редакторе, падаю куда-то вниз в самую темноту, окружённый кусками текста и чьим-то протухшим байткодом, пока, наконец, не просыпаюсь в холодном поту, зажимая себе рот, чтобы не закричать.Кстати, начать нужно будет завтра (через 4 часа). Собственно, вопрос: что делать? Нет, не так. ЧТО ДЕЛАТЬ?
>>1151000Лол. Подписался, пиши отчеты.Для начала тебе нужно установить рантайм ерланга и еликсира. Потом начинай читать официальную документацию.
>>1151000ровно стелешь, пиши еще
>>1151158Поясните нубасу, что такое рантайм. Часто встречаю это слово, гуглил, читал, но нихуя не понял, от источника к источнику совершенно разный смысл.
>>1151158>>1151219Спасибо за ваши драгоценные советы, без них я бы не выжил.Короче, накатил всё, час сидел как обоссаный, ждал, пока докер закончит свои делишки. Стал читать доки. У нас в проекте есть несколько тестов, я их запустил и получил пикрелейтед. Так-так-так, что тут у нас, всратые спеки, ахахах, всратые спеки наканец-та! На самом деле, обрадовался конечно, потому что править чужой код попроще, чем писать свой. Да, кстати, всё запускается молниеносно, хотя там и бд задействована, и всё такое. Прогон тех же 300 тестов на рельсопроекте дал бы время пораковать в слаке, а тут чет не вышло. Тесты я починить не осилил (вот это сюрприз), но примерно понял, что мы используем почти все инструменты, к которым я привык - factory girl, faker etc.Ещё понравилось, что mix идёт в комплекте с языком, а не как bunder в руби-мирке. И что можно писать как скрипт-кидди (файлы .exs), а можно компилировать, будто ты пердолевый барон (.ex).Не понравилось передавать в тесты задействованные переменные. И ещё, к примеру, метод Agent.get_and_update. Мне лично НЕПРИЯТНО использовать его, потому что кажется, что он нарушает SRP.В целом нихуя не понятно, но я думал, что будет хуже.
>>1152467>Agent.get_and_update. Мне лично НЕПРИЯТНО использовать его, потому что кажется, что он нарушает SRP.А как ты собираешься атомарно взять и обновить значение в некоординированной асинхронщине? compare and swap у тебя тоже SRP нарушает, лол, ООП-блядок ты хуев?На самом деле добра тебе, жду новой серии :3 Код у вас за сотней NDA или скидывать можно?>>1151224https://stackoverflow.com/questions/3900549/what-is-runtime
>>1151000>там ничего сложного, просто критичный функционал онлайн-биржи с реальными юзерами, так что если накосячишь, нам всем пизда, и тебе в первую очередь. Знаешь, что они делают в тюрьмах со снежками вроде тебя?Типичный бизнес в рашеньке г-ди, как же я проиграл с твоего рассказа
Правда ли, что джун-разработчик на Erlang/Elixir это никому не нужный вымышленный персонаж?
>>1163050Точнее и не скажешь.Erlang изучают не для того, чтобы работать на нём, а чтобы мозги начали думать более правильно.
>>1163191Сразу видно, что в этом треде ты мимоходом, лол.>>1163050Всякое бывает, анон. Но направление мысли у тебя верное.
>>1121105>эффектинвее справляются с написанием кодаЭффективнее, чем редактор с подключенным статическим анализом?
>>1109086 (OP)Вот один из контрибьютеров в n2o
>>1163629Ну и кто это?
>>1163638одмин и по совместительству ёбарь твоей мамки
>>1163629>слышь, сайд-эффекты есть? А если найду?
Не бейте, лучше обоссыте. Можно ли с помощью Erlang написать аналог прельстивой функции создания скриншотов в огнелисе? Если да, есть ли какие-то серьезные доводы против использования Erlang для этого?