LINUX.ORG.RU

Erlang/OTP R17

 , ,


1

4

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

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

  • Erlang/OTP был портирован на ОС реального времени OSE.
  • 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)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.