Здравствуйте, FR, Вы писали:
FR>На OCaml кстати тоже очень легко писать, и потом читать код. Может и с питоном в этом посоревноваться. FR>Я вот летом с Nim (http://nim-lang.org/) поигрался, хоть и корявый и сырой пока язык, но по моему FR>продуктивность на нем не хуже питона.
Вот из-за Nim'a я c OCaml'ом и связался. Лето-осень вокруг нима поднялся шум. Меня заинтересовало, что за зверь. Прочитал мануал, потыкал язык. Но потом подумал, что не хочу возиться с чем-то сырым, да ещё и с непонятными целями, а OCaml уже достаточно стар, вылизан, имеет свою историю и принадлежит к семейству ML, которое меня давно интересует. А когда стал читать Программирование на языке OCaml, то нашёл для себя много интересного.
Здравствуйте, FR, Вы писали:
FR>Такой же недостаток есть скажем у питона с его GIL, или у nodejs. FR>Выход использовать вместо потоков процессы.
Питон показал, что это несмертельный недостаток. Есть и плюсы и минусы у такого решения.
FR>Второй большой недостаток ограниченность многих типов например max_int для 32 бит FR>всего лишь 1073741823, один бит данных забирает теговая система для GC.
Вот про это не знал.
FR>Третий недостаток, который сильно повлиял на популярность по моему, это ориентированность FR>на unix образные системы, windows скорее по остаточному принципу, хотя в последнее FR>время с этим получше.
Это они зря. Несмотря на то, что я живу в *nix, игнорировать виндовс — потеря популярности.
FR>Ну и плюс очень бедная стандартная библиотека. Это немного исправляется библиотекой FR>http://batteries.forge.ocamlcore.org/
Здравствуйте, monax, Вы писали:
M>Вот из-за Nim'a я c OCaml'ом и связался. Лето-осень вокруг нима поднялся шум. Меня заинтересовало, что за зверь. Прочитал мануал, потыкал язык. Но потом подумал, что не хочу возиться с чем-то сырым, да ещё и с непонятными целями, а OCaml уже достаточно стар, вылизан, имеет свою историю и принадлежит к семейству ML, которое меня давно интересует. А когда стал читать Программирование на языке OCaml, то нашёл для себя много интересного.
M>Это они зря. Несмотря на то, что я живу в *nix, игнорировать виндовс — потеря популярности.
Ну они полностью не игнорировали, я например и начал изучать и использовал под windows,
но если под linux ocaml очень легко установить и использовать, в стандартных репозиториях
куча доступных библиотек, то под windows все что выходило за стандартный инсталлятор было
проблемно, сейчас вроде уже попроще.
FR>>Ну и плюс очень бедная стандартная библиотека. Это немного исправляется библиотекой FR>>http://batteries.forge.ocamlcore.org/
M>А Core, которая заменяет стандартную библиотеку?
Core как-то мимо меня прошло, я начал с ExtLib, который плавно перерос в батарейки.
Здравствуйте, FR, Вы писали:
FR>Интересно даже книжка на русском вышла, раньше только тут http://shamil.free.fr/comp/ocaml/ перевод был.
Это перевод https://realworldocaml.org/. Авторы как раз разработали Core, вокруг неё и книга крутится. Впрочем, большинство вещей без особых заморочек переписывается на стандартной библиотеке. Вчера вот там же читал про Async.
Здравствуйте, FR, Вы писали:
FR>На OCaml кстати тоже очень легко писать, и потом читать код. Может и с питоном в этом посоревноваться. FR>Я вот летом с Nim (http://nim-lang.org/) поигрался, хоть и корявый и сырой пока язык, но по моему FR>продуктивность на нем не хуже питона.
Я тоже так думал, а потом месяцев 6 назад жизнь заставила перейти с Питона на Скалу. По моей оценки сейчас, когда я полностью освоился, прототипирование все равно идет раза в два медленней. Скала правда тоже кривовата, но хотя бы более менее отлажена. Возможно инструментарий подтянут и настанет счастье, но пока вот так.
Здравствуйте, monax, Вы писали:
M>Недавно "в целях повышения образованности" взялся за изучение OCaml. Язык очень понравился, прямо такой хитрый и умный питон с компиляцией. И вот интересно стало, а почему он не взлетел и не стал одним из мейнстримовых языков?
Потому что программисты делятся на:
1) "С++ (или Java) — наше все, все остальное нинужно. у нас даже вывод типов есть. и алгебраики в бусте."
2) "я тупой, все что сложнее JS или Питона — заумь, наркомания и нинужно. Вот Го это круто, он простой, к тому же от гугла"
3) "ФП! Функторы! Монады! Комонады! Когомологии! Предпучки! Топосы! Гомотопии... ой, где это я? Не, грязный ML это недостаточно монадично."
Здравствуйте, D. Mon, Вы писали:
DM>Потому что программисты делятся на: DM>1) "С++ (или Java) — наше все, все остальное нинужно. у нас даже вывод типов есть. и алгебраики в бусте." DM>2) "я тупой, все что сложнее JS или Питона — заумь, наркомания и нинужно. Вот Го это круто, он простой, к тому же от гугла" DM>3) "ФП! Функторы! Монады! Комонады! Когомологии! Предпучки! Топосы! Гомотопии... ой, где это я? Не, грязный ML это недостаточно монадично."
Беби:
Мне ужасно везет на женатых, первый раз влюбилась в женатого, потом шесть лет встречалась с женатым , месяц назад познакомилась с парнем, понравился.....женатый, может у меня карма дурная, что они на меня слетаются, как мухи
Нанни:
упс, о беби , беби
Свайн:
Опережая посты, краткое содержание темы.
1. Аффтор плять.
2. Мужики — плядуны.
3. Сцука разрушает чужие семьи.
4. Добейся хоть одного.
5. Это развод.
6. Куда смотрят жены.
7. Всякий разный флуд на посторонние темы.
8. Разные страшилки про детей.
От себя, обозначиваю пункты 1, 2 и 7
Now perhaps it is clear why I have been working frantically to learn OCaml for the last couple of months; several of Facebook’s compilers are written in OCaml, and so I’m going to need to have a working knowledge of that language very quickly.
Now perhaps it is clear why I have been working frantically to learn OCaml for the last couple of months; several of Facebook’s compilers are written in OCaml, and so I’m going to need to have a working knowledge of that language very quickly.
Про то, что в фейсбуке есть компиляторы на OCaml я знал. Ещё Haxe на нём же написан. Ну т.е. для написания компиляторов, видимо, он хорошо подходит.
Здравствуйте, Кодт, Вы писали:
К>Если поискать язык со схожим уровнем разнопарадигменности и эклектики, — то, пожалуй, это С++. Но за С++ стоит долгая история и большущее сообщество сишников и плюсовиков.
AT&T за ним стоит. И это главное.
К>Если другие ML, — F#, за которым стоит микрософт и совместимость с прочим дотнетом.
F# — это как раз потомок ОКамла. А вот ОКамл уже потомок МЛ-я.
К>А прикольная говорящая лягушка никому особо не нужна.
Я бы по остерегся делать столь смелые заявления.
Думаю, что при должном пиаре и поддержке большой компании он мог бы занять весомую долю рынка, в свое время. Но варился он в научной среде и за ее пределами был попросту незнаком.
Из явных проблем усложняющих его изучение можно выделить разве что безскобочную нотацию в угоду каррирования (как в стиле Хаскеля). Это многих заставляет тупить при его изучении.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, monax, Вы писали:
M>Плюсы же нужно каждый раз просить (auto), чтобы он типы вывел. Ещё интересно было бы сравнить время появления автоматического вывода типов в плюсах и окамле.
Вывод типов появился в ML-е. ОКамл, F#, Scala, Nemerle и от части даже C# унаследовали эту фичу от него.
ОКамл — это по сути и есть сращивание ML-я и ООП в стиле утиной типизации.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Pzz, Вы писали:
Pzz>Ну, скажем так, я бы не стал использовать OCaml в промышленном коде по следующим причинам: Pzz>1. У него недостаточно развитая экосистема Pzz>2. Нет внятных гарантий стабильности языка. Следующая версия компилятора может перестать компилировать существующий код Pzz>3. Если Inria бросит им заниматься, язык умрет
Нет слов! Ну, так займись языком и он не умрет. Это любой язык можно забраковать просто потому что его автор не большая шишка в Майкрософт или Гугле.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, monax, Вы писали:
M>Нужен. Такие как OCaml, LISP, Haskell — это ж кладезь мудрости для программистов. Из этих языков постоянно что-то вытаскивают в мейнстримовые, от чего последние становятся лучше.
Совсем недавно (всего 15 лет назад) не вытаскивали ничего. А о OCaml, LISP и Haskell разве что слышали.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, nikov, Вы писали:
N>А что в Mono странного?
Тормознут он и гюкав. Причем глюки порой годами не лечатся, а иногда возрождаются после того как были вылечены. В прочем, если писать только под него, то проблема не столь остра.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>У параметров не надо писать let. А в ФЯ именно параметры занимают основной объем в коде.
Хоть по существу и согласен, но всё-таки поспорю. В том же хаскеле, с его тотальным выводом типов, у не локальных функций типы всё-таки указывают явно и в таком случае разницы нет. :ямбды выглядят аккуратнее, это да.
Здравствуйте, DarkEld3r, Вы писали:
DE>В том же хаскеле, с его тотальным выводом типов, у не локальных функций типы всё-таки указывают явно и в таком случае разницы нет.
Здравствуйте, DarkEld3r, Вы писали:
DE>Хоть по существу и согласен, но всё-таки поспорю.
Зачетная фраза!
DE>В том же хаскеле, с его тотальным выводом типов, у не локальных функций типы всё-таки указывают явно и в таком случае разницы нет. :ямбды выглядят аккуратнее, это да.
Дык локальных функций (включая лямбды) в разы больше. А то что в С++ их нет — это огромный недостаток.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.