OCaml - язык общего назначения?
От: Аноним  
Дата: 17.08.11 05:12
Оценка: 18 (1) +1
Много раз читал в ДП рекомендации попробовать OCaml, как единственную альтернативу С++ в качестве языка общего назначения.

http://caml.inria.fr/pub/distrib/ocaml-3.12/ocaml-3.12-refman.txt

The Caml run-time system is not reentrant: at any time, at most one thread
can be executing Caml code or C code that uses the Caml run-time system.
Technically, this is enforced by a "master lock" that any thread must hold
while executing such code.

это ставит крест на очень многих возможных применениях

Re: OCaml - язык общего назначения?
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 17.08.11 05:38
Оценка: 5 (2) +2
Да, с параллелизмом на уровне потоков там туго. Сборщик мусора, работающий в многопоточной программе, намного сложнее и тормознее, поэтому авторы сознательно оставили его однопоточным, а параллелить предлагают на уровне обменивающихся сообщениями процессов, считая shared memory parallelism вообще тупиковой ветвью. Есть проект многопоточного GC для окамла — oc4mc, он вроде работает, но действительно заметно медленнее.

Эта ситуация с потоками — одна из причин, почему я еще не везде отказался от С++ в пользу окамла.
Re[2]: OCaml - язык общего назначения?
От: Temoto  
Дата: 17.08.11 09:56
Оценка:
DM>Да, с параллелизмом на уровне потоков там туго. Сборщик мусора, работающий в многопоточной программе, намного сложнее и тормознее, поэтому авторы сознательно оставили его однопоточным, а параллелить предлагают на уровне обменивающихся сообщениями процессов, считая shared memory parallelism вообще тупиковой ветвью. Есть проект многопоточного GC для окамла — oc4mc, он вроде работает, но действительно заметно медленнее.

DM>Эта ситуация с потоками — одна из причин, почему я еще не везде отказался от С++ в пользу окамла.


Я правильно понял, что в окамле точно такой же GIL как в питоне?
Re[2]: OCaml - язык общего назначения?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 17.08.11 11:08
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Да, с параллелизмом на уровне потоков там туго. Сборщик мусора, работающий в многопоточной программе, намного сложнее и тормознее, поэтому авторы сознательно оставили его однопоточным, а параллелить предлагают на уровне обменивающихся сообщениями процессов, считая shared memory parallelism вообще тупиковой ветвью. Есть проект многопоточного GC для окамла — oc4mc, он вроде работает, но действительно заметно медленнее.


DM>Эта ситуация с потоками — одна из причин, почему я еще не везде отказался от С++ в пользу окамла.


Я давно к нему (OCaml-у) присматривался, но так и не решился его использовать. Как я понял, у тебя богатый опыт использования OCaml, если не трудно, не ответишь на пару вопросов?
— ты пишешь все приложение целиком ан OCaml, или только какую-то часть? Если часть, как организуешь взаимодействие?
— компилятор умеет генерировать нативный код для ARM процессоров? можно ли использовать OCaml на мобильных платформах?
— как обстоят дела с поддержкой 64 битных систем?
Re[3]: OCaml - язык общего назначения?
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 17.08.11 11:09
Оценка:
Здравствуйте, Temoto, Вы писали:

T>Я правильно понял, что в окамле точно такой же GIL как в питоне?


Я не знаю подробностей про питоний, но в целом похоже. Можно иметь много окамловых потоков, но они будут работать не одновременно, а как на одноядерной машине. Из окамла можно вызвать код на Си, в котором использовать много потоков. Если они не лезут в кучу окамла, то они могут работать параллельно окамловскому коду.
Re[4]: OCaml - язык общего назначения?
От: Temoto  
Дата: 17.08.11 11:17
Оценка:
T>>Я правильно понял, что в окамле точно такой же GIL как в питоне?

