185 похожих чатов

Ну, так - шо, грамодяне-эрленгяне? Все - готовы подписаться под словами

"гуру" на счёт трудности применения POSIX threads и про, конкретно, мьютексы, что "... недопоставишь мьютексов - у тебя будут рейс-кондишны, перепоставишь - дед-локи..." ?

21 ответов

19 просмотров

Давай рил кейс и язык, на котором надо, сделаю всего за пару сотен

Wlad- Автор вопроса
Sergei
Давай рил кейс и язык, на котором надо, сделаю все...

Ау! Дядько, переключись и внимательно почитай, что было написано-спрошено. Отвечайте по теме вопроса, а - не голосам в своей голове...

Wlad- Автор вопроса
Sergei
Лiл

Всё вылил?

Wlad- Автор вопроса
Sergei
Лiл

Чи цэ - якысь алюзийи на потуги на "украйинську"? :)))

Wlad- Автор вопроса
Sergei
Да

Тоды цэ - не вирно. Залышаеться "ЛОЛ", тому, що - пряма транслытэрация з англиськойи абревиатуры ("lol").

Wlad- Автор вопроса
Sergei
Хорошо, спасибо, буду знать

Вы - не стесняйтесь, спрашивайте. Например, - про те же позикс-потоки или мьютексы... :)))))))

Wlad
Вы - не стесняйтесь, спрашивайте. Например, - про ...

Спасибо, но про них я уже спрашивал в чате изучения украинского языка

Wlad- Автор вопроса

А вы писали многопоточные и асинхронные вебприложения на C/C++?

Wlad- Автор вопроса
Lama Lover
А вы писали многопоточные и асинхронные вебприложе...

Что понимать по "веб"? Сетевые драйверы для xBSD и Linux - да, и библиотеки для поддержки некоторых низкоуровневых сетевых протоколов на микроконтраллерах - да. Сетевой обмен с их использованием (трансляция видеопотоков, речи и большого объёма параметров в реал-тайме) - да.

Wlad
Что понимать по "веб"? Сетевые драйверы для xBSD и...

Вебприложения. Типа там сложный динамический вебсайт или сложный REST или какой-нибудь ещё веб API

Wlad- Автор вопроса
Lama Lover
Вебприложения. Типа там сложный динамический вебса...

Нет. У меня больше - ОЧЕНь низкоуровневые задачи были. Удалённый доступ к устройствам, передача с них данных, организация видео, речевого и командного обмена... Написание своих файловых систем для поддержки всего этого на устройствах гранения данных и написание драйверов для ОСей под такие ФС...

Lama Lover
Вебприложения. Типа там сложный динамический вебса...

На моём опыте на C++ такое очень сложно делать, и про локи правильно сказано. Как только случается первый deadlock или race condition, который дебаггер уже не поможет воспроизвести, становится очень тяжело. Поэтому люди начинают наперёд мютексы делать на каждый доступ к shared memory, который становится не таким уж и shared

Wlad- Автор вопроса
Lama Lover
На моём опыте на C++ такое очень сложно делать, и ...

Может быть, это - как раз следствия НЕПОНИМАНИЯ, как правильно проектировать? Всякий инструмент можно обругать, если просто не знать, как его адекватно и "к месту" применять...

Wlad
Может быть, это - как раз следствия НЕПОНИМАНИЯ, к...

Полностью согласен, нужно сначало проектировать и всё продумать. Сначала вы решите что надо бы поменьше мутабельности, как можно больше на стеке, refc или unique хотя бы использовать. Потом вы решите что лучше вообще память не делить, а использовать какую-нибудь систему сигналов, где поток имеет очередь из которой читает только он, а пишет любой кроме него. Потом вы решите что ещё неплохо бы придумать что-нибудь для работы в кластере, чтобы скейлиться можно было. И потом продумаете систему обработки ошибок, пуллинг. Возможно через пару лет вы даже дойдёте до тюнинга affinity и под NUMA... Ничего не напоминает? Так ещё и окажется, что эти ваши решения проектирования, они только ваши, поэтому онбординг каждого нового разработчика будет начинаться с изучения истории проекта от первого дня, под все эти ваши особенные решения. А на ревью придётся очень долго учить, почему мы вот это не используем, и вообще лучше бы вот так писать.

Wlad- Автор вопроса
Lama Lover
Полностью согласен, нужно сначало проектировать и ...

