LINUX.ORG.RU

Causality Ltd прекратила свою деятельность

 , ,


2

2

Компания Causality Ltd прекратила свою деятельность в связи с отсутствием спроса на коммерческую поддержку языка программирования pony.

Об этом 21 августа 2016г. сообщил в своём аккаунте в LinkedIn бывший генеральный директор компании Constantine Goulimis.

Язык программирования pony - это объектно-ориентированный безопасный язык программирования, использующий модель акторов (аналогичную Erlang), имеющий легковесный FFI.

Безопасность языка обеспечивается за счёт:

  • математически доказанной типобезопасности;
  • памятебезопасности (как следствия типобезопасности);
  • безопасности исключений (по заверению авторов языка, все исключения обрабатываются);
  • безопасности от гонок (отсутствие конкурентного доступа обеспечивается средствами компилятора);
  • свободы от вечной блокировки (блокировки не используются).

По мнению Грейдона Хоара (автора Rust), «создатели pony провели великолепную работу, превосходящую ту, что он сделал в Rust...»

Компания Causality Ltd была основана с целью оказания коммерческой поддержки компаниям, использующим pony в своей IT-инфраструктуре.

По словам своего бывшего главы, Causality Ltd не смогла найти достаточно широкой клиентской базы. В частности 25-летний менеджер одного из американских инвестиционных банков, использующих pony в критически-важном компоненте своей инфраструктуры, отказал компании на основании того, что она была «слишком маленькой».

Однако основатель проекта Sean T. Allen считает, что закрытие Causality Ltd не приведет к гибели столь интересного и многообещающего проекта, т.к. прекращение деятельности компании не привело к снижению интереса к языку, и что сообщество проекта продолжает расти.

Ссылки:
Pony на GitHub
Введение
Безопасность pony

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

На нем можно написать ОС? И как будет работать?

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

Правильный вариант выглядит так for(var i = 0; i < a.length; ++i) stdout.printf(b); имеется в виду что у массива a и b разные размеры и a может быть больше b

anonymous ()
Ответ на: Слишком заманчиво от Camel

Да недостатки простые. Нет локов, потому что вся программа, это одна нить. Типы бкзопасны, но ты ничегошеньки с ними не сделаешь. Строку со строкой, число с числом.

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

Твой псевдокод a.length раз выводит на экран некое b. Нет никакого переполнения.

hateyoufeel ★★★★★ ()

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

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

Там всё не так плохо как в питоне, но иногда без переводов строк компилятор не разберется.

asaw ★★★★★ ()
Ответ на: комментарий от ya-betmen

А какой смысл тащить всюду сишный синтаксис? Просто потому что кому-то там привычно?

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

Там по куче на поток, как в nim, соответственно, влияние GC минимально.

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

Школьник-кум, а гед почитать подробнее как в ниме сделано?

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

потоки для тех, кто не умеет программировать конечные автоматы.

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

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

А компьютер с двумя процессорами — это два конечных автомата?

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

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

Вчера собрал и поигрался примерами, типа echo или httpserver. В общем, может я чего сделал не так — оно оказалось раз в пятнадцать медленнее (примерных) аналогов на расте. Сильно копать в эту сторону я не стал, так как эта «полная безопасность для всего и вся» сегфолтилась при увеличении нагрузки.

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

Опять куда-то делось. Там b является массивом, а в цикле обращаютя к элементу по индексу i

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

Обращение по индексу съедается как тег для ввода курсивного текста.

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

Ты просто не умеешь это готовить. Вполне можно ставить табы, а если мешать табы с пробелами, то python 3 будет ругатся. Плюс код получается компактнее. Я уже не говорю про некоторых любителей набирать кучи строк

void main()
{
  printf("hello");
}
Хотя встречался и такой вариант
int
main()
{
  printf("hello");
  return 0;
}

anonymous ()
Ответ на: комментарий от anonymous
for(var i = 0; i < a.length; ++i) stdout.printf(b[i]);

Используй тег code. Так вот, такая фигня уже есть и даже используется. Луркай про refinement types.

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

Это уже распределенные системы и другой интересный разговор.

anonymous ()

как бы не очень и жалко... Хотя кого я обманываю?! Вообще пофиг!

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