DM>Я не знаю подробностей про питоний, но в целом похоже. Можно иметь много окамловых потоков, но они будут работать не одновременно, а как на одноядерной машине. Из окамла можно вызвать код на Си, в котором использовать много потоков. Если они не лезут в кучу окамла, то они могут работать параллельно окамловскому коду.


Точно такой же.

Спасибо, вы открыли мне глаза. Кошмар, ужас, разочарование.
Re[3]: OCaml - язык общего назначения?
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 17.08.11 11:23
Оценка: 25 (3)
Здравствуйте, kaa.python, Вы писали:

У меня опыт сравнительно долгий, но не шибко богатый (в плане платформ и библиотек).

KP>- ты пишешь все приложение целиком ан OCaml, или только какую-то часть? Если часть, как организуешь взаимодействие?


Целиком, кое-какие мелочи иногда дописываются на С и линкуются.

KP>- компилятор умеет генерировать нативный код для ARM процессоров? можно ли использовать OCaml на мобильных платформах?


Можно. Вот пример игрушки для айфона и айпада, написанной на нем:
http://itunes.apple.com/us/app/cassino/id411381417?mt=8&ign-mpt=uo%3D4

Как это делают:
http://psellos.com/ocaml/compile-to-iphone.html
http://web.yl.is.s.u-tokyo.ac.jp/~tosh/ocaml-on-iphone/

KP>- как обстоят дела с поддержкой 64 битных систем?


На линуксах и маках — отлично. Кодогенератор для 64 бит лучше 32-битного, и нет таких дурацких ограничений на размер массивов и строк. Для винды 64-битная версия вроде как есть, но на официальном сайте нет бинарников, а самостоятельно собрать редкая птица сможет. Я пользуюсь 32-битной.
Re[2]: OCaml - язык общего назначения?
От: Oaks  
Дата: 17.08.11 13:11
Оценка:
Насколько мне известно, пишется OCaml Pro. На какой он стадии ? Будет там что-то новое ?
Re[3]: OCaml - язык общего назначения?
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 17.08.11 15:33
Оценка:
Здравствуйте, Oaks, Вы писали:

O>Насколько мне известно, пишется OCaml Pro. На какой он стадии ? Будет там что-то новое ?


Я не в курсе. Может, FR что-то подскажет.
Re[3]: OCaml - язык общего назначения?
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 17.08.11 15:54
Оценка:
Здравствуйте, Oaks, Вы писали:

O>Насколько мне известно, пишется OCaml Pro. На какой он стадии ? Будет там что-то новое ?


О! На сайте ocamlpro.com обнаружился бинарный дистрибутив 64-битной последней версии окамла для винды. Ура!
Re[4]: OCaml - язык общего назначения?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 18.08.11 07:01
Оценка:
А можно зайти с другой стороны. Например иметь несколько Сишных потока из которых обращаться к различным инстансам Окамла, но в рамках одного процесса?
Re[5]: OCaml - язык общего назначения?
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 18.08.11 07:13
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>А можно зайти с другой стороны. Например иметь несколько Сишных потока из которых обращаться к различным инстансам Окамла, но в рамках одного процесса?


Это надо, чтобы у каждого была своя куча и те части рантайма, которые сейчас не reentrant. Непросто это. Но можете попробовать.
Re[5]: OCaml - язык общего назначения?
От: Аноним  
Дата: 18.08.11 20:51
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>А можно зайти с другой стороны. Например иметь несколько Сишных потока из которых обращаться к различным инстансам Окамла, но в рамках одного процесса?


а смысл? тогда окамловые вещи будут полностью изолированы друг от друга, и не смогут коммуницировать кроме как через С-код. даже если такое сделать, то будет очень много проблем склеивания
Re[6]: OCaml - язык общего назначения?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 19.08.11 05:56
Оценка:
KP>>А можно зайти с другой стороны. Например иметь несколько Сишных потока из которых обращаться к различным инстансам Окамла, но в рамках одного процесса?

А>а смысл?


