Pull to refresh

Comments 21

А конкретно при выборе Эликсира для разработки какая цель преследовалась? Просто в плане сопровождения далеко не самый популярный ЯП.

У Elixir есть много шансов стать языком программирования ближайшего десятилетия. Например Elixir благодаря Erlang VM (BEAM) по максимуму будет использовать все ядра вашего железа! Работа с памятью в Elixir тоже устроена на ура! И отказоустойчивость, которой знаменит Erlang, тоже достижима в Elixir.


А ещё я обещал одному HR, что напишу API на Elixir. Обещания нужно исполнять :)

У меня странное ощущение, но я действительно не понимаю, зачем нужен Elixir, если есть преотличнейший Erlang? Все киллер-фичи Эликсира, в том числе и перечисленные Вами выше — цельнотянуты из Эрланга. Зачем-то приделали мутабельность данных и модный ruby/python-like синтаксис. Нет, из буханки хлеба можно сделать троллейбус, но зачем?
На эрланге попрограммируете, и поймете для чего нужен элексир.
Эрланг — чистый функциональный язык, и не скрывает этого, что накладывает на программиста чрезмерно много требований к его квалификации, Элексир по-проще намного.
На эрланге попрограммируете
Почему вы думаете, что я не программировал на Erlang?
Эрланг — чистый функциональный язык
Joe Armstrong (один из создателей Erlang) как-то назвал его «the most object-oriented language». Но бог с ним, с Джо, один черт Erlang — НЕ чисто функциональный язык.
накладывает на программиста чрезмерно много требований к его квалификации
Я всю свою долгую жизнь думал, что профессия программиста накладывает много требований к квалификации, если это программист, а не манки-копипастер со StackOverflow. И «чрезмерно» тут не бывает, no pain — no gain.
Элексир по-проще намного.

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

Основное отличие Elixir от Erlang — это возможности метапрограммирования в стиле Lisp, ну и более удобный тулинг. Остальное — по сути либо следствия, либо мелочи.
P.S. Мутабельности данных в Elixir нет, есть ребиндинг переменных, но это совсем не то же самое.

Навскидку:


  • Более привычный "хипстерам" синтаксис == много новых людей == развитие экосистемы
  • Честные utf-8 строки везде
  • Консистентная стандартная библиотека
  • Нормальный менеджер зависимостей
  • Mix
  • Достаточно удобное метапрограммирование
Огого! Ну да, пожалуй из-за Эрланга стоит присмотреться к нему повнимательнее, благодарю за введение) Ну а для веб-разработки (именно сайтов) он как, годится, или как для Питона без Джанго какого-нибудь лучше не начинать?
Для web-разработки попробуйте, например, посмотреть на Zotonic. Это Erlang :)

Тогда уж N2O, а то Zotonic больше на аналог Wordpress тянет.

Ну а для веб-разработки (именно сайтов) он как, годится, или как для Питона без Джанго какого-нибудь лучше не начинать?

Для Elixir есть Phoenix.

Простите, из статьи так и не понял: зачем это нужно?

Одна из целей, популяризация функционального языка программирования Elixir.

Я не про язык, зачем нужен сторонний read-only API для стикеров какой-то соц. сети? Или это у вас просто «Hello World» такой?

Да, для меня это точно "Hello World" на Elixir.

Ну во первых, сеть далеко не «какая-то», будем честны) А во вторых — вроде бы как автор объяснил в самом начале, что как такого API для доступа конкретно к стикерам эта «какая-то» соц. сеть не предоставляет. Или я не понял вопроса?

P. S. А «Hello World!» знатный получился)
Ну вот видите, если не предоставляет, значит создатели тоже не понимают, зачем он нужен.

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

«Hello World» — я не про сложность, а про то, что это на практике никому не нужно.
Ну у создателей, как минимум, могли просто не дойти до этого руки, ибо и других дел хватает, кроме как писать API для пары картинок, а во вторых — и правда возможны проблемы с авторскими правами, тут Вы правы.

А про знатность имел ввиду, что труд автора действительно заслуживает внимания, ибо по сути он показал процесс разработки полноценного приложения на Эрланге по сути, плюс он и сам сказал, что это не более чем очередной «Hello World», ибо в разработке пректика играет ключевую роль, поэтому приходится разрабатывать то, что скорее всего сгодится только для оттачивания навыков. Или, как в случае с поделкой автора, она может быть и полезна.

У меня вообще вон валяется CMS уровня Юкоза (реально, без шуток). Да, времена прошли, да, никому не надо, однако если бы я не создавал ее несколько лет, по сути только благодаря ей (и php.net) оттачивая свои навыки — я бы вообще программировать не научился.

Статья отличная, но есть вопросы


  • parsers не нужны, потому что есть Plug.Conn.fetch_query_params/1
  • а вот где вы взяли send_json_resp — я так и не понял

Спасибо! Да, вот эту практику я и не нашёл https://hexdocs.pm/plug/Plug.Conn.html#fetch_query_params/2.
Что касается send_json_resp/3, то я его сам написал, находится в контроллерах, выглядит так.


defp send_json_resp(conn, response, status \\ 200) do
  put_resp_content_type(conn, "application/json")
  |> send_resp(status, response)
end

Для этого можно сделать отдельный plug — если у вас все ответы в json


  #router.ex

  plug Plug.Logger
  plug :match
  plug :dispatch  
  plug :resp_with_json

  def resp_with_json(conn, _opts) do
    conn
    |> Plug.Conn.put_resp_content_type("application/json")   
  end
Sign up to leave a comment.

Articles