Этого треда уже нет.
Это копия, сохраненная 26 мая 2021 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Elixir — функциональный, распределённый язык программирования # OP 1596379 В конец треда | Веб
Elixir — функциональный, распределённый язык программирования общего назначения, работающий на виртуальной машине Erlang (BEAM). Обеспечивает распределённость, отказоустойчивость, исполнение в режиме мягкого реального времени, метапрограммирование с макросами и полиморфизмом, реализованным через протоколы.

Elixir успешно применяется в Discord, Facebook, WhatsApp, Pinterest и в куче других крупных проектов.

Для вката:
- Официальный док: https://elixir-lang.org/getting-started/introduction.html
- Уроки программирования на языке Elixir (на русском): https://elixirschool.com/ru/
- Часовое видео на англе с основами синтаксиса: https://www.youtube.com/watch?v=pBNOavRoNL0
- Phoenix (основной веб-фреймворк) - https://hexdocs.pm/phoenix/overview.html

Книжки:
- Introducing Elixir
- Programming Elixir 1.6
- Elixir in Action
- Adopting Elixir

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

Работа:
https://elixirjob.ru/

Уютненький чатик:
https://telegram.me/joinchat/ApEh7z9DAAIwCR9icUbYuQ
2 1596388
>>596379 (OP)
На сколько эликсир перспективен в плане трудоустройства?
3 1596407
>>596388
Зарплаты в ИТ во втором полугодии 2019 года: по данным калькулятора Хабр Карьеры:

https://habr.com/ru/company/habr_career/blog/485146/

Самая высокая медианная зарплата у разработчиков Elixir — 165 000 рублей.
4 1596410
>>596407
Как же охуенно, буду вкатываться
5 1596430
>>596407
Только что-то на том графике ни одной зарплаты выше 200к у эликсира нету. Как-то НИОЧЕНЬ.
мимо300крубист
15709924855830.jpg218 Кб, 1280x720
6 1596486
>>596379 (OP)

> функциональное программирование


> язык с динамической типизацией


Что-то здесь явно не так
7 1596488
>>596486
И что же?
8 1596489
>>596486
Всё так. Вместо генериков, вариантов, вывода типов и подобного у тебя будут уточки.
9 1596490
>>596407
Ну конечно, давайте ещё сравним зарплаты на Кложуре и на Джаве. Когда сам создатель давал статистику по Кложе на одной конфе: там 80% сеньйоры с 5-10 годами опыта, поэтому зп в 2-3 раза выше средней по джаве на ваших графиках.

Какие преимущества перед Эрлангом кроме синтаксиса и феникса?
10 1596491
>>596490

>Какие преимущества перед Эрлангом кроме синтаксиса и феникса?



Туллинг, более живое сообщество, более активное развитие.
11 1596495
>>596379 (OP)
Он лучше джавы для бэкенда?
12 1596499
>>596495

Смотря какие у тебя задачи. Джава быстрее, но на elixir/phoenix приятней писать, как по мне.
13 1596502
Быть знакомым с Эрлангом надо перед изучением Элексира?
14 1596506
>>596502
По большей части нет. Нужно знать особенности BEAM - виртуальной машины, на которой работает Elixir.
15 1596507
>>596495
Не лучше и не хуже - разные области применения.
16 1596600
>>596490
Макросы, протоколы, Task, Agent, Registry, Stream, GenStage/Flow/Broadway, DynamicSupervisor, некоторые удобные конструкции типа with, StreamData, ExUnit лучше чем оба говнофреймворка для тестов в ерланге, formatter, наличие нормального линтера, простые нативные релизы, mix/hex лучше, чем пердолинг с ребаром и в целом большее количество либ и фреймворков. Это то что сходу пошли в голову.
17 1596626
>>596388
>>596388
безперспективняк
18 1596636
>>596379 (OP)

>Discord


Да они все более менее новое бегут применять в продакшене. Вон недавно с Go на Rust переписали.
Зачем они это делают?
19 1596642
>>596636
Их хуйню сам б-г велел на erlang написать, но зачем писать что-то новое на erlang, когда есть elixir?
20 1596670
>>596642
Завтра появится какой-то новый модный язык inb4:Crystal и они на него побегут переписывать.
Больные люди там работают.
21 1596764
>>596502
Так скажем, это было бы плюсом, но для вката - не обязательно.
Просто многое из того что эрлангисты уже знают тебе прийдется изучить с нуля.
22 1596766
23 1597011
>>596407

>Самая высокая медианная зарплата у разработчиков Elixir — 165 000 рублей.


Чет проигрунькал в голосинушку на всю квартиру! Ты бы еще сравнил с Clojure или Scala, где джунов считай почти нет, мидлов - хуй да нихуя, а сениоры как раз преобладают в выборке. Из-за этого и выходит, что на подобных языках медиана будет в 150-180 за полумидла-недосиниора. А синиоры уже зашибают по 250-300к.
Так что не вводи анонасов в заблуждение. Язык достаточно посредственный. Вебню какую-нибудь клепать - самое оно.
24 1597162
>>597011

>Не читал тред



>>596490-анон
25 1597318
>>596600
Единственный плюс ерланга по сравнению с Elixir:
отсутствие ruby-refugees, которые не разобравшись с языком начинают пытатся напердолить некое подобие оопе абузя макросы где попало. Ну и ебанутое мышление с gem install huipizda вместо здравого смысла.
26 1597359
>>597318
двачую
27 1597375
>>597318
Эрланг же совсем поносный язык. Его разве что для перекладывания байтиков из сокета в сокет можно использовать.
28 1597387
>>597375
Ну есть же системы где он юзается, которые сложнее прошивок для роутеров, например вся Riak инфраструктура, DynamoDB, Demonware-сервера, джаббер, рэббитмк.

Ну и Максим Сохатский с тобой бы не согласился правда он шизик
МИНИМАЛИЗМ, БЫСТРОТА ПРОТОТИПИРОВАНИЯ, УПРАВЛЯЕМОСТЬ, ПРОСТОТА
sage 29 1597569
>>597387

> Сохатский


Зарепортил.

мимо
30 1597835
>>596379 (OP)

>Динамика


>Жидко пукнув умираешь от несоответствия типов


>Супервайзер тебя воскрешает


>Жидко пукнув умираешь до бесконечности

31 1597846
>>597835

>не слышал про нормальную культуру тестов


>выбирает пердолинг с типами


>кодовая база стала в 3раза больше


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


>все равно ловит ошибку, потому что перепутал номер карты с идентификационным кодом


>let it crash нинужон


>весь код в трай/кетчах и прочей defensive параше, все равно приложение падает от рандомной потери пакета на магистрали


>uptime <90%


>захотел попрограммировать на акторах


>Akka урезанное говно без блокирующих вызовов(sic!)


>без типов


>хочешь взять Typed Akka


>ещё более урезанное, до сих пор в стадии experimental


>взял Cloud Haskell


>ничего не работает


>зато типы

32 1597867
>>597835
>>597846
Вы оба уебаны, возведшие инструмент в культ, вместо того, чтобы просто пользоваться им и спорите на дневном дваче о вещах.
33 1597878
java vs Elixir?
34 1597885
>>597878
Нода.
35 1597886
>>597885
говно
36 1597890
>>597886
моча
37 1597911
>>597885
баловство
38 1597914
>>596502
Тут чел пишет, что с сисярпа/пистона за две недели перекотился в элик
https://habr.com/ru/post/435796/
39 1597993
>>597846

>>все равно ловит ошибку, потому что перепутал номер карты с идентификационным кодом


решается через value classes, если ты о Scala

>>весь код в трай/кетчах и прочей defensive параше, все равно приложение падает от рандомной потери пакета на магистрали


если ты пишешь на Java, то да, там принято пробрасывать исключения и обрабатывать их в try/catch. В Scala используют тип Try или Either.

>>Akka урезанное говно без блокирующих вызовов(sic!)


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

>>хочешь взять Typed Akka


>ещё более урезанное, до сих пор в стадии experimental


Akka Typed уже давно не experimental и находится в стабильной ветке.
40 1598058
>>596379 (OP)
Зачем перекатываться на язык одного фреймворка? Ведь на Elixir ничего кроме вебни не пишут. А если и пишут, то в 90% случаев это переписывание проектов с Ruby/RoR.
Ведь для этого языка даже нет адекватной поддержки IDE какой-нибудь IntelliJ IDEA с плагином. Только какие-то мутные плагины для VS Code, которые покрывают дай бог 10% функционала. Считай одна подсветка синтаксиса да и только.
41 1598063
>>598058
нинужна
42 1598070
>>598058

>нет адекватной поддержки IDE


Зачем IDE для elixir?

>>598058

>язык одного фреймворка? Ведь на Elixir ничего кроме вебни не пишут


Микросервисы всякие без phoenix пишутся и вполне збс. Мне чаще приходится писать без феникса, чем с ним.
43 1598076
>>597914

>с сисярпа/пистона за две недели перекотился в элик


Считай что похоронил карьеру разработчика. Теперь будет ковыряться в помойном проекте, который котиков показывает и бояться сменить работу, т.к. компаний, который используют эликсир - хуй да нихуя.
44 1598077
>>598070

>Зачем IDE для elixir?


Автодополнение и intelisense по коду проекта и подключенным библиотекам. Интеграция со системой сборки и библиотеками для тестирования - чтобы я мог прогнать тесты из IDE, посмотреть на упавшие тесты и щелчком мыши перейти на них. Какая-никакая поддержка со стороны IDE, которая подсветит некорректное использование функции/метода или неверный переданный тип еще до того как я соберу проект и запущу его. Много чего. Ты никогда не пользовался IDE?
45 1598079
>>597993

>решается через value classes, если ты о Scala



>пердолишь отдельный тип данных на каждую пиздюльку


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


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



>В Scala используют тип Try или Either.


Лучше чем исключения, но всё равно defensive, плюс всё заврапано-переврапано.

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


Я про это и говорю. В Erlang/Elixir такой проблемы нет.

>Akka Typed уже давно не experimental и находится в стабильной ветке.



This module is currently marked as may change in the sense of being the subject of active research. This means that API or semantics can change without warning or deprecation period and it is not recommended to use this module in production just yet—you have been warned.

https://doc.akka.io/docs/akka/2.5.6/scala/typed.html
46 1598082
>>598076
Ни то что на питоне/сишарпе - сплошной рокет-саенс.
Как раз на эликсире относительное количество интересных проектов больше, чем на питоне или сишарпе.
Олсо, ты так пишешь, как будто это какой-то необратимый переход и нет возможности вернутся назад или перекатиться куда-то ещё.
47 1598087
>>598079