Смысл в том, что однопоточные приложения, на данный момент, практически бесполезны. Макимум какая-то консольная утилита, и то не факт.

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


Изолированность не проблема. Любая задача довольно просто может быть разбита на подзадачи, которые уже и будут выполняться паралельно. А вот что делать с монолитным приложением, которое не в состоянии выполнить задачу в отдельном потоке. Практически бесполезно это
Re[7]: OCaml - язык общего назначения?
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 19.08.11 06:33
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Изолированность не проблема.


Тогда можно разделить на несколько параллельных процессов, что и предлагают авторы языка. В Хроме вон так сделали и очень гордятся результатом.

KP> Любая задача довольно просто может быть разбита на подзадачи, которые уже и будут выполняться паралельно. А вот что делать с монолитным приложением, которое не в состоянии выполнить задачу в отдельном потоке. Практически бесполезно это


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

Для однопоточных программ тоже немало применений есть. Например, я делал на окамле интерактивный анализатор логов с веб-интерфейсом. Не представляю, где бы мне там пригодились параллельные потоки (с диска читать лучше последовательно, а пользователь один, и много запросов сразу не посылает). Еще делал компилятор, он и без потоков очень быстрый получился.
Re[8]: OCaml - язык общего назначения?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 19.08.11 06:42
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Здравствуйте, kaa.python, Вы писали:


KP>>Изолированность не проблема.


DM>Тогда можно разделить на несколько параллельных процессов, что и предлагают авторы языка. В Хроме вон так сделали и очень гордятся результатом.


В Хроме, кроме того, каждый процесс запускает потоки для различных фоновых операций. Куда ж без этого?

DM>Задачу-то можно выполнить в отдельном потоке, просто не так быстро. Но если задача не числомолотилка, а ввод-вывод, то разница с "настоящим" параллельным потоком вряд ли будет заметна при правильном подходе.


Сейчас идет тенденция к увеличению количества процессоров. Зачем же целенаправленно вводить какие-то ограничения и усложнять самому себе жизнь?

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


Там бы они пригодились для раздельного чтения и анализа. Пользователей может быть больше чем 1. Хотя в приведенном тобой случае одного потока достаточно, согласен.

Т.е. да, для рядя задач одного потока хватает. Просто для моих задач наличие возможности запустить фоновую операцию критично. На столько критично.
Re[9]: OCaml - язык общего назначения?
От: Аноним  
Дата: 20.08.11 07:21
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Т.е. да, для рядя задач одного потока хватает. Просто для моих задач наличие возможности запустить фоновую операцию критично. На столько критично.


пока я вижу только один выход — если ест что-то ресурсоемкое (или просто длинное) фоновое, то можно запускать в отдельно окамловском потоке, который будет дергать С-callback, в котором будет сначала освобождаться gil, а только потом выполняться та самая ресурсоемкая задача.

честно говоря, не ожидал — тут столько лет разговоры были о окамле, как о полноценной замене С++, а когда руки дошли повозиться — получите, распишитесь
Re[10]: OCaml - язык общего назначения?
От: Аноним  
Дата: 22.08.11 10:50
Оценка:
Здравствуйте, Аноним, Вы писали:

А>честно говоря, не ожидал — тут столько лет разговоры были о окамле, как о полноценной замене С++, а когда руки дошли повозиться — получите, распишитесь


А можно поинтересоваться — на кой вообще нужна shared memory concurrency? Проблем мало, хочется по-комсомольски, стоя в гамаке?
Re[11]: OCaml - язык общего назначения?
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 23.08.11 06:45
Оценка:
Здравствуйте, Аноним, Вы писали:

А> А можно поинтересоваться — на кой вообще нужна shared memory concurrency? Проблем мало, хочется по-комсомольски, стоя в гамаке?


