Этого треда уже нет.
Это копия, сохраненная 13 февраля в 01:07.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
elixir.png34 Кб, 450x188
Выспавшихся программистов тренд /elixir/ /elixir/ 2082722 В конец треда | Веб
Здравствуй, дорогой анон.

Сегодня хочу рассказать тебе о прекрасном функциональном языке для написания неубиваемых распределённых систем, а более конкретно вебни на бэке, больших soft-realtime систем и IoT говен. Называется он Elixir, а работает он на виртуальной машине real human BEAM, на которой ещё работает язык Erlang

Немного истории

Эликсир это современный язык, построенный поверх языка Erlang с блекджеком и лисповыми макросами. У этих языков полный интероп в обе стороны, но при этом эликсир лишает вас этого удовольствия написания Сам язык Erlang появился в компании Ericsson как язык для написания максимально отказоустойчивых телекоммуникационных систем. Именно из желания создать среду для написания максимально отказоустойчивых систем появились все основные фичи.

Основные фичи

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

⚹ Ахуенно приспособлен к разработке распределённых систем. Все основные проблемы написания распределённых систем вроде сихнронизации монотонных часов, общения между машинами, поиска машин, heartbeat-ы, группы процессов, gossip-ы уже включены в язык
Любая достаточно сложная распределённая программа содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Erlang.

⚹ Ахуенно приспособлен к разработке отказоустойчивых систем. Что делают кубы, когда падает сервис? Они перезапускают его. Эрланг делает то же самое, только не с сервисами, а с процессами, что значит что неожиданное исключение в одной части функционала никак вообще никак не заденет другой функционал.

⚹ Ахуенный тулинг. В отличие от эрланга с его хэдерами, makefile-ами и прочими пыльными приколами, эликсир за секунды позволяет создать проект, скомпилировать его, сконфигурировать его, собрать артефакт, скачать зависимости и всё такое в стандартах всех современных языков. Серьёзно, местный билдтул (mix)гораздо лучше чем забугорские cargo, npm, go и gem

Нахуя

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

Я хочу спать по ночам. Как вкатиться?

Чтобы успешно найти работу на эликсире, нужно уже иметь некоторый опыт разработки за деньги и понимание того какое же говно это ваше ойти. Желательно от одного года в вебе. Самый быстрый способ обучения это в то же время и самый эффективный способ, поэтому синтаксис и стандартная либа постигается вот тут
https://elixirschool.com/ru

Более подробное описание внутренностей, хороших практик и хитростей стандартной либы описывается вот тут.Тут будет эрланг, но это не должно быть проблемой
https://learnyousomeerlang.com/

Конкретно вебня на эликсире
платно: https://www.amazon.com/Programming-Phoenix-1-4-Productive-Reliable/dp/1680502263
бесплатно: https://hexdocs.pm/phoenix

Тому, кто ценит своё время, я советую начать писать какой-нибудь проектик параллельно с чтением книжек. Чтобы стать джуном на эликсире опытному бэкендеру нужно не больше месяца

Рыночек

Средняя температура по больнице зарплата у эликсирщика традиционно больше чем у любого друогого языка, поэтому поменять голанг или питон на эликсир будет выгодно. Вакансии на рынке РФ существуют, искать можно на hhрю или в чатиках в телеге t.me/proelixir. Забугорных вакансий значительно больше и они охотно нанимают разработчиков с опытом. Самое важное качество при найме это не знание самого языка, а софт-скиллы и общее понимание веб-разработки как таковой, так что придётся социализироваться

Вопросы?
2 2082724

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



ну и нахуй нужен такой язык?
3 2082726
>>082724

Привет, Сычёв. Вылезай из берлоги, родной, самое время заводить себе друзей-анимешников в мире программирования
4 2082823
>>082722 (OP)

>Чтобы стать джуном на эликсире опытному бэкендеру нужно не больше месяца


И зачем опытному бекендеру становится джуном с непонятными перспективами и дропом зп?
5 2082839
>>082726

> друзей


> анимешников


> в мире программирования



тройное ненужно
6 2082893
>>082823

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

В этом и есть вся перелесть эликсира: если ты разбираешься в вебе, в распределённых системах, то эликсиру тебя научат на месте работы, при этом, зп только вырастет
scrot201003102627.png759 Кб, 1920x1080
7 2082897
>>082839

Эх, а я так хотел с тобой подружиться. Няшились бы с тобой под пледиком, посматривая GTO и перекидывая друг другу лямбдочки по distributed erlang
8 2082909
>>082893

> эликсиру тебя научат на месте работы


Если тебя нанимают как опытного бекендера, от тебя ждут, что ты сам будешь обучаться всё таки.
9 2082929
>>082909

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

Базовый уровень эликсира подтягивается за день/неделю в зависимости от одарённости на https://elixirschool.com , а всё остальное узнаётся на месте. И если тебя нанимают (а тебя нанимают), то люди точно готовы отвечать на твои вопросы касательно собственного стека
10 2082935
>>082722 (OP)
Elixir хуйня; работы нет
Приходи через 4 лет
/трет
11 2082936
>>082929
Вопросы касательно собственного стека != банальные вопросы по языку, которые ты можешь сам найти в доках.

> понятие сам/несам какое-то не совсем ясное


Имеется ввиду, что ты сначала сам попытаешься решить свою проблему, а только потом пойдёшь спрашивать у других. И, если ты действительно разработчик с опытом, то вопросы будут касаться либо каких-то крайних тонкостей стека, либо доменной области, что явно не соответствует тезису "тебя научат на месте работы".
12 2082943
>>082929

>Базовый уровень эликсира подтягивается за день/неделю


Ну ок, вижу на hh две вакансии на джуна элексира без опыта работы на нем, зп до 130к, явно для опытного будет дроп.

https://hh.ru/vacancy/45430273
Один стартап с требованием верстать шаблоны для фронта и смутным

>Это стартап поэтому работать нужно много.



Второе это
https://hh.ru/vacancy/45531785

И все, нет больше вакансий в россиюшке.
13 2082966
>>082935
три дальше
14 2082990
>>082943

Джунов никто и не ищет на эликсир. Это язык не для начинающих программистов

Большинство вакансий на эликсире не требуют коммерческого опыта разработки. Достаточно запилить какой-нибудь TODO-list на местных рельсах, чтобы показать что ты знаешь язык и вкатиться в нормальную работу

> вакансий в россиюшке


Во-первых, российский ойти рынок вообще не показатель. Во-вторых, ты реально в этой стране хочешь остаться? В-третьих, вот тебе ахуенный план: ты тут потеешь два года в какой-нибудь конторке набивая экспу и опыт, а потом уезжаешь забугры востребованным специалистом. Лично я и пара моих знакомых такое провернули

> нет больше вакансий


Вакансий и правда мало, но и количество кандидатов пропорционально меньше. И если учесть что джуны в эликсире никому не нужны, это ещё неплохое колчество вакансий

> явно для опытного будет дроп


Опять же, опытный чувак свапает стек и устраивается точно не на джуновскую вакансию. Это будет как минимум миддл, а опыт на руби конвертируется почти 1 к 1.

Поэтому я и завёл этот тред, в эликсире реально не хватает опытных разработчиков. И опытных не в плане знания самого эликсира, а в плане понимания вебдевелопмента
15 2082994
>>082966
Серьезно. Эликсир классный язык, но работы нет, изучать его имеет смысл только если в рамках имеющейся компании и продукта что-то на него переписывать и то не факт, ведь нет работы -> нет спецов.
16 2082999
А ещё эликсир пропагандирует какую-то фулстак хуйню со своим liveview и даже рубистов заразил этим дерьмом
17 2083000
>>082936

Под словами "тебя научат на месте работы", я имел в виду что тонкостям эликсира тебя реально обучат на месте работы.

Хороших разработчиков на эликсире очень мало, поэтому компании и идут на такой шаг: берут людей без опыта в эликсире, но с мозгами, и делают из них эликсирщиков

Опять же, базовые вещи касательно эликсира учатся за день-неделю, я это написал. Тонкости касательно эликсира уточняются на работе. Вообще не может быть такого чтобы эти тонкости не уточнялись на работе, тебя же блять наняли и знали что ты не шибко эликсирщик, а значит были к такому готовы
18 2083001
>>082990

>Лично я и пара моих знакомых такое провернули


Спокойно реализуется и на других языках

>Опять же, опытный чувак свапает стек и устраивается точно не на джуновскую вакансию. Это будет как минимум миддл


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

>а опыт на руби конвертируется почти 1 к 1


Скажи что еще и без знания OTP и распределенных систем можно вкатится. От руби там только куски синтаксиса.
19 2083003
>>082990

> опыт на руби конвертируется почти 1 к 1


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

Если ты действительно опытный разработчик, это для тебя не будет чем-то непосильным, но о конвертации 1 к 1 тут точно говорить нельзя.
20 2083005
>>083001
Справедливости ради, помимо кусков синтаксиса там есть ещё феникс, который очень пытается мимикрировать под рельсы.
21 2083007
>>082999

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



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

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

> liveview


Такая тема есть, но никто не заставляет тебя это использовать. Вообще, у рубистов это кривовато работает немного. На эликсире это нативнее, быстрее, и уже есть кучи гайдлайнов касательно PETAL стека
22 2083008
>>083005

>там есть ещё феникс, который очень пытается мимикрировать под рельсы


Это кстати нездоровая хуйня, что руби был языком одного фреймворка, что у эликсира из популярных только феникс
23 2083010
>>083007

>ты можешь ещё и получить классную работу за бугром


Что мешает получить работу за бугром на любом другом ЯП?
24 2083012
>>083008
На сколько я знаю, у рубей сейчас не один фреймворк. Та же синатра. У эликсира из альтернатив только `Plug.Router`, который абсолютно бесполезен для сколько-нибудь расширяющегося веб-приложения. Есть ещё несколько мёртворождённых обвязок вокруг последнего, но они не в счёт, т.к. не развиваются.

Но для полноценного развития альтернативных фреймворков нужны компании, которые будут вливать в это деньги, а для этого нужна аудитория пошире, чем у эликсира. Так что всё идёт вполне естественным ходом.
25 2083014
>>083001

> Скажи что еще и без знания OTP и распределенных систем можно вкатится



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

> Спокойно реализуется и на других языках


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

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



Я понимаю твою обеспокоенность, дорогой анон. Вот то что я нашёл:
https://t.me/proelixir/184763
Вот сюда через несколько месяцев будут искать свежую кровь: https://t.me/proelixir/183217
https://t.me/proelixir/172553
26 2083018
>>083012

> `Plug.Router`


Что? Это просто модуль, который роутит по хэндлерам, это не вебфреймворк

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


Навскидку есть такие фреймворки, каждый из которых работает: cowboy, plug, phoenix, mochiweb, ash
Да, phoenix сейчас сильно популярен, но пока что он покрывает 99% кейсов

> нужны компании, которые будут вливать в это деньги


За эликсиром стоят большие компании, списочек вот тут: https://elixir-lang.org/cases.html
27 2083019
>>083014

> OTP не нужно знать


Только отчасти правда. У тебя достаточно готовых либ, чтобы делать какие-то банальные вещи из крудоебли, действительно. И OTP для них понимать не надо. Но, если у тебя возникнет какая-то сложная проблема с одной из таких либ, где тебе придётся лезть в потраха, либо если тебе придётся написать что-то своё (вполне реальный кейс, учитывая, что язык всё ещё активно развивается), то без OTP будет сложно.
28 2083021
>>083019

Понятное дело, что OTP рано или поздно придётся выучить. Я говорил о том, что его не особо нужно знать для устройства на работу.

Это не сильно сложная вещь, которая познаётся прочтением книжки Elixir in Action 2 за пару дней
29 2083029
>>083012

>https://t.me/proelixir/184763


>5+ years of professional development using Elixir/Ruby


Мимокроку не залететь, только рубисту, и то не факт, что элексиром не завалят на собесе

>https://t.me/proelixir/183217


>опыт работы с Elixir от 1-го года



>https://t.me/proelixir/172553


Юг. Киев, ремоут для жителей Беларуси.
Русичи в пролете
30 2083033
>>083018

> Это просто модуль, который роутит по хэндлерам


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

> есть такие фреймворки: cowboy, plug


Это не фреймворки. cowboy -- сервер. plug -- обвязка вокруг него, чтобы удобно было писать вебню. Хотя, в стандартную поставку входят полезные самодостаточные вещи (как я описал выше).

> mochiweb


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

> ash


Сомнительная затея.
31 2083034
>>083029

> опыт работы с Elixir от 1-го года


Не значит ровно нихуя. Всем насрать на твой реальный опыт. Если ты адекватный и дома выучил основные поинты, всё окей

> Мимокроку не залететь, только рубисту


Это правда, но шибко мудрым эликсирщиком не нужно быть, а я именно об этом и говорил

> Русичи в пролете


ХРЮК
32 2083037
>>082994

>Серьезно. Эликсир классный язык, но работы нет



Я уже 5 лет пиздярю на elixir за деньги, вакансий не так много, но работы хватает, если опыт какой-никакой есть - hr'ы даже со своими 5 вакансиями заебывают предложениями

>>082999

>хуйню со своим liveview



Так крутая хуйня же!
33 2083042
>>083033

> cowboy -- сервер


А как же cowboy_rest? Да и встроенного функционала хватает. Там есть аналоги для самых нужных плагов из Plug

> plug -- обвязка вокруг него


И чем это не фреймворк, дорогой?

> ash Сомнительная затея.


А мне кажется что это ахуенная идея. И кто прав?

> mochiweb


Спасибо анон, я перепутал. Я хотел сказал n2o и nitro
34 2083048
>>083037

>Так крутая хуйня же!


Шаблонизаторы это нихуя не крутая хуйня, шаг вне стандартного функционала и приходится страдать.
35 2083058
>>083048

> шаг вне стандартного функционала и приходится страдать


Что конкретно ты имеешь в виду?

Но вообще я соглашусь, что liveview не серебряная пуля. Написать интерактивную админку или прочую одностраничную интерактивную хуйню будет очень легко, просто и быстро. Это именно то, что нужно в мире IoT и на первых этапах стартарпататов
36 2083099
>>083042

> cowboy_rest


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

> > plug -- обвязка вокруг него


> И чем это не фреймворк, дорогой?


Он, конечно, фреймворк, но слишком бедный для сколько-нибудь сложного приложения (как я упомянул здесь >>083033)

> > ash Сомнительная затея.


> А мне кажется что это ахуенная идея. И кто прав?


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

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

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