>https://doc.akka.io/docs/akka/2.5.6/scala/typed.html


>2.5.6


Ну Семен Семеныч!
48 1598088
>>598058

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


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

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


Так плагин для идеи есть, весьма неплохой, уже много лет регулярных релизов.
49 1598100
>>598077

Пользовался, но мне кажется, что она реально нужна для монстров типа Java, а на всякой лайтовой хуйне сач ас elixir, ruby, python можно и в обычном редакторе с подсветочкой хуярить спокойно.
50 1598109
нахуя мне элик/эрланг-писать онлайн игру на 1кк игроков?
51 1598126
>>598100
В чем лайтовость-то, лол? Или ты мне предлагаешь запоминать имена всех методов и функций в библиотеках? А тут раз - и тебе выдали список доступных для вызова функций и подсказали типы (лул) и порядок аргументов с возвращаемым значением.
52 1598127
>>598087
Короче, ты притащил старую версию Акки, если ты не догнал.
53 1598128
>>598079

>


>>пердолишь отдельный тип данных на каждую пиздюльку


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


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


>


Ну, это уже какой-то манямирок, если честно. А как ты себе представляешь решение проблемы, которую ты описал? А твой наезд на Try/Either просто не от большого ума. Подобные типы обрабатываются через pattern matching и for-comprehension.
54 1598134
>>598082
Похихикал в шепот с твоих "интересных проектов". Открыл эликсирджобс, открыл полтора десятка вакансий на эликсире - один сплошной веб, где нужно либо пилить что-то на phoenix, либо требуется знание ruby/ror и опять phoenix, лул. На эрланге в основном проекты от телеком сектора, которые пилят какие-то мутные прошивки роутеров и прочий шлак где нужно гонять байтики из сокета в сокет.
55 1598135
>>598082

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


Ну, так и есть, если ты включишь голову хоть ненадолго. Кому захочется нанимать микрочелика, который знатно так деграднул на разработке помойных веб-проектов на одном фреймворке, лол.
56 1598137
>>598109
Смотри, как бы не пришлось прикручивать C++ код через NIF как это сделали ребята из Daemonware, лол.
57 1598140
>>598137
а мож я не хочу рпг,а хочу статежку шахматы,где все медленно происходит?
58 1598144
>>598126
Возможно ты прав. Лет 6 назад я накатил RubyMine на свой древний комп - оно там люто лагало и я с тех пор пишу в легких редакторах и да, запоминаю функции и всю хуйню, лол. Вероятно, я многое упустил, игнорируя IDE, а может и нет - больше запоминал все это время.
59 1598153
>>598134
А что и на чем ты пишешь на работе? Не доебываюсь - всегда было интересно, чем таким крутым занимаются чуваки, которые воротятся от web-разработки как от говна.

Вообще, web это же не только CRUDы всякие клепать безостановочно - для такого elixir и не нужен. Тут же фишка в том, что ты не формы пишешь, а масштабируемое, распределенное приложение, которое на нескольких серверах ебошит и обрабатывает дохуя запросов, считаю, что это вполне благородное занятие и далеко не любая обезьяна сможет делать такое же.
Аннотация 2020-02-11 151936.png17 Кб, 716x340
60 1598155
как этой хренью пользоваться?
61 1598156
>>598140
Ну какую-нибудь пошаговую херню BEAM точно потянет.
62 1598157
>>598155
Вроде в конце выражения нужно точку ставить, если я не ошибаюсь.
63 1598158
>>598155
В erlang нужно точку ставить в конце выражения, т.е.:

1 + 1.
64 1598159
>>598157
>>598158
заработало
65 1598161
как Хелло волд написать?
66 1598163
>>598161
Жирно.
67 1598164
>>598128
Это решается обычной культурой тестирования.

>Подобные типы обрабатываются через pattern matching и for-comprehension.


Дело в том, что их теперь нужно везде обрабатывать и писать код который их будет учитывать.
68 1598168
>>598134
Зачем брать Elixir для простого веба, если на RoR можно пердолить фичи намного быстрее? А те кто с RoR переписывают на Elixir значит делают это не просто так, видать у них уже не совсем простой веб.
69 1598170
>>598163
я серьезно
70 1598171
>>598170
В оп-посте на второй пикче написано же
71 1598172
>>598135
На питоне подавляющее большинство проектов - макакинг на джанге, а на сисярпе - унылый тырпрайз, так что никакой деградации.
72 1598173
>>598164
Т.е. иными словами, ты предлагаешь перенести часть работы компилятора на плечи разработчика и чтобы он раз за разом покрывал подобные случаи тестами.
Думаю, что мне сложно будет донести мою точку зрения, т.к. ты никогда не работал над действительно крупным проектом, над которым трудится десяток-другой разработчиков.
73 1598175
>>598171
пиздец,гуглил
решения из консоли сука нигде не было,только ИО формат
74 1598176
>>598168
Elixir супербыстр на подобных задачах из-за BEAM. Эта же виртуальная машина позволяет тебе держать условный миллион-другой активных подключений от клиентов и раздавать им данные.
75 1598177
>>598176
а ГО?
76 1598179
>>598144
Железо нынче стоит неприлично дешево. AMD подогнало многоядерные процессоры за недорого. Память стоит как никогда дешево. Мне мое психическое здоровье дороже. Еще бы запоминать все сигнатуры методов и боятся ошибиться, когда мне IDE подскажет нужный метод на раз-два.
77 1598187
>>598155
>>598175

Если оба поста твои, то на всякий случай обращаю твое внимание на то, что на скриншоте запущен эрланговый repl и elixir в нем, очевидно, работать не будет
78 1598191
>>598187
ну я только эрланг и ставил,для эликсира надо еще одну хрень качать
79 1598194
>>598191
Но ты спросил в elixir треде как писать hello world, пытаясь сделать это на эрланге и не уточнив это
80 1598198
>>598194
по идее это почти одна хрень.у вас должен быть один тред
81 1598201
>>598198
Согласен. Раньше был один, но уже давно утонул и кто-то создал только для elixir.
82 1598204
>>598201
хочешь угарнуть?
83 1598206
>>598204
Допустим, хочу.
84 1598209
>>598206
а я нет,лол
85 1598210
>>598209
Спс, угарнул)) Блин elixir классно и весело!)))) |>|>|>|>|>
86 1598212
>>598210
может и весело,но слишком он хипстерски,а эрланг узкоспециализированый
87 1598215
>>598177
Ну ты сравнил. Просто для интереса поинтересуйся как реализован GC в Go и в BEAM. В BEAM у тебя сборка мусора происходит без STW и мусор собирается отдельно для каждой нити/потока. В Go до недавнего времени даже сборщика мусора по поколениям не было. Он по КД тормозил всю программу и сканировал весь хип на предмет мертвых ссылок.
88 1598218
>>598173
Я работал в конторе на пол тысячи рыл у которой ровно проект, и большая часть бекенд разработки там была на Elixir, так что хуёвая ты ванга.

Типы конечно же повышают надёжность, но за это нужно платить, при этом они всё равно не заменяют написания тестов и не гарантируют ~100% аптайм.
бтв в Elixir есть типы и статический анализатор, просто как и в кложе они опциональны.
89 1598219
>>598212

>но слишком он хипстерски


Обоснуй
90 1598221
>>598215
я в душе не ебу,я пхпешник,го прос на слуху,типо ультрабыстр и многопоточен
91 1598233
>>598218

>в кложе они опциональны.


в кложе можно указать компилятору типы примитивов, кроме хешей, иначе он использует рефлекшен.
92 1598259
>>598218
Твои аргументы смешны. Чем платить-то? Больше кода писать? Так type inference уже даже в Java завезли, что уж говорить о Scala. Заворачивание проблемного кода в Try/Either дело одной строки. А обработка подобных кейсов через for-comprehension и pattern matching - дает тебе возможность не указывать типы, но при этом безопасно обрабатывать ошибки.
Твой Эликсир с Эрлангом вообще про другое. Но ты видимо бывший похапешник, который никогда не писал на функциональных языках со строгой статической типизацией.
93 1598288
>>598259
Типичный бред статикодебила, который про динамику слышал только из страшных сказок. Это твои "аргументы" смешны, но можешь дальше заниматься самогипнозом.
Я на статике писал и сделал сознательный в пользу динамики. Вместо елма кложурскрипт, вместо скалы эликсир, а ты можешь дальше жрать говно на своей статикопараше, это твой выбор.
В каждый кложа/эликсир тред обязательно залетает очередной статикодебил, каждый раз его кормят говном и каждый раз он сливается.
94 1598316
а что на этой фигне можно писать?
95 1598326
>>598288
Ты просто фанатик, который ничего не понимает в программировании. На динамикопараше он видите ли пишет отказоустойчивые приложения, лул! Слушай сюда - обработать HTTP запрос, сходить в базу и выплюнуть JSON - это не отказоустойчивый и высоконагруженный сервис, дурачок.
96 1598340
>>598316
замена рубям
97 1598371
>>598326
Поссал в ебасос статикодебилу, а он и рад.
Иди дальше типы программируй, дебилушка.
98 1598372
как придумаю онлайн игрушку,так начну учить ваш язык,а пока только пхп
99 1598378
Embedded фреймворк для Elixir
https://nerves-project.org/
100 1598380
>>598371
Чет проиграл с твоего самозаовна.

>ой, а тут нужно было число передать!


>ой, а тут нужно было список чисел передать!


>ну ничего, сейчас тесты напишу!

101 1598384
>>598380
Уебан который кодирует каждый инт и стринг в приложении кастомным типом, это ты?

Олсо, тесты пишутся сразу, еблан. Нет тестов - нет фичи, и это безотносительно типизации.
102 1598385
>>598384
А чего ты сразу агришься то? Ты еще и ТДД-шизик, который сначала пишет тесты-тестики. Таких уже ничего не спасет.
103 1598393
>>598385
Можешь не писать тесты, но твой развесистый пердолинг на типчиках от ошибок тебя равно не спасёт.

О чем нормальные люди знают, поэтому в том же Haskell есть
HUnit, QuickCheck, SmallCheck, HSpeс и так далее.
104 1598396
>>598393
Ты сельский что-ли? Поди в каком-нибудь Иркутске живешь. Ты хоть на недельку выберись в столицу - посмотри как люди по-настоящему программируют и деньги зарабатывают. Что ты тут носишься со своей динамикодрисней и борщами, лол?
105 1598440
>>598396
Джявадибил, плиз.
106 1598441
>>598378
Даже вкансии есть на него, лол.
https://jobs.dou.ua/companies/innoteka/vacancies/113412/
sage 107 1598458
>>598173

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