Мне вот нужна, чтобы при обработке видео можно было разделить картинку на части и обрабатывать их параллельно. Причем для каждого куска нужны исходные данные не только из него самого, но и из других. Как прикажете это делать без shared memory?
Re[7]: OCaml - язык общего назначения?
От: FR  
Дата: 07.09.11 05:46
Оценка:
Здравствуйте, kaa.python, Вы писали:


KP>Смысл в том, что однопоточные приложения, на данный момент, практически бесполезны. Макимум какая-то консольная утилита, и то не факт.


На OCaml можно писать многопоточные приложения, но при этом фактически будет использоваться только одно ядро процессора. С потоками никаких
проблем при этом нет, есть только проблемы с реальным одновременным выполнением на нескольких ядрах/процессорах.

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


KP>Изолированность не проблема. Любая задача довольно просто может быть разбита на подзадачи, которые уже и будут выполняться паралельно. А вот что делать с монолитным приложением, которое не в состоянии выполнить задачу в отдельном потоке. Практически бесполезно это


Если в потоках нет тяжелых вычислений то никаких проблем, иначе получим тормоза (по сравнению скажем с аналогом на C++) на многоядерных машинах.
Re[9]: OCaml - язык общего назначения?
От: FR  
Дата: 07.09.11 06:01
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>В Хроме, кроме того, каждый процесс запускает потоки для различных фоновых операций. Куда ж без этого?


С фоновыми потоками никаких проблем http://caml.inria.fr/pub/docs/manual-ocaml/libref/Thread.html

KP>Сейчас идет тенденция к увеличению количества процессоров. Зачем же целенаправленно вводить какие-то ограничения и усложнять самому себе жизнь?


Язык стал заложником реализации. Когда он появился на горизонте массовых многопроцессорных систем видно не было.

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


KP>Там бы они пригодились для раздельного чтения и анализа. Пользователей может быть больше чем 1.


С этим никаких проблем, системные потоки как уже выше писал использовать можно.
Кроме того есть очень неплохие реализации легковесных потоков например — http://ocsigen.org/lwt/manual/
Re[10]: OCaml - язык общего назначения?
От: FR  
Дата: 07.09.11 06:09
Оценка:
Здравствуйте, Аноним, Вы писали:


А>пока я вижу только один выход — если ест что-то ресурсоемкое (или просто длинное) фоновое, то можно запускать в отдельно окамловском потоке, который будет дергать С-callback, в котором будет сначала освобождаться gil, а только потом выполняться та самая ресурсоемкая задача.


Так легко нарваться на глюки, обычно проще отдельные процессы.

А>честно говоря, не ожидал — тут столько лет разговоры были о окамле, как о полноценной замене С++, а когда руки дошли повозиться — получите, распишитесь


Реально OCaml никогда ни мог быть полноценной заменой C++, компиляторы C++ всегда лучше оптимизировали, и у C++
есть низкоуровневые возможности.
Но во времена когда массовыми компилятороми были VC 6 и gcc 2.x да и борландовские и ваткомовские компиляторы не
были антиквариатом позиция у OCaml была на порядок лучше.
Re[8]: OCaml - язык общего назначения?
От: Alexander Poluektov Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 07.09.11 07:14
Оценка:
Здравствуйте, FR, Вы писали:

FR>С потоками никаких проблем при этом нет, есть только проблемы с реальным одновременным выполнением на нескольких ядрах/процессорах.


Я вижу противоречие в этом предложении
Re[9]: OCaml - язык общего назначения?
От: FR  
Дата: 07.09.11 07:21
Оценка:
Здравствуйте, Alexander Poluektov, Вы писали:

FR>>С потоками никаких проблем при этом нет, есть только проблемы с реальным одновременным выполнением на нескольких ядрах/процессорах.


AP>Я вижу противоречие в этом предложении


Как я понял у выше писавших создалось впечатление что потоки использовать в OCaml совершенно невозможно.
Это не так, потоки использовать можно и для однопроцессорных машин (и для фоновых мало загруженных потоков на
многопроцессорных) никаких различий с другими языками не будет.
Re[10]: OCaml - язык общего назначения?
От: Alexander Poluektov Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 07.09.11 08:11
Оценка: :)
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, Alexander Poluektov, Вы писали:


