LINUX.ORG.RU

Rhope: новый потоковый язык

 


0

0

Ведущий разработчик Syllable выпустил первую версию потокового языка Rhope, рассчитанного на легкое распараллеливание приложений. Поддерживает основные парадигмы программирования и платформы. Распространяется по лицензии BSD. Программное обеспечение сайта автора также написано на Rhope.

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

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

> Статистика говорит о проблемах в количестве сисколов futex, который использется для синхронизации. Так что проблема в программе, а не скорости переключения контекста.

Слушай, я смотрю ты крутой спец в Си, все у тебя так быстро работает и кльово. Напиши сишную реализацию на нативных потоках, чтобы была быстрее Erlang/Haskell-ной и я тебе поверю. А то пока что кроме кучи модных слов с журнала Ксакеп и постонного "тут проблема" ничего не видно. Побольше конкретики и фактов.

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

> Вот это немного напрягает: «Project status: This project was just a proof of concept and is currently unmaintained».

В рассылке erlyweb-а иногда спрашивают про постгресс и Ярив помогает. Так что нельзя сказать что полностью unmaintained.

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

>Я тебе понял следующим образом: потоки создаются очень медленно, зато переключения контекста пипец быстро. Соответственно тест на малое число показал, что время создание потоков мизерное по сравнению с общим временем выполнения. Тоесть ты соврал.

>Если это не так, расшифруй что ты имел ввиду.

Я ошибся в тесте, проблема не в скорости создания потоков. Скачал, посмотрел код, провел статистику => проблема в том, как долго ждет поток на futex'е.

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

>Слушай, я смотрю ты крутой спец в Си, все у тебя так быстро работает и кльово. Напиши сишную реализацию на нативных потоках, чтобы была быстрее Erlang/Haskell-ной и я тебе поверю. А то пока что кроме кучи модных слов с журнала Ксакеп и постонного "тут проблема" ничего не видно. Побольше конкретики и фактов.

А нативные потоки никогда не будут быстрее userspace потоков. Только к скорости переключения контекста это не имеет никакого отношения.

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

> В рассылке erlyweb-а иногда спрашивают про постгресс и Ярив помогает. Так что нельзя сказать что полностью unmaintained.

мафнтайнед оно будет тогда, когда появится на github и там будет хоть 3 коммитера.

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

> мафнтайнед оно будет тогда, когда появится на github и там будет хоть 3 коммитера.

Проблема курицы и яйца? :)

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

короче все стали в местно быстрых малого размера и свободных от багов программ, стали гоняться за тем то проще, быстрее и корявее написать и рубить потом бабло 5 лет за исправление багов. Философия Микрософт блин.

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

> Вы против статической типизации?

Ещё как. Операции типизации "<String@Real Number" есть явное зло. imho с лингвистической кочки зрения в rhope какой-то шум из головы творится. Куча функций вида GetЧтонибудь. Уж если определяем типы - то давайте иметь единый Get тех типов, которые достойны Get'а.

И вааще, нонче потоки кошерно иметь <s>монадами</s> спецобъектами, а не вызовами чего-то потустороннего.

print печатает строку на терминал. И только строку. Чтобы послать "$a и $b" в к-л трубу нужно столько странных действий произвести, что уже хочется сменить язык ;-)

Лучше бы дядька занялся рисованием библиотек под Хаскель...

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

Вот пример нового синтаксиса:

Fib[n:out]
{
If[[n] < [2]]
{
out <- 1
}{
out <- [Fib[[n]-[1]]] + [Fib[[n]-[2]]]
}
}

Xroft ★★
() автор топика

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

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

// детально не вникал...

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

С Эрлангом мы забываем одну простую вещь.

spawn() в Эрланге может запустить процесс(поток) на любой ноде на любом компьютере в сети. Причем под сетью мы понимаем не локальную сеть, а сеть известных нод, где нода может быть как на локальном компьютере, так и на серваке в Зимбабве.

Команда ! (посылка сообщения) также работает с любым процессом на любой ноде в сети.

То есть:

Pid ! {какое_то_сообщение}

Будет работать вне зависимости от физического расположения Pid - на локальном компьютере в той же VM, на локальном компьютере в отдельной VM, на компьютере в соседнем офисе или на компьютере в Зимбабве.

Сетевой код в Эрланге написан не просто эффективно, а очень эффективно и выдеривает нехилые нагрузки без просадок в производительности.

Поэтому любой код, который можно вынести в отдельный процесс (чтение данных, работа с файлами, обработка данных, ...) можно вынести в отдельный процесс на отдельной машине и продолжать работать с ним так, как-будто мы с ним работаем локально.

На языках со стандартной моделью многопоточности такой код затрахаешься писать.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.