Тесты поведения стоят на ступень выше любых проверок типов и уже валидируют все, что могли в теории отловить типы. Тем более с TDD, где каждая строчка кода выполняется тестами по определению. Зачем мне добавлять анальный нул-чек в функцию, если а) все возможные вызовы к этой функции в программе протестированы б) null - не часть публичного интерфейса данной функции?
108 1598486
Лол, треды по OTP заводят всего пару раз в год, но каждый раз одинаковый срач.
109 1598496
>>598486

Алсо:

> НЕТ РАБОТЫ!


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

> ДИНАМИЧЕСКАЯ ТИПИЗАЦИЯ!!!!


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

> ТОЛЬКО ДЛЯ WEB. WEB НИНУЖОН!


>>598153

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



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

Master/Slave одним конфигом в 10 строк, если не меньше, делается.

Elixir умеет равномерно загружать все ядра на твоей железяке без проблем и лишнего кода.
110 1598500
шо там с экосистемой?
запилить авторизацию и регистрацию на сайте можно без геммора?
111 1598528
>>598496

>Мало людей пишет на elixir,


тогда нахуя они пишут с нуля,либо переводят на него проэкт?
112 1598563
>>598528
Относительно мало, конечно. Относительно PHP, Java, Python и т.д.
113 1598568
>>598500
Есть всякие либы типа https://github.com/ueberauth/guardian

Но там много лишней хуйни, поэтому проще написать самому. Регистрация понятно как делается, ничего особенного, а аутентификация делается изи через plug на ~50 строк.
114 1598575
>>598500

https://hex.pm/ говорит, что 10351 либа опубликована сейчас. Плюс ты можешь юзать все, что было написано на эрлангах и не опубликовано в hex.
115 1598579
Guardian для JWT авторизации.
Если JWT не нужен, то можно юзать обычный Phoenix.Token
116 1598592
117 1598594
>>598579
фреймворк не интересует,только ручками,только хардкор
119 1598608
>>598606
я конечно не эрлангист,но чет слишком просто выглядит
120 1598629
Подивитесь как пиздат декларативный код https://ideone.com/mKQFma

Не знаю, зачем я это написал, но подивитесь!
121 1598634
>>598629
Сам доебусь до себя:

IntegersFinder.find_integers(["a", 1, "b"], ["huy"]) # => [1, "huy"]
122 1598657
>>598629
Enum.filter(list, &is_integer/1)
123 1598659
>>598657
Это даже в пехе есть:
array_filter($list, fn($x) => is_int($x));
124 1598660
>>598657

Очевидно, хотелось показать некоторые фичи языка, а не решить проблему поиска integers.
125 1598665
>>598659
Конечно есть.
Правда вот это is_int($x) фу.
126 1598669
>>598660
Красава.
127 1598674
вот если соберусь пилить приложение,хто мне поможет,язык малопопулярен же?
123.png124 Кб, 933x698
128 1598705
>>598657
>>598660

Моя хуйня еще и быстрее в три раза как минимум в 1000 испытаниях на списке из 500к элементов
129 1598744
>>598665
Почему фу? На элике тут таж фигня >>598657
Только я бы короче написал:
array_filter($a, 'is_int');
130 1598748
>>598674
Пиши на elixirforum и google groups. Хотя в 98% случаев всё гуглится.

>>598705
Проиграл с этого «бенчмарка».
131 1598750
>>598744
Я и говорил про передачу аргумента, которая ненужна.
132 1598754
>>598629
Почему у тебя первая функция без тела?
133 1598771
>>598754
Это чтобы задать дефолтное значение второго аргумента.
Когда у тебя одинаковая функция, но много разных сигнатур то оно так заедается.
134 1598801
>>598771
Выглядит как оверинжиринг этот ваш элик, если на нем все вот так вот пишется. Еще меня смущает отсутствие циклов и что вместо них надо использовать рекурсию, это правда?
135 1598808
>>598801
рекурсия проще циклов
136 1598810
>>598808
Мне не проще. Мозг ломается, когда пытаюсь даже примитивные вещи осмыслить через рекурсию - всегда ее избегал.
137 1598812
>>598808
Может есть какие-то книжки/сайты/статьи, где бы императивщикам на пальцах объяснялось функциональное программирование и декларативный подход?
138 1598814
>>598810
рекурсия это ссылки функции самой на себя, хвостовая рекурсия это возврат в исходную точку в конце вычислений, второе предпочтительнее так как не надо раскручивать стек.
139 1598818
>>598814
Я знаю, что такое рекурсия. Речь о большей сложности построения рекурсивных алгоритмов по сравнению с итеративными.
140 1598861
>>598818

>о большей сложности


скорее непривычности
141 1598970
>>598440
Тебе престарелые мамка с папкой квартирку подогнали, а ты сидишь там на каких-то мутных дядей работаешь, Андрей.
142 1598971
>>598496

>поэтому ты почти со старта достаточно востребованный специалист.


>висит резюме с опытом почти 4 года


Хех, мда, как бы тебе сказать, мдэээ...
143 1598972
>>598496
Ну как бы ты понял где обосрался, да? 4 года опыта в Elixir, на котором никто не пишет. Ясен-красен тебе все пишут, лол.
sage 144 1598983
>>598801

>Еще меня смущает отсутствие циклов


list comprehensions/high-order functions

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


Чистая рекурсия в функциональных языках почти всегда является антипаттерном, единственный оправданный случай ее использования, который я могу придумать - это проход по вложенным структурам данных с произвольной глубиной.
145 1598993
>>598971
Ну так пишут мне уже далеко не первый год
146 1599094
>>598801
Циклы и мутабельные структуры - это говнарская параша, чел.
Используй стандартные комбинаторы или for-comprehensions. Мысли описательными цепочками трансформаций, а не императивщиной ёбаной.
147 1599097
>>598970
Чёт вообще мимо.
Что за Андрей, кстати? твой протыкатель?
148 1599099
>>599094
описал еблет твоей мамки
149 1599102
Почему никто не обсуждает вот эти прыгающие двоеточия?

>iex> list = [{:a, 1}, {:b, 2}]


>[a: 1, b: 2]


>iex> list == [a: 1, b: 2]



Ещё постоянные def/do/end от рубистов напрягают.
150 1599103

>Discord, Facebook, WhatsApp, Pinterest


Что характерно, каждый из этих сервисов представляет из себя жуткий лагодром.
151 1599108
>>599103
Ты скозал?
152 1599109
>>599102
Двачую. Еще не очень нравится, когда в языке начинают менять семантику общеизвестных конструкций, в данном случае ++ и <> - тут это конкатенация списков и строк.
153 1599112
>>599108
У меня на райзене лагает.
154 1599128
>>599109

>общеизвестных конструкций


алголораб незаметен
155 1599153
>>599102
Не понял предъявы.

Кейворд-лист - это просто синтаксический сахар, мне лично нравится определение пары как a: b, особенно учитывая что кейврод листы нужны только чтобы передавать список опций для функции типа call(a, b, c: 1, d: 2, e: 3).

Не нравится, делай на туплах.
156 1599156
>>598983

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


Ты будешь сильно удивлен, когда узнаешь, как устроены списки в Erlang/Elixir, лол. И что стоит за твоим лист компрехеншн, лул.
157 1599162
>>599156
Они за тем и спрятаны внутрь стандартной библиотеки, чтобы можно было пользоваться нормальными абстракциями, а не хуярить нечитабельную мамрекурсию.
158 1599171
>>599162
Ты так ничего и не понял. Ты типичный ruby-ребенок или php-недоумок, который не знает как работает язык под капотом. Неудивительно, что работодатели берут кого попало, главное, чтобы челик смог осилить Elixir за неделю и кое-как писал с использованием единственного фреймворка, лул.
Это мне напоминает Озон, который как сумасшедший переманивал разработчиков на Go...
159 1599195
Кто-нить пробовал решать тестовое от funbox?
160 1599197
List comprehension преобразуется в обычную рекурсивную функцию. Правда там ещё компилятор смотрит нужно ли строить список или нет.
lists:map не смотрит, например.

Но вообще этот >>599162 прав
зачем пердолить рекурсии там где можно юзать стандартный комбинатор, когда это возможно.
161 1599198
>>599171
По существу что-то пукни, шизик.
162 1599209
>>599198
Сельский недоумок пытается в программирование, лол. Ты просто смешон, дуралей.
163 1599299
>>599171
озон671геймс снимал видосы что надо переходить на го?
https://youtu.be/RaexwE0y35c
164 1599302
>>599209
Многие великие люди были из глубинки, стереотипный мудак.
165 1599318
>>599299
тут видимо чтение доков го
166 1599360
и в чем плюс эликсира над эрлангом?
167 1599516
>>599360
Возможность иметь читабельный код в проектах, которые чуть больше серверной прокладки.
168 1599650
169 1599786
Т.к. Ruby-тред потонул, а здесь 100% сидят опытные рубисты, спрошу про Ruby. Пробую на зуб многопоточность через Thread.new, в примерах из гугла везде стоит join после создания тредов. Я почитал что он делает, но всё равно не понимаю нужен ли он, потому что все запросы отрабатывают ещё до того, как он вызывается (?!).

Например, при вставке в pry

threads = []
4.times do |i|
threads << Thread.new do
uri = URI.parse("http://www.google.com/sitemap.xml")
res = Net::HTTP.get_response(uri)
puts res.code
end
end

все треды сразу запускаются и коды ответов появляются ещё до того, как я добавлю threads.each(&:join).
Собственно, зачем мне нужен/не нужен join при распараллеливании HTTP-запросов?
170 1599800
>>599786
Всё, дошло, это внутри REPL треды отрабатывают, а если запустить скриптом, то главный тред завершится раньше детей. Всем спасибо. Переведите код на Elixir для сравнения синтаксиса, если не сложно.
171 1600129
Шпаргалка по языку:
http://media.pragprog.com/titles/elixir/ElixirCheat.pdf

Learn X in Y minutes для Elixir на русском:
https://learnxinyminutes.com/docs/ru-ru/elixir-ru/
(из РФ может быть недоступно)
172 1600131
Тот самый awesome-list, который дают парсить в funbox'e в качестве тестового:
https://github.com/h4cc/awesome-elixir

Кодить лучше всего в любой IDE от JetBrains (есть плагин для Elixir, часто обновляется) или VS Code (достаточно только одного расширения - ElixirLS).
173 1600133
>>599195
Да, послали найух.
174 1600798
>>599800