FR>>>С потоками никаких проблем при этом нет, есть только проблемы с реальным одновременным выполнением на нескольких ядрах/процессорах.


AP>>Я вижу противоречие в этом предложении


FR>Как я понял у выше писавших создалось впечатление что потоки использовать в OCaml совершенно невозможно.

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

Да понял, понял. Это был "мягкий ненавязчивый юмор"
Re[10]: OCaml - язык общего назначения?
От: Klapaucius  
Дата: 07.09.11 09:07
Оценка:
FR>Язык стал заложником реализации. Когда он появился на горизонте массовых многопроцессорных систем видно не было.

Так легко в логику разработчиков окамловского рантайма не проникнуть. Дело в том, что 32-битная версия малоюзабельна из-за отсутствия нормальный массивов и даже чисел. А ведь массовая 64-битность тогда не просматривалась в точно такой же степени. Получается, что при создании рантайма было принято сразу два решения, одно из которых делало окамл малополезным в настоящем, а другое — должно было его сделать малополезным в будущем. Чем это можно объяснить — не понятно, разве только шуткой про инженера, который не только не должен делать ничего полезного, но даже еще немного вредить.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[11]: OCaml - язык общего назначения?
От: FR  
Дата: 07.09.11 09:21
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>Так легко в логику разработчиков окамловского рантайма не проникнуть. Дело в том, что 32-битная версия малоюзабельна из-за отсутствия нормальный массивов и даже чисел. А ведь массовая 64-битность тогда не просматривалась в точно такой же степени. Получается, что при создании рантайма было принято сразу два решения, одно из которых делало окамл малополезным в настоящем, а другое — должно было его сделать малополезным в будущем. Чем это можно объяснить — не понятно, разве только шуткой про инженера, который не только не должен делать ничего полезного, но даже еще немного вредить.


