Почему не взлетел OCaml?
От: monax  
Дата: 02.02.16 09:59
Оценка: 1 (1) +1
Недавно "в целях повышения образованности" взялся за изучение OCaml. Язык очень понравился, прямо такой хитрый и умный питон с компиляцией. И вот интересно стало, а почему он не взлетел и не стал одним из мейнстримовых языков? Чисто функциональным его не назовёшь, императивное программирование в нём есть, при этом порядок вычислений в нём прямой, а не ленивый, т.е. всегда можно предсказать, в каком порядке будут выполняться команды. Вывод типов — просто замечательная идея. Но при всех этих прекрасных характеристиках в мейнстриме его нет, ну разве что в виде F#, но это совсем недавно. Так почему он не отвоевал своё место под солнцем?
Re: Почему не взлетел OCaml?
От: LaptevVV Россия  
Дата: 02.02.16 10:10
Оценка:
Опередил свое время?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Почему не взлетел OCaml?
От: monax  
Дата: 02.02.16 10:16
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Опередил свое время?


Не знаю. LISP вот он опередил время, не было мощной техники для выполнения динамического кода. А вот OCaml очень прагматичен. И опять же повторю, у него не чисто функциональная парадигма, возможность писать императивный код у него есть.

Он же зарождался на вашей памяти, может помните что-то из событий того времени?
Re[3]: Почему не взлетел OCaml?
От: LaptevVV Россия  
Дата: 02.02.16 10:24
Оценка:
LVV>>Опередил свое время?
M>Не знаю. LISP вот он опередил время, не было мощной техники для выполнения динамического кода. А вот OCaml очень прагматичен. И опять же повторю, у него не чисто функциональная парадигма, возможность писать императивный код у него есть.
M>Он же зарождался на вашей памяти, может помните что-то из событий того времени?
Ну, 85 год — рождение...
Мы слыхали только о нем. А потом начался Горбачев и стало не до интересных дел в программировании...
Про ML я узнал много позже из биографии Вирта.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Почему не взлетел OCaml?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 02.02.16 12:44
Оценка:
Здравствуйте, monax, Вы писали:

M>Недавно "в целях повышения образованности" взялся за изучение OCaml.


Думаю что основная причина – он никому не нужен. Он не привносит ничего особого, при этом довольно сложен и (в стародавние времена, может что-то уже и изменилось) однопоточен. Единственное где он вроде как обоснованно прижился – прототипы/первые версии компиляторов.
Re[2]: Почему не взлетел OCaml?
От: monax  
Дата: 02.02.16 12:53
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP> Он не привносит ничего особого, при этом довольно сложен и (в стародавние времена, может что-то уже и изменилось) однопоточен. Единственное где он вроде как обоснованно прижился – прототипы/первые версии компиляторов.


Автоматический вывод типов при статической типизации — это очень неплохо. По сути, пишешь на нём, как на питоне, а он сам за тебя типы ищет. Сложность — возможно, мне сложно сказать, как бы я на него отреагировал лет пять назад, а сейчас у меня уже хватает опыта, чтобы брать любой язык и просто изучать его. Однопоточность не порок, что успешно доказано питоном. Есть огромное пространство задач, в которых многопоточность не является необходимостью. А параллельная обработка данных на уровне процессов в окамле возможна.

Мне пока только бедность стандартной библиотеки кажется весомым аргументом, но уже давно есть Core.
Re: Почему не взлетел OCaml?
От: Sharov Россия  
Дата: 02.02.16 13:37
Оценка:
Здравствуйте, monax, Вы писали:

M>Недавно "в целях повышения образованности" взялся за изучение OCaml. Язык очень понравился, прямо такой хитрый и умный питон с компиляцией. И вот интересно стало, а почему он не взлетел и не стал одним из мейнстримовых языков? Чисто функциональным его не назовёшь, императивное программирование в нём есть, при этом порядок вычислений в нём прямой, а не ленивый, т.е. всегда можно предсказать, в каком порядке будут выполняться команды. Вывод типов — просто замечательная идея. Но при всех этих прекрасных характеристиках в мейнстриме его нет, ну разве что в виде F#, но это совсем недавно. Так почему он не отвоевал своё место под солнцем?


Вы прям с Липпертом одновременно -- http://ericlippert.com/2016/02/01/west-of-house/
Кодом людям нужно помогать!
Re[3]: Почему не взлетел OCaml?
От: Evgeny.Panasyuk Россия  
Дата: 02.02.16 14:28
Оценка: :)))
Здравствуйте, monax, Вы писали:

