LINUX.ORG.RU

Erlang/OTP R17

 , ,


1

4

9 апреля вышел новый мажорный релиз языка программирования и платформы для создания отказоустойчивых, распределенных и высоконагруженных приложений — Erlang/OTP.

Основные изменения:

  • Erlang/OTP был портирован на ОС реального времени OSE (enea.com).
  • Maps — новый тип данных (долгожданные словари с паттерн-матчингом).
  • Множество улучшений в поддержке ASN.1.
  • Новая опция {active, N} для TCP, UDP, и SCTP сокетов.
  • Новый (опциональный) механизм балансировки использования планировщика.
  • Экспериментальные «dirty» планировщики.
  • Анонимные функции теперь могут быть именованными (EEP-0037, для удобной рекурсии).
  • Различные улучшения поддержки Unicode.
  • Новая схема версионирования OTP и приложений.

Полный список изменений

Скачать свежий релиз для вашей платформы

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: ymn (всего исправлений: 9)

О, отличная новость, только сел его учить. Хотя, переезжать ещё рано, посижу на 16.

Кстати, знатоки эрланга с опытом, чтобы не создавать отдельную тему: писать форумный движок с отдельными фичами на каком фреймворке лучше? Мечусь между ChicagoBoss и Zotonic.

Lilly ★
()

Анонимные функции теперь могут быть именнованными

Парадоксальненько. Но полезно, надо думать, благодаря доступности скоупа содержащей функции.

nemyax ★
()
Ответ на: комментарий от swwwfactory

...ждем пространства имен

module:funcname разве не обеспечивает этого пространства?

наследование

наследование чего? там нет классов и объектов. хотя, с другой стороны, ты всегда можешь реализовать псевдо объектную модель через record's, где методами будут выступать поля, которым присвоить предварительно соответствующие функторы. аналогичным образом объектная модель реализована на Си в GLib - там базовым примитивом является GObject, коя по своей природе является обычной структурой. Наследование же реализуется через вложение «родительской» структуры в дочернюю в самое начало.

Deleted
()
Ответ на: комментарий от swwwfactory

Это разве проблема?

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

Lilly ★
()

Очередная замануха для одиночных хомячков с немерянным самомнением от осознания того, что они смогли освоить что-то такое, что «недоступно» большинству стандартных php'шных «задротов». Конечно это не более чем очередной функциональный язык программирования, временно пользующийся своей эпохальной популярностью.

anonymous
()
Ответ на: комментарий от anonymous

это не более чем очередной функциональный язык программирования

Более. Это ещё и среда исполнения с системой событий, базой данных и другими ништяками. Функциональный язык — только малая часть ерланга.

nemyax ★
()
Ответ на: комментарий от Lilly

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

loz ★★★★★
() автор топика
Ответ на: комментарий от Apple-ch

Все в твоих руках. Я вот пришел с работы и запилил новость про язык который там использую ;)

loz ★★★★★
() автор топика
Ответ на: комментарий от Deleted

module:funcname разве не обеспечивает этого пространства?

это понятно, но костыльно. Имя файла в сабже все еще равно имени модуля вроде было требование. Забавно выдумывать уникальные имена в проекте и потом писать везде my_project_foo_bar_module.erl вместо src/module.erl

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

наследование

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

swwwfactory ★★
()
Ответ на: комментарий от loz

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

Сам язык как раз и учу по сей книге. А альтернативы...

Руби не моё, php не моё, пайтон с django|flask использовал, а больше альтернатив особых и нет. Брать ASP или перл - экзотика не менее эрланга, имхо.

Lilly ★
()
Ответ на: комментарий от loz

Ничего не слышал про это, откуда предположения?

Они вроде не framework-и и/или движки, а CMS - смотрел давно, личное ощущение создалось - монструозно. Хотелось бы что-то попроще,гибче, полегче и чтобы была большая свобода для действий и возможность менять веб-сервера легко, программировать AJAX/COMET без напрягов, компоненты... Возможно, там все это есть, но сходу не разглядел...

swwwfactory ★★
()
Ответ на: комментарий от Lilly

Кстати насчет эстетики мне сразу понравилось то, что принято не использовать импорты (я вообще долгое время думал что их нет), а всегда писать module:function, гораздо проще становится изучать код.

Для емакса edts must have.

Ну раз альтернатив нет то бери :) Хотя бы получишь отличную интроспекцию из коробки (сделай observer:start().)

loz ★★★★★
() автор топика
Ответ на: комментарий от swwwfactory

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