Нельзя. Язык высокоуровневый. Рантайм на Си, вот его можно портировать на АРМ.

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

А вот если бы они написали операции на Rust, наверное бы не сегфолтилось.

anonymous ()
Ответ на: Re: Омские линуксоиды ужасаются... от Skull

Потерпите ещё годика четыре, пока у Шаттлворта закончатся деньги на любимую игрушку.

Ты это уже который год твердишь, а деньги всё не заканчиваются у Шаттлворта. Неприятно, правда? А всего-то надо было прививку от метеорологов сделать, Андрюша. Был бы приличным человеком, не аналитиком каким.

AP ★★★★★ ()
Ответ на: Re: Омские линуксоиды ужасаются... от anonymous

Интересно, когда альт загнётся?

Компании 20 лет скоро. Если уж пару кризисов они как-то пережили (с потерей ключевых людей в команде, правда), то скорее всего, в том или ином виде альт проживёт ещё долго. Так что обычных запасов попкорна тебе не хватит — строй сразу большой подземный бункер на случай ядерной войны.

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

Половины состояния уже нет. Четверть ярда осталось. При расходах в 63 млн. долларов на Каноникал при практически нулевом доходе несложно экстраполировать.

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

Я про эти экстраполяции от тебя слышу с 2008 года. Восемь лет, Андрюша, восемь лет ты пророчишь, что Каноникл ещё чуть-чуть и практически уже вот-вот помрёт. И это на моей только памяти. Аналитика, такая аналитика.

Меж тем, что интересного и мощного сделал Альт в последние годы? Ну, после «Ломоносова» и терминалов в поликлиниках?

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

Тогда я не называл сроки. А так да, мы ничего не сделали. Как, впрочем, и Каноникал. Вона, Маск корабли в космос запускает и Теслы штампует. Куда нам до таких впечатляющих достижений?

Skull ★★★★★ ()
Ответ на: комментарий от shkolnick-kun

CAF, это Coarray Fortran имеется ввиду, кстати?

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

Ты обкурился штоле, с каких пор Руби стал безопасным? Короче, знатный пук в лужу.

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

Хотя с другой стороны Java с ее public static void main() внутри специального класса с единственной целью - обозначить точку входа в программу.

Что это за специальный класс такой (про «магическую сигнатуру» сказано почти верно)? У программы может быть хоть тысяча точек входа!

X-Pilot ★★★★★ ()
Ответ на: комментарий от hateyoufeel

Твой псевдокод a.length раз выводит на экран некое b. Нет никакого переполнения.

думаю, первоначальный автор сего куска кода хотел, чтобы компилятор ему сказал в случае чего «длина массива a больше/может_быть_больше, чем максимальное значение переменной i согласно ее типу (char/short/int/long/etc)». Ибо берем unsigned char i, пихаем 260 элементов в массив a и сидим в этом цикле вечность.

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

думаю, первоначальный автор сего куска кода хотел, чтобы компилятор ему сказал в случае чего «длина массива a больше/может_быть_больше, чем максимальное значение переменной i согласно ее типу (char/short/int/long/etc)». Ибо берем unsigned char i, пихаем 260 элементов в массив a и сидим в этом цикле вечность.

Нет, он там выше ответил что имел ввиду массив b, который по длине меньше массива a.

А потенциальное переполнение в твоём случае даже в C компиляторы без проблем детектируют.

hateyoufeel ★★★★★ ()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: Слишком заманчиво от Camel

Звучит очень заманчиво, но если это действительно так, то почему аналогичные штуки не сделаны в Rust, Go или других языках? В чём недостатки?

все перечисленные фичи требуют дополнительных *ограничений*. Просто добавить их как фичи без потери существующих ништяков невозможно.

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

C++ Actor Framework

Спасибо, на CAF language, понятное дело, ничего полезного не нагуглил.

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

Купила мама коника, а коник без нога, яка весела писенька гигигиги

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

Каким образом асинхронность решает вопрос с блокировками?

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

Я надеюсь что ты покупал свадебные торты оптом? ЗЫ если экстраполировать альт, то 9 ветка выйдет тогда, когда вполне себе может идти 2 деятилетие 21 века. Если выйдет

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