Рубрика «erlang» - 6

Параллельное программирование для начинающих на ЯП Elixir   Erlang VM на примере задачи «конь Эйлера»

Вступление

Чуть больше года назад я сделал очень важный в своей жизни поступок — скачал с сайта Microsoft IDE Visual Studio и написал на языке C++ свою первую в жизни программу, как это ни странно — «Hello, World!». За следующие полгода я прочитал небезызвестную книжку Страуструпа, устроился на работу джуниор С++ разработчиком, попробовал писать на Lua, Python, но каких-либо значительных успехов не добился — мои библиотеки не работали, программы с трудом компилировались и падали в runtime, указатели указывали не на те участки памяти (которая, кстати, всегда куда-то утекала), а попытки использовать больше одного потока (С++11 же!) приводили к порче памяти и дедлокам. О том, как выглядел код, лучше просто промолчать.

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

Примерно полгода назад я понял, что пора что-то менять, и после получаса поиска в интернете нашёл спецификации ЯП Erlang. В статье автор представлял Erlang как «чудесную таблетку» от всех вышеописанных мою проблем, и в общем-то по большей части он оказался прав. Так я начал программировать на Erlang, а затем и на Elixir.

Elixir Language

Elixir — язык, построенный поверх Erlang, результат компиляции — байткод Erlang VM. От Erlang он выгодно отличается простотой синтаксиса и мощным инструментарием для мета-программирования (люди, знакомые с Lisp сразу узнают quote-unquote конструкции). Соответственно, для использования доступен весь функционал Erlang, любые его модули и, что самое главное — фреймворк OTP.

Типы данных — те же самые, что и в Erlang. Данные — неизменяемые, результат действий с ними — новые данные. В Elixir как и во многих функциональных языках работает принцип «Всё — выражение». Любое выражение вернёт значение.

У ЯП Elixir есть отличный интерпретатор, который устанавливается вместе с языком, в нём можно опробовать примеры.
Читать полностью »

Здравствуй, читатель!

Практический каждый web-разработчик, рано или поздно сталкивается с пожеланием типа: «Хочу сообщения, как в контакте». В каждом проекте, это означает что-то своё, но как правило, везде присутствует обмен сообщениями между пользователями в реальном времени. И тут начинается веселье…
Читать полностью »

imageХороший понедельник! Мы продолжаем изучение Erlang для самых маленьких.

В прошлой главе мы разобрались с синтаксисом функций. В этой главе мы познакомимся с системой типов языка.

Читать полностью »

Хакатон как способ расширения кодерского сознания. Фото корреспондентский отчет

Проснувшись однажды утром… (нет). Проснувшись как-то вечером… (нет!). Короче, проснувшись однажды на работе солнечным утром (вот уже провокационно звучит), и протерев глаза от производственной рутины, подумал я о том, что команда наша — конечно великолепная, но технологически несколько узковата… “И надо бы покодить на чем нибудь другом!” — блеснул я оригинальной мыслью. И вот мы сделали собственный хакатон, который заточили не по тематике, а по технологии. Получилось, сразу скажу… неплохо.

Читать полностью »

imageНаверное на неделю игры 2048 на хабре уже не успеваю, но статья не столько о игре сколько о websocket сервере на Erlang. Небольшая предыстория. Когда начал играть в 2048, то просто не мог прекратить. В ущерб работе и семье. Поэтому принял решение, что играть за меня должен бот. Но загвоздка в том, что игра клиентская, из-за чего не ведется глобальный рейтинг и не так удобно играть без браузера. Поэтому я и решил сделать серверную часть, где был бы рейтинг. И где мог бы играть мой бот без браузера.
Читать полностью »

imageДоброго ночи! Мы продолжаем изучение Erlang для самых маленьких.

В прошлой главе мы рассмотрели как объявлять функции и как объединять их в модули. В этой главе мы рассмотрим синтаксис функций более подробно.

Читать полностью »

Привет!

Прошло уже больше полугода с момента старта проекта Хекслет. Напомню: мы проводим бесплатные онлайн-курсы по программированию и смежным дисциплинам. По традиции сегодня мы расскажем про новые курсы.

Статистика

  • Завершено четыре курса (всего – больше 100 уроков)
  • Сейчас в процессе – еще три курса, + запланирован старт двух курсов
  • 19 000 студентов зарегистрировано
  • Они сдали более 450 000 тестов
  • Просмотров лекций – больше 277 000 (не считая подкастов в iTunes и раздачи через битторрент)
  • 444 000 посетителей и 1.6M просмотров страниц

Новые курсы

Erlang / OTP


Читать полностью »

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

  1. в документации сказано, что Amazon старается сохранять порядок сообщений, на сколько хорошо он сохраняется?
  2. как быстро происходит получение сообщения при использовании Long Polling?
  3. насколько ускоряет процесс пакетная обработка?

Читать полностью »

imageДоброго вечера, дорогие Хабровчане. Мы продолжаем изучение Erlang для самых маленьких.

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

В этой главе мы поднимемся на следующую ступень и рассмотрим модули и функции.

Читать полностью »

Erlang для самых маленьких. Глава 1: Типы данных, переменные, списки и кортежи
Добрый день, дорогие читатели.

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

От автора

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

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

Вместо этого я хочу написать цикл статей об этом языке, взяв за основу эту книгу. Ну и, как мне кажется, хабр — лучшее место для их публикации. Хочу обратить внимание: эти статьи — не вольный перевод вышеуказанного учебника. Мысли изложенные в книге — это основа, план повествования. Конечно, во многом они будут совпадать, но так же есть и интересные моменты из других публикаций и личного опыта (хоть и скромного).

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js