M>Автоматический вывод типов при статической типизации — это очень неплохо. По сути, пишешь на нём, как на питоне, а он сам за тебя типы ищет.


"Автоматический вывод типов при статической типизации" есть в C++ — получается
Автор: Evgeny.Panasyuk
Дата: 07.06.15
именно как на Python'е.
Re[2]: Почему не взлетел OCaml?
От: Кодт Россия  
Дата: 02.02.16 14:40
Оценка: 1 (1) :)
Здравствуйте, LaptevVV, Вы писали:

LVV>Опередил свое время?


Не опередил, а отвлёкся.
Французы — извращенцы, сначала форкнули SML, потом начали пихать в него всякие интересные фичи, причём с совершенно эклектичным синтаксисом, причём без оглядки на инфраструктуру и сообщество.

Если поискать язык со схожим уровнем разнопарадигменности и эклектики, — то, пожалуй, это С++. Но за С++ стоит долгая история и большущее сообщество сишников и плюсовиков.
Если другие ML, — F#, за которым стоит микрософт и совместимость с прочим дотнетом.
А прикольная говорящая лягушка никому особо не нужна.
Перекуём баги на фичи!
Re[4]: Почему не взлетел OCaml?
От: monax  
Дата: 02.02.16 15:08
Оценка: +1
Здравствуйте, Evgeny.Panasyuk, Вы писали:


EP>"Автоматический вывод типов при статической типизации" есть в C++ — получается
Автор: Evgeny.Panasyuk
Дата: 07.06.15
именно как на Python'е.


open Core.Std;;

let add x y =
    x + y
;;

let sub x y =
    x - y
;;

let apply f l =
    f(l)
;;

let () =
    printf "%d\n" (apply apply apply add 1 2);
    printf "%d\n" (apply apply sub 11 2);
;;


Плюсы же нужно каждый раз просить (auto), чтобы он типы вывел. Ещё интересно было бы сравнить время появления автоматического вывода типов в плюсах и окамле.
Re[3]: Почему не взлетел OCaml?
От: monax  
Дата: 02.02.16 15:09
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Не опередил, а отвлёкся.

К>Французы — извращенцы, сначала форкнули SML, потом начали пихать в него всякие интересные фичи, причём с совершенно эклектичным синтаксисом, причём без оглядки на инфраструктуру и сообщество.

Например?
Re: Почему не взлетел OCaml?
От: Pzz Россия https://github.com/alexpevzner
Дата: 02.02.16 15:13
Оценка:
Здравствуйте, monax, Вы писали:

M>Недавно "в целях повышения образованности" взялся за изучение OCaml. Язык очень понравился, прямо такой хитрый и умный питон с компиляцией. И вот интересно стало, а почему он не взлетел и не стал одним из мейнстримовых языков? Чисто функциональным его не назовёшь, императивное программирование в нём есть, при этом порядок вычислений в нём прямой, а не ленивый, т.е. всегда можно предсказать, в каком порядке будут выполняться команды. Вывод типов — просто замечательная идея. Но при всех этих прекрасных характеристиках в мейнстриме его нет, ну разве что в виде F#, но это совсем недавно. Так почему он не отвоевал своё место под солнцем?


Ну, скажем так, я бы не стал использовать OCaml в промышленном коде по следующим причинам:
1. У него недостаточно развитая экосистема
2. Нет внятных гарантий стабильности языка. Следующая версия компилятора может перестать компилировать существующий код
3. Если Inria бросит им заниматься, язык умрет
Re[4]: Почему не взлетел OCaml?
От: novitk США  
Дата: 02.02.16 15:28
Оценка: -1
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>"Автоматический вывод типов при статической типизации" есть в C++ — получается
Автор: Evgeny.Panasyuk
Дата: 07.06.15
именно как на Python'е.


Не есть, а появился 20 лет спустя. Вопрос, как я понимаю, про "тогда", сейчас OCaml совсем не нужен.
Re[5]: Почему не взлетел OCaml?
От: monax  
Дата: 02.02.16 15:47
Оценка:
Здравствуйте, novitk, Вы писали:

N>Не есть, а появился 20 лет спустя. Вопрос, как я понимаю, про "тогда",


Именно. Т.е. не почему он сейчас не взлетает, тут понятно, его обогнали по ряду параметров (сообщество, экосистема), и его никто не толкает.

N>сейчас OCaml совсем не нужен.