>Переведите код на Elixir



https://ideone.com/uArnTc
175 1601132
Киньте PDF Phoenix in action или Programming Phoenix.
176 1601218
>>601132
libgen
177 1601225
>>601132
Вторую не рекомендую, сам по ней переезжал с руби на эликсир, лучше бы просто почитал гайд на оф. сайте, там то же самое, только не устарело и не размазано на 400 страниц хуйни. А отдельная книга по фреймворку это вообще пушка конечно.
178 1601232
>>601225
Я хочу начать с квик-старта по Фениксу с помощью книги, т.к. для получения работы обычно нужен хоть какой-то опыт с Фениксом. А после задрочить язык с помощью Programming Elixir 1.6. Разумный путь?
Когда-то так же с рельсами поступал: стартанул с Rails guides, потом задрочил "Ruby programming language" Матца.
179 1601233
>>601218
И да, спасибо.
180 1601274
>>601232
А куда работать-то? В рашке только фанбокс есть, но тебя туда не возьмут, да и странные они.
181 1601291
джава или эрланг?
182 1601335
>>601291
Эликсир.
183 1601394
>>601335
ответ неверный
184 1601572
185 1601574
>>601274
Я в Украине, тут вакансии есть https://jobs.dou.ua/vacancies/?search=elixir
186 1601969
>>601291
Нет.
187 1602035
>>601574
так на хх их 55 а не 8
188 1602046
Elixir in action лучшая книга, базарю. Читал почти все основные книги в своё время, эта зашла больше всех
189 1602442
>>602035
Тогда утверждение о том, что работы нет, неверно.
190 1602516
>>602046
Она для продвинутых.
191 1603524
>>602035
Уже выяснили, что 50 вакансий от фанбокса, который размещает одну и ту же вакансию в различных городах, т.к. ищет удаленного elixir разработчика. Остальные 5 вакансий - это Senior Ruby Developer со знанием Elixir и 1 или 2 вакансии, где Elixir не является основным языком разработки и указан только как дополнительное пожелание к кандидату. Итого у тебя ровно 1 вакансия чистого Elixir разработчика от компании, которая выдает тестовое задание, а затем пропадает и не отвечает тебе, лол.
sage 192 1603555
>>603524
Привет, шизик.
Вернись в свой загон для дебилов.
193 1603559
>>603555
А что он не так сказал?
Мимо
194 1605871
Ух какой же он охуенный, дрочу на него переодичеки, недавно написал чатик на сокетах. Хотелось бы перекатиться, но без существенной потери дохода это практически не возможно.

Мимо Senior Java макака
195 1606211
>>605871

>сокетах


объясните нубу плес, что это? не могу нагуглить ничего понятного
197 1606587
>>606287
К сокетам в ОCах это же не имеет никакого отношения?
198 1606634
>>606587
Это сетевые сокеты (настройка над TCP).
199 1606955
>>606634
Только TCP дружок на уровень ниже находится. Иди щеголяй своими знаниями за пределами данного треда.

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

>это надстройка над TCP


>TCP на уровень ниже находится


Ну спасибо что поправил, дружок.

> Иди щеголяй


Ты пьяный что-ли? Я на вопрос лолкана ответил.

>мало либ


Каких либ тебе не хватает к примеру? Просто интересно.
201 1608363
Аноны привет, elixir как первый язык это плохая идея ?
202 1608368
>>608363
Хорошая, но для поиска работы первым языком плохая
203 1609254
Вопрос от нуба.

У меня есть две таблицы. Таблица A - заявка. И таблица - Б - характеристика заявки.

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

Использую Ecto ну и Phoenix
204 1609256
>>609254
upd. В чатике спрашивать такие даунские вопросы страшно
205 1609345
>>609254
берешь бд и читаешь как туда заливать
206 1609526
>>609345
Так, там нет примеров как именно связанные данные заливать? Или я жопой читал?
207 1609597
>>608368

>для поиска работы первым языком плохая


Мне больше для прокачки в целом. Пробую js, узнал про "функциональный подход", решил, что надо еще какой нибудь язык по серьезней в пару взять.
208 1609718
>>609597
пупок не развяжется
210 1610611
>>606955

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


Какие либы нужны? Как раз думаю, что бы такого запилить в опен сорс
211 1611626
>>609597
У Эликсира высокий порог входа, да и ФП не панацея ни разу - просто еще один хитровыебанный способ писать программы ни как фсе. Наиболее удобный язык на мой взгляд - это такой, в котором можно комбинировать разные стили, потому что есть задачи, которые горазды проще и изящнее решать императивно, а есть наоборот. В этом смысле JS (а лучше TS) волне хороший язык, если следовать лучшим практикам на нем.
212 1611627
>>611626

>В этом смысле JS (а лучше TS) волне хороший язык, если следовать лучшим практикам на нем.


а кровь из глаз не идет от приведения типов? и мутабельности в многопотоке?
213 1611636
>>611627

>и мутабельности в многопотоке?


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

>а кровь из глаз не идет от приведения типов?


Не понял, о чем речь. Elixir такой же weakly dynamically typed, как и JS.
214 1611651
>>611636
Не weakly. И там есть анонимная типизация и опциональный тайпчекер.

Лучше приведи пример бекенд задачи, где ООП удобнее. Для работы с массивным стейтом в Elixir есть целый парк различных стратегий процессов, а для остального я хз.
215 1611661
Вот честно, бесит немного синтаксис Эликсира, он получше будет чем у Эрланга, но до уровня хорошего ФП не дотягивает ОКамл к примеру, легко читается.

Но по факту, вот я хочу выбрать себе платформу для пет-веб проекта, и кроме Эликсира/Феникса пока ни к чему не могу прийти. Не на node же писать.
216 1611665
>>611661
Выбор падает на Эликсир из-за коммьюнити, ФП, производительности и наличия основных тулов для продакшена.
217 1611667
>>611661

>Вот честно, бесит немного синтаксис Эликсира,


Не просто бесит, а вымораживает этот мешок сахара + сахар феникса + вагон сахара от экто - в итоге вообще невозможно запомнить, где, что и как писать без лазания в доки.
218 1611672
>>611665
Я начал делать свой пэт на элике в декабре - до сих пор не закончил, да и желания возвращаться нет. В начале февраля по приколу начал на гоше писать по выходным - щас проект почти готов. На гоше испытал давно забытое чувство (после пхп, жс, питона), когда программу пишешь, компилишь, запускаешь - и она блин работает сразу.
219 1611833
>>611661
А чем нода плоха? Если тебе нравится окамл, почитай про bucklescript.
220 1612022
>>611833
Может тогда ocsigen/eliom навернуть?
221 1612116
>>611667
>>611661

Я перекатился с руби как раз из-за привычного синтаксиса.

Сахара маловато. Я б еще добавил.
external-content.duckduckgo.com.png235 Кб, 700x700
222 1612130
>>612116

>Сахара маловато. Я б еще добавил.

223 1612133

> User


> |> Repo.get!(id)


> |> Repo.preload(:addresses) # Only required when updating data


> |> Ecto.Changeset.cast(params, [])


> |> Ecto.Changeset.cast_assoc(:addresses, with: &MyApp.Address.changeset/2)



Что это за цифра 2, что вообще происходит в последней строчке?
224 1612134
>>612022
Попробывал кстати, таки зашло. Мне просто депрессивно все эти формочки шлепать, а тут теорию типо подключать нужно на каждую html кнопку, отличненько-с.
225 1612136
>>612133
Цифра 2 обозначает сколько аргументов у функции. А так вообще не ебу что там функция делает.
226 1612138
>>612136
Зачем это надо? Эликсир не может посмотреть сколько аргументов передается в функцию и вызвать подходящую?
227 1612144
>>600133
А подробнее?
228 1612181
>>612138
Я не уверен, но функция определяется по количеству аргументов. То есть foo(List) и foo(List, fun) это две разные, и потом pattern-matching происходит, то есть количество аргументов нужно чтобы понять какую функцию ты хочешь.
229 1612183
>>612138
А про посмотреть сам - не знаю, мб из за дефолт аргументов конфликт возникет. Я вообще не эликсирщик если что.
230 1612184
>>612183
Но выглядит плохо.
231 1612185
>>612133

>&MyApp.Address.changeset/2



Это тоже самое, что и:
fn a, b -> MyApp.Address.changeset(a, b) end

Или же:
&(MyApp.Address.changeset(&1, &2))

Вариант с &.../2 самый короткий. Без /2 непонятно, сколько аргументов передавать.
232 1612189
>>612138
foo/1 и foo/2 - это две разных функции.
233 1612191
>>612189
или функция с разной арностью
234 1612274
>>612189
Хуйня аргумент. Когда ты вызываешь foo с нужной арностью элик сам знает какую нужно вызвать. С чего нельзя так же сделать и с лямбдами, передаешь имя и, в зависимости от количества аргументов, вызывается нужная функция. Алсо, пиздец горит от того, что вызов лямбды отличается от вызова функции. Вот нахуя?
235 1612281
>>612274

>вызов лямбды отличается от вызова функции. Вот нахуя?


Это только на первый взгляд кажется ненужной фичей, но на самом деле в функциональном языке очень удобно иметь возможность отличать статичную функцию(в модуле, на который ты объявляешь прямую зависимость) от динамической(которая передана как аргумент), иначе получится жопаскрипт.
236 1612285
>>612281
Удобно для чего? Сколько я не писал на окамле, никогда не было необходимости для меня лично отличать лямбда это или функция ибо и то и другое функции. Наводит на мысль, что в элике лямбды не настоящие функции.
237 1612299
>>612285
Точку при вызове поставить не сложно, и обычно она дает возможность визуально отличить часть внешнего API(переданные тебе лямбды) от внутреннего(используемые тобой функции). Это конечно очень минорная вещь и вкусовщина, но бывает полезно. Если же у тебя вопрос "почему так сделано", то мог бы и в гугле найти - https://elixirforum.com/t/anonymous-functions-the-dot-and-parameters/10886/7
238 1612311
>>612138
Если у тебя есть foo/1 и foo/2, ты можешь захотеть вызвать foo/2 и забыть передать второй аргумент. В таком случае я хотел бы получить ошибку сразу, а не давать эликсиру самому что-то неявно решать, в результате чего ошибка пройдёт дальше.
239 1612386
>>612116

>Я перекатился с руби как раз из-за привычного синтаксиса.


