Pull to refresh
102
0.2
Роман Смирнов@Source

Head of Elixir at Ecom.tech

Send message

Не обязательно можно, неизвестно есть ли у списка функция создания из массива или нет. 

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

Я написал этот комментарий секунд за 10.

Ну хз-хз, я его ради интереса просто перепечатал и то 30 секунд заняло) Впрочем, скорость набора давно уже ничего не решает в программировании, тут минимум 95% времени тратишь на то, чтобы решить, что именно набирать))

Но каждому своё. Раз вам нравится, то никто ж не запрещает.

Понял о чём вы. Но это во-первых ортогонально метапрограммированию. Которое, например, может в первом случае формирование списка свести к

let list = LinkedList::from([1, 2, 3]);

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

Ответ был не про то, что метапрограммирование - конкурент Copilot, а о том, что с его помощью легко устранить, как минимум, 90% boilerplate.

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

Спасибо за ответ. Интересный вариант.

и более не писать, из года в год, тонны очень похожего кода ?

Откройте для себя метапрограммирование через манипуляции с AST.

Ну, кстати, да. Я когда его тестил даже не додумался писать какие-то магические комментарии. Он сам автодополнял код целыми кусками. На 3 с минусом дополнял, но в целом всё равно впечатляет)

Интересная трактовка эффекта Даннинга-Крюгера. Только в такой интерпретации он будет иметь фрактальный характер. Потому что вот эта стадия "готов к работе" - это по факту новый "пик глупости". Потому что человеку, который активно изучает программирование 3 года и уже даже работает программистом обманчиво кажется, что он всё понимает. А по факту он эдакий дилетант под прикрытием :)

Да, действительно интересно. Про школу речь не шла. Речь шла про предыдущие 14 лет, т.е. начиная с 26 лет в вашем случае. Наверняка ведь вы постоянно заходили на разнообразные сайты с 26 по 35 лет, даже скорее всего на ежедневной основе. Прям вообще было неинтересно как оно работает? И только случайные советы и курсы пробудили интерес к этой области?

При откидывании языков под JVM и .NET действительно остаётся не так много из относительно мейнстримовых (я определяю по наличию веб-фреймворка с кол-вом звёзд более 10k):
Elixir, Go, NodeJS - которые под вашу задачу подходят.

Ну и знаменитая троица PHP, Python, Ruby, которые для игрового сервера не особо подходят.

Я один момент не понял в вашей истории: вы только на одно собеседование сходили как ВУЗ закончили? Что за город или хотя бы какого плана (население, областной центр или нет)? Имхо, в 2012 году проще всего было бы на стажировку куда-нибудь в Epam, Accenture или Luxsoft пойти, ну или в мелкую веб-студию, опыта набираться.

А второй вопрос: за 10 лет написали какие-нибудь pet-проекты для себя?

Так вот в этом и был изначальный вопрос, что побудило человека переключиться на абсолютно новую для него область? Осознаёт ли он масштаб сложности? Готов ли, как минимум, 3 года почти всё своё свободное время посвятить изучению этой области? Или это просто временная блажь под действием какой-то рекламы или ещё чего-то?

Вопрос был в том, почему не Nim? Он с вашими задачами тоже справился бы, но больше на Python похож и лишён многих недостатков Go.

Далее - Scala, Rust, Julia иди Crystal не эзотерические. Вполне себе инструменты. NodeJS тем более. Но сравнивают почему-то с Elixir. Niff said.

У вас какая-то предвзятость к Elixir)
Конкретно для веб-разработки он всё-таки популярнее Rust и уж тем более популярнее Scala, Julia и Crystal. Посмотрите хотя бы на те же звёздочки на Github для самых популярных веб-фреймворков на этих языках. А по опросу StackOverflow Phoenix вообще 1-е место в списке most loved фреймворков занял в этом году. Да и сам Elixir занял 2-е место после Rust в списке most loved языков.

Если говорить об оптимизации на низком уровне - лучше Pure C я пока ничего не встречал. Даже Rust просто даёт не защищённый режим, где вы можете сделать "быстро".

Тут ещё важный аспект, что либу на C или на Rust легко можно подключить почти к любому популярному ЯП через NIF или FFI. С Go такое не прокатит.

Сравнение Golang и Elixir: а почему именно Elixir? 

Я, кстати, в 2015 году тоже именно такое сравнение устраивал. В моём сравнении победил Elixir, для веб-разработки он подходит гораздо лучше, чем Go. А за счёт применения возможностей OTP ещё и в скорости его обходит на большинстве практических задач. Веб-разработка она де-факто про ФП, и то что на неё под влиянием моды натянули ООП в стиле GUI-программ - это, пожалуй, один из самых больших косяков во всей этой отрасли. Пол Грэм ещё 20 лет назад всё объяснил, но большинство до сих пор отказывают себе в быстрой веб-разработке. Кстати, Elixir по сути своей является диалектом Lisp, и весь его синтаксис ничто иное, как DSL на этом лиспе написанный.

Насчёт Julia ничего не могу сказать. Не видел пока, чтобы её кто-то именно для веб-разработки использовал. А Crystal пока сыроват в плане конкурентности и параллелизма. Насколько мне известно, пока нет способа сделать так, чтобы программа на нём использовала, допустим, все 8 ядер процессора и нигде не сбоила.

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

Ну уж для хобби-проекта переписали бы на Nim. К чему эти страдания с Go? :)

Тогда ещё и Elixir в список языков добавьте. А то Erlang есть, а Elixir нет. Печаль(

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

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

Так тут нет универсального ответа или какой-то одной "священной" книги.

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

Information

Rating
3,018-th
Location
Россия
Works in
Registered
Activity