Так я почему и пришёл сюда... За много лет работы в реал-тайме и написания собственных "лисапедов" + работа на QNX и Minix, сформировалось ощущение и виденье, что, в ряде задач, постоянно повторяются одни и те же действия, "паттерны", "дисциплины" и подходы. Некий "общий знаменатель" организации и обмена потоками данных в сетевых распределённых системах (не только ОСях, но и системах управления, например). Я почему в одном из первых сообщений и написал, что первоначальное ("прикидочное") знакомство с Эрлангом, натолкнуло на мысль, что его создатели учли опыт работы в системах с микроядрами, строгой изоляцией процессов и передачей сообщений между процессами (с блокировками и без). Пока, что, у меня складывается отношение к Эрлангу, как к воплощению таких приёмов (описанных выше) в такого рода системах. Как к некоему "скрипт-языку", в котором закрепили соответствующие "паттерны" и "подходы". Проблема в том, что закрепление таких знаний в библиотеке (например, как в Си++ с поддержкой многопотоковости) имеет совсем другую "природу" и "уровень строгости", чем, если бы это было сделано в самом языке. Взять, опять, тот же самый Си++. Перед 11-м стандартом все ждали, что в язык будет добавлена поддержка мнопоточности... И, внезапно, оказалось, что всё это "слили" в одну из частей стандартной библиотеки! Причём, самым каличным образом! - по сути, сделали некие объектные оболочки над системной реализацией чего-то, по типу позиксных потоков. Для разработчиков НИЧЕГО не поменялось в подходах в разработке многопоточных систем. Все проблемы "решений" перетекли от использования "чистых" позикс-потоков - к использованию "классов"-обёрток. Да ещё и добавились новые "нюансы", которые - тоже надо учитывать. С одним уродством "модели памяти" и атомиками - сколько несуразностей возникает и ЛИШНИХ действий... В Эрланге (насколько я сейчас вижу), за счёт "настроенности" САМОГО языка на подобный класс задач (поддержка организации и параллельная работа ОГРОМНОГО количества "активных агентов") отпадает много проблем с "кто - в лес, кто - по дрова" при разработке таких систем "вручную". В своё время, было, конечно, интересно реализовывать свои версии "акторов" и "активных объектов". Оно работает, используется (например, в связных библиотеках нескольких фирм, разрабатывающих ПО для устройств "умного дома")... Но - всё равно. ЭТО - БИБЛИОТЕКА. Это - не строгое что-то, что согласны соблюдать пользователи- разработчики. А возможности тех же микроконтроллеров - значительно выросли. Я уже вижу, что я вполне могу теперь запускать Эрланг-систему и даже - не "париться" уже особо на счёт ресурсов. Причём, там, где даже лет 10 назад и подумать нельзя было использовать что-то, кроме Си или Форта! :) И, на этом всём, хотелось бы сформировать: "виденье", дисциплину разработки и набор подходов, которые обуславливаются не тем, что захочет МОЯ или ЧЬЯ-ТО ещё левая пятка, а - ограничениями и требованиями СТАНДАРТОВ языка. То есть, от чего мы просто не сможем "отмахнуться" или на что "забить" и иметь отговорку "я - творец, я - так вижу". Фух... Ну - вот. Примерно так.

Wlad- Автор вопроса
Wlad
Так я почему и пришёл сюда... За много лет работы...

Естественно, что мне, первым делом, хочется уяснить, как будут отличаться подходы к проектированию при использовании языков, типа Эрланга от того, к чему я привык в ОО(+многопоточность)-проектировании. Какие особенности в общем мира ФП и конкретно свойства Эрланга будут определять как способы проектирования, так и конкретные решения в проектируемых системах. И я пока не могу даже стартовые "затравки" сформулировать, потому, что наткнулся на какую-то стаю прыгающих и визжащих инфантильных бандерлогов. Отвратительное зрелище, если честно. Просто - какая-то банда инфантилов, зацикленная на каких-то своих комплексах и "чувству сопричастности". Пробиться через это (надеюсь) пока - просто невозможно. Есть несколько "центров кристаллизации" по организации галдежа и площадного улюлюкания. Пока, к сожалению, именно они и определяют основное впечатление от сообщества. Меня сейчас "частности" не интересуют. Если надо я могу и по сети пошариться-поискать ответы на вопросы по библиотекам и модулям. Меня интересуют подходы "в большом" (проектирование и приёмы работы).

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
Подскажите, а есть vault lite или ченить такое?) А то нужен вольт для похода в вольт, но весит он ~500 мб) как-то многовато для парочки запросов ))
Alexandr Orloff
17
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Карта сайта