Ладно синтаксис, но там же онли ФП - как к этому адаптировался?
240 1612391
>>612144
Мой уровень знания языка недостаточен для прохода на собес.
241 1612403
>>612311
А можно не указывать количество аргументов, если у меня только одна функция?
242 1612461
>>612299
Как я и думал, это не фича а сайд-эффект хуевого дизайна.
243 1612496
>>612403
Нет. Тут же и так баттхёртят от гипервариативности как видишь.

Олсо, когда ты делаешь импорты каких-то функций, ты опять же обязан явно указать арность (это ещё с эрланга пошло).
244 1612500
>>611667

>вагон сахара от экто


???
Там только у Schema своя DSL (весьма простая и понятная), а в Repo/Query/Changeset/Multi/whatever обычные функции.

>ОКамл к примеру, легко читается


У тебя специфические вкусы, дружище.
245 1612506
Просто стоит принять, что функции обозначаются как name/arity. Ты будешь видеть это везде, в документации, в коде, в стектрейсах, на небе, на Аллахе.
246 1612744
>>612500
У Query тоже свой DSL.
247 1612809
>>612386
Прочитал книжку programming elixir, там в целом понятно рассказали об особенностях.

Много времени ушло на то, чтобы перестроить мозг, но этого пошло на пользу - даже на руби стал писать более чистый код.
248 1612825
учить элик мимо эрла можно?
249 1612828
>>596379 (OP)
Как смириться с фактом, что на этом борщеязыке нет работы и придется до конца дней пилить никому ненужные пет-проекты?
250 1612839
>>612828
Да, на популярных языках полно проектов, но как правило это легаси с говнокодом. Да еще и очередь выстраивается на вакансию.

На элике работы вроде бы меньше, но проекты качественнее, интереснее, больше адекватных заказчиков, готовых неплохо платить. И гораздо меньше конкуренция, поэтому будет проще устроиться, если ты специалист.
251 1612843
>>612839

>больше адекватных заказчиков, готовых неплохо платить


а нахер им но нейм язык,чаще они вообще не понимают на каком это ЯП будет,лишь бы работало
252 1612847
>>612843
Почему нонейм? Эрланг тоже нонейм? Расскажи это вотсапу и дискорду.
253 1612848
>>612847
ну охуеть теперь
254 1613021
>>612828
>>612843
А что если я свой стартап пилить буду и мне нахуй не нужны ваши вакансии за орешки?
255 1613025
>>613021
никто не запрещает
но
1.насколько оправдано это использовать
2 тяжело ли потом все это поддерживать?
256 1613634
>>612809

>Много времени ушло на то, чтобы перестроить мозг


Стали платить больше денег?

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


ФП-like код не ровно чистый.
257 1613638
Есть пэт-проект на фениксе. Хочу подключить редис и в действиях контроллера выполнять запросы к нему. Вопрос - где хранить подключение к редису? Щас я просто для теста делаю эту строчку в начале каждой функции контроллера:

{:ok, redis_conn} = Redix.start_link

Будь это ООП, я бы взял DI-контейнер и внедрил зависимость, а как тут?
258 1613644
>>613634
равно*
259 1613645
>>613638
Стартовать надо на запуске приложения, очевидно.
Для это нужно добавить его в список дочерних процессов в твоём ProjectName.Application. Если предполагается иметь один инстанс то даёшь ему имя и потом по нему обращаешься.
https://hexdocs.pm/redix/real-world-usage.html#single-named-redix-instance
260 1613693
>>613645
Спасибо! Вроде листал этот док, но видимо было не по глазам.
261 1614238
>>613638
Как та пропустил ОТП и пошел сразу писать на фениксе ?
263 1614340
>>614238
Я так понял, что элик без феникса особо не нужен, и его везде требуют по умолчанию.
264 1614346
>>614340
Сейчас бы учить Elixir, чтобы устроиться по найму и педалить вебню на фениксе за мелкий прайс. Когда можно запилить собственную биржу или платформу для трейдинга с микросекундными задержками.
265 1614357
>>614346
Ну давай уже ссыль на свою биржу, так и быть, заценим.
266 1614363
>>614357
Рубиребенок порвался, спешите видеть! Скорее беги заучивать эйпиай своего фуникса и пиши блоги, лул!
1.jpg35 Кб, 640x640
267 1614497
В чем все-таки сильные стороны, за которые выбирают Erlang/-oподсосы, а не Scal'y/Clojure?
268 1614519
>>614340
Вообще-то нужен.
Феникс по большому счёту нужен только для написания веб API, и то не для всего, например, для graphql свой фреймворк идет.
Если у тебя весь бекенд - это просто REST API прокладка для базы + сервер авторизации, то кроме феникса можно ничего не знать, но это редкость.
269 1614537
Опять язык одного фреймворка?
270 1614556
>>614519
У меня именно REST API сейчас, как прокладка к редис. пробую бота писать

>Вообще-то нужен.


Например? Без подъеба, мне правда интересно
271 1614571
>>614497

>Scal'y


Абсолютно чудовищный язык. Плохо абсолютно все, начиная от самого языка, который по сложности можно сравнить скомбинировав C++ Haskell и Brainfuck. Заканчивая качеством IDE, библиотек и прочего тулинга, который спотыкается на простейших кейсах и всячески портит тебе жизнь как разработчику. Пытаться перекатиться на данный язык может либо убер джава сениор с минимум 8 годами опыта в топовых конторах, либо мамкин любитель борщей, который прознал, что на Scala можно педалить pure FP.
Количество вакансий в стране можно перечислить по пальцам одной руки, и везде требуются люди уже с коммерческим опытом разработки - джуны и перекатывальщики с Java не нужны.

>Clojure


Отсутствие вакансий. Язык намного проще чем Scala, но не проще Erlang/Elixir. Используется преимущественно для клепания вебни мелкого пошиба.
sage 273 1614575
>>614571

>но не проще Erlang/Elixir


Спорное утверждение, в кложе синтаксиса вообще почти нет, что там может быть сложнее эликсира?
1.jpg21 Кб, 500x441
sage 274 1614576
>>614571

>который по сложности можно сравнить скомбинировав C++ Haskell


Ты долбаеб
275 1614578
>>614576
Ты просто никогда не писал на Scala, но что-то тут пукаешь в треде. Ты еще приведи пример размер спецификации языка, которая меньше Java, но почему то проблем с компилятором и сложность языка говорит об обратном.
276 1614594
>>614497
сетевые приложения
ВСЁ
277 1614662
>>614571

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


А как же Олежа? Каждые три месяца курсы для студентов БЕСПЛАТНЫЕ.
278 1614681
>>614571
Для эликсира вакансий на порядок меньше той же скалы
279 1614745
>>614578
При чем тут Scala? Я спрашиваю про Erlang/Elixir
281 1614826
>>614662
Не знаю зачем Нижник этой хуйней занимается. Вместо того, чтобы переманивать джавистов на Scala, они берут нулевых студней и пытаются научить их писать pure FP код на Scala.
282 1614831
>>614826
потому что императивные привычки побороть труднее чем научить заново
283 1614836
>>614831
Пускай тогда продолжает обучать студней, раз такое дело. Я все равно туда не пройду. Старые привычки уже не выбить, как ты сказал.
284 1614843
>>614826

>pure FP код


Как будто что-то сложное
285 1614844
>>614571

>Язык намного проще чем Scala, но не проще Erlang/Elixir


Это же лисп, он вообще своеобразный, код в виде аст, всякие дефтайпы, рекорды, мультиметоды, да код маленький получается в объеме но думать надо больше.
286 1614863
>>614836
Всем похуй на твое нытье чел
287 1614868
>>614863
Понву привет
288 1614870
>>614868
Тебя там говном чтоли закидали что ты уже не первую неделю бегаешь по доске и верещишь про понв и борщехлебов?
289 1614874
>>614870
Прекращай травить, предатель! Лучше проверь, готов ли твой туз?!
290 1614886
>>614874
Кто тебя травит, шизоид. Иди лучше скалу учи и перекатывайся к нам.
291 1614892
>>614886
Куда к "вам" то? Вам не нужны люди с опытом. А ваше зубодробительное собеседования я все равно не пройду. Сами же пишете, что нужны люди с продакшен опытом разработки на Scala. Перестаньте дурить народ и возвращайтесь к своим студентам!
image.png34 Кб, 661x350
292 1614893
>>614892

>Вам не нужны люди с опытом.


>Сами же пишете, что нужны люди с продакшен опытом разработки на Scala.


ТЫ лично не пройдешь потому что ты отбитый нахуй
Остальные пройдут при желании
1.jpg61 Кб, 957x621
293 1614899
>>614893
Так а зачем скала когда есть те же хаскель с кложей
294 1616143
Фанбокс вообще набирает или только рынок мониторит?
К ним с годом опыта .NET без опыта в эликсире реально прыгнуть, или маловато для них?
295 1616255
>>616143
Пишешь, дают тестовое. Если норм сделал, то пригласят на собес. Все просто.
296 1617490
почему Эрланг для реал тайма лучше чем джава?
297 1617521
>>617490
работа в репле
298 1617629
1
299 1617780
>>617490
Там есть процессы.
300 1617831
>>617780
А джава не умеет или умеет,но через костыли?
301 1617909
>>617831
Там нет процессов. Из коробки только нейтив треды, программировать на которых что-то имеющее больше, чем два потока - оче неприятно. Есть либы типа дистраптора, которые немного упрощают жизнь, но всё равно говно. Ещё есть Akka, но она больше из расчёта на Scala сделана и джава мирке не особо популярна.
302 1617923
>>609728
Спасибо, анон. За 3 потных вечера после работы разобрался с этой хуйней
303 1617925
>>612138
Погугли за перегрузку функций
304 1617982
>>617909
объясните мне тупому,где больше производительность-при многопоточности или асинхронности?
305 1617993
>>617982
Они друг другу ортогональны.
У тебя может быть асинхронная однопоточность, или не-асинхронная параллельность и всё вместе или ничего из.

>где больше производительность


Смотря какая задача решается. Если нужно просто матрицы перебошить, то нужна обычная многопоточность (допустим через MMP или вообще OpenCL). А если допустим по хитрому алгоритму перекладывать данные по потокам - то тут уже без годной асинхронной (конкурентной) модели не обойтись.
306 1617995
>>617993
интересует веб направление с элементами тырпрайза
307 1618003
>>617993

>OpenMP

308 1618005
>>617995
Ну тогда надо брать Elixir или Scala + Akka.
309 1618032
>>618005

>Scala + Akka