И всё бы хорошо, если бы оно навешивалось поверх существующих механизмов феникса и экто, но она делает свои не переиспользуемые обёртки. Так что даже возможности переписывать отдельные куски, когда логика станет сложнее, у тебя нет.
37 2083112
>>083099
Рубисты сбежали из рубей, что бы сделать ещё одни руби?
38 2083122
>>083042
Ещё отдельный минус для ash - расположение файлов в туториале (ресурсы в lib/my_app/resources/*). Феникс притащил этот рак из рубей, раскидав контроллеры и вьюхи по отдельным директориям, введя соглашение об именовании модулей противоположным способом. Теперь ещё и этот рак в бизнес-логике. В эликсире (как и во многих других фп-языках с нормальными модулями) есть своё соглашение по именованию модулей и файлов, которое позволяет довольно гибко и логично организовать структуру проекта, а здесь они просто забили на это болт, введя дополнительные проблемы для людей, которые потом будут на этом писать.
39 2083125
>>083099

> слишком бедный для сколько-нибудь сложного приложения


Почему ты так думаешь? Во-первых, плаг совместим со всем, что есть в фениксе. Во-вторых, плаги пишутся очень просто. В-третьих, у меня писались сложные приложения на плаге

Насчёт ash я согласен, он не особо гибкий. Но он и не стремится таким быть, а просто существует как фреймворк для ультрабыстрого крудошлёпства, типа такой postgrest, только чуть-чуть умнее
40 2083126
>>083112
А ещё они прибежали в эликсир и утащили себе паттерн-матчинг.
41 2083129
>>083122

На туториал вообще нужно сквозь пальцы смотреть. Большая часть туториала нужна чисто чтобы рубист писал на эликсире как на руби, только дописывая do в начале блока

Вообще такое положение файлов не навязывается, но мне оно нравится, потому что оно защащет от смешивания бизнес-логики-модели от контроллеров и вьюх
42 2083134
>>083125

> > слишком бедный для сколько-нибудь сложного приложения


> Почему ты так думаешь?


Плаг не просто совместим со всем, что есть в фениксе. Феникс работает через плаг.

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

Плюс, если у тебя не какой-нибудь специфичный микросервис, который ты не планируешь расширять дальше, тебе с большой вероятностью понадобятся какие-нибудь веб-сокеты. Или что-нибудь ещё из стандартной поставки феникса. В конечном итоге ты придёшь к тому, что тебе надо всё переделать под феникс (либо попытаться воткнуть его куда-то между, но это, полагаю, будет ещё больнее).
43 2083141
>>083134
Помимо этого в фениксе у тебя есть куча удобных механизмов вроде пайплайнов и скоупов. У тебя есть довольно гибкая система рендеринга во вьюшках (которую ты можешь расширить на любой формат помимо дефолтных html и json в несколько строк). Есть система content negotiation, которая позволяет не дублировать код, если тебе надо отдавать что-то сразу в нескольких форматах.
44 2083143
>>083134

Опять же, соглашусь, феникс включает в себя плаг. Но если ты уверен, что тебе достаточно будет только плага, нужно выбирать именно его. Как ты сказал, микросервисы, ресты, самописные HTTP API это его область применения.

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

Между тем, напомню, что у кложуристов вообще ничего кроме местного плага (который ring) нет
45 2083144
>>083141

Ты прав, но не всем приложениям нужен SSR, вебсокеты, или несколько скоупов
46 2083155
>>082722 (OP)

>Именно из желания создать среду для написания максимально отказоустойчивых систем появились все основные фичи.


В чем его отказоустойчивость проявляется, что нельзя использовать другой язык?
47 2083163
>>083155
Микросервисная архитектура на уровне языка
nuJEfEC-CZ8.jpg157 Кб, 1080x1078
48 2083170
>>083155

В двух словах, отказы бывают таких видов:

1) Софт падает
Это может быть баг в программе. Неотловленные баги чинятся одним способом: рестартом. Эрланг изолирует программу в множество относительно независимых процессов, если процесс падает, он перезапускается по определённой стратегии. Получается, что некоторые незначительные аномалии не будут полностью ронять систему, а будут просто чуть-чуть замедлять её общее
состояние
Для отлавливания багов в компайле у эрланга и эликсира есть тайпчекер и крутые линтеры

2) Хардварь падает
Для этого программы должны работать в кластере. Эрланг содержит самый лучший тулинг для разработки распределённых систем

2.1) Падает сеть
Для этого программы должны уметь трекать причины отказа, и в зависимости от этого определять своё поведение при сплитах и прочем
49 2083236
>>083008

Справедливости ради, в реальной разработке часто приходится пилить всякие микросервисы без феникса, на голом elixir. С рубями такое редко бывает, разве что гемы на голых пишут.
50 2083245
>>083048

>Шаблонизаторы это нихуя не крутая хуйня



Ну я бы не сказал, что это прям шаблонизатор, это крутая хуевина для рендеринга html на стороне сервера, если немного разобраться в этом, то понимаешь, что затея пиздатая. В реально разработке пока что не приходилось это юзать, а для себя дома ковырял - ощущения необычные, понравилось (тем более я ненавижу js ебоманый)
51 2083281
>>083245

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


Это не показатель, захотят у тебя дизигнеры на работе сделать окошко более закругленным и все.
52 2083295
>>083281
Пусть делают, не вижу проблем. Можно же часть страницы на обычном html написать и только в нужные части liveview встроить.
53 2083300
>>083295

>Можно же часть страницы на обычном html написать и только в нужные части liveview встроить


И тут появляется анимация, которая изменяет сразу два компонента.
54 2083304
>>083300
Хз в какую сторону ты мыслишь, никто не советует и не пишет все подряд с liveview - это хуевина для специфичных проектов, где с ней реально можно удобно делать интерактивности всякие без привлечения фронтендеров даже
Screencast 2021-06-29 00:11:33.mp47,3 Мб, mp4,
1920x1080, 0:36
55 2083310
>>083304
Типа, можно вот такие хуйни писать на изи без js
56 2083311
>>083310
Ты вообще работал в компаниях, где есть свой отдел с дизайнерами?
57 2083313
>>083281

Я юзал liveview на большом пендосском проекте. Всё нормально и с анимациями и с интерактивностью. Типа liveview спокойно живёт вместе с js

Всякие банальные интерактивные вещи на нём делать одно удовольствие. Если нужны какие-то особенные анимации, всё это на бэке пишется вообще без проблем

Единственное, это бывают моменты когда что-то прям ну очень нужно на клиенте обсчитать, но это совершенно не сложно и вполне себе уживается вместе с liveview
58 2083314
>>083311
Да, но я бэкенд пишу и никак с дизайнерами не взаимодействую вообще, с liveview я только дома игрался
59 2083316
>>083310
Как погода в ульяновске?
60 2083319
>>083316
Душно.

:)
61 2083320
>>083319
Посмотрел, в вакухах очередные "Сильным плюсом будет опыт в RoR". Элексиристы вообще из других языков бывают?
62 2083321
>>083320

Много кто из эрланга. Есть много ценителей ФП. Лично я из питона пришёл
63 2083322
>>083321
И какой опыт в эрланге и какая зп? Мне на го/пистон недавно предлагали перекатится с 220к, почти без дропа.
64 2083324
>>083320
Ну, чисто исторически так сложилось, что большинство с рубей перекатились, собственно и сам разработчик elixir'a раньше в рельсах был в кор тим. А так да, есть еще бывшие эрлангисты >>083321
65 2083478
Test
66 2083479
>>082722 (OP)
На нем можно писать приложухи для десктопа и компилировать их в ехе?
67 2083510
>>083479

>2021


>приложухи для десктопа

68 2083523
>>083008
Хз, я последние 3 года феникс встречаю только как подкладку под Absinthe. В теории его можно вообще выпилить нахуй, и прикрутить абсент к ковбою через плаг, но лень, там все равно оверхед минимальный.
Феникс, я так понимаю, нужен в основном всяким хуяк-хуяк-фулстекам для проектов с SSR, которых, по-идее, много во фрилансе, или соло-стартапщикам, которым нужно быстро накидать МВП. С другой стороны, феникс, как и рельсы, настолько хорош, что иметь больше одного фреймворка под эти задачи просто нет смысла.
69 2083544
>>083479

Чисто теоретически -- да, но никто этим не занимается
Для десктопа есть две-три либы: wxWidgets, elixir-desktop поверх неё и ещё одна, название которой я забыл
Для компиляции в бинарник есть bakeware
70 2083620
>>083510
Чел мне похуй, я программирую, потому что это блять интересное времяпровождение, в отличии от того, чтобы лежа на диване часами смотреть в потолок. Особенно интересно отрисовывать все в окне, а не буковки в консоли или на ебучем сайте (хотя видимо к этому я тоже скоро приду)
sage 71 2085127
Так и умер тред, лул
72 2085168
>>085127
Так поднимай.
73 2088614
Кто там писал, что вакансии нет на эликсир?
Я php разраб с 4 годами опыта, и у меня 60% предложении на линкед ин - эликсир разработчик. Хрюши прям настойчиво предлагают собесы, хотя я им говорю, что не работал с эликсиром совсем, и вообще во фронт перекатываюсь.

Вакансии полно, просто они не для всех.
74 2088636
>>088614

>Хрюши прям настойчиво предлагают собесы


Они всем предлагают, чел. Им KPI нужно выполнять.
75 2088653
>>088636

>Им KPI нужно выполнять.


И? Вакансии то есть. А пройдет анон-перекат собес или нет - это другой вопрос.
В любом случае, нормальному бэкэндеру не составит труда перекатиться, т.к. стек технологии в большинстве вакансии совпадает на 60-80%
76 2088670
>>088653
Звучит как антиреклама языка. Если хочешь начать на нем проект, то тебе нужно нанимать людей без опыта в нем и платить им больше по рынку, что бы у них дропа ЗП не было сильного, да и не факт, что ты найдешь таких за приемлемое время. Большинству тимлидов будет легче взять другой язык и напедалить микросервисную архитектуру, чем все это.
77 2096815
>>088670

> людей без опыта в нем и платить им больше по рынку



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

> не факт, что ты найдешь таких за приемлемое время


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



Даже для большого проекта нужно не больше 5-6 элксирщиков. В начале проекта нужно не больше двух. Язык очень высокоуровневый и очень хорошо приспособлен к вебне. На найм гоферов или кого-то ещё уйдёт ещё больше денег и времени, потому что банально потребуется больше человек для эквивалентной разработки
78 2096885
>>096815

>Язык учится за две недели, он жутко простой.


Чет вспомнил, как плюсовиков в проекте заставили на пистоне писать, они там свой csv ридер сделали, так как с библиотекой не были знакомы. Утверждение, что можно быстро пересесть на другой язык и писать хороший код очень сомнительна.
79 2096896
>>096885
Понятное дело, что пересаживаться нужно под чьим-то присмотром. Рубисты реально за две недели пересаживаются, все остальные максимум за месяц
80 2098502
>>088670

>Если хочешь начать на нем проект, то тебе нужно нанимать людей без опыта в нем и платить им больше по рынку, что бы у них дропа ЗП не было сильного, да и не факт, что ты найдешь таких за приемлемое время. Большинству тимлидов будет легче взять другой язык и напедалить микросервисную архитектуру, чем все это.


Есть такие ребята Klarna самый дорогой финтех стартап европы, в свое время много писали на Эранге/Эликсире https://github.com/klarna?q=&type=&language=erlang На конференциях выступали.

А теперь у них джава, питон и пых https://jobs.lever.co/klarna/?team=Engineering
Я их спрашивал почему отказались, были какие-то технические претензии у Эрлангу какие именно чувак был не в курсе и проблемы с поиском разработчиков.
81 2099006
>>098502

>проблемы с поиском разработчиков.


Кто бы мог подумать
82 2100210
Зашел в тред посмотреть на код и вопросы/ответы из любопытства. Весь тред состоит из А ЕСТЬ ЛИ РАБОТА на эликсире. Нойс.
83 2100303
>>100210
Откуда тут взяться вопросам, если все думают, что нет работы и не вкатываются, а у тех, кто вкатился, вопросов нет?
84 2101538
Работы нет пацаны, не вкатывайтесь, юзлесс хуитка, учите пайтон, жабу, да и руби живее всех живых, базарю.

нахуй ты создал тред мудак, и так язык уже почти мейнстрим стал, уже пора выкатываться скоро, а ты еще ускоряешь еблан
85 2101657
>>098502

> А теперь у них джава, питон и пых



Ну там также и эрланг. Количество вакансий не показатель. К тому же, существуют компании, которые меняют жаву на эрланг. Так что попробуй ещё раз, анон

Искать разработчиков на эрланг раньше было и правда сложно, но сейчас эликсирщиков очень много, да и пересадить рубиста на эликсир будет совсем не сложно
86 2101660
>>101538

> Работы нет пацаны



Дорогой анон, я понимаю твои тревоги, но ты хотя бы просто так без пруфов не вкидывай, хорошо? Я прямо сейчас могу тебе переслать с почты около 8 активных вакансий в РФ и примерно в 10 раз больше забугорских. Если поискать в интернетах, то их количество окажется сильно больше
87 2102919
>>101657

>Ну там также и эрланг. Количество вакансий не показатель.


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

>Я их спрашивал почему отказались


И ответ был, что да Эрланг команды остались и сервисы на Эрланге никто не выкидывает, но новые не пишут. У них теперь Эрланг - легаси.
88 2102943
>>101660
Дай угодаю, в требованиях или опыт на эликсире или на рубях?
89 2102952
>>102943

>в требованиях или опыт на эликсире



Шок-контент, в требованиях к "Ищем разработчика на Х" есть опыт работы с X. Охуеть!
90 2102962
>>102952
Тогда ты нахуя нам вкатываться предлагаешь, если вакансии не для 99% разрабов?
91 2102967
>>102962

>если вакансии не для 99% разрабов?



???

А какого хуя так должно быть? Воспринимай это как узкоспециализированную технологию что ли. Если какой-то опыт набьешь, то без работы потом уже точно не останешься.
92 2102978
>>102967
Показывай джун вакансии тогда, сколько их у тебя
93 2103783
Специально для вкатунов: https://career.habr.com/vacancies/1000074892

ЗП От 20 000 до 50 000₽ это конечно такое себе, но я в свое время джуном вообще за 18к вкатывался. Так что кому надо - пиздуйте, набивайте коммерческий опыт и перекатывайтесь в компанию получше.
94 2103784
>>103783
Провтыкал, что там Самара без удаленки, но похуй, может внезапно кто-то оттуда есть
95 2107118
Эх, я вот хорошо выспался за выходные, а вы как? В Sentry около 100 эксепшонов за выходные и при этом нихуя даже близко не упало
96 2108283
>>107118

>не упало


Тоже нормально спал, в докере рестарт настроил и все
97 2108569
>>108283
И че, каждый раз целый сервис рестартится из-за одной ошибки?
98 2108576
>>108569
Только если все совсем плохо, а так только воркер в сервисе
99 2108583
>>108576
А в эликсире рестартится только один процесс. Типа, если падает один веб-хэндлер, то падает только он и это никак не влияет на производительность
100 2108596
>>108583

>А в эликсире рестартится только один процесс.


У нас тоже
101 2108924
>>108596
У вас это где?
102 2109336
>>107118

>Эх, я вот хорошо выспался за выходные, а вы как? В Sentry около 100 эксепшонов за выходные и при этом нихуя даже близко не упало


К сожалению ваша транзакция проебалась, но хорошие новости в том, что наш разработчик выспался.
103 2130718
Сап двощ, кто тут на эликсире работает?
104 2134128
105 2136900
>>134128
Какой опыт? Как вкатился? Сколько получаешь?
Ну и самое главное, какие ощущения?
106 2139302
>>136900
Лет 5, с ерланга, 7k$, ощущения приятные
107 2140573
>>139302
Увожаемо, увожаемо. Показывай классный опенсорс

Из интересного на эликсире, я нашёл realtime, который стримит изменения базы данных, которые получает через протокол репликации
109 2153855
>>145534
Лапшин, залогинься
110 2154779
>>083003
Так падажжи ебана, а ООП - не декларативщина? Меня обманули?
111 2155791
>>153855
Кстати тыщу лет ничего не слышал от него.
Насколько я помню, он плохо относился к Elixir, не делал ни одного коммита в какой бы то ни было открытый эликсир проект, да и эрливидео никакого отношения к мембране (которая намного больше и интереснее) не имеет.
112 2165816
>>154779
ООП менее декларативный чем иммутабельное ФП.
Делкаративность и императивность это скорее спектр, чем грань
113 2166398
>>165816
Но ведь ФП про явный вызов функций и явную передачу аргументов им, тогда как в ООП можно просто вызвать метод, который сделает что-то под капотом и вернёт что надо. Это ли не декларативнее?

Понавыдумывают терминов, ебучие погромисты
114 2169326
>>166398

>Но ведь ФП про явный вызов функций и явную передачу аргументов им



Паттерн матчинг добавляет в это все декларативщину
115 2179343
Как на эликсире выглядит простой таймер?

Пример на руби:

def time(&block)
t1 = Time.now.to_f
yield
t2 = Time.now.to_f
t2 - t1
end

time { some_function() } # => 0.15946728

Гуглил, везде какие-то монстры на сто строк. Неужели так просто нельзя?
116 2179347
>>166398

>Но ведь ФП про явный вызов функций и явную передачу аргументов им


>в ООП можно просто вызвать метод, который сделает что-то под капотом и вернёт что надо


1) А функция не делает что-то под капотом и не возвращает что надо?
2) Метод уже перестал быть функцией?
3) В методы ничего передавать не надо и в инициализацию класса тоже?
117 2179373
>>179347
Я не спорю. Я вообще так считаю, что у ООП и ФП куда больше общего, чем различий, просто реализованы эти абстрактные идеи по-разному.
118 2179657
>>166398
Есть такая штука referential transparency, это про отсутствие побочных эффектов и про возможность заменить вызов функции значением, которое она вернула бы.
Так вот из referentially transparent штуковин легче собрать декларативную штуку, а без этого свойства есть вероятность написать спагетти-код - это как бы противоположность декларативного.
119 2179910
>>179343

:timer.tc(fn -> something end)
120 2179925
>>179657

> а без этого свойства есть вероятность написать спагетти-код - это как бы противоположность декларативного.


Ну это уже полная религиозная шиза, затирать, что на ФП языках спагетти код не возможен, и что он возможен только если писать декларативно. Сразу видно, что человек не разбирал ни одной рекурсии, написанной свежеиспеченным адептом ФП. В большинстве случаев, написать декларативный цикл с мутацией выйдет ГОРАЗДО проще и читаемее, чем лепить редьюсы или боже упаси рекурсии для реализации той же логики. Хоть ты обосрись с ФП, но набор команд "добавь к х единицу" воспринимается человеческим мозгом в сто раз привычнее. И как в таковой, в мутации стейта ничего плохого нет(программа без мутации стейта может существовать только на бумаге, а не выполняться в компьютере), плохой она становится только если стейт протекает и начинает изменяться из неожиданных мест в неожиданное время. Но код можно испортить тысячей разных способов, в которых никаких стейтов и близко нет.
121 2179926
>>179925

> написать декларативный цикл с мутацией выйдет ГОРАЗДО проще и читаемее, чем


ну это уже получается императивный цикл, какой-нибудь foreach или map уже более декларативны.
самый известный пример декларативного языка - это sql.

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


ну вот когда стейт изменяется из неожиданных мест в неожиданное время - это ведь точно не декларативно, так? что-то в этом роде я и пытался сказать.
122 2180156
>>179926

>ну это уже получается императивный цикл


Там я хотел сказать "не-декларативный", т.е тот самый якобы "спагетти-код - противоположность декларативного". В двух местах, где было "декларативно" должно быть "не декларативно", ну 5 утра хули.
123 2192240
>>082935

>Приходи через 4 лет


А в будущем вакансий станет больше?
124 2192575
>>082994
Работа время от времени появляется, особенно много вакансий зарубежом, а спецов по Elixir реально не хватает и готовы брать на сеньорские позиции с 2-3 годам опыта на каком-нибудь Руби/Питоне/Go. А уж если есть опыт с Erlang/Elixir и вообще шаришь в CS и архитектуре, то с руками отрывают.
мимо 6 лет на эликсире
125 2192704
>>082722 (OP)
Что ты притащил сюда свинья? Забери это говно и удали тред.
126 2192769
>>098502
Буквально на днях звали оттуда на собеседование. Так что Erlang у них еще используется.
127 2192772
Главный минус Erlang/Elixir в том, что поработав на нем пару лет над реальными production системами, не можешь потом смотреть на говно вроде Go/Java. В итоге перекатиться на что-то более популярное становится тяжело ментально.
128 2193464
Перекатываюсь с Rust на Elixir, ну чё как он?
129 2193618
>>193464
У языков совершенно разные ниши
130 2193626
>>193464
Молодец, будешь знать два единственных языка будущего.
131 2193720
>>193626
Нет, языки будущего - это JS и Python.
132 2193859
>>193626
Украинский и HTML
133 2193882
>>193720

>JS


Liveview

>Python


Julia
134 2193888
>>193720
Я ебал JS и Python.
JS потому что JS.
А Python потому что он блядь медленный пиздец, и я ебал это.
Ну а вообще мне эликсир реально заходит
тот чел который писал про перекат с rust на elixir
135 2193897
>>193888
Чтобы перекатиться нужно сначала вкатиться.
136 2193907
>>193897
Я вкатывался в Rust, но когда ты делаешь некоторые вещи на этом языке как например веб разработка то это боль в жопе.
137 2193956
>>193907
Надо ВКАТИТЬСЯ, а не вкатываться. Глагол совершенного вида, понимаешь?
138 2193964
>>193956

>Глагол совершенного вида, понимаешь?


Да
139 2197285
>>193907
Стоит провериться на геморрой.
140 2218295
>>082722 (OP)
Какие шансы закатиться у недоджуна, знаю haskell на базовом уровне, есть опыт в пару месяцев на python/django или такие не нужны и ждут мидлов+?
141 2218448
>>218295
Джуны нужны, но ты ведь не джун еще. Хотя бы год-полтора если бы было опыта разработки на питоне/руби, то можно было бы найти. Мы недавно искали разработчика. Если раньше было легко найти эрлангиста с опытом, то сейчас вообще никого. Решали брать даже джунов/мидлов, просто толковых, с опытом на каком-нибудь питоне/руби, которые с энтузиазмом хотели бы освоить эликсир. В итоге взяли джуна с полтора года опытом на питоне, пока справляется.
142 2218452
>>218295
>>218448
Ну и если ты все таки подучишь прежде эрланг/эликсир, напишешь какие-нибудь простенькие пет проекты или полезную библиотеку (что вообще не сложно, так как библиотек для Эликсира часто не хватает и все пишут свое), то это сразу выделит тебя.
143 2246435
Сап, эликсирач, какие проекты чаще встречаются на элексире? Есть еще какие нибудь фреймворки кроме феникса?
Поглядываю из рубей одним глазком
144 2255891
>>246435
Чаще всего веб, апи сервисы, реже софт риалтайм. Rest-фреймворк только феникс, GQL фреймворк тулкит - Absinthe. Вообще, в языке не особо поощряются всякие фреймворки в классическом смысле, тот же феникс - просто набор миддлварей и макросов.
145 2256134
>>255891
Спасибо
146 2258897
Тестирую распределённую систему, которую потом будет как инфраструктуру использовать команда дизастер рекавери. От того часто приходиться ловить баги связанные с кластером рэбита и иногда даже приходиться читать его крашдампы (которые вроде как просто трэйсбэки от эксешенов). А я не умею их читать. Там что на эрлаговском. И в исходники заглянуть не могу чтобы понять что упало т.к. эрланга не знаю. Хочу выучить эрланг на том уровне чтобы шарить за внутренее устройство рэбита. Как думаете стоит? Сложно он его до такого уровня выучить? Где-то ещё это знание может пригодиться?
147 2258957
Пиздец эликсир БАЗА
148 2260663
>>258897
По-быстрому, максимум ты сможешь изучить его для чтения крешдампов. Чтобы понимать внутренне устройство кролика, нужно будет знать язык на хорошем уровне, а не только синтаксис, а это долго и ради такой задачи - проеб времени. К тому же, без реального опыта написания чего то ты все равно не сможешь понять всех ньюансов. Учить эрланг сейчас смысла нет, скоро на нем останется только рэббит, энжабер и всякое легаси. Так что проще разбираться с рэббитом как с чёрным ящиком, он относительно популярный, не думаю что у тебя там какие-то уникальные ошибки, с которыми никто никогда не сталкивался.
149 2260962
>>260663
А можешь тогда подсказать материалов по изучению рэбита? большинство, что советуют индетрнете это про то как к нему коннекторы а разных языках писать, а не про внутреннее устройство
150 2261174
>>260962
github и читать исходный код. Иначе просто гуглить ошибки.
151 2261267
>>261174

>github и читать исходный код


Для этого нужно эрланг хорошо знать
152 2266122
>>261267
Тогда сначала изучи эрланг. learnyousomeerlang.com
image.png292 Кб, 394x842
153 2274080
Мммм, божественное фп...
154 2277541
>>260962
https://www.youtube.com/watch?v=YVrfGUgDVhs
https://github.com/rabbitmq/internals
+ руководство "как я перестал беспокоиться и начал гуглить"
155 2283876
>>082722 (OP)
Никто не хочет объединиться и что нибудь сделать совместо?
Например telegram tdlib
156 2284029
>>082722 (OP)
Какие шансы вкатиться, если android kotlin middle dev ?

Не хочется в руби лезть. Здесь мне нравятся идеи, а беком не занимался. Ну, занимался, обычный туду лист условно, но на этом все.
157 2284190
>>284029

>если android kotlin middle dev



А зачем? Если ты не пиздабол конечно. У вас же и так там все хорошо на рын очке.

Мимно-5-лет-коммерческих-динамических-оперденей-на-эликсире-и-эрланге

А если серьезно хочешь, то ничего не мешает - если ты мидл на этих ваших jvm, то ты, очевидно, не совсем дебил и сможешь освоить любой нормальный ЯП. Из плюсов - если есть более года-двух опыта работы на elixir/erlang, то эйчары прямо таки ебут вакансиями (пишут даже на ватсап), потому что таких людей в снг очень мало, а компаниям они очень нужны. У меня только на email больше 20 предложений с середины января по сегодня, если не отвечаю на письма, то еще по 3 раза пишут и просят хотя бы явно ответить отказом
158 2284434
>>284190

>Из плюсов - если есть более года-двух опыта работы на elixir/erlang,



Ну вообще, это в любом языке от 1-2 года опыта, мне тоже долбят еверидей.

>А зачем? Если ты не пиздабол конечно. У вас же и так там все хорошо на рын очке.


У каждого, кто не отбитый, будет все хорошо. Тут вопрос в интересности больше. Да и в макакуконтору не возьмут, это вакансии для стабильный компаний у который сформировался стек, я так полагаю. Так что, все еще размышляю.
159 2285171
>>284190

>Мимно-5-лет-коммерческих-динамических-оперденей-на-эликсире-и-эрланге


Расскажешь стори? Как впечатления от работы и в целом атмосфера.
160 2285397
>>285171

Да хз что рассказывать. Радует, что писать приходится что-то отличное от обычного бэкенда под crud, задачи обычно посложнее и поинтересней. Коммьюнити нормальное, не знаю как сейчас, а раньше на форуме мог сам создатель эликсира на вопросы отвечать и, если требуется, оперативно делать багфиксы
161 2285431
>>285397
Спасибо за ответ, хоть и краткий)
А какие +- задачи в целом ? Если не круд обычный.
e.png287 Кб, 1244x1522
162 2285743
>>082722 (OP)
Авторы вообще развивают язык? Судя по конференциям и статьям, сейчас язык просто находится в поддержке и у них пустой беклог. Идеи кончились?
sage 163 2285914
>>285743
зачем ломать, если не сломано
164 2285927
>>285743
https://youtu.be/_Bnhwv9JLzs?t=2696

В прошлом релизе (2 месяца назад) очень ускорили время компиляции, добавили нативную поддержку xref и Code.Fragment - полезную для редакторов.
Сейчас продолжают работать над интеграцией с OTP-24, логгером и просто добавляют новые функции, улучшают матчинг и т.д.

https://github.com/elixir-lang/elixir/blob/c6e18cd17bc5911afe1422ba3247a37cbbab58e6/CHANGELOG.md
165 2286153
>>285743
Типа того. Был план что надо в языке, все сделали по плану. Красиво же
Elixir is done +- в 2018
pingpong.png262 Кб, 1352x1780
166 2286257
>>082722 (OP)
Мой первый пинг понг, конечно можно легче без дефмодулей. Но все же.
167 2287258
>>082722 (OP)
Elixir is a just a curtain and behind it there is evil erlang.
genserver.png171 Кб, 1068x1246
168 2288218
Сначала реализовал свой генсерсер, без хендлинга ошибок, просто spawn receive с call & cast

Сейчас познакомился с самим генсервером.

Вообще интересно конечно.
169 2288672
>>082722 (OP)
Сколько зп в эликсире?
Он используется на беке и IoT ?
170 2288677
И почему вообще челы взялись за live view ? Это же кринж по сокету (или по чему там..) строить UI через бек.

Еще кринжовей, это найти elixir desktop с 700 звездами. Это полнейшая дичь вообще, люди комитят в либы, которые вообще не нужны для эликсира
171 2288848
https://habr.com/ru/article/649423/

Ну что двачик, ещё не на эликсире?

мимо 400к
172 2288869
>>288672
Чекай выше сообщение. Используется и в бэке (https://hexdocs.pm/phoenix) и в IoT (https://hexdocs.pm/nerves)
173 2288873
>>288677
Я лично знаю чувака, который делает elixir-desktop, и ему банально нужно было запилить максимально просто десктоп UI клиент к его сервисам для распределенной хуйни. Он это делает под себя и для себя, причём даже готов платить за разработку этой хуйни

А LiveView, как уже 1000 раз до меня говорили, это решение для маленьких и локальных админок для, например, IoT или какой-то домашней хуйни. Хотя на LiveView делают и большие сайты, чекай https://cars.com
174 2288874
>>287258
Боже мой, ты прямо как с Обнуляй репостишь. Типа, если на английском цитатка, то она сразу правильная и в неё нужно верить.

Залогинься
175 2288948
>>288874
по делу есть что сказать, шиз?
176 2289031
>>288873

> Хотя на LiveView делают и большие сайты, чекай https://cars.com



Не знаю. Ты нажимаешь обновить - отправляется запрос на бек - строится верстка и выплевывается - и на этой огромной операции фронт показывает лоадер.

С этим примером можно много юз кейсов придумать, с которыми стрельнешь себе ногу. Что уж говорить об анимациях и прочего. Все еще не понимаю.
177 2289178
БД есть какая? Хочу бэк на элексире с БД пердануть.

И чтобы этот бэк запускал несколько nodejs процессорв (игроговно) со всеми настройками.
178 2289226
179 2289228
>>289178
И нужно ли тебе вообще элик для запуска несколько процессоров?

У тебя ерланговская ВМ комфортно себя чувствует с 100к - 280кк зелеными тредами. А ты хочешь 3-4 зеленых запускать. Надо ли оно тебе вообще, мб возьми другой язык (но если хочешь Fault tolerance то welcome)
180 2289243
def multiply(x: number, y: number): :: {number, String.t()} do
{x * y, "Jeez, come on!"}
end

Почему нельзя было сделать так?
f.png80 Кб, 1078x484
181 2289259
>>289228
к примеру
182 2289306
>>289226
А бд своей нет типо? Так-то можно и постгресс на n репликаторов с бизнес-логикой поднять.
С элексиром это будет проще или чо?

>>289228

> И нужно ли тебе вообще элик для запуска несколько процессоров?


Это на одном инстансе только. Инстансов может и сотня быть. Да и игровые сервера сами себя не поднимут.
Впринципе оно нормально и на обычном пистоне/жс будет работать и подниматься (вместе с репликаторами и постгрессом), но хочется чего-то новенького.

> А ты хочешь 3-4 зеленых запускать.


Так это игровые сервера только, по факту самое главное. Там остальные приложения могут и под 100к процессов пернуть, если игроков зайдёт дохуя.
Так понимаю именно для этого мне элексир нужен? Чтобы пердеть нормально процессами и иметь годные пробросы до бд и кэшэй?
183 2290724
>>082722 (OP)
Мертвый?
184 2291558
>>082722 (OP)
нужно ли дрочить erlang ?
185 2291612
>>291558
Нет. Если знаешь elixir, то, считай, что и erlang знаешь, останется только нюансы синтаксиса запомнить и всё.
186 2291617
>>082722 (OP)
очень понравился DSL, можно писать вообще что угодно https://www.youtube.com/watch?v=xj6yNzcGlEE
187 2292208
>>291558
Зависит от того, с чем собираешься работать. Если планируется типичная круд хуйня с парочкой фоновых задач в Oban'е и капелькой асинхронности через Task, то не нужно.

Но если какой-то реалтайм проект с massive concurrency, то нужно, но не сам язык (хотя он очень простой и минималистичный, хоть и непривычный, потому что пролог) с выражениями и прочим, а OTP, процессы, BEAM и так далее. Поскольку без понимания всего этого кора и принципов архитектуры приложений на этой платформе шанс поесть говна почти 100%.

Лично я на собесах смотрю на какой проект человека хайрят, если на типичную апи хуйню почти без риалтайма, то спрашиваю только Elixir/Ecto/Phoenix/Absinthe и минимум по OTP, а если на реалтайм, то больше будем пиздеть про цепочки процессов, деревья супервизоров, ньюансы генсерверов и так далее.
188 2292210
>>289243
Может потому что в языке динамическая анонимная типизация и многие не пишут спеки? А так пришлось бы всем писать.
189 2292303
>>292208

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


Но нахуя тут нужен эликсир? Никак понять не могу. Всё то же самое можно хоть на ноде сделать, похуй вообще будет. В чем суть-то нахой??777

Вот например, нормально ли распределённая бд? В чем преимущества эликсира тут? Есть какие-то высокопроизводительные решения с бд и меморизацией? Готовые ништяки с FoundationDB есть?

Или, может, эликсир работает тупо как распределённый орекстратор, который не обсирается и не падает?
190 2292314
>>292303

>Вот например, нормально ли будет пердолить распределённую бд через эликсир?


слоуфикс
191 2292329
>>292303

>Но нахуя тут нужен эликсир? Никак понять не могу. Всё то же самое можно хоть на ноде сделать, похуй вообще будет. В чем суть-то нахой??777



Потрудился бы хоть почтитать про elixir/erlang

>Вот например, нормально ли будет пердолить распределённую бд через эликсир?



Нормально, в erlang тащемта уже есть https://ru.wikipedia.org/wiki/Mnesia

Нормально будет пилить любую distributed/fault tolerant хуйню
192 2292346

>Нормально будет пилить любую distributed/fault tolerant хуйню


Это можно на любом языке сделать, если настроить внешний супервизор и каналы коммуникации между сервисами. Единственное отличие элексиров/эрлангов в том, что там это встроенно в язык. Однако, гораздо легче найти программиста, который знает кубер/кафку/кролика и т.д. чем эрлангиста/элексириста. Единственную реальную вакуху, которую тут запруфали это телеком, для которого эти языки и были собственно созданы.
193 2292388
>>292329

>Потрудился бы хоть почтитать про elixir/erlang


Да я писал даже на нём мелкие пердоли и апишечку не написал в итоге, кек
Кросиво, увожаемо.

> Нормально, в erlang тащемта уже есть https://ru.wikipedia.org/wiki/Mnesia


Разве она не оче слоу? Нужна относительно быстрая бд, тащемта я с постгресса хочу слезть на FoundationDB только из-за этого.
Но вообще можно всё быстрое отправить в отдельные процессы. Но ебать там сложность и кол-во языков получается.

> Нормально будет пилить любую distributed/fault tolerant хуйню


Что-то тут смущает меня, никак не могу понять что.
Возможно ли что эликсир/ерланг очень слоу (даже хуже ноды) и мне придётся всякие рейтинговые подборы перепердолить в отдельных С процессах?
194 2292475
>>292210
Причем здесь динамическая типизация и явный показ типов? В питоне тоже динамическая типизация, братишка.

Но я и без тебя понял и нашел ответ, ведь ты не можешь ответить на вопрос. Здесь достаточно свой макрос сделать и все.
195 2292478
>>292346
Одни ищут причины использовать Х, другие просто бегут и используют то, что надо. Остуди жопу, чмо.
196 2292547
>>292478
Откуда ты знаешь что "то, что надо" действительно нужно использовать? Подбор стэка один из самых геморойных этапов разработки и довольно долгий.
197 2292563
>>292478
То есть ты признался, что элексир это булщит для скучающих программистов, которые хотят выебнутся и никакие предварительные расчеты проводить не нужно
198 2292577
>>292388
А ты действительно занимаешься чем-то таким высоконагруженным или занимаешься преждевременной оптимизацией на двачах?

Используй любую стороннюю СУБД, которая тебе нравится, а на elixir хуярить бизнес-логику, которая с этой СУБД конкурентно и откозоустойчиво взаимодействует, ёпта.
199 2292619
>>292577

>А ты действительно занимаешься чем-то таким высоконагруженным или занимаешься преждевременной оптимизацией на двачах?


Ну я имел дело в прошлом с высоконагруженным игроговном, в пике до 2кк/сек было, долбоеб неудачно рекламу разместил. На ноде, пистоне, цитоне и с++. Работало как-то, поднималось автоматически.
Сейчас занимаюсь преждевременной оптимизацией, потому что делаю фреймворк для потенцивально высоконагруженного игроговна. а сейчас вообще застрял на обновлением видеобуфера на клиенте, ебать, как мне функции-то нормально отправлять в проход кадра

> Используй любую стороннюю СУБД, которая тебе нравится, а на elixir хуярить бизнес-логику, которая с этой СУБД конкурентно и откозоустойчиво взаимодействует, ёпта.


Вот тут проблемы в игроговне с разделением бизнес-логики и высоконагруженной хуиты. Архитектура непонятная нихуя. Видимо для игроговна эликсир вообще лучше не использовать?
200 2292630
>>292563
Мне похую на тебя браток, и на то, как ты воспринимаешь инфу.
201 2292640
>>292619
Если у тебя какой-то онлайновый игровой движок, то не подходит, так как элексир это про мягкий риалтайм хотя если обновление данных построено на эвентах, как hots...
202 2292642
>>292478
Четко братан, мышление миллионера прям
203 2292687
>>292640
Не, игровой движок отдельно идёт, он на ноде и как отдельный процесс стартует, оно в любом случае отдельно. Речь скорее про оркестровку этими процессорами на десятках серверов по всему миру и отправка туда инфы всякой. Плюс обычный социальный набор - друзья, сообщения, группы, оповещения и вся дата пользователя для игры.
Сейчас план прост как две копейки - кластеры постгресса.

И проблема тут в том что даже обычные действия и всяческий посыл говна на отдельные сервера должен происходить достаточно быстро.
Screenshot from 2022-02-10 15-38-19.png687 Кб, 691x935
204 2292709
>>292687

На elixir пишут сервера для игроговна тоже, в panzerdog не так давно искали разработчиков: https://spb.hh.ru/vacancy/32702285

Wargaming тоже как-то искал
205 2292714
>>292709

>На elixir пишут сервера для игроговна тоже


>присоединиться к команде Premium Shop


Это мягко говоря не про сам игровой сервер, лол.
Для магазинчика-то самое то.
206 2292802
>>292714

В другой вакансии:

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

207 2292809
>>292709
Ну хуй знает. Выглядит конечно заебок. Готовые решения есть какие вообще?
208 2292830
>>292809
Хз, что ты подразумеваешь под готовым решением. "Установите и настройте рабочий игровой сервер из коробки" - ничего такого, само собой, нет. Есть веб фреймворк со всякими pubsub хуйнями (phoenix), есть встроенный в язык фреймворк для динамической хуеты (OTP) - обмазывайся сам как хочешь.
commits.png352 Кб, 2630x1474
209 2292861
>>082722 (OP)
Комиты которые мы заслужили. Fix docs, update docs, Fix indentation
210 2292881
>>292830

>Хз, что ты подразумеваешь под готовым решением.


Да тоже хуй знает. Скорее я пытаюсь найти отговорки чтобы не использовать ерланг.

Он слишком приторный. Как приторная любовь, или что-то такое, приторно-сладкое. Слишком хороший для всей это оркестрации соединений, а значит там будет какая-то большая-большая проблема. Сложность разработки и создания? Хз.
211 2292885
>>292881
Так и не используй, если не хочешь, пиши на чем угодно
212 2292894
>>292885
Это да, видимо придется просто кластеры хуярить или вроде того. а потом набирать эликсирщиков чтобы переписали нерабочий говнокод на эликсир
213 2292898
>>292881
Долгий поиск новых разработчиков, вот главный минус
214 2292911
>>292898
Ну это-то проще всего планирую заработать овердохуя на относительно новых нишах, ух влажно потекло по штанине
Просто он слишком приторный. Слишком хороший.
215 2292912
>>292898
для этого есть удаленка

>>292881

>Слишком хороший для всей это оркестрации соединений, а значит там будет какая-то большая-большая проблема. Сложность разработки и создания? Хз.


Честно, вы боитесь что то попробовать. Что за страх у всех. Взял да и попробовал . В чем проблема?
216 2292932
>>292912

> Взял да и попробовал .


Ну так-то нельзя просто взять и попробовать два раза написать бизнес-логику, если эликсир не зайдёт. Это тонны говнокода.

> В чем проблема?


Хз, хз. Что-то из разряда и иррационального. По крайней мере у меня.
217 2292972
>>292802

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


Т.е. к самому игровому серверу (который именно обрабатывает ввод и отдаёт апдейты юзеру) вторая вакансия имеет только косвенное отношение.
218 2292982
>>292932

>Это тонны говнокода.


А нахуя тебе высирать тонны кода, когда тебе всего-то надо заебашить какой нибудь MVP и подумать насколько оно применимо?
219 2292990
>>292912

>для этого есть удаленка


Аргумент говна, конечно.

Что она меняет-то? Вот нашёл ты за пол года на рынке 3 программиста на эликсире, завтра какой нибудь банк/стартап поднявший раунд инвестиций/буржуйская галера зашедшая на местный рынок с $ зп начнёт хайрить — они убегут одним днём и сиди ищи ещё пол года.
220 2293020
>>292972
К игровому серверу да, игровые сервера полностью на с/с++ делают, в крайнем случае js, как моё браузерное говно. Ну или на жабе, ололо

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

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

Но всё равно приторно.

>>292982
Два проекта сразу в прод делаю, должно работать еще вчера. Не получится взять и две бизнеслогики напердолить.
221 2293066
>>293020
Бля, да если у тебя реально сервера на nodejs, то с elixir ты точно не соснешь. Аналогичный сервер на elixir (с нормальным concurrency и отказоустойчивостью) дадут вашей ноде за щеку раз 100, несмотря на то, что нода быстрее работает на бумаге. Не говоря уже о том, насколько приятней все это будет разрабатывать и дебажить.

Всерьез считаю полными опидоревшими безумцами людей, которые додумываются бэкенд на js писать
222 2293118
>>293066

>Аналогичный сервер на elixir (с нормальным concurrency и отказоустойчивостью) дадут вашей ноде за щеку раз 100, несмотря на то, что нода быстрее работает на бумаге


В контексте игрового сервера не даст, потому что там прежде всего нужна сырая производительность в однопотоке плюс числодробилки всякие, и ничего из этого сильной стороной эликсира не является, и нода на выдроченном на производительность V8 надает ему за щеку только так. Игровой сервер - это не распределенная система, а один поток, который должен быстро-быстро хуярить тики.
223 2293135
>>293020

>Два проекта сразу в прод делаю, должно работать еще вчера. Не получится взять и две бизнеслогики напердолить.


Тогда пиздуй кранчить как нормальный гейдев, хули ты тут сидишь тебе прямо сейчас вкат в новые технологии вот вообще не всрался, не задумывался об этом?
Даже если элексир подойдёт на 1000% — ты обосрёшься.
224 2293148
>>293066
Бизнеслогика на питоне, частично на ноде и с++. Нода действительно быстро работает, коннекты тоже норм держит, потому что сетевуха на с++.

>>293118
Игровой сервер это нода и с++ либы, речь про именно игровой сервер не идёт. Тут ежу понятно что никакие эликсиры не справятся. Оно по сути отдельной жизнью живёт вообще, взаимодействует остальными серверами только на старте/конце, загружая/отгружая крупные массивы данных изредка.

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

>>293135

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


Нужно пиздовать думать, ето да. Достаточно прохладился.

>тебе прямо сейчас вкат в новые технологии вот вообще не всрался, не задумывался об этом?


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

>Даже если элексир подойдёт на 1000% — ты обосрёшься.


Всё так.
225 2293210
>>293148

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


Это все можно писать на любом веб-фреймворке, потому что это по сути обычная веб апиха, и тут стандартные джанга с рельсами подойдут гораздо лучше эликсира хотя бы просто из-за популярности и простоты.
226 2293264
>>293210
Джанга с рельсами, жиденько пукнув, умрут после первой же тысячи rps.
227 2293288
>>293264
Во-первых не умрут, во-вторых это прежде всего оптимизируется количеством серверов и лоад балансером, говорить как ты говоришь "у нас будет много запросов, поэтому оптимизируем на уровне языка сразу же и пишем на си, чтобы один инстанс вместо одной тысячи rps хенделил три" может только шизик. Высоконагруженные веб-сервера спокойно пишутся на чем угодно, там есть миллион способ оптимизации, которые не требуют переписывания всего проекта на другой язык.
228 2293433
>>293288
На плюсы логику переписывают чтобы не закупать серверные стойки вместо одного сервера. Иногда выгода в 20раз получается.
И вместо 1к rps он будет 11-18к брать, а не три.
229 2293463
>>293433

Что-то более-менее сложное, ещё и под хайлоад, на крестах пилить это адъ и пиздецъ. Ты утонешь потом в ловле багов и поддержке этой хуеты, если писать нормально по "C++ way". А если без крестовых маразмов, то проще сразу пиздон или руби взять или что там ещё высокоуровневое в живых осталось.
230 2293465
>>293433

> Иногда выгода в 20раз получается.



А на асме в 50. Но есть нюанс.
231 2293495
>>293465
Да нет там нюанса, в гейдеве плюсисты хоть и в основном посредственные — один из преобладающих видов хомо анальникуса.
232 2293501
>>293495

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

Ну пора уж принять, что большинство проблем "плохих" языков решаются апгрейдом железа.
233 2293507
>>293463
Багов будет куча в любом случае, но не из-за языка. Если его не будет писать 2,5 ждуна, кек.

>то проще сразу пиздон или руби взять или что там ещё высокоуровневое в живых осталось.


Для всего, что не связано непосредственно с геймплеем (если не говорить про браузерки/пошаговые стратегии) так и делают.

>>293501

>На второй фейсбук или ютуб этот подход перенести малой кровью не получится.


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

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


Так никто и не спорит, речь шла про игори.
234 2293642
>>293463
Нормально всё, пилишь на императивщине и всё. Можно и на си писать отдельные либы логики.
Конечно часть логики на пистоне, жабе, шарпе и ноде пишут, если это не критично.

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

>>293501

> Ну гейдев понятно - на стабильность срать, хайлоада нет,


Ну вообще-то нет. Там и хайлоад есть и стабильность нужна. Стабильность через балансеры, да.
235 2293656
>>293642
Ты серьезно пытаешься сказать, что единственный способ написать хайлоад веб-приложение - это писать его на плюсах? И что на руби, питон, жсе хайлоада нет и всякие бейскампы просто падают при большой нагрузке, ведь они же не на си написаны? Ты ебанутый?
236 2293664
>>293656
Чел, что за шизофрению ты выдумал вообще? Этого же буквально нет в моём посте, ты придумал всё. Таблетки выпей.
Речь об отдельных либах логики на плюсах, а не о приложении.
237 2293675
>>293664
Каких отдельных либах, если в ветке обсуждения идет разговор о том, на чем писать сервер под хайлоад? И да, вставка низкоуровневого кода исключительно ради оптимизации - это пиздец редкость в вебе, а не некая распространенная практика, как ты подразумеваешь. Обычно с головой хватает оптимизации через переписывание обычного говнокода, никому не нужен еще и лишний говнокод на си.
238 2293680
>>293675

В вебе обычно кресты заканчиваются на веб-сервере и интерпретаторе VHLL-хуеты. Бизнес-логику на крестах для веба никто не пишет. Ну может что-то штучно-уникально-самойстийное для банков и тп, хотя у банков фетиш на джаву с 90ых ещё.
239 2293688
>>293675
Чел, сервер не обязательно означает стандартное веб приложение, которому надо сходить в базу и плюнуть ответ.

Тебе уже 10 сообщений подряд втирают, что речь не про написание сайта идёт и с тобой никто не спорит.

>>293656
У «всяких бейзкампов» принципиально другая модель взаимодействия, нет необходимости в сколько нибудь риалтаймовом взаимодействии, да и просто экономика бьётся.

А вот у всякой фри ту плей мультиплеер залупы это всё не так от слова совсем.
240 2293700
>>293688

>Чел, сервер не обязательно означает стандартное веб приложение, которому надо сходить в базу и плюнуть ответ.


В контексте разговора - означает, веб-сервер для игрового магазина или лаунчера занимается именно стандартными для среднего сайта вещами, а не дохуя трейдинговым риалтаймом.
241 2293729
>>293675

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


Что значит "на чем писать сервер"? Ты имеешь ввиду либу типо asio? Или что? Сервер пишется на нескольких языках, которые включают и системные либы, сокеты, либы матана, либы компрессии и многое другое. Почти все эти либы на плюсах написаны.

> И да, вставка низкоуровневого кода исключительно ради оптимизации - это пиздец редкость в вебе, а не некая распространенная практика


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

>>293680

> Бизнес-логику на крестах для веба никто не пишет.


Смотря что есть бизнес-логика. Крайне нечёткое понятие.
Кажется в этом итт треде под бизнес-логикой понимают вообще всю серверную логику. Но в реальности это работает только на уровне говянного магазинчика и тудушек.
242 2293740
>>293729

>Сервер пишется на нескольких языках


Не пишется, ты подменяешь понятия. Тот факт, что у тебя под капотом руби дергает какую-то системную си-либу для того чтобы сложить хуй с залупой, не превращает твой написанный на руби проект в "написанный на нескольких языках".
243 2293766
>>293740

>Не пишется, ты подменяешь понятия.


Пишется. Ну по крайней мере в игроговне и высоконагруженной хуйне всякой. Вообще хз как там в сайтоёбстве на самом деле.

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


Т.е. либа в таком случае исключается из понятия "сервер", правильно? А если либа как CGI скрипт подключается, то как тогда? А если руби 49%, а CGI-скриптов на си 51%, то как тогда? А если конкретный запрос обслуживает только CGI скрипт на си, считается ли это сервером на си?
244 2293780
>>293766

>Т.е. либа в таком случае исключается из понятия "сервер", правильно?


Из понятия "написанный тобой сервер" исключается все, что ты не писал, в том числе биндинги в другие языки под капотом твоего языка, операционная система и прочее-прочее. Вопрос в чем?
245 2293800
>>293780

> Из понятия "написанный тобой сервер" исключается все, что ты не писал


Хорошо тогда, 30-40% года у меня на плюсах написано для сервера, особенно прокладки под бд, балансеры и несколько Qpid.

> Вопрос в чем?


Ты почему таблетки не выпил, хайлодаер на руби?
246 2293856
>>293800

>Хорошо тогда, 30-40% года у меня на плюсах написано для сервера


Поздравляю, только как это относится к твоему шизоидному заявлению о том, что без плюсов хайлоад невозможен?
247 2293873
>>082722 (OP)
А что лучше, вкатиться в эликсир и потом поработав выучить рельсы (я хочу только бек писать)

Или лучше в рельсы и потом в элик.

Мимо 3 года на ios сижу.
248 2293881
>>293873
Рельсы очевидно, эликсир это чисто игрушка что-то новое попробовать, работать ты на нем вряд ли будешь, тем более в качестве джуна.
249 2293925
>>293881
Но мне нравится элик и феникс, особенно то, что он компилируется и можно написать макрос с типами.
250 2293928
>>293856
У тебя реально шиза, ты видишь то чего нет.
Нормальный хайлоад в игроговне, и прочем таком, невозможен без плюсов. Просто потому что это действительно хайлоад и процессов очень дохуя может стартовать и очень тяжелых. Например шмотки из магазинов должны копироваться на игровой сервер с разным коэффициентами, вместе с огромными запросами из бд.
На всяких сайтиках-магазинах и прочей хуйне хайлод можно и без плюсов, потому что плевать на задержки.
251 2293957
>>293873
Сразу elixir. Если потом все равно собираешься в elixir, то руби только засрет тебе голову ООП-говновермишелью.
252 2293963
>>293957

> засрет тебе голову ООП-говновермишелью



Поехавший.

В руби наверное единственном ООП сделан идеально, ну или близко к идеальному. Любой токен, любой результат любой функции можно через "." прохуячить миллионом методов, к результату ещё что-то применить... Это безумно удобно и легко писать. Если уж руби в чём-то обвинять, то в том что он слишом балует хуманов комфортом.
253 2293972
>>293963
Согласен с ним.

Уже итак все языки засраны процедурным ООП. Один руби выживает. Ну и свифт.
254 2294040
>>293928

>Например шмотки из магазинов должны копироваться на игровой сервер с разным коэффициентами


Это ничем не отличается от стандартной задачи по синхронизации данных между разными серверами, которая в обычном вебе возникает и решается на каждом шагу.
255 2294104
>>294040
В таком хайлоаде она не решается сразу для 20к инстансов, которые стартанули одновременно или около того. И для каждого инстанса нужно перекинуть метра два чистых данных из бд, например, отработать по ним функциями, загнать в кэши и еще кучу хуйни сделать.
Ты просто не понимаешь какого уровня там хайлод работает и как он во времени распределён. Мало того что он нелинейный, так еще и ебанутый с ебанутыми массивами данных, тот же обоссаный матчмейкинг - просто пиздец без плюсов. В некоторых калпаниях берут отдельные стойки для матчмейкеров, неужели ты думаешь что там нет плюсов?
Еще раз, ты прав, всякие магазы пердолят на обычном вебговне и большее что-то там нинужно, хватает даже обычного рестапи. Но уже взаимодействие между бд, серверами и игровыми серверами приходится на плюсах пердолить.
256 2294299
>>294104

>В таком хайлоаде она не решается сразу для 20к инстансов


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

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


Не вижу как отдельная стойка для чего-то автоматом дает возможность сделать вывод, что это что-то можно писать только на плюсах, иначе пиздец.
257 2294388
>>294299
У тебя опять шизофрения протекает, придумал как какую-то шмотку куда-то перекидывает, лол. Таблеточки...
258 2294448
>>293963
Так я не о том, что в руби плохой ООП, а о том, что если собираешься вкатываться в ФП, то лучше сразу с этого и начать, не захламляя голову ООП хуйней, которая там не пригодится
259 2294501
>>292303

>Всё то же самое можно хоть на ноде сделат


Нельзя, очевидно. Вернее можно, можно хоть на пхп, если делать нехуй и сильно хочется говна навернуть.

>Или, может, эликсир работает тупо как распределённый орекстратор, который не обсирается и не падает?


Ну как бы Erlang/BEAM под хардкорный распределенный fault-tolerant с зиллионом соединений на каждом узле и создавался, изоляция, акторы, вмка со специальной моделью памяти, сделанная нормально вытесняющая многозадачность, авто-смп по ядрам изкоробки и все вот это. Elixir работает поверх Erlang/BEAMи соотвественно все это умеет.
260 2294507
Подписался на срач про хуйлоад сервер для геймдева скоро для своего пета тоже буду пилить лет через пять

>>294501

>сделанная нормально вытесняющая многозадачность


А чем условный pthreads ненормален?
261 2294533
>>294501

>Нельзя, очевидно.


Можно, просто это очень неприятно временами бывает.

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


Давай проще. Вот у меня есть несколько групп серверов. Первая - бизнеслогика, магазины, сайты, тонны скриптов, несколько серверов. Вторая группа - кластер постгресса с ослом/ектедом. Третья - гейдев с сотнями геймсерверов на с++ и ноде.
Где тут ерланг будет? Можно ли сделать ерланг на ВСЕХ серверах сразу нахуй, чтобы без ослов и ектедов было, и соеденялся ерланг между серверами сам, поднимался сам, при нагрузке запускал кластеры сам, балансировал сам, да и геймсервера автоматически поднимались?

>Elixir работает поверх Erlang/BEAMи


Ну короче можно сразу на ерланге писать.

>>294507

>Подписался на срач про хуйлоад сервер для геймдева


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

>лет через пять


Пили прямо сейчас.
262 2294578
>>294388
Шизофреник, я тебе отвечаю на твой же пример из прошлого твоего поста. В голове больше двух предложений удержать не можешь, а табелтки надо кому-то другому пить?
263 2294647
>>294578
Нет, шизоид, там такого не было. У тебя шизофрения и ты читать не можешь уже.
264 2294820
>>294533

> Пили прямо сейчас.


Окстись, отец, ещё клиент не готов.
265 2294855
>>294820
В смысле, блядь, не готов? Давай готовь нахуй.
Там в клиенте проблем больше на самом деле чем во всех серверных хуйнях вместе взятых.
Хотя если пердолить клиент на плюсах под десктоп и мобилки то нормально выйдет, но рынок браузерной АА-хуйни сам себя не освоит. а я ещё собираюсь свои клиенты с v8 и опенжл пилить, чтобы с браузера говнокод можно без модификаций в натив релизнуть
На чем делать-то будешь?
266 2294969
>>294855

> Хотя если пердолить клиент на плюсах


Чи шо, я ещё пока не ебанутый, клиент пишу на человеческом VHLL на каком - не скажу, деанон. Сервер на нём же, хотя вот поглядываю в сторону элика.
267 2294974
>>294969
VHLL

Мда. Много шума из ничего. Даже пошел погуглить что же это такое. Оказалось просто язык нейм. С таким же успехом можно в одну гребенку собрать то, что описывалось выше.
268 2294991
>>294969
Да какой тут деанон, всем похуй.

Еслишо я пишу на webgl, js и хтмл клиент сейчас (гуй пока что только, ололо) + задел на рендер через потоки в своём собственном "браузере" - обсерверы на хтмл вешаю и архитектуру хитровыебанную делаю, должно получиться впринципе.
269 2295417
>>294507
Тем, что треды - это shared state, а значит локи, гонки, отличие времени жизни треда от времени жизни данных гроб гроб кладбище пидор. Треды это большое зло, программировать на них что-то больше, чем на два потока - это лютая головная боль и байтоебство. В какой-то момент градус отчаянье сообщества дошел до такого уровня, что от них поголовно стали отказываться даже на лоулевеле если это было возможно в пользу однотредовых FSMов, из которых потом вышли все модные в нулевых движки на событиях типа ноды, торнадо, евентмашин и так далее. ФСМы конечно тоже хуйня, и не быстрые как треды, но все ещё не надежные, конкурентная многозадачность опять же, хуевая масштабируемость, но хотя бы shared state избежали, а это уже делает их лучше говнотредов, к тому же сраному интернет МагаЗину или говнобраузерке они не очень то нужны, а асинхронность все таки иметь хочется. В ФП были более удачные модели, тот же STM или фьючеры, но это все полумеры: STM - просто shared state сделанный правильно, то есть проблему не решает, а только сглаживает боли, E-стайл фьючеры идея годная, но fault-tolerance, особенно в распределённом среде, не обеспечивает и даже усложняет его достижение. Из более популярных альтернатив ещё были гринтреды, но до эрланговских процессов все равно не дотягивает, ну и опять же, полумеры без основательного решения проблемы. Из хорошей альтернативы есть разве что go-каналы, во-первых, CSP - достойная конкурентная модель (Хоар - гений, хули), во-вторых, даже запилили вытесняющую многозадачность (все равно более ограниченную, чем в BEAM). Жаль только язык получился какой-то goвнарский, ну и на практике быстро выясняется, что реализация всего этого какая-то поверхностная, во всяком случае для распределённой среды там нет ничего, то есть по дефолту подразумевается микросервисная архитектура и решение проблем взаимодействия сторонними инфраструктурных средствами, как обычно бывает, когда в инструментарии самой платформы для этого нет нихуя. То есть с таким же успехом можно было бы собрать узлы на питоне, соединив их с каким нибудь MQ для пабсаба, Redis Cluster и поставив вперед nginx как реверс прокси (особо упоротые нарки ещё и по ядрам это говно умудряются масштабировать, даже с каким то самописным супервайзингом) - то есть криво собрать наколенке то, что в эрланге ещё 20 лет назад сразу шло искоробки и бесплатно (кроме разве что распределённого in-memory хранилища, потому что мнезия для широких задач не канает).
Вот и получается, что альтернативы у BEAM в плане удобства для такой разработки и чтоб со встроенными средствами для отказоустойчивости по сей день нет, да и вообще приятно, когда в языке/платформе сразу есть все нужные примитивы для программирования систем, которые удобно моделируется через взаимодействия акторов и не нужно ебать себе мозги низкоуровневым говнищем. Причём поддержка платформы тут главное, я вот с другими актор-фреймворками работал, Акка и Аккадотнет и это пиздец, понимаю почему скалисты сьебывают на каты, а все потому что одно дело когда у тебя сразу есть специальная вмка и щедулер, а другое дело когда ты пытаешься акторы натянуть поверх всяких говнарских жвм тредпулов.

tl;dr: вместо того чтоб читать многобуков на форуме анонимных испердов, просто ставишь ерланг/еликсир и пробуешь все сам, за пару недель все поймёшь. Вспомнил классику:


С эрлангом намного проще, каждый кто написал 10 строк на Эрланге врубается сразу и пишет у себя в резюме Distributed Systems, High-Load Projects, Pi-calculus и Concurrency Master. После Эрланга становися сразу ясно почему Akka, Okku, Quazar, Kilim, Go, Итераты вместе с Клауд Хаскелем сосут прричмокивая. То где другим языкам нужно написать 100 кб кода для определения стратегии yied в скедюлер (memory/message threshold), в Эрланге делает одним условием


https://topbloger.livejournal.com/14771076.html

Жаль максим ебнулся мозгами и читать его теперь физически сложно, хотя это и тогда было на грани, но в этом и был шарм, а теперь это просто шиза, хотя иногда для получения живительного заряда шизокоетента открываю его tw
269 2295417
>>294507
Тем, что треды - это shared state, а значит локи, гонки, отличие времени жизни треда от времени жизни данных гроб гроб кладбище пидор. Треды это большое зло, программировать на них что-то больше, чем на два потока - это лютая головная боль и байтоебство. В какой-то момент градус отчаянье сообщества дошел до такого уровня, что от них поголовно стали отказываться даже на лоулевеле если это было возможно в пользу однотредовых FSMов, из которых потом вышли все модные в нулевых движки на событиях типа ноды, торнадо, евентмашин и так далее. ФСМы конечно тоже хуйня, и не быстрые как треды, но все ещё не надежные, конкурентная многозадачность опять же, хуевая масштабируемость, но хотя бы shared state избежали, а это уже делает их лучше говнотредов, к тому же сраному интернет МагаЗину или говнобраузерке они не очень то нужны, а асинхронность все таки иметь хочется. В ФП были более удачные модели, тот же STM или фьючеры, но это все полумеры: STM - просто shared state сделанный правильно, то есть проблему не решает, а только сглаживает боли, E-стайл фьючеры идея годная, но fault-tolerance, особенно в распределённом среде, не обеспечивает и даже усложняет его достижение. Из более популярных альтернатив ещё были гринтреды, но до эрланговских процессов все равно не дотягивает, ну и опять же, полумеры без основательного решения проблемы. Из хорошей альтернативы есть разве что go-каналы, во-первых, CSP - достойная конкурентная модель (Хоар - гений, хули), во-вторых, даже запилили вытесняющую многозадачность (все равно более ограниченную, чем в BEAM). Жаль только язык получился какой-то goвнарский, ну и на практике быстро выясняется, что реализация всего этого какая-то поверхностная, во всяком случае для распределённой среды там нет ничего, то есть по дефолту подразумевается микросервисная архитектура и решение проблем взаимодействия сторонними инфраструктурных средствами, как обычно бывает, когда в инструментарии самой платформы для этого нет нихуя. То есть с таким же успехом можно было бы собрать узлы на питоне, соединив их с каким нибудь MQ для пабсаба, Redis Cluster и поставив вперед nginx как реверс прокси (особо упоротые нарки ещё и по ядрам это говно умудряются масштабировать, даже с каким то самописным супервайзингом) - то есть криво собрать наколенке то, что в эрланге ещё 20 лет назад сразу шло искоробки и бесплатно (кроме разве что распределённого in-memory хранилища, потому что мнезия для широких задач не канает).
Вот и получается, что альтернативы у BEAM в плане удобства для такой разработки и чтоб со встроенными средствами для отказоустойчивости по сей день нет, да и вообще приятно, когда в языке/платформе сразу есть все нужные примитивы для программирования систем, которые удобно моделируется через взаимодействия акторов и не нужно ебать себе мозги низкоуровневым говнищем. Причём поддержка платформы тут главное, я вот с другими актор-фреймворками работал, Акка и Аккадотнет и это пиздец, понимаю почему скалисты сьебывают на каты, а все потому что одно дело когда у тебя сразу есть специальная вмка и щедулер, а другое дело когда ты пытаешься акторы натянуть поверх всяких говнарских жвм тредпулов.

tl;dr: вместо того чтоб читать многобуков на форуме анонимных испердов, просто ставишь ерланг/еликсир и пробуешь все сам, за пару недель все поймёшь. Вспомнил классику:


С эрлангом намного проще, каждый кто написал 10 строк на Эрланге врубается сразу и пишет у себя в резюме Distributed Systems, High-Load Projects, Pi-calculus и Concurrency Master. После Эрланга становися сразу ясно почему Akka, Okku, Quazar, Kilim, Go, Итераты вместе с Клауд Хаскелем сосут прричмокивая. То где другим языкам нужно написать 100 кб кода для определения стратегии yied в скедюлер (memory/message threshold), в Эрланге делает одним условием


https://topbloger.livejournal.com/14771076.html

Жаль максим ебнулся мозгами и читать его теперь физически сложно, хотя это и тогда было на грани, но в этом и был шарм, а теперь это просто шиза, хотя иногда для получения живительного заряда шизокоетента открываю его tw
270 2295441
>>295417

>Тем, что треды - это shared state, а значит локи, гонки, отличие времени жизни треда от времени жизни данных гроб гроб кладбище пидор.


Но ведь это решается просто кастомным семафором, не?
271 2295477
>>295441
Да, бро, а ещё мьютексом, спинлком и критическими секциями. Ты же пынямаешь, что всё это дедовское байтоебское control-flow говноедство в более менее большой программе ни к чему хорошему не приводит. Одно дело когда ты там какой лоулевел пилишь в спартанских условиях, никаких удобств не предусмотрено и единственный вариант сделать задачу - это заплатить сотнями литров крови разорванных срак и зилионнами человеко-часов несчастных рабов байтоебышей вьебанных в отладку и тестирование. Ну типа лет 30-40 назад софт только так и разрабатывался, но сейчас так не принято, особенно если есть альтернативы. Раньше альтернатив не было, был выбор сосать на быстрых тредах, или не сосать на медленном FSM, и как я уже сказал, большинство выбирало не сосать, то есть

A Computer is a state machine. Threads are for people who can't program state machines

(c) Alan Cox

было плюс-минус позиция большинства, уж сильно жопа от тредов болела, несмотря на всю смазку в виде мьютексом-семафоров.

Правда позже реальность стала вносить свои коррективы в виде появления многоядерный процов и распределённых систем, и сидеть на ФСМах осталось возможным только в интернет магазинах, и говнобраузерках. Правда некоторые упоротые и LDAP сервера на ноде пишут, если долго мучатся можно все что угодно на чем угодно наговнякать, вопрос времени, боли и главное - поддержки этого говна.
272 2295564
>>295477

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


Да, приходится раскидывать приоритеты всякие, неприятно. Но у меня приоритеты были конечные и их мало, так что терпимо.

> человеко-часов несчастных рабов байтоебышей вьебанных в отладку и тестирование


> Раньше альтернатив не было, был выбор сосать на быстрых тредах, или не сосать на медленном FSM, и как я уже сказал, большинство выбирало не сосать, то есть


У меня есть говняшка в стиле ECS и data-driven. Оно же просто работает, нормально работает, оче быстро, никаких проблем не вижу вообще, треды мутятся, ядра крутятся, могу в 240 герц укладываться на больших объемах. Теоретически можно fastcgi прикрутить, но я уже блюю от сложности. В прод не спускал, но должно нормально работать, можно сколько угодно ядер пускать на данные приходящие.
Как это вообще в ерланге-то работает? Неужели есть решение более производительное?
273 2295614
>>295417

> конкурентная многозадачность


Дыкить ивентовые движки - это кооперативная многозадачность же.
274 2310626
>>082722 (OP)
Функциональнй программист М. Сохацкий стал бандеровцем:

https://twitter.com/infinitystack

Что грозит этому гуру Эрланга и Хаскелля, когда наши танки въедут в Киев?
275 2310861
>>310626
Да при чем тут танки, ноль информации в твоих каментах.
Такое ощущение что ты перед кем-то выйобуешься.
Передо мной не нужно, для меня ты никто.
276 2311557
Насколько реально без знаний и опыта ВАЕМ, ЯоЯ и самих ерлангов с эликсирами запилить блог? В ФП могу, правда не особо представляю, как вы там в динамике не убиваетесь
277 2311982
>>310626
Помянем. А вот был бы императивщиком - другое бы дело было!
278 2311987
>>082722 (OP)
Rust лучше. И быстрее.
279 2312691
Похоже я начинаю на самом деле вкатываться, и языком моего вката встанет Elixir.
280 2312755
>>286257
Шо за шрифт и тема?
281 2313796
Что сейчас по работе джуниором elixir developer удалённо? Интересуют позиции от 200$/month
282 2313813
>>311987
И выглядит как залупа, написанная пидорами и неграми
283 2313865
Есть смысл вкатываться после 30ти?
284 2313982
>>313796

>elixir developer


>джуниором


>удалённо


))

>>313865
Нет.
285 2314135
>>313982
Почему?
Язык же один из самых лёгких и с одним простым фреймворком, в который всё включено
286 2314840
>>314135

>Почему?


Так исторически сложилось.
287 2315284
>>314840
Здравствуйте!
Я - Elixir разработчик.
Это моя профессия.
Так сложилось исторически.

Когда-то я разработал Erlang.
Теперь это язык поддерживающий параллельные легковесные процессы и асинхронность.
Теперь на нём удобно разрабатывать распределённые системы.
Теперь на нём написан RabbitMQ.

Я разработал OTP.
Этот фреймворк я применил про разработке огромного разнообразия высоконадёжного телекоммуникационного оборудования.
OTP стала неотъемлемой частью экосистемы Erlang.

Я разработал BEAM и ERTS.
Вместе они позволяют коду на Erlang эффективно распараллеливаться и надёжно выполняться на разных узлах распределённой системы.

Я обогатил Erlang метапрограммированием и полиморфизмом создав новый язык Elixir, который можно применять везде!

Я создал Phoenix.
Фреймворк с отличной производительность и масштабированием объединяющей в себе всё необходимое для веб разработки.

Да, я - Elixir разработчик!
И я устал извиняться за это...
Я разработчик по праву рождения.
Я проектирую и имплементирую.
Бойтесь!
287 2315284
>>314840
Здравствуйте!
Я - Elixir разработчик.
Это моя профессия.
Так сложилось исторически.

Когда-то я разработал Erlang.
Теперь это язык поддерживающий параллельные легковесные процессы и асинхронность.
Теперь на нём удобно разрабатывать распределённые системы.
Теперь на нём написан RabbitMQ.

Я разработал OTP.
Этот фреймворк я применил про разработке огромного разнообразия высоконадёжного телекоммуникационного оборудования.
OTP стала неотъемлемой частью экосистемы Erlang.

Я разработал BEAM и ERTS.
Вместе они позволяют коду на Erlang эффективно распараллеливаться и надёжно выполняться на разных узлах распределённой системы.

Я обогатил Erlang метапрограммированием и полиморфизмом создав новый язык Elixir, который можно применять везде!

Я создал Phoenix.
Фреймворк с отличной производительность и масштабированием объединяющей в себе всё необходимое для веб разработки.

Да, я - Elixir разработчик!
И я устал извиняться за это...
Я разработчик по праву рождения.
Я проектирую и имплементирую.
Бойтесь!
288 2315365
>>315284
Заебали эти эрлангисты, хорошо что я в рассылке не отвечал, а то хотел было! Фух свят свят свят. НАХУЙ НАХУЙ.
Вцелом так то мне эти ебанаты похуй, я ж не буду ползать на коленах чтоб на N2O писали, так в жопу их, пошли все нахуй кто на эрланге пишет.
289 2316557
>>314135
Как бы обидно для многих пердолей это не звучало, но распространенность технологии решает хайп и возможность перетечь в них из других областей, достаточно на JS посмотреть.

>«Решение использовать готовый язык вместо изобретения своего никаким образом не зависело от меня. Установка, поступившая с самых верхов, звучала так: “Язык должен выглядеть как Java”. Это сразу отбросило Perl, Python и Tcl вместе со Scheme. Позже, в 1996 году, к нам зашёл Джон Оустерхаут, чтобы показать Tk и посокрушаться по поводу упущенной возможности для Tcl. Я не горжусь, но я счастлив, что я выбрал в качестве основных ингредиентов функции первого класса по подобию Scheme и прототипное программирование Self. Влияние Java, особенно баги с датами в 2000 году и чувствительность к регистру, стало досадным недоразумением.» — Brendan Eich's blog: Popularity



>Хотя создание синтаксиса, максимально близкого к Java, не было основной идеей JavaScript, рынок внёс свои коррективы. Возможно, для решения определённых задач больше подошёл бы другой синтаксис, однако благодаря использованию всем знакомого синтаксиса JavaScript с лёгкостью набрал популярность.

290 2316985
Хочу например переписать на элексире мастодон
Какие подводные камни?
291 2317172
>>316985
Его уже написали (pleroma)
292 2317768
>>316557
Вот что случается, когда кабанчикам позволяют принимать технические решения.
293 2320348
>>317768
И оно выстрелило, а так была бы никому не нужная хуетень с 2.5 шизами, которые спорят за всякие гомоиконности, но при этом промышленно не пишут на своем любимом языке. Программисты это в первую очередь обслуга бизнеса, все остальное только для борщехлебов и всяких академических кругов.
294 2320417
>>320348
Ну ничё, скоро в богоспасаемой федерации опустится железный занавес, начнётся совочек 2.0 и за бизнес снова станут сажать, посмотрим, как вы тогда покукарекаете, бизнесмены ёбаные.
295 2320441
>>320417
А всяких лиспов и эрлангов тоже не будет, только сишка и делфи, как диды
296 2320458
>>320441
Что партия скажет, то и будет. Не твоего ума дело государевы вопросы решать.
sage 297 2321339
>>320417
Чет не в тему у тебя пораша протекла, шиз.
298 2329032
gigalixir в чём подвох? Обязательно оплачивать хотя бы минимальный стораге?
а флайио как сервис?
От всех жемов с аасами бошка пухнет

Нужен бесплатный слиплесс инстанс под пару скраперов с веб и бот интерфейсами
299 2341005
На Джуна без опыта разработки реально вообще в РФ устроиться? На эликсире пописываю чуть больше, чем полгода. OTP, phoenix, liveview, ecto
300 2341289
>>341005
Скорее всего нет, учтя нынешние реалии
301 2341349
>>291558
Обязательно. Весь рантайм - эрланговский. Хочешь прогать - обязан знать, как работает эрланг vm.
302 2351060
>>082897
Иди отсюда, пидор грязный.
303 2351694
ОП на связи

>>292329
Не, mnesia хуйня, никому не советую. Есть большой опыт работы с оной, и от этой хуйни больше проблем чем профита. Например, проебываются все данные, когда заканчивается место. Или, mnesia не умеет по дефолту в master-slave.

>>311987
Да, я тоже люблю раст и есть говно

>>312691
Добро пожаловать

>>291558
Сложно сказать. С одной стороны, нужно уметь в рантайм, особенности компиляции, и прочие штуки. Но это скорее про BEAM (на эту тему советую почитать The Beam Book). А вот знать эрланг как язык нахуй не нужно, потому что читай ниже

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

>>341005
Шансов мало, но за спрос денег не берут, так что откликайся на всё что видишь и пизди в резюме. Мой совет: запили проект в опенсорс, чтобы были пруфы того что ты реально могёшь в эликсир

>>351060
Окей, мой сладкий
problems.png107 Кб, 1827x481
304 2353968
Хотел установить Livebook через mix, постоянно залипает на предложении продолжить установку. Может какой-то hot key не знаю? Интернеты молчат.

> mix escript.install hex livebook

305 2355897
>>353968
Во-первых, в терминале делай reset и настрой правильно переменную TERM. Во-вторых, читай как правильно устанавливать https://livebook.dev/#install
306 2367430
Кстати, а есть кто-нибудь в Грузии из двощеров эликсирщиков?
307 2367902
>>082990

> ты реально в этой стране хочешь остаться?


а где сейчас лучше?

в еуроппе с гхазом по 2к грина за куб и маргинальными нигерами с арабами или индусами повсюду, во франции белое ебло хуй встретишь

или в муррике где ГАЗОЛИН подорожал до 4 баксов за их маня-меру-объема и они уже начали смешные наклеички клеить на заправки, а когда он поднялся до 7 баксов там уже хотят устроить импичмент и это небацо сверхдержава, чуть более чем полностью состоящая из дешовых понтов и пузырей

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

куда уезжать то епта?

>>367430

> в Грузии


вообще все ебанулись от своей нищеты и манямира. в армении скоро опять что то будет. в турции после путча все скатывается в говно.
308 2368114
>>367902
Ты это к чему высрал, дорогой? Я просто спросил есть ли в Грузии кто из эликсирщиков, чтобы просто местный /soc/ устроить, пива попить да за эликсир попиздеть. Успокойся, дорогой
309 2368122
>>368114

> чтобы просто местный /soc/ устроить


> спроси


> в


> /soc


даун

хотя это будет кринж инфа 95%

а я просто взял с тебя гринтекст. айсикью 60 блядь...
310 2368127
>>368122
Нихуя себе ты злой. Что у тебя случилось? Как дела вообще?
7b3d14c80836c0d5dfda7d5cd62b5.jpg43 Кб, 650x400
311 2368134
>>368127
а ты с какой целью интересуешься ?
312 2368138
>>368134
Просто вдруг могу тебе помочь чем-нибудь, вдруг тебе надо просто выговориться. Ты не держи в себе, рассказывай, анон
mRp5vePMeIk-00-04-48.png2,3 Мб, 2560x1440
313 2368153
>>368138
помоги себе сам, тренируй стрессоустойчивость сука

а мне пиздежом на дваче не помоч.
314 2368214
Ну чо, девочки. Хочу написать модель акторов на JS, чтобы в случае чего быть как эликсир, но в жс. И чтобы потом на си++ было проще переписывать.
Пока что есть несколько паттернов мультипоточной дрисни на ECS, кривые акторы без архитектуры и немного не менее кривых асинхронных функций. В идеале всё это должно работать вместе в одном фреймворке. Асинхронный, мультитредовый, ориентированный на данные фреймворк, который занимает примерно 150 строчек кода. Может ещё строчек 50 потрачу на всякие гарантии доставки сообщений, как-то читал что это очень и очень проблемно даже на одной машине случаются проблемсы.
Акторы будут запускать мультипоточные и мультитредовые системы, механизмы, отдельные функции, асинхронно и мультипоточно читать БД. Системы будут отсылать выпуки в акторы и общаться с серверами.

НУ И ЧТО СО МНОЙ НЕ ТАК?
315 2368220
>>368214
если тебе делать нехуя напиши лучше для сраных крестов препроцессор избавляющий язык от всратого визуального шума ;{
316 2368232
>>368220
Пиши на ситоне. Заодно от плюсов уйдёшь.
317 2368265
>>368232
если бы у меня был выбор я бы наверное выбрал ним и голову не ебал

но количество каложоров стремится к бесконечности, как и мои страдания в случае нужды

я как могу отодвигаю этот момент, но соломки лучше подстелить заранее
318 2368267
>>368265
Бесмысленно. Ты вступил в секту ООП на плюсах, взяв в руки уеч. Либо ты волевым движением отказываешься от уеча и пилишь моё говно со мной (хотя я не умею в тиме работать, да и работать над такой сверхсложной хуйней в принципе), либо и дальше продолжаешь жрать уеч.
319 2368274
>>368267
я никуда не вступал, мне похуй на уебищное ооп

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

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

и самый умный вариант это пиздить у топов (т.е эпиков) но их мета язык с макросами это пиздец я даже думать о нем не хочу

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

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

ну а после него у меня останется куча стафа который ляжет в основу морды для игрового движка, ага.
Screenshot20211101224148.png633 Кб, 3023x1261
320 2368275
просто вот эта хуйня подбешивает
321 2368279
>>368274

>я никуда не вступал, мне похуй на уебищное ооп


Нет, вступил. Взял в руки уеч = будешь жрать ооп-кал на плюсах.

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


Так ты сам партянками пишешь, лол.

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


Если бы так было, никто бы не делал что-то новое.

>и самый умный вариант это пиздить у топов (т.е эпиков)


Ебать ты калоед.
322 2368291
>>368279

> Взял в руки уеч = будешь жрать ооп-кал на плюсах


ну пока что хватает лапши. есть один персонаж он клон майнкрафта на лапше захуярил, не вступит в кресты вообще ни разу!

пробрасывание даты между ивентами правда пиздецки отъебало голову, как и всякие крестодаунские заебы типа -24 %% 24, но это ничего страшного..

> партянками пишешь


я не описываю идею, а бугурчу

> Если бы так было, никто бы не делал что-то новое.


а никто и не делает, с 70ых кроме пары маняфантазий нихуя и не поменялось, где были там и есть, ну да чутка реще стало, по сути все тоже самое

а как уперлись в мура, так и начались манявры, - а давайте физончик на нейросетях посчитаем плиииз :?

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

в общем все движется в сторону нейро-оптимизации и шорткатов, ебать в лоб больше не получится физически

поэтому либо будет матрица, либо все пойдут нахуй в каменный век и стагнацию в лучшем случае

> Ебать ты калоед.


попизди мне.. эпики в соло пушат весь геймдев и заодно фильм_дев, если б не они ты как и все остальные жрали говно

и в пятой части (уеп) уже такая йоба как вирчуал меш, вкупе с дин светом - это гейм ченжер
323 2368303
>>368291
Челище.. Либо ты нормально будешь делать всё - либо будет дрисня.
Алсо, твой "движок" должен быть на 100 строк кода или вроде того. Вместе с рендером. Хз чего ты там в лапшичные ооп-помои перекатился с своего движка. Не смог в шейдеры и постпроцессинг?
Screenshot20180813180907.png1,9 Мб, 1920x1080
324 2368304
>>368303

> Челище.. Либо ты будешь делать - либо нет


мне твой максимализм с перфекционизмом очень сильно не близок, понимаешь?

> своего движка


у меня нет, а только в планах, ты вообще следишь за нитью?

> движок" должен быть на 100 строк кода или вроде того


ну вот я тоже хуй знает откуда у этих даунов 30 гигов говнища (и почти сотка гигов при компайле), когда годот вешает три сотки мб
325 2368319
>>368304

>мне твой максимализм с перфекционизмом очень сильно не близок, понимаешь?


Да, понимаю. Некотоыре люди просто любят жрать дерьмо. Ты привык и продолжаешь это делать, оправдываясь на хуйне.

>у меня нет, а только в планах, ты вообще следишь за нитью?


Так тред был месяца джва назад. Ты чего, до сих пор двиг не высрал? Ебать ты.

>ну вот я тоже хуй знает откуда у этих даунов 30 гигов говнища (и почти сотка гигов при компайле), когда годот вешает три сотки мб


ООП-дрисня просто. Когда в коде вместо лайтовых эвентов ООП-кал, лапша и прочая хуйня - движок действительно будет весить миллиарды байт.
Говдот тоже дрисня ебаная с ооп-калом, кста, я хз нахуя это говно существует в 2к22. Например моё говнище весит 300~ строк кода и два мегабайта библиотек работы со звуком и i/o. и это я ещё не переписал под ecs некоторые части, только архетипы сделал
326 2368327
>>368214
Алсо, кажется я не прав в том, что модель акторов/агентов - слишком большая и объемная. Нужно меньше концепций, зачем нужна дополнительная косвенность, если она не нужна? Нужна ещё более простая реализация threadsafety-эвентов. Если конечно конечно получится такое найти и сделать, агенты-то гораздо проще в реализации и в понимании, как и весь ерланг.
image.png5,5 Мб, 2844x1600
327 2368328
>>368319

> понимаю


тогда зачем тралишь тупостью?

> Так тред был месяца джва назад


07/02/22 а кажется будто полгода минимум

> до сих пор


сука долбоеб ты даже предыдущий мой пост не прочитал..

> нахуя


к упити ровно такой же вопрос, как и ко всякому унижену и прочему калу

> весит 300~ строк кода и два мегабайта библиотек


если там нет графона и инструментов разработки то даже не заикайся
328 2368340
>>368214
У тебя нихуя не получится, потому что акторы не делят стейт, а в JS есть дохуище способов разделить стейт. И к тому же, это нахуй не нужно впринципе, потому что компоненты условного реакта умеют обновляться асинхронно.

Просто так реализовывать акторы на JS нахуй не нужно, потому что Erlang это и есть акторы, только ахуенно эффективные и крутые и написанные на C. Так что умерь свой NIH и запили что-нибудь реально полезное или интересное

>>368232
cython это не язык, я хуйня для прослойки питона в C. Нигде больше это не используется

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

---

Какой нахуй геймдев, вы в шапку треда посмотрите
329 2368347
>>368340

> Ты говоришь


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

это будет хоть и трата времени, но общественно полезная

и я в душе не ибу о каких вы акторах ведете речь я вообще не читал а сразу отвечал
330 2368353
>>368347
Вон юзай m4, ахуенный препроцессор
331 2368401
>>368340

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


Достаточно просто не делить стейт, а если кто-то начнёт делить - поделить его жопу.

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


Реакт нинужон. К тому же эта хуйня не только на жс будет работать, на ерланге (возможно) и с++ будет. По сути это аритектура и для сервера и для клиента, очень кросиво выходит, прямо хорошо, но нужна обвязочка тоже асинхронная и мультипоточная.

> Просто так реализовывать акторы на JS нахуй не нужно, потому что Erlang это и есть акторы, только ахуенно эффективные и крутые и написанные на C. Так что умерь свой NIH и запили что-нибудь реально полезное или интересное


Не одни акторы будут, в этом прикол-то. Каждый раз возвращаюсь к ерлангу и каждый раз возникает NIH, в основном по причинам производительности. Может попробую ECS на ерланге ебануть, но хз, очень хз. Вот теперь возникла идея перепилить вместо акторов простейшие эвенты и отказаться от ерланга навсегда ну или по крайней мере на большей части серверов, хуй конечно в бизнес-логике и платёжках откажешься

>акторы, только ахуенно эффективные и крутые и написанные на C


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

>>368340

>cython это не язык, я хуйня для прослойки питона в C. Нигде больше это не используется


Ну это как готовый препроцессор на си для дэбилов. И с ништяками. Можно тесты на питоне тут же писать.
332 2368649
>>368401
Я нихуя не понял, ты хочешь акторы на JavaScript или на C. План что ты сначала пишешь на JS, а потом на С это какая-то хуйня, потому что в первом рантайме оно не нужно, а во втором рантайме оно уже есть в нескольких видах.

Если хочешь посмотреть на конпелируемые акторы, то есть Ergo и Ponylang. А если ты выбираешь эрланг и упираешься в CPU, то ты обосрался, потому что эрланг это для IO bound задачек. На языках с ручным управлением памятью ты в многопоточности будешь сосать хуй, так исторически сложилось.
333 2368676
>>368649

>Я нихуя не понял, ты хочешь акторы на JavaScript или на C.


Они уже есть, на жс и на с++. Теперь переписываю под сигналы/евенты/легие акторы (ну я ебанулся немног, да).

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


Суть в том чтобы иметь одинаковую архитектуру на клиенте и на сервере. Чтобы данные вообще не пришлось как-то преобразовыват. Просто отправил бинари, обработал, получил, обработал, отправил, получил~ Одинаковая обработка, одна и та же последовательность байтов в пакетах, сплошные профиты короче.
На JS акторы/евенты/сигналы нужны именно для того чобы была одинаковая архитектура, тут буксанул на месяц уже, нихуя не понятна, все остальные хуйни по мануалом вкурил за пару дней.

> Если хочешь посмотреть на конпелируемые акторы, то есть Ergo и Ponylang.


Первый на го, вроде норм, но платно. Нахуй нужно лол. Второй ооп, хз конечно, нужно посмотреть.

> А если ты выбираешь эрланг и упираешься в CPU, то ты обосрался, потому что эрланг это для IO bound задачек.


Так мне нужон и io и очень быстрый код. В этом проблема.

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


Вот тут вот я нашел вариант когда с многопоточностью не сосу хуй. Енто ecs и data-oriented. Всё в принципе хорошо работает. Но осталось совладать с акторами или их заменой. Очень туго идёт. Очень.
334 2368744
В чём разница между Keyword.fetch!() и Keyword.get()?

Если им дать пустой список, то get() возвращает nil, а fetch!() :error, зачем нужна эта разница?
335 2368746
>>368744
Функции с bang (восклицательным знаком в названии) выбрасывают исключения в случае ошибки, что ведет за собой падение вызывающего процесса. Удобно при запуске приложений читать конфиги через fetch! - если какого-то важного конфига нет, то приложение не стартанет и ты об этом точно узнаешь
336 2368776
>>368744
Ну вот когда ты знаешь что ключ обязательно нужен и без него нельзя дальше работать, то делай fetch!()
Если он не обязательно нужен, или есть дефолтное значение, то get()

>>368676

> Суть в том чтобы иметь одинаковую архитектуру на клиенте и на сервере


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

Я так и не понял, ты хочешь один язык на бэке и фронте? Если так, то вылезай из манямирка, такие технологии живут только на презентациях. Посмотри на cljs и scalajs и тех кто этим пользуется. Подумай ещё раз.

> Первый на го, вроде норм, но платно


Нет, не платно.

> Так мне нужон и io и очень быстрый код. В этом проблема.


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

Посмотри на C++ и то, как там попытались запилить сразу все фичи. В итоге, люди получили ахуенно жирный язык, где фичи из разных сфер приводят к довольно стрёмным багам (например подебажь std::shared_ptr и boost::asio). В итоге, в C++ это вылилось в то, что на языке выбирают какой-то сабсет фичей и работают с ним, что не особо похоже на "CPU и IO эффективный язык"

Кароче, на двух стульях не усидеть, просто повзрослей.

> Енто ecs и data-oriented


> осталось совладать с акторами или их заменой



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

Кароче, давай начнём с простого: какую проблему ты изначально решаешь и где ссылочка на репу с этим проектом?
336 2368776
>>368744
Ну вот когда ты знаешь что ключ обязательно нужен и без него нельзя дальше работать, то делай fetch!()
Если он не обязательно нужен, или есть дефолтное значение, то get()

>>368676

> Суть в том чтобы иметь одинаковую архитектуру на клиенте и на сервере


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

Я так и не понял, ты хочешь один язык на бэке и фронте? Если так, то вылезай из манямирка, такие технологии живут только на презентациях. Посмотри на cljs и scalajs и тех кто этим пользуется. Подумай ещё раз.

> Первый на го, вроде норм, но платно


Нет, не платно.

> Так мне нужон и io и очень быстрый код. В этом проблема.


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

Посмотри на C++ и то, как там попытались запилить сразу все фичи. В итоге, люди получили ахуенно жирный язык, где фичи из разных сфер приводят к довольно стрёмным багам (например подебажь std::shared_ptr и boost::asio). В итоге, в C++ это вылилось в то, что на языке выбирают какой-то сабсет фичей и работают с ним, что не особо похоже на "CPU и IO эффективный язык"

Кароче, на двух стульях не усидеть, просто повзрослей.

> Енто ecs и data-oriented


> осталось совладать с акторами или их заменой



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

Кароче, давай начнём с простого: какую проблему ты изначально решаешь и где ссылочка на репу с этим проектом?
337 2368814
>>368776

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


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

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


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

> Посмотри на cljs и scalajs и тех кто этим пользуется. Подумай ещё раз.


Этож параша оопешная, не понимаю ничего из этой хуиты.

> Нет, не платно.


Хз, там какие-то тарифные планы, закрыл сразу как увидел.

> а потому что это банально невозможно.


Ты что-то явно не то представил себе.

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


> Кароче, давай начнём с простого: какую проблему ты изначально решаешь


Смотри значит, проблема токова. Нужно одинаковое преобразование данных на клиенте и на сервере. Минимальная модификация данных, для уменьшение сетевых издержек. Максимальная производительность для сервера и клиента. Простые взаимодействия между кластерами. Простые взаимодействия между клиентами (способность нормально работать в локальных сетях). Синхронизация клиента и сервера в произвольные промежутки времени.
Проблем-то особо и нет на самом деле, сейчас протестировал джва варианта эвентов на кластере, пока что работает, но блокировки есть. С БД пока никак не взаимодействовал.

>и где ссылочка на репу с этим проектом?


Вероятнее всего нигде не будет, если лицензия не изменится, ибо нда уже работает
337 2368814
>>368776

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


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

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


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

> Посмотри на cljs и scalajs и тех кто этим пользуется. Подумай ещё раз.


Этож параша оопешная, не понимаю ничего из этой хуиты.

> Нет, не платно.


Хз, там какие-то тарифные планы, закрыл сразу как увидел.

> а потому что это банально невозможно.


Ты что-то явно не то представил себе.

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


> Кароче, давай начнём с простого: какую проблему ты изначально решаешь


Смотри значит, проблема токова. Нужно одинаковое преобразование данных на клиенте и на сервере. Минимальная модификация данных, для уменьшение сетевых издержек. Максимальная производительность для сервера и клиента. Простые взаимодействия между кластерами. Простые взаимодействия между клиентами (способность нормально работать в локальных сетях). Синхронизация клиента и сервера в произвольные промежутки времени.
Проблем-то особо и нет на самом деле, сейчас протестировал джва варианта эвентов на кластере, пока что работает, но блокировки есть. С БД пока никак не взаимодействовал.

>и где ссылочка на репу с этим проектом?


Вероятнее всего нигде не будет, если лицензия не изменится, ибо нда уже работает
338 2368833
>>368814

> Нужно одинаковое преобразование данных на клиенте и на сервере


Это не проблема, это ты себе какую-то хуйню придумал. Проблема звучит так "у моего веб приложения высокий латенси". То что ты придумал, оторвано от реальности и вообще нихуя не похоже не правду. Ты сам какого-то хуя решил что у веб приложений узкое место это энкодинг и декодинг данных. Ну поздравляю тебя, во-первых, это нихуя не узкое место и кушает очень мало вычислительной мощности, а во-вторых, есть дохуище форматов для быстрого кодирования, а в-третьих, в браузере может крутиться только Javascript и WASM. В случае с JS, если ты напишешь Elixir на JS, ты получишь просто ещё более жирный рантайм и об оптимизациях энкодинга просто забудь. В случае с WASM, ты получишь эликсир в браузере, который кастрирован и нихуя не работает с UI, да и работает вообще на полутора платформах

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

А если честно, мне тебя тупо жаль, дорогой, ты уже безвозвратно потерян в шизе какой-то
339 2368850
>>368833
Ебать ты нафантазировал, лол. У меня данные под 280 герц могут обновляться, например, ты правда думаешь что в 280 герц любые манипуляции с данными нихуя не занимают время? и это бизнес-логика которую минимум в трёх приложениях не получится кастрировать
В реальности существуют не только вот эти вот твои сайты и прочая веб-хуйня, которую на эликсире ты пишешь, тут всё очень сложно.
340 2368910
>>368746
>>368776
Спасибо!
341 2368976
>>368850
Какие блять герц? Ты же только что хотел Elixir написать на Javascript. Ты реально уже какую-то хуйню несёшь просто. У нас тут тред про эликсир, ты ещё ни разу нихуя по топику не написал, а сейчас ещё про какие-то 280 герц вспомнил. Ты реально больной чтоли?

280 герц это 280 раз в секунду, даже убитый микропроцессор из 2000 года может в 10^7 операций в секунду. Ты что там такое делаешь, ебанутый, что у тебя 280 раз в секунду посчитать не удаётся, и какого хуя ты делаешь это на эликсире? И причём тут javascript, долбоёб? И причём тут оффлайн? И причём тут акторы? Ты же бессвязную хуйню просто срёшь, долбоёб
342 2369017
>>368976
Ладно, открою вебмакаке иной мир, так и быть, не рвись ты только. Смотри какая задача красивая, у тебя никогда такой не будет.

С клиентов приходят данные с частотой 70-350 герц. Может потом больше будет, задача для 800 герц уже будет не моя.
Эти данные нужно симулировать и обрабатывать: на устройстве клиента; на местном локальном сервере; в кластере с интернетов.
Симуляция на оче хуевом клиенте выполняется один такт за 700-900мс, иногда вообще до нескольких секунд, такие клиенты проводят симуляции в отложенным режиме, если нет связи с интернетами. Чем круче клиент - тем больше симуляций на нём. Симуляция на локальном сервере должны выполняются на частоте 70-90 герц минимум. В облаке или каком-нибудь особо мощном интернет-сервере до 300 герц, в кластере должно на максималке работать. Так же можно выставлять точность симуляций, чтобы получать приблизительные результаты даже на тонких клиентах достаточно быстро.
Всё это должно работать максимально быстро, иметь связь между серверами и клиентами, так же локальные сети между клиентами, так же должно минимально проебывать данные, часть данных визуализировать, каждое устройств и каждый кластер иметь acid по результатам симуляций, конечная согласованность для данных, все эти мутные фишки по бд.
А ерлан я воткнул на кластер из трёх серверов, оно обрабатывает прост хуйню вроде оплаты.

Можешь начинать завидовать.
343 2369045
>>369017
Малаца, а хули ты в этом треде забыл-то?
Во-первых, что такое эта симуляция? Просто абстрактный код/алгоритм или какой-то бинарь, который нужно запустить или что вообще?
Во-вторых, почему у вас "симуляции" исполняются на клиентах? Майнинг на телефонах юзеров пиратских кинотеатров себя не оправдал уже давным давно.
В-третьих, причём тут вообще связность клиентов между друг другом и всё такое?
А самое главное, ты что в этом треде-то забыл, чудовище?
344 2369060
>>369045

>Малаца, а хули ты в этом треде забыл-то?


Единственный тред в котором многопоточность, многопроцессорность и кластеры работают нормально, очевидно же.

>Просто абстрактный код/алгоритм или какой-то бинарь, который нужно запустить или что вообще?


Алгоритм с математикой, который можно компенлировать и переписывать под любой клиент.

>Во-вторых, почему у вас "симуляции" исполняются на клиентах? Майнинг на телефонах юзеров пиратских кинотеатров себя не оправдал уже давным давно.


Потому что клиентам нужно знать здесь и сейчас результаты. Даже с низкой точностью.

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


Чтобы сделать кластер из клиентов.

>А самое главное, ты что в этом треде-то забыл, чудовище?


Свободное общение, где хочу там и сру, очевидно же. Лучше бы не рвался, а подсказал как сделать как в эликсире, только быстро.
345 2369063
>>369060

> Чтобы сделать кластер из клиентов.


Связанные машины это по определению кластер. Я спросил, нахуя кластер вообще нужен? Нахуя всем симулировать вместе?
346 2369068
>>369060
Если что, в твоей задаче эликсир нахуй не нужен. Elixir/Erlang это типа отдельная экосистема, и это нельзя сделать на других платформах.

Например, если тебе нужно что-то считать на клиентах и как-то это координировать, всё будет зависеть от того какая конкретно координация нужна. Типа, что из CAP и насколько вообще нужно уметь считать что-то отдельно. Судя по тому что ты сказал, тут нужен какой-то Gossip с Last Write Wins (если нужно high avability) или алгоритмы типа Cademilia или Chord, чтобы уметь в мэш кластере от любой ноды находить любую ноду. Для этого акторы не нужны
347 2369071
>>369060
И если у тебя вычисления занимают 700-900мс, то энкодинг данных в JSON/Msgpack или даже protobuf будет занимать нихуя. Даже на самых слабых клиентах браузер декодирует JSON с помощью SimdJson или типа того, поэтому это будет тупо экономия на спичках. Лучше подумай как сделать эту "симуляцию" быстрее и как сделать поиск пути в кластере более эффективным
348 2369119
>>369063
Потому что одна машина не может симулировать, очевидно же. Если нужны срочные оффлайн вычисления - машины в локальной сети должны просто взять и вычислить с максимально возможной мощностью часть данных.

>>369068

> Если что, в твоей задаче эликсир нахуй не нужен. Elixir/Erlang это типа отдельная экосистема, и это нельзя сделать на других платформах.


Прототипы на эликсире работают и на плюсах.

> Gossip с Last Write Wins (если нужно high avability)


Сейчас согласованность пока что особо не нужна. Сейчас все вычисления работают на ecs, вернее через сверхнаивную реализацию ecs, и распределяются тоже среди таких же систем на других машинах. Каждый клиент в кластере решает либо часть массива данных, либо один из массивов данных, в зависимости от мощности. Итоги симуляции отправляются к клиенту который инициировал симуляцию, именно на этом моменте будет различные CRDT, сейчас просто конечная согласованность. Хз как работать это должно на самом деле, подумаю ещё.
Но спасибо, записал варианты.

> или алгоритмы типа Cademilia или Chord


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

>Для этого акторы не нужны


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

>>369071
Не-не, это когда тухлые клиенты сами пытаются в вычилсения.
Обычно они просто должны слать на интернет-кластер/локальные-машины. И в такой ситуации данные стрим-потоком в дохуя герц идут.
349 2369121
>>369017

>С клиентов приходят данные с частотой 70-350 герц



Смеюсь. Про термин RPS слышал когд-нибудь? Очень шизово слышать ГЕРЦ в таком контексте
350 2369128
>>369119
Что за ECS? Это ты про Amazon ECS или вообще о чём?
351 2369130
>>369121
Ты просто ньюфажина, тикрейт, например, тоже измеряете в герцах.

>>369128
Это https://en.wikipedia.org/wiki/Entity_component_system
Изначально всё это говно было игрой, надеюсь позже тоже будет игрой, когда нда спадёт осенью выкачу в паблик атвичаю
Когда своими маняфантазиями делился с челиком он сказал что есть заказ как раз именно под эту архитектуру, прямо один в один.
352 2369133
>>369130
Понял, тот самый гейдевелопмент в кластере и на JavaScript на клиентах, где один шаг вычисляется за 700мс. Я так и думал, это же очевидно
353 2369142
>>369133
Не ну раньше там просто было ecs на сервере и на клиенте, ничего серьезного, эликсир и плюсы были просто как отдельные гей-сервера. А потом оказалось что это может сработать и для некоторых показателей в лабахназаводах. Гей-девелопент полезен, я же говорил, говорил!
В целом ничего не изменилось, просто немного дополнительных условий, ящитаю хуйня, выебут не сильно если ошибусь 8 лет тюрьмы наверн по минималке
354 2372064
Ну че, двощ, кто-нибудь тут вкатился после этого треда? Пилите прохладные
355 2374544
Чёт Programming Elixir 1.6 устарела судя по тому что они используют Mix.Config, который deprecated. Где или в какой из книг почитать свежую инфу про настройку приложений? На elixirschool.com ничего толком не написано.
356 2374641
>>374544

>почитать свежую инфу про настройку приложений



Чем тебе не хватает официальной документации? https://hexdocs.pm/elixir/1.12/Config.html
357 2375079
>>368776

>Посмотри на cljs и scalajs и тех кто этим пользуется


>>368814

>Этож параша оопешная, не понимаю ничего из этой хуиты.


Так, вот щас обидно было.
мимо кложурист-функциональщик
358 2375922
Ну что вы там, потомки, dependency injection придумали как делать, не передавая имя модуля в каждую функцию? Даже моки на вашем недоязыке сделать нормально нельзя.
Хосе что-там пизданул про dependecy injection через глобальный конфиг, как же я проиграл, вы че ебанутые?
359 2376664
>>375922
А ты Mox и Proxmox так и не осилил?
360 2376668
>>376664
quickfix: Promox
361 2381350
>>376664
Сейчас бы мокать глобальный контекст и проебывать асинхронность тестов.
362 2383131
>>381350
Чево? Глобальный контекст? Что ты несёшь?

Показываю на пальцах, запоминай.
1. Мокать нужно взаимодействия с внешними системами. Если ты мокаешь что-то внутреннее, то ты занимаешься хуйнёй.
2. Взаимодействия практически всегда stateful. Поэтому, ты имеешь какие-то процессы, которые со стейтом работают.
3. Ты создаёшь defprotocol и две имплементации к нему: тестовую и продовую. Например, если ты пишешь клиент к двочу, то в продовой у тебя структура типа %Dvach.HTTP{url: url, conn: conn, cookie: cookie}, а тестовая декларируется во время теста и выглядит просто как %Dvach.Test{}. Тестовую структуру можно делать ручками либо через Promox.
Сам протокол работает с этими структурами и выполняет какие-то действия с ними. Банальный протокол для двача будет иметь функции connect(), get_thread(), post_in_thread()
4. Генсервер из пункта 2 при инициализации получает аргументом (или как-то ещё) структуру, и работает с ней через протокол

Конец
363 2383133
>>381350
Чево? Глобальный контекст? Что ты несёшь?

Показываю на пальцах, запоминай.
1. Мокать нужно взаимодействия с внешними системами. Если ты мокаешь что-то внутреннее, то ты занимаешься хуйнёй.
2. Взаимодействия практически всегда stateful. Поэтому, ты имеешь какие-то процессы, которые со стейтом работают.
3. Ты создаёшь defprotocol и две имплементации к нему: тестовую и продовую. Например, если ты пишешь клиент к двочу, то в продовой у тебя структура типа %Dvach.HTTP{url: url, conn: conn, cookie: cookie}, а тестовая декларируется во время теста и выглядит просто как %Dvach.Test{}. Тестовую структуру можно делать ручками либо через Promox.
Сам протокол работает с этими структурами и выполняет какие-то действия с ними. Банальный протокол для двача будет иметь функции connect(), get_thread(), post_in_thread()
4. Генсервер из пункта 2 при инициализации получает аргументом (или как-то ещё) структуру, и работает с ней через протокол

Конец
364 2388925
>>383131
Ты не понял, проблема не в том как абстрагировать зависимость, а том как бы ее удобнее "передать" в модуль. И не всегда это можно сделать через стейт генсервера, может быть у тебя модуль в котором функция должна хитровыебанно получить данные из апи, никакого стейта только бизнес-логика, однако для теста нужно мокать обращение по http.
365 2389124
>>375922
Да при чем тут глобальный конфиг, ноль информации в твоих каментах.
Такое ощущение что ты перед кем-то выйобуешься.
Передо мной не нужно, для меня ты никто.

мимо-хосе
366 2389838
>>388925
Ну так дёрнуть что-то по API это типа функция

get_data(url, cookie, ...)

Гду url, cookie и вся хуйня берутся из конфига или другого хранилища для стейта (Я же надеюсь ты это не хардкодишь). Ты эту хуйню в итоге преврати в

defprotocol DataGetter do
def get(getter)
end

И сделай

defmodule HTTPGetter do
defstruct ~w[url cookie govno]a
end

А для тестов сделай

defmodule TestGetter do
defstruct []
defimpl DataGetter do
def get(_), do: :this_is_data
end
end

И вот у тебя красиво всё получилось
366 2389838
>>388925
Ну так дёрнуть что-то по API это типа функция

get_data(url, cookie, ...)

Гду url, cookie и вся хуйня берутся из конфига или другого хранилища для стейта (Я же надеюсь ты это не хардкодишь). Ты эту хуйню в итоге преврати в

defprotocol DataGetter do
def get(getter)
end

И сделай

defmodule HTTPGetter do
defstruct ~w[url cookie govno]a
end

А для тестов сделай

defmodule TestGetter do
defstruct []
defimpl DataGetter do
def get(_), do: :this_is_data
end
end

И вот у тебя красиво всё получилось
367 2390554
>>389838
Ну и как ты этот HTTPGetter передавать собрался?
368 2392529
>>390554
Так же как ты бы передавал URL в пулл: через application env, просто через аргументы при запуске, при чтении конфигурации откуда-то там и т.д.
15647733637470.gif1,7 Мб, 400x300
369 2395245
>>082722 (OP)
Какие распределнные системы, маня? У него же, как и у Erlang все очень хуево с прозводительностью на цпу задачах. Т.е. там норм только паралельный и маиссвный IO. Любые числодробильные операции, манипуляция со структурами данных - это полный пиздец. Собственно BEAM'ские языки это одни из самых медленных скриптух. Оно в телекоме живет только засчет того, что там довольно тупые программы по пересылке паектов сетевых. Как запахнет более комплексными задачами - пиши пропало.
Собственно просто глянись вокруг, всё на JVM или на Go в распределнном мире. От куберов и номадов до всяких Apache Flink, Spark и Kafka.
370 2395466
>>395245

> Какие распределнные системы, маня? У него же, как и у Erlang все очень хуево с прозводительностью на цпу задачах. Т.е. там норм только паралельный и маиссвный IO



В каком месте распределённые системы это CPU bound? Ты когда последний раз спал, дорогой?

> Собственно BEAM'ские языки это одни из самых медленных скриптух


Собственно BEAM-овские языки в среднем работают быстрее и эффективнее по памяти многих других динтипизированных языков. Особенно начиная с OTP24

> Собственно просто глянись вокруг, всё на JVM или на Go в распределнном мире. От куберов и номадов до всяких Apache Flink, Spark и Kafka.


Собственно просто глянись вокруг, от phoenix, couchdb, riak до всяких emqx, membrane и rabbitmq
371 2395861
>>395466

> В каком месте распределённые системы это CPU bound? Ты когда последний раз спал, дорогой?



Они всегда ими были. Любая БД способная к кластеризации это распределенная система. Там хуева туча CPU bound: индексы, поиск, парсинг запросов итд. Не говоря уже об огромном количестве задач где во главе угла стоит распределенный процессинг: flink, spark, hazelcast jet итд.

>Собственно BEAM-овские языки в среднем работают быстрее и эффективнее по памяти многих других динтипизированных языков. Особенно начиная с OTP24


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

>Собственно просто глянись вокруг, от phoenix, couchdb, riak до всяких emqx, membrane и rabbitmq


Собственно и всё. Couchdb и riak простейшая kv-хуйня, на фоне cassandra, prometheus, elastic и десятков других решений. Rabbitmq и emqx как раз случай про IO в вакуме, там почти нет CPU bound. Если бы это был более сложный мессенджинг типа Apache Pulsar, то BEAM бы не подошел.
372 2396485
>>395861

> БД это CPU bound



Ясно, дальше просто не стал читать
Genevamechanism6spokeanimation.gif223 Кб, 320x240
373 2396492
>>395861
Erlang/Elixir разработчик с 6 годами стажа итт.

Очевидно, что в этих ваших CPU bound задачах OTP сосет за обе щеки по сравнению с той же Java, но никто и не позиционировал никогда erlang как универсальный ЯП, напротив, это изначально супер узкоспециализированная хуйня для перекладывания сообщений, с чем она охуеть как хорошо справляется. Хуй где еще есть такая простая работа с concurrency из коробки (напишешь пару простых GenServer'ов и будешь плеваться кровью, если тебе придется в том же Ruby что-то похожее организовать, будешь ебаться с сайдкиком и редисом), не говоря уже о том, что можно одним конфигом на ~10 строк кластер захуярить.

Ну и веб пердолить на всем этом очень хорошо, phoenix channels и live view это пиздец как круто, уверен, что подобное можно и на других технологиях сделать, но это будет геммор.
374 2396493
>>396492
Ну и смотря какой CPU bound конечно. С тем же Flow можно охуенно просто распараллелить вычисления так, чтобы все ядра были задействованны. Это делается буквально так же как обычная работа со списками, только в другой обертке.
375 2396494
>>396493
Flow, конечно, удобная штука и довольно элегантная штука, но
1. Всё равно не подходит для CPU bound, потому что у BEAM языков довольно жирный рантайм. И тут ускорение на N ядер не поможет, потому что у тебя любые операции тупо в 10-100 раз медленнее чем в компилируемых в натив языках.

2. Ирл практически бесполезная, потому что практически никогда такой тупенький пайплайн никого не устраивает. Я предпочитваю всё делать ручками через GenStage, ну или хотя бы Broadway. Тот же Flow я только в каких-то скриптах типа "залей большой CSV в базу", которые вызываются ручками раз в неделю, использовал.

мимо ОП
376 2396718
>>396492

>Хуй где еще есть такая простая работа с concurrency из коробки


Го же, охуенно простая работа с конкаренси, проще некуда какбе.
377 2396811
>>396492
Зачем брать Erlang/Elixir и ковыряться в несвежих библиотеках, которые пишутся рандомами на гитхабе, если моя задача, это обработать HTTP запрос и положить данные в какую-нибудь Kafka или Clickhouse?
378 2396920
>>396811
Ну для твоих примтивных задач, смысла никаокго нет. Обмазывайся каким-нибудь пистоном убогим. Эликсир это не для мещан типа тебя.
379 2396935
>>396920
Куда ты там сообщения передавать собрался, имбецил? Ты понимаешь, что нужно вэлью нести, а не монадки по углам дрочить? Сказано же тебе, что нужно обработать запрос и записать в очередь или базу. У тебя тут исключительно IO-bound задача.
380 2396985
>>396935
Макака, тихо. Тебе долбоебу только лопатой джейсоны перекидывать можно. Message-passing это вообще один из основных подходам в распределенных системах. Применений масса различные IoT, построение event mesh архитектур, маршрутизация данных в развесистых observability пайплайнах итд. лучше съеби не позорься.
381 2397012
>>396985
https://github.com/kvakvs

Это ты? На завод устроился?)
382 2397260
>>396811

> моя задача, это обработать HTTP запрос и положить данные в какую-нибудь Kafka или Clickhouse


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

И вот проблема непонимания эликсира как языка где-то тут и лежит: дефолтная макака не понимает, что в эликсире мыслят на порядок шире.

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

И это не пиздёж двачера. Тот же whatsapp и написали всего лишь 9 человек. А запилить распределённый скрапер уровня гугловских роботов, который умеет в пайплайнинг, распределение проксей и всю хуйню можно меньше чем за 5 дней одному, параллельно почитвая доку
383 2397464
>>397260

>в эликсире мыслят на порядок шире


Ну да, например как найти работу и как объяснить престарелым родителям, что ты возвращаешься в свою комнату и тебе нужен борщ
384 2397653
>>082722 (OP)
Elixir делает Erlang полностью ненужным? Или таки есть нюансы и кое-где лучше все еще использовать эрланг?
385 2397668
>>397653
Удваиваю вопрос. И вообще нужно ли учить Erlang перед вкатыванием в Elixir?
386 2397704
>>397653
Не вижу ни одной причины начинать писать новый проект на Erlang, а не на Elixir. Разве что у вас есть команда из овер 9000 эрлангистов, которые на Elixir не писали никогда, но и то они за два дня разберутся.

>>397668

>И вообще нужно ли учить Erlang перед вкатыванием в Elixir?


Нужно понять принципы из OTP, но понять их можно и через изучение Elixir. Вообще, выучив один из этих языков, ты автоматически знаешь уже и второй, останется только денек на синтаксис потратить.
387 2397745
>>397704
Спасибо. Смотрю сейчас на эликсир, выглядит очень няшно. Ешя ряд вопросов, если не против:

1. Можешь еще подсказать по распределнным структурам данных? Что в ходу в BEAM экосистеме? Например, распределнная между несколькими нодами мапа или сет. Сам я подобные вещи на JVM раньше делал, у нас это решается либами, либо всякими монструозными IMDG типа Ignite и Hazelcast, которые можно встравать сразу в приложение, и оно будет само кластеризоваться, выполнять всю херню в фоне типа выбора матеров, дискавери итд.

2. Например, как писали аноны выше, я столкнулся с проблемой недостаточного перфоманса на какой-то числодробильней хуйне. Можно ли делать как-то, так называемые, нативные модули? По аналогии с сишными в пистонах и рубях.
388 2397814
>>397745

>Можно ли делать как-то, так называемые, нативные модули? По аналогии с сишными в пистонах и рубях.



https://www.erlang.org/doc/tutorial/nif.html
389 2397892
>>397464
Возможно ты прав, но тогда я не понимаю как язык с самыми высокими зп может быть для борщехлёбов

>>397653
Да, после Elixir знать Erlang нахуй не нужно. Ну, может для общего развития и поддержки легаси узнать его, конечно, стоит, но сейчас сам язык это просто тонны духоты, которую давно решили в Elixir. Возможно сейчас набегут деды защищать свой любимый Erlang, но это не больше чем просто фанатизм. Elixir это тупо better Erlang. Примерно как Kotlin и Java

>>397745
1. Структур дохуя, но у них разные CAP-семантики, перформансы и т.д. А так, на эликсире есть всё: от простейших CRDT или CA key-value до распределённых AP/CA баз данных с автоматическим рекавери. Смотри на свой юзкейс.

Все дискавери и общения между нодами в Elixir стандартизированы через Erlang Distribution. А сервис-дискавери можно делать через няшный libcluster

2. Да, можно делать нативные модули. Выборов как это сделать дохуя. Самый удобный -- nif на расте. На расте, потому что либа для нифов очень удобная, да и у BEAM высокие требования к нативным модулям: никаких ошибок, прерывания спустя 1мс работы и т.д.

Если не хочется ебаться с нифами, всегда можно написать порт (aka Port). Это тупо отдельный системный тред, с которым ты общаешься через stdio
390 2397913
>>397892

>Примерно как Kotlin и Java



Воу, палехче. Коклен - это хайповая довольно неконсистетная хуйня и просто куча сахара. Которая взлетела по большей части только на мобилках из-за того, что у них даже нормальной жвм нет и какие-то каловые массы вместо человеческих рантаймов.
391 2408701
Анон, скинь какой-нибудь классный опенсорс на эликсире, чтобы от чтения скилл эликсира качался
392 2408941
>>408701
Чисто по Elixir
https://github.com/dashbitco/broadway
https://github.com/dashbitco/flow
https://github.com/nerves-project/nerves

Чуть попроще
https://github.com/sorentwo/oban

А так вот это очень крутая штука https://github.com/lasp-lang/partisan как и сам lasp. В репозитории много интересных вещей из области распределенных систем.
393 2408957
>>408941
>>408701

еще вспомнил:
https://vaxine.io/ который на базе так же интересного https://www.antidotedb.eu/
394 2410963
>>408957
О, наконец-то нормальный аналог AP mnesia на эликсире, спасибо, анон
395 2413207
Юзал кто-нибудь N2O?
396 2413585
>>413207
Не нужен когда есть Phoenix. А для простых HTTP API и обычный Plug сойдет.
397 2413737
>>413585

>Не нужен когда есть Phoenix.


Как будто феникс круче. Обычное мвц-говно размером 100500+ строк кода.
398 2413928
>>413737
Круче, не круче. Но для веба, читай "мвц-говна" отлично подходит и удобный, хоть и относительно (других проектов на эликсире, а не какого-нибудь монстра вроде RoR/Django) тяжелый. Хотя сам я стараюсь его не тащить и обходиться просто плагом, когда нужно обычную API сделать.
399 2414361
Какие есть живые чатики в слаке/телеге/дискорде етц по эликсиру/фениксу, чтобы можно было задавать вопросы(естественно после собственных попыток и гугления)? Можно(нужно) на англюсике. Одному просто тяжко самому с собой социализироваться.
400 2414381
>>414361
В телеге @proelixir
401 2414683
>>414361
на сайте эликсира ссылки на слак/irc/дискорд. Все живые, особенно в слаке
402 2420204
>>082722 (OP)
Не могу установить пакеты esl-erlang и elixir с репозитория https://packages.erlang-solutions.com, получаю Failed to fetch http://binaries.erlang-solutions.com/ubuntu/dists/focal/InRelease Connection failed хотя в браузере репозиторий открывается. У кого-то еще была такая проблема?
403 2422769
>>420204
Перепройди гайд по подключению репки.
404 2422771
>>420204
Перепройди гайд по подключению репки.
405 2422964
>>422769
Репа заблокирована провайдером.
406 2455415
Бумп, пишите че там по вакансиям. Есть годнота?
407 2455459
>>455415
На годноте сами работаем, ты уж извини.
Но вообще периодически появляются.
408 2455710
Уже хотел начать изучать вашу годноту, но тут увидел что у эликсира динамическая типизация, как в петухоне. И сразу отвращение такое появилось. Динамическая типизация в 2к22, серьёзно? Зачем?
409 2455746
>>455710
Для bottom-up проектирования, не всё же вотерфоллы дрочить со статикодриснёй.
410 2455755
>>455746
Так тогда питон лучше. Особенно когда речь идет о поиске персонала.
411 2455824
>>455710

>у эликсира динамическая типизация, как в петухоне


что ты блядь несёшь
динамическая типизация, т.е. со сменой типов у переменных, может быть только там где есть переменные. в эликсире переменных нет, значит и динамической типизации нет
412 2455861
>>455824
Ну предположим нам нужно описать функцию, которая принимает в себя некую структуру, и возвращает некое число. Как это сделать? Или эликсир будет в рантайме проверять что мы передали структуру, а не строку или булеан? Если это так, то как на нём пишут высоконагруженные системы, когда всё может упасть из-за того что в функцию передали не тот тип?
413 2455873
>>455861
Тут подход как в ноде, ебошишь еще больше инстансов, просто в отличии от ноды, инфраструктура для параллельных систем встроена в язык.
мимо
image.png98 Кб, 1600x900
414 2455942
>>455873
А я то думал что нашёл язык мечты. Жаль.
image.png5 Кб, 548x192
415 2455946
>>455861

>Если это так, то как на нём пишут


В эликсире тип описывается через кортеж
например
{:leaf, 1} - конечный элемент
или
{:tree, [{:leaf, 3}, {:leaf, 4}]} - структура

ты пишешь функцию:

def sum({:leaf, value}), do: value
def sum({:tree, list}), do: sum(list)
def sum([head]), do: sum(head)
def sum([head, tail]), do: sum(head) + sum(tail)
def sum([]), do: 0

потом херачишь
data = {:tree, [{:leaf, 3}, {:leaf, 4}]}
sum(data)
7

Работа со структурами происходит через паттерн-матчинг. В смысле тебе не придётся делать if is_array(data) и прочее говно. Там всё в тыщу раз красивее
image.png4 Кб, 564x164
416 2455948
>>455946
даже так
417 2455950
>>455861

>Работа со структурами происходит через паттерн-матчинг.


Это буквально то, что он описывал

>Или эликсир будет в рантайме проверять что мы передали структуру, а не строку или булеан?

418 2455952
>>455950
для паттерн-матчинга применяется какая-то оптимизация. он быстрый, на этот счёт можно не ебать себе голову
419 2455978
>>455952
Суть не в быстроте, а то что в функцию может прилететь что-то, что не было описано паттерном, и тогда всё приложение наебнётся. В статически-типизированных языках такая ошибка отлетела бы на этапе компиляции.
420 2456013
>>455978

>что не было описано паттерном, и тогда всё приложение наебнётся


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

>В Erlang есть концепция — let it crash. Смысл ее заключается в том, что программист не должен писать код пытаясь избежать все возможные проблемные кейсы — поскольку невозможно предусмотреть все. Erlang — позволяет упасть — но так чтобы падение было контролируемым — что делать после падения — перевести единицу кода к стабильному состоянию. Это достигается с помощью модели акторов.

421 2456024
>>455978
код падает, идёшь и чинишь, перезапускаешь

для упрощения жизни есть спеки у функций и статический анализатор dialyzer

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

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



А как рефакторить то что ты напрототипизировал? Я всю жизнь программировал на языках со строгой типизацией, я просто не понимаю как можно жить без типов.
423 2456075
>>455755
Удачи хайлоад на петухоне писать.
424 2456076
>>455824

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


В Clojure, получается, тоже динамической типизации нет? Переменных-то нема, только let-биндинги.
425 2456077
>>456075
define "хайлоад"
426 2456080
>>456055

>Я всю жизнь программировал на языках со строгой типизацией, я просто не понимаю как можно жить без типов.


>без типов


Очередной дурачок, путающий оси типизации статическая/динамическая и сильная/слабая.
427 2456081
428 2456083
>>456080
Дурачок, давай перефразирую для тебя. Я не понимаю как жить без проверки типов компилятором, а надеяться на рантайм
429 2456087
>>456083
Gradual typing во все поля.
430 2456090
>>456081

>c10k


Так это про переиспользование дескрипторов, в том же пистоне давно решается, да и скорее всего на вебморде nginx будет, зачем голому приложению в сетку смотреть?
431 2456106
>>456076

>Переменных-то нема, только let-биндинги.


Почти как и в эликсире. В эликсире и кложе иммутабельность из коробки. А actor-model - в эликсире из коробки, а в кложе прикручивается отдельно.

Блин, котаны, вопрос про динамическую/статическую типизацию - на самом деле про динамическую диспетчеризацию. Это один из китов ООП (правильного, того, что actor-model).

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

“OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things.”
~ Alan Kay


https://medium.com/javascript-scene/the-forgotten-history-of-oop-88d71b9b2d9f

Так вот. Вы выбираете одно из двух - либо настоящий messaging, либо строгую типизацию известную на этапе compile-time. В эрланге первое.
432 2456118
>>456106

>Вы выбираете одно из двух - либо настоящий messaging, либо строгую типизацию известную на этапе compile-time.


Либо выбираешь Common Lisp с его CLOS, с одной стороны, и декларациями типов, с другой, и сидишь одной жопой сразу на двух стульях.
433 2456145
>>456118

>сразу на двух стульях


на каких?
434 2456387
>>455861

>когда всё может упасть из-за того что в функцию передали не тот тип



Ох уж эти бедные люди, у которых вечно всё падает без строгой типизации. Почти все эти ваши интернеты на языках без строгой типизации крутятся-вертятся, а у вас всё падает бесконечно вечно.
435 2456631
>>456145
Ты тупой?

> Вы выбираете одно из двух - либо настоящий messaging, либо строгую типизацию известную на этапе compile-time

436 2456651
>>456631

>Ты тупой?


Нет, просто пытаюсь понять что ты накарябал.

А каким образом CLOS позволяет сочетать и true-мессаджинг и декларацию типов? И эта декларация типов позволяет ведь делать статический анализ? А то речь именно про это.
437 2456680
>>456651
CLOS - это и есть мессаджинг. Декларации типов - это ортогональная фича, она позволяет компилятору оптимизировать свой выхлоп, вставляя специфичные операции вместо вызова generic-функций. Окей, я покривил душой, декларации типов не делают CLOS быстрее, если только не использовать очень специфичные и хрупкие костыли вроде inlined-generic-function, но, по крайней мере, код, не использующий CLOS, декларации типов определённо ускоряют.

> И эта декларация типов позволяет ведь делать статический анализ?


Что ты подразумеваешь под "статическим анализом"?
438 2456697
>>456680

>Что ты подразумеваешь под "статическим анализом"?


Анализ кода без его запуска.
Дроч на статическую типизацию - он про это, что у тебя есть инструмент проверки корректности программы хотя бы по типам. Ну типа строку вместа числа не передашь как в петухоне.
Для того чтобы такой анализ был возможен - нужно чтобы тип значения в принципе был вычислим статически. Существует класс языков с сильной типизацией, сильная или типизация по Хинди-Милнеру означает как раз возможность вычисления типа в любой точке программы. За счёт этого можно гарантировать формальную корректность. Такие языки - это OCaml, Rust, Haskell, Scala, ну и ещё множество.
С другой стороны есть actor-model язык с ООП по Алану Кею, где есть messaging. Суть его в том, что любой актор может послать другому актору вообще любое сообщение в рантайме. Понятно что это не вычисляется статическим анализом. Есть иснтрументы для сужения множества допустимых значений в конкретных точках программы, например на выходе из функции, но в целом парадигма messaging противоречит статическому анализу.
2022-09-06-150922827x781scrot.png29 Кб, 827x781
439 2456876
>>456697

> Ну типа строку вместа числа не передашь как в петухоне.


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

> Анализ


По-прежнему не понимаю, что ты вкладываешь в это понятие. Кто анализирует-то? Человек? Компилятор? Рантайм?

> Существует класс языков с сильной типизацией


В CL сильная типизация, но не Хиндли-Милнер.

Ещё раз повторюсь, CL успешно смешивает две упомянутые тобой концепции за счёт их ортогональности. Ну и за счёт лингвистической абстракции можно изъебнуться и сделать messaging, но работающий на этапе компиляции, типа как в C++ - см. inlined-generic-function и fast-generic-functions.
440 2456911
>>456876

>По-прежнему не понимаю, что ты вкладываешь в это понятие. Кто анализирует-то? Человек? Компилятор? Рантайм?



https://www.erlang.org/doc/man/dialyzer.html

Настраиваешь анальную проверку диалайзером в CI/CD и он тебе анализирует код и не позволяет вмержить/задеплоить код, не прошедший проверки

Мимокрокодил
441 2457006
>>456911
А, понятно, отдельные костыли-костылики. Неясно, почему такое не встроить в компилятор.
442 2457889
>>456697

> сильная или типизация по Хинди-Милнеру


Ебать

> означает как раз возможность вычисления типа в любой точке программы


Ты

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


Несёшь

> парадигма messaging противоречит статическому анализу


Хуйню

Во-первых, сильная и слабая типизация не означают являются ли они HM или нет, почитай википедию. Во-вторых, в Rust не HM. В-третьих, HM не означает что в любой точке можно вывести тип. Его вообще далеко не всегда можно вывести из-за проблемы остановки.
В-четвертых, акторная модель и посылка сообщений никак не противоречит статической типизации. Посмотри на Gleam или Scala Akka. В-пятых, статический анализ это просто анализ кода, это не только проверка типов

>>456083
В Elixir есть проверка типов в компайле. Просто она не такая развитая как у каких-нибудь Rust или Haskell, но зато более развитая чем у C. Во-первых, есть встроенный тайпчекер. Во-вторых, есть Dialyzer или Gradualizer (второй скорее экспериментальный). Но сам язык всё равно динамически типизированный. Если хочешь прям именно статическую типизацию, которая будет ебать мозг, когда тайпчекер не сможет вывести тип, иди в Gleam.

>>455861

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


Да, виртуалка будет проверять. Но это не потому что разрабы обосрались, а потому что Erlang (и, как следствие, Elixir) умеют иметь общий неймспейс в кластере. То есть, я могу собрать несколько инстансов программы, разделить их сетью, и уметь из одного инстанса работать с данными на другом. И поэтому тут может быть рассинхронизация версий софта, из-за чего могут быть разные данные. Поэтому тут обязательно нужна динтипизация с тэгированием данных, иначе инстансы с разными версиями программы не смогут общаться.

Ну, и ещё динтипизация нужна для Hot-Reloading, чтобы можно было обновлять код не останавливая систему.

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


Не слушай чуваков выше, которые говорят, что динтипизация ускоряет прототипирование и всё такое. Ни-ху-я. Весь Production grade код на эликсире обычно написан с аннотациями типов и всегда проверяется тайпчекером на наличие ошибок. Как я уже написал выше, в функцию может спокойной прилететь не тот тип не из-за ошибки разработчика, а из-за какой-нибудь проблемы в распределённой среде. Всё-такие Elixir (как и Erlang) это языки для распределённых систем
442 2457889
>>456697

> сильная или типизация по Хинди-Милнеру


Ебать

> означает как раз возможность вычисления типа в любой точке программы


Ты

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


Несёшь

> парадигма messaging противоречит статическому анализу


Хуйню

Во-первых, сильная и слабая типизация не означают являются ли они HM или нет, почитай википедию. Во-вторых, в Rust не HM. В-третьих, HM не означает что в любой точке можно вывести тип. Его вообще далеко не всегда можно вывести из-за проблемы остановки.
В-четвертых, акторная модель и посылка сообщений никак не противоречит статической типизации. Посмотри на Gleam или Scala Akka. В-пятых, статический анализ это просто анализ кода, это не только проверка типов

>>456083
В Elixir есть проверка типов в компайле. Просто она не такая развитая как у каких-нибудь Rust или Haskell, но зато более развитая чем у C. Во-первых, есть встроенный тайпчекер. Во-вторых, есть Dialyzer или Gradualizer (второй скорее экспериментальный). Но сам язык всё равно динамически типизированный. Если хочешь прям именно статическую типизацию, которая будет ебать мозг, когда тайпчекер не сможет вывести тип, иди в Gleam.

>>455861

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


Да, виртуалка будет проверять. Но это не потому что разрабы обосрались, а потому что Erlang (и, как следствие, Elixir) умеют иметь общий неймспейс в кластере. То есть, я могу собрать несколько инстансов программы, разделить их сетью, и уметь из одного инстанса работать с данными на другом. И поэтому тут может быть рассинхронизация версий софта, из-за чего могут быть разные данные. Поэтому тут обязательно нужна динтипизация с тэгированием данных, иначе инстансы с разными версиями программы не смогут общаться.

Ну, и ещё динтипизация нужна для Hot-Reloading, чтобы можно было обновлять код не останавливая систему.

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


Не слушай чуваков выше, которые говорят, что динтипизация ускоряет прототипирование и всё такое. Ни-ху-я. Весь Production grade код на эликсире обычно написан с аннотациями типов и всегда проверяется тайпчекером на наличие ошибок. Как я уже написал выше, в функцию может спокойной прилететь не тот тип не из-за ошибки разработчика, а из-за какой-нибудь проблемы в распределённой среде. Всё-такие Elixir (как и Erlang) это языки для распределённых систем
443 2457895
>>455824
Динамическая типизация про то, что типы проверяются в рантайме, а не при компиляции. То, что ты описал, это следствие того, что а. петухон -- императивный б. динтипизированный язык.
Я тоже охуел на третьем курсе вуза, когда узнал, что лисп это динтипизированный язык, но потом понял, что я все это время ошибался.
444 2479159
Ну шо, двачик, кто куда съебался?
445 2491128
Бамп. Кто с карамелью игрался? С эликом я так понимаю пока интеропа нет, только с эрлангом?
gfhdui734.JPG27 Кб, 612x154
446 2492007
Шутки шутим, да?
447 2494495
>>494371 (Del)

>тaк что поймy, ecли нaxyй пошлётe


Пошел нахуй!
448 2497717
Пока ватсап лежит, расскажите про надёжность программ на эликсире.
449 2511521
Сложно будет вкатиться, если я про фп почти ничего не знаю и не писал никогда (map, filter и reduce в пухтоне не считаются)? Вкатиться не в смысле 300к/нс, а так хотя бы на базовом уровне просто самостоятельно язык освоить и разобраться, как это пишется вообще при таком подходе, ну и накатать какой-нибудь простенький веб-пет? Так-то бек пишу уже 4 года на го и питоне, свитчил направление разработки, потом язык. Эликсир заинтересовал, потому что интересно посмотреть, что за фп такое, ну и акторы эрланга и хвалёная надёжность заинтересовали (я так понял, если эликсир изучать, то в целом и эрланг освоится параллельно).
450 2511869
>>511521
Не сложно, у нас тут не такой лютый фп как в хаскелях. По большому счету, нужно вкатиться в иммутабильность и, что чуть сложнее, в эти наши OTP и модели акторов. Но когда все эти дела осознаешь, то поймешь, что язык пиздос какой простой на самом деле. ООП вермишель в 10 раз сложнее распутывать.
451 2512029
>>511869
А что там такого в хаскеле сложнее по сравнению с эликсиром/эрлангом?
Акторы и обмен сообщениями, если я правильно понял, чем-то немного напоминает каналы в го и обмен между горутинами. Я почитал про философию языка, и мне понравились некоторые концепции, но пока вся эта байда с супервизорами не понятна, такое ощущение, что над самим приложением язык какую-то очень сложную надстройку создаёт для управления и мониторинга, в которую надо вникнуть, чтобы что-то запустить вообще.
Начну тогда наверно со ссылки в оп-посте, где только упражняться не понятно. На литкоде даже нет его, чтобы задачки порешать и к синтаксису привыкнуть.
452 2514763
>>512029
В хаскеле ты одной строчкой можешь написать то, на что в элике у тебя уйдет 10. Соответственно за подобную абстрактность нужно платить, прилагать больше усилий для понимания и написания кода, ну и распутывания, если не ты писал.
мимодиван
453 2514765
>>512029
Алсо, рекомендую почитать Elixir in Action.
454 2531329
send(__THIS_THREAD__, :bump)
455 2531610
>>531329
бампай тёлками или тематическими видеоматериалами
456 2566406
>>082722 (OP)

А почему советуют эликсирскул, а не оф туториал?
457 2635382
Установил плагин для идеи, а там нет автокомплита, только подсветка синтаксиса. На каждую пропущенную скобку трачу по пол часа. Как фиксить?
458 2635773
>>635382

>Как фиксить?


Переходим на нормальный язык.
459 2637227
>>635382
Какой плагин? УМВР
56327658926579.png49 Кб, 939x123
460 2637380
461 2664601
image.png24 Кб, 1653x80
462 2717851
Фить-ха
463 2721542
Erlang State of Mind
Erlang State of Mind
Erlang State of Mind
Erlang State of Mind
image.png20 Кб, 906x315
464 2721585
https://pkolaczk.github.io/memory-consumption-of-async/
Треды жрут мало памяти, говорили они.
465 2721593
>>721585
Там та же проблема что и с говяхой, происходит аллокация небольшого кусочка памяти для каждого потока, потому что ты наверняка будешь что-то там делать. В пустых задачах это бесполезно смотреть.
466 2722753
>>514763

>В хаскеле ты одной строчкой можешь написать то, на что в элике у тебя уйдет 10.


Я не понимаю, как на это можно серьезно дрочить, имея больше половины функционирующего мозга. В Си любую программу можно написать в одну строку, но там это типа считается дурным тоном, а вот Хаскель это дааа, мы будем писать все в одну строчку, потому что у нас язык типа такой выразительный. Когда-нибудь до них дойдет, что если открыть код любой программы на любом языке, то он будет выглядеть как одна линейная последовательность символов.
Ну ладно, я юродствую слегка, конечно. В Хаскеле проще писать все одним выражением, чем в других языках. Но спрашивается, нахуя? Во-первых, еще под большим вопросом, что это более читаемый стиль, во-вторых, редактировать это точно заебнее. Потому что когда у тебя сложное выражение разбито на несколько строчек, то тебе в среднем асимптотически меньше шагов нужно сделать, чтобы добраться до нужного подвыражения. Просто задумайтесь, сколько шагов вам понадобится в среднем, чтобы из случайной клетки А попасть в случайную клетку Б если клетки организованы в список размера NxM и если они организованы в матрицу NxM. Подсказка: O(NxM) и O(N+M) соответственно. В-третьих, что самое главное, на отладке ты из-за своих однострочников пососешь хуй.
Вот написал я в функциональном языке программу, где есть инпут, который проходит через фильтр, мап и фолд. Где я могу обосраться? Я могу обосраться в: 1. лямбде фильтра 2. лямбде мапа 3. лямбде фолда 4. при передаче результата фильтра мапе 5. при передаче результата мапа фолду. Если я написал однострочник, все эти пять точек отказа вырождаются в одну, и понять причину ошибки можно только тупым перебором инпутов. Если же я дал биндинг/переменную под каждую лямбду и каждый промежуточный результат, причину ошибки выяснить на порядок проще, я сразу знаю, какие узлы графа вычисления дали некорректный результат.
Можно конечно по быстрому превратить однострочник в многострочник и отладить, а потом превратить его обратно в однострочник, но это цирк с конями, лучше уж тогда сразу писать отлаживаемый код.
466 2722753
>>514763

>В хаскеле ты одной строчкой можешь написать то, на что в элике у тебя уйдет 10.


Я не понимаю, как на это можно серьезно дрочить, имея больше половины функционирующего мозга. В Си любую программу можно написать в одну строку, но там это типа считается дурным тоном, а вот Хаскель это дааа, мы будем писать все в одну строчку, потому что у нас язык типа такой выразительный. Когда-нибудь до них дойдет, что если открыть код любой программы на любом языке, то он будет выглядеть как одна линейная последовательность символов.
Ну ладно, я юродствую слегка, конечно. В Хаскеле проще писать все одним выражением, чем в других языках. Но спрашивается, нахуя? Во-первых, еще под большим вопросом, что это более читаемый стиль, во-вторых, редактировать это точно заебнее. Потому что когда у тебя сложное выражение разбито на несколько строчек, то тебе в среднем асимптотически меньше шагов нужно сделать, чтобы добраться до нужного подвыражения. Просто задумайтесь, сколько шагов вам понадобится в среднем, чтобы из случайной клетки А попасть в случайную клетку Б если клетки организованы в список размера NxM и если они организованы в матрицу NxM. Подсказка: O(NxM) и O(N+M) соответственно. В-третьих, что самое главное, на отладке ты из-за своих однострочников пососешь хуй.
Вот написал я в функциональном языке программу, где есть инпут, который проходит через фильтр, мап и фолд. Где я могу обосраться? Я могу обосраться в: 1. лямбде фильтра 2. лямбде мапа 3. лямбде фолда 4. при передаче результата фильтра мапе 5. при передаче результата мапа фолду. Если я написал однострочник, все эти пять точек отказа вырождаются в одну, и понять причину ошибки можно только тупым перебором инпутов. Если же я дал биндинг/переменную под каждую лямбду и каждый промежуточный результат, причину ошибки выяснить на порядок проще, я сразу знаю, какие узлы графа вычисления дали некорректный результат.
Можно конечно по быстрому превратить однострочник в многострочник и отладить, а потом превратить его обратно в однострочник, но это цирк с конями, лучше уж тогда сразу писать отлаживаемый код.
467 2722789
А работа где на вашем язычке умненьком?
468 2722829
>>721593
это не проблема
469 2724048
Помню лет 5 назад здесь какой-то анон собирал конфу в тг и учил эликсиру. Есть новости что было дальше?
470 2724125
>>722789
35 вакансий, тебе достаточно одной.
471 2728298
>>724048
Ничё не было, я пошерстил свои чаты — группа давно удалена, и в истории нихуя инетерсного там не было.
472 2731028
Почитал тред и так и не понял, как акторная модель позволяет лучше обрабатывать ошибки чем обработчики внутри приложения + оркестратор, который бы их автоматически перезапускал в случае чего.
473 2737486
elexir интересный но тормозной с числодробилками?(крипта фото видео обработка) файловый ио? все в golang убежали
Screenshot2023-06-19-00-45-36-273com.google.android.apps.docs.jpg478 Кб, 720x1600
474 2737819
Почитал тред по диагонали и почему-то решил узнать как сейчас поживает автор n2o. Конечно же он окончательно поехал и написал нажористую книжку про боротьбу с москалями.
475 2737920
>>737908 (Del)
У айтишников? Мы же говорим про айтишников, а не про вась, у которых вообще в голове что угодно может быть
476 2737948
>>737486
CPU-bound - работает плохо, хуже чем в питоне, IO-bound очень хорошо, лучше чем везде.
477 2739030
>>737908 (Del)
Выкладывай, готов почитать.
478 2741326
Появился приятный курс для веб разработки на Elixir.
https://github.com/DockYard-Academy
479 2741986
>>741326
Спасибо.
480 2742678
>>724125
Нет, недостаточно, я хочу все вакансии
481 2754643
>>731028
Удваиваю этого
482 2767804
>>731028
Я не ОП, но могу вставить свои 5 копеек.

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

Всё это можно реализовать в других языках. Но так можно сказать и про многие фичи других языков. Но дело в том, где это достигается быстрее и проще
483 2768283
>>767804

>свои легкие процессы в user space - быстро запускаются, мало жрут


>распределенность из коробки


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


>supervisor


Все плюсы перечеркиваются когда нужно добавить немного CPU нагрузки. Поэтому BEAM подходит только для чистой IO нагрузки типа реббита или чатиков дискорда.
484 2770863
>>768283
Немного CPU нагрузки по определению не могут ничего перечеркнуть.

Кроме того можно вызывать сошки (https://www.programmersought.com/article/92537823822/), можно выделить CPU-bound tasks в отдельный microservice.
485 2771790
>>770863

>можно выделить CPU-bound tasks в отдельный microservice


И зачем нужен элексир если подразумевается, что все равно придется реализовывать микросервисную архитектуру и инфраструктуру от нее?
486 2772367
>>737948

>CPU-bound - работает плохо, хуже чем в питоне


Не правда же.
https://benchmarksgame-team.pages.debian.net/benchmarksgame/measurements/erlang.html
487 2772369
>>737819
Он наркоман. В прямом смысле. На конференциях выступал под кайфом. Ну и все остальное в придачу. В общем, полный неадекват.
488 2772371
>>737908 (Del)

>гейскими


Гомосексуализм не норма, а извращение. Сегодня ты называешь нормой гомосексуальный половой акт, а завтра скажешь, что половой акт с трупом тоже норма. Посмотри на себя со стороны. Ты отвратителен. Ты безумный.
489 2823935

>Elixir Saves Pinterest $2 Million a Year In Server Costs



https://paraxial.io/blog/elixir-savings
490 2825061
>>082722 (OP)
пиар какого то очередного ненужного говна
491 2825284
>>823935
Промо хуйня.

>Почему вы выбрали Эликсир?


>Потому что Эликсир это суперкрутой, супрепроизводительный язык.


>Как вам помог Эликсир?


>Он нам сэкономил $100,500.21 денег.


Ни технических подробностей, типа один инстанс раньше выдерживал 15 RPS, а теперь 15000.

Ну и в фразе:

>Rewrote an #AWS APIGateway & #lambda service that was costing us about $16000 / month in #elixir. Its running in 3 nodes that cost us about $150 / month.


ключевое

>Rewrote an #AWS APIGateway & #lambda


Только дебилы пишут хайлоад на AWS Lambda, AWS Lambda это развод гоев на шекели. Единственный случай когда AWS Lambda может быть оправдана - это 1,5 запроса в сутки, тогда да, это будет дешевле. Если бы они переписали все с нормальной архитектурой на любом современном языке, они сэкономили бы ± столько же шекелей.
56379567923.mp4397 Кб, mp4,
334x162, 0:27
492 2866126
493 2878261
установил вскодиум+плагин для эликсира
ввожу %, крашится сервер, не перезапускается, нужна перезагрузка редактора
прикольно сделали, приду ещё через года 2
494 2881785
>>878261
Какой плагин? Там их два: заброшенный и рабочий, и ты походу выбрал не тот.
495 2897931
Решил чекнуть вашу хуйню, думаю ну заебись, функциональное программирование, ебал в рот ООП и т.д. И что же я вижу? Мне подсовывают полиморфизм, который выглядит точно также, как и эти ебаные классы, интерфейсы и прочий кал(структуры, протоколы, бехейверы и т.д.), но типа под видом не_ООП, это же не объекты, наследование и прочее, нет-нет, ЭТО ДРУГОЕ. А в вашем языке даже синтаксис почти как в си-лайк параше всякой, сука аж флешбеки от этой хуйни.
496 2899763
>>897931
Попробуй Эрланг, чо
497 2913505
>>897931

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



Полиморфизм это не ООП, анон. Интерфейсы это тоже не ОПП. В Elixir, например, нет наследования, нет инкапсуляции, нет объектов (как данных с закрытой структурой). Если полиморфизм и интерфейсы это ООП, то любой Lisp это ООП язык

> А в вашем языке даже синтаксис почти как в си-лайк параше всякой



Ну во-первых ты реально тупой, если языки по синтаксису оцениваешь. Во-вторых, он от C довольно далеко. У них с C общие из синтаксиса, наверное, только инфиксность и запись вызова функций.
image.png56 Кб, 1111x566
498 2934901
почему так?
499 2936153
>>934901
Потому что это кривая надстройка над эрлангом.
500 2938667
>>934901
Терпи
501 2954124
bump
502 2954175
Перекатил >>2954172 (OP)
Тред утонул или удален.
Это копия, сохраненная 13 февраля в 01:07.

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

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