Логика вполне просматривается, создавали максимально эффективную реализацию для текущего массового железа.
Массивы вполне покрывали размеры тогдашней памяти.
Потом уже реализацию стало трудно изменить, хотя разработчики конечно не особо старались, вот сейчас этим
озаботились в OCamlPro (http://www.ocamlpro.com/code/2011-05-06-longval.html) и оказалось что это и не
так уж и сложно.
Re[12]: OCaml - язык общего назначения?
От: Klapaucius  
Дата: 07.09.11 10:03
Оценка:
Здравствуйте, FR, Вы писали:

FR>Логика вполне просматривается, создавали максимально эффективную реализацию для текущего массового железа.


Но не создали. Скорее уж они создавали максимльно простую реализацию (уровня "добротная дипломная работа") с более-менее разумными возможностями и производительностью.

FR>Массивы вполне покрывали размеры тогдашней памяти.


Ну, как раз где-то во время появления и перестали покрывать. Кто же мог подумать, что окамл будут использовать на следующий год после появления? Или — страшно сказать! — через два года? А числа, с числами как? В этой колбасе тоже потребности не было?

FR>хотя разработчики конечно не особо старались


Вот то-то и оно.

FR>озаботились в OCamlPro (http://www.ocamlpro.com/code/2011-05-06-longval.html) и оказалось что это и не

FR>так уж и сложно.

Потрясающе. Только линукс, только байткод-интерпретатор и в 2011-ом году! Самая, понимаете ли, bleeding edge, прямо как китайская космонавтика. Ну, или скорее как северокорейская космонавтика.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[13]: OCaml - язык общего назначения?
От: FR  
Дата: 07.09.11 10:16
Оценка:
Здравствуйте, Klapaucius, Вы писали:

FR>>Логика вполне просматривается, создавали максимально эффективную реализацию для текущего массового железа.


K>Но не создали. Скорее уж они создавали максимльно простую реализацию (уровня "добротная дипломная работа") с более-менее разумными возможностями и производительностью.


Да цели две все-таки простота и эффективность. На фоне тогдашних высокоуровневых языков вполне достигли.

FR>>Массивы вполне покрывали размеры тогдашней памяти.


K>Ну, как раз где-то во время появления и перестали покрывать. Кто же мог подумать, что окамл будут использовать на следующий год после появления? Или — страшно сказать! — через два года? А числа, с числами как? В этой колбасе тоже потребности не было?


Ну все-таки ноги растут у OCaml'а из восьмидесятых. И рантайм был создан не с нуля, а как развитие рантайма от Caml Light.
А с числами не такая и проблема, я например и с 16 битным int еще программировал.

FR>>озаботились в OCamlPro (http://www.ocamlpro.com/code/2011-05-06-longval.html) и оказалось что это и не

FR>>так уж и сложно.

K>Потрясающе. Только линукс, только байткод-интерпретатор и в 2011-ом году! Самая, понимаете ли, bleeding edge, прямо как китайская космонавтика. Ну, или скорее как северокорейская космонавтика.


Ну не нравится жалуйся в спортлото
Re[14]: OCaml - язык общего назначения?
От: Klapaucius  
Дата: 07.09.11 11:58
Оценка:
Здравствуйте, FR, Вы писали:

FR>Ну все-таки ноги растут у OCaml'а из восьмидесятых. И рантайм был создан не с нуля, а как развитие рантайма от Caml Light.


Ну, в 80-х у камла была совсем другая реализация, SK-машина (если память не изменяет — это вообще один из самых тормозных способов реализации ФЯ) да еще и на лиспе написанная. Так что из 80-х у окамла только диковинный, по меркам остальных ML, синтаксис. А Caml Light Лерой написал уже ближе к середине 90-х. Не такая у него с Окамлом и разница в возрасте.

FR>А с числами не такая и проблема, я например и с 16 битным int еще программировал.


Я тоже. В школе и университете.

FR>Ну не нравится жалуйся в спортлото


Так я, собственно, для этого сюда и пишу. Тут же форум техподдержки спортлото, вы не знали разве?
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[15]: OCaml - язык общего назначения?
От: FR  
Дата: 07.09.11 12:19
Оценка:
Здравствуйте, Klapaucius, Вы писали:

FR>>Ну все-таки ноги растут у OCaml'а из восьмидесятых. И рантайм был создан не с нуля, а как развитие рантайма от Caml Light.


K>Ну, в 80-х у камла была совсем другая реализация, SK-машина (если память не изменяет — это вообще один из самых тормозных способов реализации ФЯ) да еще и на лиспе написанная. Так что из 80-х у окамла только диковинный, по меркам остальных ML, синтаксис. А Caml Light Лерой написал уже ближе к середине 90-х. Не такая у него с Окамлом и разница в возрасте.


Нет 90-91 http://caml.inria.fr/about/history.html#id2268637 для тех времен очень шустрый и экономичный.
В 95 он уже написал Caml Special Light это практически OCaml только без 'O' части.

FR>>Ну не нравится жалуйся в спортлото


K>Так я, собственно, для этого сюда и пишу. Тут же форум техподдержки спортлото, вы не знали разве?


Re: OCaml - язык общего назначения?
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 08.09.11 15:26
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Много раз читал в ДП рекомендации попробовать OCaml, как единственную альтернативу С++ в качестве языка общего назначения.


А>http://caml.inria.fr/pub/distrib/ocaml-3.12/ocaml-3.12-refman.txt


А> The Caml run-time system is not reentrant: at any time, at most one thread

А>can be executing Caml code or C code that uses the Caml run-time system.
А>Technically, this is enforced by a "master lock" that any thread must hold
А>while executing such code.

А>это ставит крест на очень многих возможных применениях


А>

Ну так скажите, стоит ли его изучать или нет как язык для практического применения? А то я тут начал уже, вроде неплохо.
Sic luceat lux!
Re[16]: OCaml - язык общего назначения?
От: Klapaucius  
Дата: 09.09.11 11:25
Оценка:
Здравствуйте, FR, Вы писали:

FR>Нет 90-91 http://caml.inria.fr/about/history.html#id2268637 для тех времен очень шустрый и экономичный.

FR>В 95 он уже написал Caml Special Light это практически OCaml только без 'O' части.

Все равно компилятор в нативный код ведь только для Special появился. Ну и какой разговор о шустрости может идти в случае интепретатора байткода?
Рантайм, кстати, явно не расчитан на широко распространенный компьютер 91-го года, а вот уже в 95 совершенно ясно, что из таких коротких штанишек язык вот-вот вырастет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[2]: OCaml - язык общего назначения?
От: Klapaucius  
Дата: 09.09.11 11:28
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Ну так скажите, стоит ли его изучать


Да.

K>как язык для практического применения?


Нет.

Вопрос, кстати — провокация флейма в чистом виде.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[2]: OCaml - язык общего назначения?
От: FR  
Дата: 10.09.11 10:20
Оценка:
Здравствуйте, Kernan, Вы писали:


А>>

K>Ну так скажите, стоит ли его изучать или нет как язык для практического применения? А то я тут начал уже, вроде неплохо.

Изучать стоит, хороший гибридный язык, очень интересная ОО подсистема.
С практическим применением сложнее, главная проблема очень мало библиотек.
Re[17]: OCaml - язык общего назначения?
От: FR  
Дата: 10.09.11 10:25
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>Все равно компилятор в нативный код ведь только для Special появился. Ну и какой разговор о шустрости может идти в случае интепретатора байткода?


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

K>Рантайм, кстати, явно не расчитан на широко распространенный компьютер 91-го года, а вот уже в 95 совершенно ясно, что из таких коротких штанишек язык вот-вот вырастет.


Да ну для тех объемов памяти более чем адекватно.
Re[2]: OCaml - язык общего назначения?
От: Аноним  
Дата: 10.09.11 10:52
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Ну так скажите, стоит ли его изучать или нет как язык для практического применения? А то я тут начал уже, вроде неплохо.


Я когда-то начал. За бесполезностью бросил. На данный момент думаю что если хочется чего-то практичного и более-менее универсального (само собой, если говорить о функциональных языках), то стоит посмотреть на Haskell. Ну а если ты занимаешься сетевым ПО то на Erlang.
Re[3]: OCaml - язык общего назначения?
От: FR  
Дата: 10.09.11 14:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Я когда-то начал. За бесполезностью бросил. На данный момент думаю что если хочется чего-то практичного и более-менее универсального (само собой, если говорить о функциональных языках), то стоит посмотреть на Haskell. Ну а если ты занимаешься сетевым ПО то на Erlang.


Хаскель бы я практичным не назвал, не смотря на гораздо более широкое комьюнити и популярность, чуть лучше окамла.
По моему более-менее практичны F# и Scala.
Re[4]: OCaml - язык общего назначения?
От: BulatZiganshin  
Дата: 12.09.11 06:28
Оценка: +1
Здравствуйте, FR, Вы писали:

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

FR>По моему более-менее практичны F# и Scala.

почему? меня в нём по-большому счёту не устраивает отсутсвие 64-битного компилера, и слабость gui бибилиотек. но те же претензии можно предъявить к любому языку не из первой десятки. на мой взгляд, он не менее практичен чем руби или та же скала

если ты под практичностью понимаешь поддержку jvm/clr, то да — тут даже С++ рожей не вышел
Люди, я люблю вас! Будьте бдительны!!!
Re[5]: OCaml - язык общего назначения?
От: FR  
Дата: 17.09.11 16:59
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>почему? меня в нём по-большому счёту не устраивает отсутсвие 64-битного компилера, и слабость gui бибилиотек. но те же претензии можно предъявить к любому языку не из первой десятки. на мой взгляд, он не менее практичен чем руби или та же скала


BZ>если ты под практичностью понимаешь поддержку jvm/clr, то да — тут даже С++ рожей не вышел


Под практичностью я в первую очередь понимаю широкий выбор достаточно качественных библиотек, с этим не только
у jvm/clr все в порядке, но и у C++ вполне нормально и у питона.
Хаскелю не только до них но и до скажем Delphi/С++ Builder далековато.
Re[6]: OCaml - язык общего назначения?
От: BulatZiganshin  
Дата: 18.09.11 17:34
Оценка:
Здравствуйте, FR, Вы писали:

FR>у jvm/clr все в порядке, но и у C++ вполне нормально и у питона.


сейчас сравнил — 17490 либ на pypi против 3375 на hackage

FR>Хаскелю не только до них но и до скажем Delphi/С++ Builder далековато.


а там как подсчитать?
Люди, я люблю вас! Будьте бдительны!!!
Re[7]: OCaml - язык общего назначения?
От: FR  
Дата: 19.09.11 06:15
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:


BZ>сейчас сравнил — 17490 либ на pypi против 3375 на hackage


Только количество сравнивать по моему не правильно.

FR>>Хаскелю не только до них но и до скажем Delphi/С++ Builder далековато.


BZ>а там как подсчитать?


Сложно, можно тут посмотреть http://www.torry.net/ пишут Products total: 10195
Да и из коробки с тем же дельфи сразу доступно почти все что нужно прикладному
десктоп программисту.
Re: OCaml - язык общего назначения?
От: viktor.sovietov  
Дата: 26.09.11 16:37
Оценка:
Здравствуйте, Аноним, Вы писали:

А как же http://ocamlnews.blogspot.com/2009/09/ocaml-finally-goes-multicore.html http://www.mailrepository.com/caml-list.inria.fr/msg/3552296/ ?



А>Много раз читал в ДП рекомендации попробовать OCaml, как единственную альтернативу С++ в качестве языка общего назначения.


А>http://caml.inria.fr/pub/distrib/ocaml-3.12/ocaml-3.12-refman.txt


А> The Caml run-time system is not reentrant: at any time, at most one thread

А>can be executing Caml code or C code that uses the Caml run-time system.
А>Technically, this is enforced by a "master lock" that any thread must hold
А>while executing such code.

А>это ставит крест на очень многих возможных применениях


А>
Re[2]: OCaml - язык общего назначения?
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 27.09.11 06:58
Оценка:
Здравствуйте, viktor.sovietov, Вы писали:

VS>А как же http://ocamlnews.blogspot.com/2009/09/ocaml-finally-goes-multicore.html


Сырое, нестабильное и тормозное.
Re[6]: OCaml - язык общего назначения?
От: Паблик Морозов  
Дата: 28.09.11 12:49
Оценка: +1 -2
Здравствуйте, FR, Вы писали:

FR>Под практичностью я в первую очередь понимаю широкий выбор достаточно качественных библиотек, с этим не только

FR>у jvm/clr все в порядке, но и у C++ вполне нормально и у питона.
FR>Хаскелю не только до них но и до скажем Delphi/С++ Builder далековато.

Использование clr-ных и jvm-ных библиотек сводит на нет преимущества Скалы/F# (впрочем, у F# 2.0 и так никаких преимуществ нет, кроме синтаксиса). Поэтому интерес они представляют только для программистов находящихся в "переходном периоде", которые пишут на F# как на C#, иногда впаивая List.fold и пайпы. Если очень хочется, из Хаскеля тоже можно вызывать любую дотнетовскую библиотеку, используя Сальсу, или любую сишную, используя FFI. Только мало кому этого хочется. А по количеству библиотек, специально разработанных под язык с целью воспользоваться всеми его преимуществами, Хаскель таки лидер среди ФЯ.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.