Зачем, когда есть Elixir? Elixir по всем фронтам уделывает Scala+Akka.
310 1618126
>>618032
Скала выразительнее как язык, там продвинутая система типов, доступ к явалибам и общий перформанс у JVM выше чем на BEAM. Кроме этого, редкие места, требующие оптимизации, можно переписать мутабельным кодом.
311 1618136
>>618126

>там продвинутая система типов


Не плюс.

>общий перформанс у JVM выше чем на BEAM


Спорное утверждение, "общий перформанс" чего? Для распределенной системы ты не найдешь более проверенной и быстрой платформы, чем OTP, а если "перформанс" подразумевает под собой перекладывание чисел, то это все равно не в скалу.

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


...но лучше переписать их на си, ассемблер, го, раст и прочее, как это делается везде.
312 1618147
>>618136

>Не плюс.


Схуев ли? Потому что ты сказал?

Мимокрок в поисках шарпотреда
313 1618175
>>618126

>Скала выразительнее как язык


Если под выразительностью ты понимаешь количество фич в языке, тогда да, пожалуй соглашусь. Если Erlang/Elixir + OTP учится условно за несколько недель максимум пару месяцев, то на Scala можно убить от полугода до года, чтобы начать работать с языком на уровне Java++. Т.е. я не говорю о pure FP подходе и использовании сторонних либ от typelevel. На изучение Akka ты еще потратишь добрых пару месяцев пока дойдешь до момента, когда сможешь собрать небольшой проект.

>доступ к явалибам и общий перформанс у JVM выше чем на BEAM


Ну мы же с тобой понимаем, что Erlang/Elixir берут не за чистый перформанс в плане числодробилки, а из-за BEAM и его способности автоматически скейлится по ядрам и писать распределенные приложения без боли.
Если тебе так важна производительность в плане числодробилки, то ты всегда можешь подключить к своему коду на Erlang/Elixir нативный модуль через NIF/Ports. Так сделали ребята из Demonware, например.
Я не говорю уже о STW в JVM GC, которые останавливают все потоки в твоем приложении, чтобы собрать мусор. BEAM умеет собирать мусор по процессам, не останавливая все приложение.

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


Тут мы снова возвращаемся к тебе о нужности Scala как языка. Если тебе так критичен перформанс, что ты можешь забить на функциональный подход и начать лепить сайд-эффекты (хотя я прекрасно понимаю, что та же стандартная библиотека коллекций в Scala на 99% состоит из императивного кода с сайд-эффектами), то может быть и не стоило ее использовать изначально? Видно же, что платформа не тащит функциональный код, а для написания императивного кода всегда можно взять тот же Kotlin или последнюю версию Java.

Это я еще не затронул тему поддержки со стороны IDE, качество популярных библиотек и фреймворков. Erlang/Elixir просты как дважды два, поддержкой этих языков в той же IDEA занимаются два человека - один поддерживает Erlang плагин, другой - Elixir плагин.
При этом там все работает и багов практически нет.
Если ты хоть раз пытался написать что-нибудь сложнее Hello World на Scala в IDEA, то наверное в курсе как плохо она перемалывает код на Scala. Т.е. там могут не работать вполне себе очевидные вещи. Есть еще VSCode с плагином Metals, но он далек от идеала и не претендует на звание полноценной IDE. Стоит ли говорить, что тормозит он похлеще IDEA.

Что касается библиотек и фреймворков, то тут тоже не все так очевидно. Lightbend, который занимается разработкой фреймворков для Scala, могла родить только Akka, которая более-менее работает, хотя не претендует на pure FP подход. Play можно сказать уже похороинили. Slick так и не стал де-факто FRM либой для Scala стека. Lightbend это знает и чтобы не терять клиентуру набросала Lagom - фреймворк-комбайн, который в первую очередь ориентирован на Java коммьюнити.

Typelevel стек ничем не лучше. Если ты решишь набросать простенький REST-сервис, то столкнешься с проблемой, когда Http4s не имеет множества фич и в принципе находится в т.н. инкубационном периоде. JSON парсингом занимается истеричка из Берлина, которая отказывается честно бенчмаркать свое поделие. Circe на самом деле не дотягивает до того же Jackson или GSON по количеству фич, скорости работы и простоте использования. Чего только стоит повсеместное использование неявных параметров - хуй проссышь как у тебя код работает.

Т.е. я что хочу скаать - если у тебя в планах пилить веб-сервисы, которые общаются с внешним миром по HTTP, сохраняют данные в какую-нибудь базу и делают не очень хитрую логику, то брать Scala сродни самозаовну.
Ты, конечно же, можешь взять Akka (akka-http, akka-streams), Slick и попытаться на этом запустить свой сервис, но ты очень быстро столкнешься с недостатком либ к которым ты наверное уже привык если ты пишешь на той же Java (Spring) или Elixir/Erlang.
Например, проблема web-security до сих пор не решена в той же Akka. Тебе нужно это пилить самому, когда та же самая проблема решается десятью строками кода на Java + Spring.
313 1618175
>>618126

>Скала выразительнее как язык


Если под выразительностью ты понимаешь количество фич в языке, тогда да, пожалуй соглашусь. Если Erlang/Elixir + OTP учится условно за несколько недель максимум пару месяцев, то на Scala можно убить от полугода до года, чтобы начать работать с языком на уровне Java++. Т.е. я не говорю о pure FP подходе и использовании сторонних либ от typelevel. На изучение Akka ты еще потратишь добрых пару месяцев пока дойдешь до момента, когда сможешь собрать небольшой проект.

>доступ к явалибам и общий перформанс у JVM выше чем на BEAM


Ну мы же с тобой понимаем, что Erlang/Elixir берут не за чистый перформанс в плане числодробилки, а из-за BEAM и его способности автоматически скейлится по ядрам и писать распределенные приложения без боли.
Если тебе так важна производительность в плане числодробилки, то ты всегда можешь подключить к своему коду на Erlang/Elixir нативный модуль через NIF/Ports. Так сделали ребята из Demonware, например.
Я не говорю уже о STW в JVM GC, которые останавливают все потоки в твоем приложении, чтобы собрать мусор. BEAM умеет собирать мусор по процессам, не останавливая все приложение.

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


Тут мы снова возвращаемся к тебе о нужности Scala как языка. Если тебе так критичен перформанс, что ты можешь забить на функциональный подход и начать лепить сайд-эффекты (хотя я прекрасно понимаю, что та же стандартная библиотека коллекций в Scala на 99% состоит из императивного кода с сайд-эффектами), то может быть и не стоило ее использовать изначально? Видно же, что платформа не тащит функциональный код, а для написания императивного кода всегда можно взять тот же Kotlin или последнюю версию Java.

Это я еще не затронул тему поддержки со стороны IDE, качество популярных библиотек и фреймворков. Erlang/Elixir просты как дважды два, поддержкой этих языков в той же IDEA занимаются два человека - один поддерживает Erlang плагин, другой - Elixir плагин.
При этом там все работает и багов практически нет.
Если ты хоть раз пытался написать что-нибудь сложнее Hello World на Scala в IDEA, то наверное в курсе как плохо она перемалывает код на Scala. Т.е. там могут не работать вполне себе очевидные вещи. Есть еще VSCode с плагином Metals, но он далек от идеала и не претендует на звание полноценной IDE. Стоит ли говорить, что тормозит он похлеще IDEA.

Что касается библиотек и фреймворков, то тут тоже не все так очевидно. Lightbend, который занимается разработкой фреймворков для Scala, могла родить только Akka, которая более-менее работает, хотя не претендует на pure FP подход. Play можно сказать уже похороинили. Slick так и не стал де-факто FRM либой для Scala стека. Lightbend это знает и чтобы не терять клиентуру набросала Lagom - фреймворк-комбайн, который в первую очередь ориентирован на Java коммьюнити.

Typelevel стек ничем не лучше. Если ты решишь набросать простенький REST-сервис, то столкнешься с проблемой, когда Http4s не имеет множества фич и в принципе находится в т.н. инкубационном периоде. JSON парсингом занимается истеричка из Берлина, которая отказывается честно бенчмаркать свое поделие. Circe на самом деле не дотягивает до того же Jackson или GSON по количеству фич, скорости работы и простоте использования. Чего только стоит повсеместное использование неявных параметров - хуй проссышь как у тебя код работает.

Т.е. я что хочу скаать - если у тебя в планах пилить веб-сервисы, которые общаются с внешним миром по HTTP, сохраняют данные в какую-нибудь базу и делают не очень хитрую логику, то брать Scala сродни самозаовну.
Ты, конечно же, можешь взять Akka (akka-http, akka-streams), Slick и попытаться на этом запустить свой сервис, но ты очень быстро столкнешься с недостатком либ к которым ты наверное уже привык если ты пишешь на той же Java (Spring) или Elixir/Erlang.
Например, проблема web-security до сих пор не решена в той же Akka. Тебе нужно это пилить самому, когда та же самая проблема решается десятью строками кода на Java + Spring.
314 1618246
>>618126

>Скала


кошмар как язык
315 1618259
Да
316 1618271
>>618246
И это говорят в эликсир-треде?
317 1618319
>>596379 (OP)
Как так вышло, что на таком охуенном языке вакансий меньше, чем на мёртвых Objective-C, Delphi и Perl?
318 1618335
Эрланг,как и пхп-чисто серверные языки?
319 1618358
>>618147
1) Поскольку на языках без типов уже много лет прекрасно пишут продакшен приложения, то доказывать их полезность надо тем, кто за эти типы топит, а не наоборот.
2) Тесты поведения уже проверяют все то, что могли отловить типы, и если в проекте следуют TDD, то нужность типов сводится к нулю, только букв больше печатать.
320 1618366
>>618358

> на языках без типов


Такое невозможно.
image.png100 Кб, 680x680
321 1618375
322 1618455
>>618358

>Поскольку на чем то пишут, значит оно лучше остальных


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

>Тесты проверяют


Замечательно. А теперь представь что все тесты на типы за тебя пишет компилятор и ИДЕ моментально бьёт тебя по рукам при попытке написать некорректный код. Охуеть как заебись же, да?
image.jpg10 Кб, 300x249
323 1618457
>>618455
Да что это за языки такие "без типов", блеать? Может, в этих языках и управляющих конструкций нет???
1.jpg264 Кб, 3508x2334
324 1618473
>>618175

>"Язык" с GC


>скейлится


>важна производительность

325 1618542
>>618473
Ты прежде чем тут свои боевые картиночки бросать хотя бы почитай про модель памяти в beam

