LINUX.ORG.RU

Ocaml язык вчерашнего дня ?


0

0

Можно ли изучать язык Ocaml с целью применять в реальной работе ?

Смысл вопроса - не является ли язык,скажем мягче, языком секодняшнего дня,не имеющий будущего.Например, появился F# c хорошей финансовой поддержкой.На каком-то форуме попадалось фраза,если не ошибаюсь, суть которой "... появились новые языки как Nemerle,которые лишены недостатков старых языков ..."

Развивается ли Ocaml? Насколько стабилен его компилятор или постоянно глючит ?


Новизна я.п. - несколько бредовое понятие.
Например, Common Lisp стандартизировали в 15 лет назад, но до сих пор ни один из новомодных языков по удобству использования, количеству возможностей и органичности фич и парадигм его не переплюнул.

Кстати, F# это всего лишь OCaml на .NET
А Nemerle - говно.

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

да, Common Lisp наше все. Остальное — УГ.

anonymous
()

В смысле писать большие и серъезные системы? Может и можно, но скорее всего во всяких америках или европах.

Писать небольшие скриптики и программки для себя или еще для кого? Вариант. Я бы тогда выбирал между OCaml и другими языками с хорошей системой типов, скажем Haskell. Критерии для выбора придумайте сами.

Для самообразования? Тоже вариант. Альтернативный (а может и лучший?) выбор - найти книжку по математике по теориям типов или теории категорий и прочитать ее. Сам бы сейчас так и сделал.

anonymous
()

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

Язык развивается довольно медленно, имеет ряд проблем (например сам Лерой говорил, что типовыводилку нужно переписывать с нуля: проблемы с объектами и полиморфными вариантами; широкораспространенные среди многих языков проблемы с настоящей многопоточностью (GC блокирует все остальные потоки во время некоторых своих фаз); не очень большое количество библиотек), но вполне неплох и юзабелен, есть очень интересные возможности (мне например нравится camlp4 с расширяемыми грамматиками, хоть он и ограничен). Ознакомиться не помешает, писать на нем серьезно можно. Насчет будущего не уверен, из-за модели разработки в первую очередь.

Развивается ли Ocaml? Насколько стабилен его компилятор или постоянно глючит ?

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

satanic-mechanic
()
Ответ на: комментарий от Love5an

> Кстати, F# это всего лишь OCaml на .NET

Кстати, это уже приличное время не совсем так. Добавлено немало фич, вдохновленных тем же haskell и т.д. В общем он потихоньку начинает отходить от истоков. А еще и изначально .NET накладывает свой отпечаток.

satanic-mechanic
()
Ответ на: комментарий от Love5an

> А Nemerle - говно.

Ну, ИМХО заслуживает нескольких вечеров, чтобы глянуть на него.

satanic-mechanic
()
Ответ на: комментарий от tailgunner

> Nemerle привязан к .NET и уж точно более мертв, чем Ocaml.

Соглашусь что более мертв, но не из-за привязки к .NET главным образом (хотя именно для меня он мертв именно по этой причине, да).

satanic-mechanic
()
Ответ на: комментарий от satanic-mechanic

s/мертв именно по этой причине/мертв в первую очередь по этой причине/

satanic-mechanic
()
Ответ на: комментарий от Love5an

Кстати, F# это всего лишь OCaml на .NET

нет. изначально это был скорей Caml.NET, сейчас - вполне самостоятельный язык семейства ML

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

> А Nemerle - говно.

Вполне хороший язык. Если до этого кодил на C#, и захотелось посмотреть, что такое функциональное программирование, то Nemerle очень хороший выбор. С виду он похож на C#, но поддерживает хвостовую рекурсию, умный вывод типов, pattern matching и алгебраические типы данных. К тому же есть доступ к платформе, так что не все будет ново. А после Nemerle, уже намного проще переключиться на F#, OCaml или Haskell.

Сам на Nemerle написал достаточно крупный проект по своим меркам (около 40 000 строк кода) http://uniquation.ru в рамках своего диплома, так что знаю о чем говорю.

Но если человек никогда не кодил под .NET, но Nemerle, наверное, смотреть не стоит.

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

>Но если человек никогда не кодил под .NET, но Nemerle, наверное, смотреть не стоит.

Хочется узнать, а что там, в дотнете такого, отчего на nemerle смотреть не стоит? Аура?

impfp
()

Изучать можно, применять можно. Если боишься потраченного времени - то оно никуда не денется, если вдруг что, после знакомства с ним будет намного проще перейти на другой язык семейства ML или на Haskell.

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

Ушел в синтаксические сахара, linq, интеграцию к студии (это считаю все же благим начинанием), и в переписывание компилятора - как итог имеем нечто неоптимизированное, глючное, и довольно недокументированное (это перманентное) + не слишком структурированное

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

> А что, любой ml сегодня уже ocaml? :)

F# как минимум обратно совместим с OCaml на уровне исходников, и в ранних версиях бутстрапился из OCaml.

anonymous
()

Можно ли изучать язык Ocaml с целью применять в реальной работе ?

Можно, конечно, кто ж запретит-то?

Miguel ★★★★★
()
Ответ на: комментарий от satanic-mechanic

Опа! Целых два программиста в целых двух конторках пишут хеллоуворлды на окамле. В свободное от работы время, надо полагать.

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

> где все уж очень радужно расписано

Это же толстый тролль Харроп. Ему верить можно только накурившись грибов.

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

Есть ли у кого-нибудь статьи из архива журнала The OCaml Journal ?
http://www.ffconsultancy.com/products/ocaml_journal/