Нужен. Такие как OCaml, LISP, Haskell — это ж кладезь мудрости для программистов. Из этих языков постоянно что-то вытаскивают в мейнстримовые, от чего последние становятся лучше.
Re[5]: Почему не взлетел OCaml?
От: DarkEld3r  
Дата: 02.02.16 16:11
Оценка: +2
Здравствуйте, monax, Вы писали:

M>Плюсы же нужно каждый раз просить (auto), чтобы он типы вывел.

Чем это принципиально отличается от необходимости писать let?
Re[6]: Почему не взлетел OCaml?
От: novitk США  
Дата: 02.02.16 16:39
Оценка:
Здравствуйте, monax, Вы писали:

N>>сейчас OCaml совсем не нужен.


M>Нужен. Такие как OCaml, LISP, Haskell — это ж кладезь мудрости для программистов. Из этих языков постоянно что-то вытаскивают в мейнстримовые, от чего последние становятся лучше.


Ключевое слово "сейчас".
В 96-ом был нужен, сейчас нет. Сейчас с ним возиться смысла нет, лучше сразу взять Хаскель или Скалу/Ф#.
Re[4]: Почему не взлетел OCaml?
От: Кодт Россия  
Дата: 02.02.16 16:46
Оценка:
Здравствуйте, monax, Вы писали:

К>>Французы — извращенцы, сначала форкнули SML, потом начали пихать в него всякие интересные фичи, причём с совершенно эклектичным синтаксисом, причём без оглядки на инфраструктуру и сообщество.

M>Например?

Например, синтаксис модулей, объектов и полиморфных вариантов. Как будто три разных команды придумывали.
Перекуём баги на фичи!
Re[5]: Почему не взлетел OCaml?
От: monax  
Дата: 02.02.16 18:18
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Например, синтаксис модулей, объектов и полиморфных вариантов. Как будто три разных команды придумывали.


А да, тоже обратил внимание, но пока ещё не решил, нравится мне это или нет.
Re[6]: Почему не взлетел OCaml?
От: monax  
Дата: 02.02.16 18:20
Оценка: +2
Здравствуйте, DarkEld3r, Вы писали:

DE>Здравствуйте, monax, Вы писали:


M>>Плюсы же нужно каждый раз просить (auto), чтобы он типы вывел.

DE>Чем это принципиально отличается от необходимости писать let?

По ссылке от Evgeny.Panasyuk гораздо больше auto, чем у меня let. Да и разные это вещи в принципе, если уж на то пошло.
Re[7]: Почему не взлетел OCaml?
От: monax  
Дата: 02.02.16 18:32
Оценка:
Здравствуйте, novitk, Вы писали:

N>Здравствуйте, monax, Вы писали:


N>>>сейчас OCaml совсем не нужен.


M>>Нужен. Такие как OCaml, LISP, Haskell — это ж кладезь мудрости для программистов. Из этих языков постоянно что-то вытаскивают в мейнстримовые, от чего последние становятся лучше.


N>Ключевое слово "сейчас".

N>В 96-ом был нужен, сейчас нет. Сейчас с ним возиться смысла нет, лучше сразу взять Хаскель или Скалу/Ф#.

Хаскель другой совсем. Насколько я понял, ленивые вычисления в хаскеле ломают людям голову, потому что заставить его создать side-effect сложно. Впрочем, это пока только по отзывам, изучать его пока не довелось.

Скалу смотрел 4-5 лет назад. Прочитал книгу по скале. Она меня тогда поразила своей крутостью, ну прямо в самое сердце. Даже специальные ключевые слова для описания примесей у них были. А потом я подождал пару недель и попробовал сделать понравившееся в родном питоне. Вот тут на скалу стал смотреть иначе, сдержаннее. А ещё JVM меня тогда отпугнула. Но с тех пор прошло много времени, и на скалу нужно заходить по-новой.

F# — это, считай, OCaml. Только они добавили туда null и связали с .net. Вроде как люди приглядываются и даже пользуются, но для меня есть большой недостаток — MS. Т.е. под линухом я это никак не заведу (моно не в счёт, это странное явление), а под линухом я как раз и работаю. Так что для перехода на F# должно произойти что-то неординарное, чтобы я плюнул на все знания в линух-экосистеме и перешёл в дотнет. Тут либо мне нужно будет выполнять задачу, которая вот 100% хорошо ложится на виндовс+дотнет, но совсем не ложится на линух+окамл, либо F# должен дать мне такие дикие преимущества, что без него никак. Но этого не будет, да и окамл — это "в целях повышения образованности", на прод его тащить пока не собирался.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.