мимокрок
326 1618567
>>618473
Малолетний болван не понимает как работает GC в BEAM и пукает своими картиночками, лул!
327 1618636
Раз уж тут эксперты собрались, поясните за Ocsigen/OCaml для своего недо-стартапа? Там либ не очень много, но они качественней и покрывают основные нужды. Вроде и многопоток писать можно.
328 1618653
>>618636

>Ocsigen/OCaml


>2к20


>недо-стартап


>на полном серьезе обсуждать борщи


хех, мда...
329 1618786
>>618653

>пук


>среньк


>кудах кудах


Что сказать то хотел, инвалид?
330 1618794
>>618786

>Борщи не борщи!


>Мааам, неси борщец!


>Борщик-борщик, борщец мой любимый!


Ты это, давай прекращай там херней заниматься. Не видишь тут люди промышленные языки программирования обсуждают, а не твой никому ненужный мегаборщ окамл, лул!
331 1618882
>>618653
>>618794

>борщи


>Борщи не борщи!


>мегаборщи



Как вы смеете, я между прочим качественные программы пишу, а не ваши NaN / undefined дрисню.
332 1618895
>>618882
Прекращай травить, мерзавец!
333 1618910
Так в эликсире же есть тайпспеки и dialyzer, вам мало?
334 1619282
>>618175

>Erlang/Elixir просты как дважды два, поддержкой этих языков в той же IDEA занимаются два человека - один поддерживает Erlang плагин, другой - Elixir плагин. При этом там все работает и багов практически нет.


Только вот там кроме подсветки синтаксиса (очень тормозной) не работает ничего. В VSCode немного получше, но тоже очень грустно.
335 1619341
Допустим, я мидлоповидло в другом мейнстримовом ЯПе, я могу перейти на эликсир не дропаясь в зп? Англюсик б2 есть для работы, могу и на удаленку и в переезд, что один раз уже сделал.
336 1619502
>>619282

>Только вот там кроме подсветки синтаксиса (очень тормозной) не работает ничего.


???
У меня работает там всё что заявлено в плагине и релиз нотах:

Syntax highlighting and semantic annotation
Grammar Parsing (So good, it found bugs in the native Elixir tokenizer and parser)
Inspections with Quick Fixes
Code Folding
Commenter
File Templates
Graphical Debugger - works on all Run Configurations
Breakpoints (in .ex and .eex file)
Stepping
Stack Frames
Go up and Down stack without stepping program
Collapse and expanded nested data structures in local variables
Evaluate code in any frame in Evaluator
Customizable Module Filters
Delimiter/Brace Auto-insertion
Delimiter/Brace Matching
Embedded Elixir (EEx) Templates
Compilation
Decompilation
Dissassembly
BEAM Chunks viewer
Run Configurations
Distillery Release CLI
Elixir
Elixir Mix
Elixir Mix ExUnit
IEx
IEx Mix
Completion
Module Names
Aliases in Elixir Source
Atoms in Elixir Source
Decompiled Aliases from .beam files (Elixir SDK, Erlang SDK, and _build)
Decompiled Atoms from .beam files (Elixir SDK, Erlang SDK, and _build)
Function and Macro Names
Elixir Source
Decompiled from .beam files (Elixir SDK, Erlang SDK, and _build)
Module Attributes
Parameters and Variables
Formatting
Go To
Definition (of macro or function from usage)
Symbol
Module Aliases (Source or Decompiled)
Function and Macro Names (Source or Decompiled)
Test
Test Subject
Find Usage
Refactor
Rename
Moduel Attribute
Parameters and Variables
Spellchecking
Dictionaries for common dependencies:
Elixir
Ecto
336 1619502
>>619282

>Только вот там кроме подсветки синтаксиса (очень тормозной) не работает ничего.


???
У меня работает там всё что заявлено в плагине и релиз нотах:

Syntax highlighting and semantic annotation
Grammar Parsing (So good, it found bugs in the native Elixir tokenizer and parser)
Inspections with Quick Fixes
Code Folding
Commenter
File Templates
Graphical Debugger - works on all Run Configurations
Breakpoints (in .ex and .eex file)
Stepping
Stack Frames
Go up and Down stack without stepping program
Collapse and expanded nested data structures in local variables
Evaluate code in any frame in Evaluator
Customizable Module Filters
Delimiter/Brace Auto-insertion
Delimiter/Brace Matching
Embedded Elixir (EEx) Templates
Compilation
Decompilation
Dissassembly
BEAM Chunks viewer
Run Configurations
Distillery Release CLI
Elixir
Elixir Mix
Elixir Mix ExUnit
IEx
IEx Mix
Completion
Module Names
Aliases in Elixir Source
Atoms in Elixir Source
Decompiled Aliases from .beam files (Elixir SDK, Erlang SDK, and _build)
Decompiled Atoms from .beam files (Elixir SDK, Erlang SDK, and _build)
Function and Macro Names
Elixir Source
Decompiled from .beam files (Elixir SDK, Erlang SDK, and _build)
Module Attributes
Parameters and Variables
Formatting
Go To
Definition (of macro or function from usage)
Symbol
Module Aliases (Source or Decompiled)
Function and Macro Names (Source or Decompiled)
Test
Test Subject
Find Usage
Refactor
Rename
Moduel Attribute
Parameters and Variables
Spellchecking
Dictionaries for common dependencies:
Elixir
Ecto
337 1619510
>>619282
Работал в Коде, в Атоме и в Саблайме.
Торжественно заявляю, что это всё кусок говна по сравнению с плагином идеи.
338 1619587
>>619282
Ты с плагином Scala не путай, ок да?
sage 339 1619675
>>618455

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


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

>А теперь представь что все тесты на типы за тебя пишет компилятор и ИДЕ


"тесты на типы" не пишутся практически никогда. А если ты найдешь мне IDE, которая может за меня писать тест "если вызвать этот эндпоинт с таким сетапом в базе и такими параметрами, то вернется такой результат", то я сразу же на нее перейду.
340 1619721
>>619510
Да как? В идее даже Ctrl+B не работает толком.

>>619502
Больше половины не работает даже на стандартном фениксовском хеллоу ворде.
341 1619772
>>619721
УМВР. Хуй знает что у тебя там не так.
В ебаном VS Code даже Jump to definition по исходникам не работает и автокомплит супер-хуевый.
Screenshot from 2020-03-01 23-52-56.png99 Кб, 1128x686
342 1620477
>>619675
Sorbet проверяет типы в динамическом Ruby через IDE
343 1620591
>>620477
https://github.com/DarkDimius

Какая ирония! Разработчик компилятора Scala теперь занимается тем, что пишет тайпчекер для Ruby, лул! Вот до чего доводят борщи!
344 1621634
>>620477

>add sorbet types one file at a time


2k20 не уметь в вывод типов.
345 1621764
>>621634
Особенно если их в языке нет.
346 1624240
Неужели тут нет пищущих на этой годноте ?
347 1624275
>>624240
Я пишу, спрашивай
348 1624289
>>624240
Я шизик, который пытался писать веб на ОКамле, там фреймпорк даже есть. Но 5-часовой ебли с подключением дб и сидением в make файлах и разбором компиляции заставили меня все таки начать делать пет-проекты на Эликсире. И таки просто глоток свежего воздуха. Похуй уже на динамические типы даже. Да и выбирать вот реально не из чего сегодня. Не на шарпе, пэхэпэ или пайтоне писать же.
349 1624358
>>624240
Я работаю на нём уже лет 5.
350 1624418
>>624358
где вакансию нашел?
как вкатиться??
какие зп???
хочу съебать с питон-бекенда
351 1624483
>>624289

>Не на шарпе, пэхэпэ или пайтоне писать же.


Почему нет? У тебя каждый проект это хайлоад сервис с педаленьем байтов?
352 1624488
>>624483
Потому что говно языки, ООП не нужно.
353 1624678
>>624275
Хочу тоже перекатиться, но пугает малое количество вакансий. Как вообще искать их, и насколько безболезненно можно свичнуться без потери по зарплате ?
354 1624703
>>624678
Это самый неудобный вопрос в эликсир тредах
355 1624774
>>624703
Так я не тралирую, риал интересно перекатиться. Но пока немного пугает
356 1624818
>>624488

>ООП не нужно


>Будем хранить пользовательские типы в хешмапе


>user = {"userId" -> "huitka", "account" -> {"account_type" -> "zalupka"}}


>user.get("user_id")


>NPE


>да что ты будешь делать, так падажжии


>user.get("userid")


>NPE


>да ебанарот, так, как там было поле названо?! а, во!


>user.get("acount")


>NPE


>не гневайтесь Алексей Михалыч, сейчас все поправим!


>user.get("account")


>воо, заработало!

357 1624888
>>624418
Обычно вкатываются так: параллельно основной работе на другом языке учат Elixir, пилят учебные проекты, коммитят в либы на гитхабе, пишут свои, в своей конторе говорят - вот я изучаю Elixir, хотел бы на нём работать, если будет возможность. Когда в контору заходит потенциальный проект на Elixir, то менеджеры знают, что у нас есть такой-то чел, который мог бы взяться.
358 1624890
>>624818
К чему этот цирк? Если тебе нужны статические гарантии на ключи, используй структуры.
359 1624896
>>624888
Что бы бус фактор 1 был? Хуевые у вас менеджеры
360 1624900
>>624896

>бус фактор 1


Если там мелкий фикс-прайс проект, то чего бы и нет.
Если надо будет, то можно будет подключить ещё людей.
361 1624902
>>624900
И зачем на мелком проекте эликсир? Шоб было?
362 1624909
>>624902
Может к уже готовому допилить пару фич.
363 1624911
>>624902
Иногда заходят на пробу и смотрят как пойдёт.
Если норм, то потом уже подписывается долгий контракт, под это дело нанимаются еще разработчики, или берутся изнутри компании те, кто хотели бы вкатиться.
364 1624914
>>624888
А если я работаю в такой конторе, где не заходят мелкие проекты, а только на овер 100 чел ?
365 1624926
>>624914
Ливать от туда как можно скорее, очевидно же.
366 1624927
>>624926
Но кушать хочется, и все достаточно лояльно
367 1624933
>>624927
Тогда писать на чём дают и мониторить вакансии, иногда бывает набирают на Elixir людей без коммерческого опыта конкретно на нём, но с опытом на других зыках и в той же предметной области.
368 1624947
>>624933
И свалится по зп
369 1624950
>>624947
Тогда продавливай Elixir у себя в конторе, для внутренних проектов или хотя бы предложи брать проекты не только на 100 чел, но и небольшие.
370 1625005
>>624950
Как то слишком много многоходовочек нужно, что бы писать коммерческий софт на элике
371 1625144
>>625005
>>624818