loz ★★★★★
() автор топика
Ответ на: комментарий от Lilly

Ну это на любителя :)

Поэтому только что-то с присутствием MVC

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

и удобными привязками к БД осилю, писать с нуля пока рановато будет, пока в фреймворках ковыряюсь.

Это слишком мягко стелишь - будет сенсорный голод и веселия с фантомами. Нормальные драйвера еще не стабилизированы, и лучше быть несколько ближе к слою БД чем прятаться за привязками - там самое эффективное. Самое главное не забывать делать prepare|bind parameters... иначе это может потеряться за привязками...

Key/Value DB можно легко реализовать средствами сабжа в большинстве домашних задач этого вполне хватит, но конечно не заменит SQL

swwwfactory ★★
()
Ответ на: комментарий от loz

Поставил закладку, спасибо, пощупаю на досуге.

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

Lilly ★
()
Ответ на: комментарий от loz

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

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

swwwfactory ★★
()
Ответ на: комментарий от nemyax

Более. Это ещё и среда исполнения с системой событий, базой >>данных и другими ништяками. Функциональный язык — только >>малая часть ерланга.

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

anonymous
()
Ответ на: комментарий от swwwfactory

Key/Value DB уже реализовано в сабже.

Fixed.

loz ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Программируешь ты тоже похоже в общих чертах. Покажи аналог ETS в твоем любимом яп, потом поговорим.

loz ★★★★★
() автор топика
Ответ на: комментарий от swwwfactory

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

Ошибся с выбором? Тогда, наверное, копать в сторону Go или опять искать yet-another-python-framework, который заинтересует.

Да, ещё один вопрос тогда: если я с вебом взаимодействую на уровне «навелосипедить костылей чтобы работало», то имеет ли смысл отходить от концепций SQL и лезть к, например, MongoDB? Будет ли какой-то профит, или получу только неудобства от непривычки?

Lilly ★
()
Ответ на: комментарий от Lilly

на уровне «навелосипедить костылей чтобы работало»

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

loz ★★★★★
() автор топика
Последнее исправление: loz (всего исправлений: 1)
Ответ на: комментарий от loz

Ещё одна закладка.

Ладно, так или иначе, видел пару проектов похожего вида на нём, буду пробовать. Спасибо за советы.

Lilly ★
()

Анонимные функции теперь могут быть именнованными

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

buddhist ★★★★★
()
Ответ на: комментарий от loz

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

anonymous
()
Ответ на: комментарий от Lilly

от задачи зависит: SQL/NoSQL в своих нишах. Зачем тебе монга? У сабжа полно своих реализаций, они ближе роднее. Насчет SQL: научишься писать джойны и рекурсивные запросы с хранимками - можешь выбросить (если захочешь). Особенно ценно одним запросом все получить нужное...

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

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

Везде своя реализация - на каждом уровне в общем.

swwwfactory ★★
()
Ответ на: комментарий от loz

Так эрланга в вебе мало, серьезной необходимости во всем >>этом нет, а у тех у кого есть как-то сами решают.

Так он там неэффективен. Ему там и не место. Ну разве что каких-то очень специфичных для него местах, да и то редко.

anonymous
()

Поздравляю всех, пацаны! :)

renya ★★★★★
()
Ответ на: комментарий от swwwfactory

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

Спасибо за отзывы - буду пробовать, новый опыт всегда полезен.

Lilly ★
()
Ответ на: комментарий от loz

Аналог ETS в студию, я уже говорил тебе.

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

anonymous
()

Erlang/OTP был портирован на ОС реального времени OSE.

Ждём умные часы на чипах ST-Ericsson с оболочкой на Эрланге?

MiniRoboDancer ★☆
()
Ответ на: комментарий от buddhist

Поэтому я добавил ссылку на описывающий документ.

loz ★★★★★
() автор топика
Ответ на: комментарий от ates

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

anonymous
()
Ответ на: комментарий от anonymous

Вода какая то, особенно про «структурно и архитектурно сложных системах»

ates ★
()
Ответ на: комментарий от anonymous_coward

Может, тогда лучше сразу писать на Scala?

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

А она умеет: «hot code loading», ноды, rpc-call, паттерн-матчинг, атомы, term_to_binary и обратно даже для анонимных функций, есть истории успеха ?

Пока от скалы только paredit у меня (вроде изначально для нее было сделано) :) нет - вру - paredit вроде для Clojure - да легко спутать :)

swwwfactory ★★
()
Последнее исправление: swwwfactory (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.