Статьи из архива доступны только для подписчиков:
Subscription articles
The following articles are available in the archives to subscribers:
1. How to Leverage Pattern Matching (8th June 2007)
......
64. High-performance parallel programming with HLVM (23rd January 2010)

Интересно было бы почитать ,например, о том как пишут на Ocaml
виртуальную машину.
Если есть возможность скиньте на brop[at]mail.ru
Спасибо.

Oaks
() автор топика

Одно время метался между ним и хаскелем, а потом потерял веру в них обоих. Просто для создания годного языка программирования общего назначениия нужен определённый склад ума, у Гвидо ван Россума, он есть, у автора Кложуры, видимо, есть, а на Лероя с Пейтон-Джонсом надежды никакой, их уже могила исправит. Ещё DDC пока подаёт некоторые надежды.

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

> Целых два программиста в целых двух конторках пишут хеллоуворлды на окамле

Ой, как толсто. В обоих конторах OCaml основной язык. О чем они сами и заявляют.

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

> Это же толстый тролль Харроп. Ему верить можно только накурившись грибов.

Да, троль он знатный, поэтому возможно и написано так радужно (кстати, за OCaml он давно не радеет, его фетиш — фа диез). Но факт серьезного использования OCaml в Citrix остается фактом.

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

Да, у меня почти такая же история. В итоге оставил OCaml для задач синтаксического и иже с ним анализа, где алгебраические типы и сопоставления с образцом уж очень удобны (прототипирую сейчас на нем движок регулярных выражений над LLVM) + там где производительность очень важна. Для остального в основном Clojure и Python.

satanic-mechanic
()
Ответ на: комментарий от satanic-mechanic

> В итоге оставил OCaml для задач синтаксического и иже с ним анализа [...] Для остального в основном Clojure и Python.

То есть морды на нем писать неудобно?

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

Ну, есть lablgtk2, который наверное получше всех. Довольно полный, но не очень хорошо документированный и местами из-за простого оборачивания C-шных функций с помощью макросов, не дающий доступа ко всей функциональности. Как пример, функциям, в которых передается указатель на какой-то GTK'шный объект, можно в C передавать NULL. Нужно бы в <object> option оборачивать, а там просто <object>. И таких мест немало. Приходилось самому обертки переписывать.

Причем обертка один-в-один. То есть при написании GUI на C кода получается ну лишь раза в полтора больше в лучшем случае.

satanic-mechanic
()
Ответ на: комментарий от satanic-mechanic

Один-в-один — в смысле те же вызовы, никакого более высокого уровня. Но и у Python, на самом деле, вроде, то же самое.

satanic-mechanic
()
Ответ на: комментарий от satanic-mechanic

> Но факт серьезного использования OCaml в Citrix остается фактом.

Это его в Xen «серьезно» использовали, стартапам такое простительно. А Citrix все на C++ перепишет.

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

> А Citrix все на C++ перепишет.

С полмесяца назад citrix'овцы в haskell-cafe и caml-list набирали людей. Видать не хотят на C++ переписывать, да и глупо было бы ИМХО. OCaml и проще и лучше. Уж как замена C++ ИМХО очень хорош.

satanic-mechanic
()
Ответ на: комментарий от satanic-mechanic

Так небось затем и набирали, чтоб было кому переписывать. Как наберут, так и уберут потом. Зачем бы им такие проблемы с поиском персонала себе создавать на долгую перспективу?

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

ИМХО проблем с поиском персонала быть не должно. Людей больше чем работы, да и обучить новых несложно (язык объективно проще C++). Может расширяются :)

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

> Сколько миллионов человек в мире знают C++

На уровне не «C с классами» счет на миллионы не идет, думаю.

сколько десятков знают OCaml?

Гораздо, гораздо больше.

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

satanic-mechanic
()
Ответ на: комментарий от tailgunner

> То есть морды на нем писать неудобно?

кстати у меня есть самописаня либа tui (text user interface) — граф. примитивы типа кнопок, лейблов, комбобоксов... ocaml + ncurses. на ней писалось несколько вполне промышленных морд.

все никак руки не дойдут причесать и выложить...

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

Ну, в общем GTK вполне юзабелен. Но преимуществ использования именно OCaml _принципиальных_ нету, есть очень небольшие. И вдовесок ряд недостатков в связи с качеством биндингов, которое хорошее, но не отличное.

satanic-mechanic
()
Ответ на: комментарий от Rastafarra

Так выложи не причесывая :) Только адрес на sf.net укажи :)

Кто-нить да причешет

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

> Например, Common Lisp стандартизировали в 15 лет назад, но до сих пор ни один из новомодных языков по удобству использования, количеству возможностей и органичности фич и парадигм его не переплюнул.

На правах не тролля. Напишите новость или статью, где вы рассказываете почему таки Common Lisp переплевывает все остальные языки и почему самый большой продукт на нем - emacs. Я сейчас начал интересоваться очень выразительными языками и не могу понять, чем же clisp такое особенный и почему мне ради него нужно бросить Scala, Grooby или Ruby

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

Смешались в кучу кони, люди.
Emacs написан вообще на Си, вроде. А как extension language там Emacs Lisp, а не CL.
clisp это вообще название реализации CL. Называть так последний это все равно что под «MS Visual C++» иметь ввиду C++.

А что такое Груби, кстати?

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

Граммар наци не знает groovy? Вопросов больше нет. Вы мне напоминаете людей, которым когда объясняешь что-то в виде примера кода очень сильно возмущаются пропущеной точкой с запятой. В итоге вы просто газанули и ничего не ответили по вопросу.

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