>huitka ne huitka!

372 1625490
>>625005
Ну так ты сам привёл дохуя условий, которые мешают тебе это делать.
Скажу банальность, но чтоб что-то по существу изменить, нужно хоть немного покинуть зону комфорта, а отмазки можно придумывать до бесконечности.
373 1625911
>>625490

>покинуть зону комфорта


И оказаться без работы, сидя на шее у престарелых родителей и наворачивать мамкин борщец!
374 1625945
>>625911
Ну если ты такой лузер, то да.
В текущей конторе где я работаю вкатываются даже 20летние джеесеры. А в предыдущей людей вообще с улицы брали, правда там был ебейщий курс интернатуры, с менторами уровня Elixir Core Team.
375 1626559
>>625945

>В текущей конторе где я работаю вкатываются даже 20летние джеесеры. А в предыдущей людей вообще с улицы брали, правда там был ебейщий курс интернатуры, с менторами уровня Elixir Core Team.


Ну так им терять нечего, ни зп ни стажа нет
376 1626805
>>626559
Можешь тоже ничего не терять. Пиши на чём пишешь, в чём проблема.
377 1627006
>>626805

>Можешь тоже ничего не терять.


Но я не вкатыш и не жс-хипстер с 6 месяцами опыта
378 1627055
>>625945

>интернатуры


>пердоленье вебни с рубей на ылыксыр


лiл!
379 1627132
>>625945
Не общащай внимани на толстого. Как обстоят дела не только с вебом на феникс, есть ли риал хайлоада с всякими ассинхронными пайплайнами?
380 1627721
Эрланг медленный как пайтон, но из-за асинхронности ибет даже джаву в многопотоке.
381 1627745
>>627721
Просто сравни перфоманс Акки и Эрланга, лол.
382 1628198
>>627745
Жаль что Акка- хуйня, эдаких эрланг для бедных.
383 1628268
>>628198

>эрланг для бедных.


Боль Эрланг недоумка совсем незаметна, лул. Акка полностью портировала ОТП библиотеку, плюс накинула еще целый ворох интеграций и прочих библиотек для работы с данными. А ты и дальше продолжай переключать телефонные свитчи...
384 1628328
>>628268
В этом треде уже писали, что может Ерланг, чего не может Акка, и это знает каждый кто работал и с тем и с тем, или знает как акторы реализованы на обоих платформах. Для таких людей разница очевидна. Спорить с дауном, который писал в лучшем случае на акке нет смысла и интереса. Я ещё в 2013 тут нагибал шлаккадрочеров и тогда это было хотя бы забавно, но сейчас просто иди нахуй.
385 1628430
>>628328

>find("huitka")


>error - "huitka" ne huitka!!


>nu huitka!!


лол, кек, мда, хех...
386 1628445
>>628430
Привет, шизик.
387 1628649
>>628445
Прекращай травлю, мерзавец!
388 1641885
живи
389 1641904
>>641885
Куда ему, все на пщланг перекатились.
390 1641924
Синтаксис Пролога убил язык.
391 1642035
>>641924
Пролог - лучшее что случалось с программированием, и вообще единственная вещь которая оправдывает веру в человечество.
392 1642097
>>641924
Ты с Erlang путаешь.
393 1642476
>>641924
Синтаксис руби тогда уж
394 1642487
>>642476
Двачую этого, вот этот весь хипстерский сахарок бесит. Я уже писал об этом, но ебаные do end - это же те же самые всеми любимые C { }, только смузи version. Уебищные :atom key:, или как там, вместо эрланговского atom.
395 1642678
>>642487
Чел, тебя уже тут несколько раз обоссали. Успокойся.
Как бы там ни было, по сравнению с криптической ерлангопарашей, где ошибку длинней 1 строчки в терминале без крови из глаз прочитать невозможно, это всё равно намного лучше. Это я говорю как человек, который до еликсира 2 года писал на ерланге продакшн код.
396 1642682
>>642678
Андрей?
397 1648790
>>596379 (OP)
Что бы посоветовал написать на эликсире, чтобы понять его основные фишки и сильные стороны?
398 1648803
>>648790
Чат с конференц-румами.
399 1651304
>>597375
приват24 был на erlang
400 1651326
>>648790
Лучше бы ничего на этом язычке не писать.
401 1651490
>>651304

>был

402 1651811
Поясните за ерланг, нужен ли он и его синтаксис в 2к20 или можно просто забить на него и пользоваться эликсиром?
403 1651845
>>651811
Пользоваться эликсиром.
image.png21 Кб, 688x466
404 1652348
>>651490
После национализации ерланг тима сьебалась в другую контору.

Вот кстати вакансия на мидла
https://corezoid.com/jobs/
405 1652381
>>652348
Постой. Это же тот самый банк в котором работал Максим.
metaconf.png354 Кб, 1440x1271
406 1689205
16 мая | ONLINE
Backend meetup
Ruby, GO, Rust, Node.js, Python, Elixir

https://metaconf.net/backend-meetup-2020
407 1689341
>>689205

> регистрация

408 1768723
Какие перспективы есть у Elixir?
409 1768929
>>768723
Бытиё говна в проруби
410 1769006
Может ли модуль иметь поведение генсервера и супервайзера одновременно?
То есть можно ли ебануть
use GenServer
use Supervisor
и чтобы всё работало.

Что делать, если мне нужен генсервер, порождающий процессы и перезапускающий их в случае чего (например, генсервер - лобби игры создает процесс с игровой сессией)?
5e7d2681f41320c669f59325845d3b7b64556d26full.jpg7 Кб, 184x184
411 1769169
412 1769985
>>769006

>Может ли модуль иметь поведение генсервера и супервайзера одновременно?



Нет. Как минимум потому что в обеих проведениях есть init/1, но его спецификация отличается. И вообще у них разные задачи.

например, генсервер - лобби игры создает процесс с игровой сессией
Ты делаешь отдельный динамический супервизор и потом создаёшь процессы через него
https://hexdocs.pm/elixir/DynamicSupervisor.html
https://hexdocs.pm/elixir/DynamicSupervisor.html#start_child/2

Или, если речь про единоразовые таски то
https://hexdocs.pm/elixir/Task.html#module-supervised-tasks
https://hexdocs.pm/elixir/Task.html#module-dynamically-supervised-tasks
413 1786730
b
sage 414 1797779
>>769169
Но зачем? APL даже сам по себе не настолько мёртв. К тому же есть опенсорсный J, и проприетарный K.

На кого будет ориентирован этот язык? Никаких плюсов и вообще идей нового языка/диалекта перед APL в статье не написано.

Плюс APL был как раз в системе набора, использующей почти всю клавиатуру. Без этого он становится write-only, т.к. со скудным количеством ASCII-символов, которые можно набрать с клавиатуры, добавляются диграфы и триграфы - и один и тот же глиф может обозначать кучу разного в зависимости от соседних знаков, когда в APL значение одно и может зависеть только от числа аргументов (монадические/диадические функции, и то только у половины символики). А ради ньюфагов они от этого откажутся.
415 1839867
>>642682
Да. Сашка, ты?
416 1839868
>>651326
почему?
417 1839878
>>614594

> сетевые приложения


> ВСЁ



а что ещё надо?
418 1843363
Аноны, а какие-нибудь дженерик книги по функциональщине посоветуете? А то чёт прочёл Elixir in Action от Юрича, прочёл Programming Phoenix, работаю заебись, но хочется прям академически знаний в функциональном программировании поднабрать. Ну или best practices побольше.
419 1845637
>>843363
"Академические" знания по ФП тебе в эликсире не особо понадобятся.
420 1845644
Раз уж тред всплыл

Наконец-то сделали JIT для BEAM (8 лет разработки ебать), одно из редких успешных промышленных применений asmjit.

Оно будет уже в OTP-24.0
https://github.com/erlang/otp/pull/2745
https://www.erlang-solutions.com/blog/performance-testing-the-jit-compiler-for-the-beam-vm.html
https://thinkingelixir.com/podcast-episodes/017-jit-compiler-for-beam-with-lukas-larsson-and-john-hogberg/

Постестили перформанс на рэббите, там буст порядка 40%. В целом автор проекта говорит что на разных тестах разных приложений он получал буст от 30 до 135% по производительности.
Так что поздравляю всех эрлангистов, эликсирщиков и прочих пользователей BEAM.
421 1845646
>>845644
Охуенно
422 1845652
>>845644
Прикольно, что с JITом обычный jason стал уделывать jiffy, которая NIF на няшной. Завтра поставлю себе дев версию, надеюсь удастся повыбрасывать некоторые NIFы что мы на работке понаписали, заменив их обычным эрланг/эликсир кодом.
423 1846445
>>845637
Согласен. Но интерес так-то не пропал.
424 1853743
Бамп годному треду
425 1859875
>>768929
проруби
426 1874700
Живые есть?
427 1874714
428 1898372
>>596379 (OP)
Эликсир подходит для фуллстек разработки?
429 1898473
>>898372
Фулстак только на js. Возможно еще Dart - но ты скорее всего будешь первым (в истории) фулстаком на нем.
430 1898814
>>898473
clojure
431 1898869
>>898372
Да, если выбираешь SSR.

Вообще, Phoenix LiveView это глоток свежего воздуха: считай, минус вся остоебавшая SPA-поебень и вообще минимум js-дрисни. Чисто кайф.
image.png640 Кб, 900x611
432 1900056
>>598629

> ["sup", 2, "ch", 42, "14", :eighty_eight]

433 1982487
Пишу фронтенд на ember (тоже дитя руби мира), захотелось попробовать новый язык, просто как хобби проект. Выбрать эликсир и писать на нем rest для формочек-табличек это не совсем бессмыслица?
434 1982495
>>982487
Норм, мой первый проект на эликсире был где-то в 2015 ember + phoenix, мне понравилось. В эмбере , насколько помню, много хорошего с json-api было связанно, в эликсире есть норм либа для его поддержки.
Помимо этого видел где-то еще пару проектов на связке феникс + эмбер, хотя сейчас такого меньше, сейчас в качестве протокола чаще берут GraphQL + Relay и на фронте реакт. Лично я последний раз рестовую апишку видел в 2017.
435 1982619
>>596379 (OP)
Ох и зажрались программисты
https://2ch.hk/po/res/42638471.html (М)
Или эрлангистов это не касается?
sage 436 1982650
>>982619

>/po/



Фу, лоллируй отсюда, говноежка.
Тред утонул или удален.
Это копия, сохраненная 26 мая 2021 года.

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

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