Re[5]: ocaml срочно!!!
От: geniepro http://geniepro.livejournal.com/
Дата: 16.05.07 17:21
Оценка:
Здравствуйте, anastassia, Вы писали:

A>Профессионалы! Выскажетесь!!! Кто с CAML знаком, чем плох, чем хорош, чем удобен, чем нет и т.д. Как он вообще среди функциональных — не самый же отсталый? Исключительно ваше мнение!!!


Конечно же далеко не самый отсталый: на соревнованиях по программированию окамлеры постоянно занимают первые места вместе с хаскеллерами. Недаром в Microsoft Research ведутся работы по развитию обоих этих языковых семейств — Хаскелл и F# (развитие Окамля).
Тут не зря так настойчиво рекомендуют F# — плагин к Visual Studio для F# действительно очень удобен. Большая часть программ на Окамле должна работать на F# (без больших переделок)...
Re[5]: ocaml срочно!!!
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.05.07 18:09
Оценка: 3 (1) +2
Здравствуйте, anastassia, Вы писали:

A>Профессионалы! Выскажетесь!!! Кто с CAML знаком, чем плох, чем хорош, чем удобен, чем нет и т.д. Как он вообще среди функциональных — не самый же отсталый? Исключительно ваше мнение!!!


Я в нем не проффесионал, но могу в общих чертах, тык сызыть...

Хорош тем что:
1. Совмещает в себе ООП и ФП (сокращения понятны?).
2. Статически типизированный.
3. Порождает довольно быстрый код, так как п.2 и без заскоков вроде Хаскелевской ленивости (в прочем, наверное есть варианты).
4. Как и все языки линейки ML поддерживает вывод типов, что позволяет писать программы почти не указывая типы явно (как на скриптах), но при этом получая надежный и быстрый код.
5. Очень безопасный язык. Запрещены многие вольности с типами допустимые даже в считающихся типобезопасными языках вроде Явы.
6. Как прямой потомок ML-я поддерживает сопоставление с образцом (pattern matching), что позволяет сщественно упростить решение многих задач. Например, разработку компиляторов.
7. Имеет мощьный препроцессор (на возглас "препроцессор — сакс!" надо отвечать "ламер, это же не С++-ный препроцессор") поволяющий менять синтаксис языка и создавать DSL-и (тут надо добавлять "это по научному, вам не понять...".

Плохо там:
1. Реализация ООП несколько урезанная и непривычная для тех кто изучал С++/Яву/Дельфи...
2. Статическая тмпизация излишне параноидальная. Это приводит к проблемам п. 1.
3. Вывод типов основан на алогоритме Хиндли/Миллера который требует уникальности всех идентификторов и не позволяет пергружать фукнции (создавать две фукнции с одним именем чтобы компилятор сам выбирал нужную).
4. Язык вообще очень непохож на классические ООЯ и вообще императивные языки (С, Паскаль...). Для привыкших к оным он выглядит как форменное издевательство. А если еще не понимать что такое сопоставление с образцом, то полный пипец получается.
5. Очень плохо поддерживает динамические действия (компонетный подход и т.п.).
6. Имеет очень аскетичные средства разработки (в основном поддержку в текстовых редакторах).

Отчасти некоторые проблемы решены в том самом F#.

Лично мое мнение — это проходной язык. Как и многие другие он много дал с научной точки зрения, но будущего за ним нет. Причем даже не потому, что он сам по себе плох, а потому, что его не примет программистское сообщество привыкшее к С-подобным языкам. Темболее, что языки вроде Scala и Nemerle скомуниздили у него все приемущества и устранили его недостатки. А языки вроде (да что уж там, "вроде"?) Хаскеля превзашли его с точки зрения дальнешего развития функционального подхода.

Однако Хаскель полнеший тормоз, а Scala, Nemerle и даже F# зависят от сред исполнения (Явы и .NET-а). А в области языков компилирующихся в родной код процессоров и обеспечивающих производительность сравнимую с С++ и при этом отлично поддерживающие ФП и неплохо поддериживающие ООП пожалуй больше языков и нет. По крайней мере это очень неплохой выбор.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: ocaml срочно!!!
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.05.07 18:13
Оценка:
Здравствуйте, VladD2, Вы писали:

Да... Все сказанное об ОКамле.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: ocaml срочно!!!
От: EvilChild Ниоткуда  
Дата: 16.05.07 19:04
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>3. Вывод типов основан на алогоритме Хиндли/Миллера который требует уникальности всех идентификторов и не позволяет пергружать фукнции (создавать две фукнции с одним именем чтобы компилятор сам выбирал нужную).

Правильный вариант написания Hindley–Mil<b>n</b>er.
now playing: Noisia — Street Dreams
Re[7]: ocaml срочно!!!
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.05.07 19:13
Оценка: :)
Здравствуйте, EvilChild, Вы писали:

EC>Правильный вариант написания Hindley–Mil<b>n</b>er.


А, ну, нихай. А и правда с поганым пивом путается.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: ocaml срочно!!!
От: anastassia  
Дата: 16.05.07 19:19
Оценка:
Здравствуйте, VladD2,


ой аж зачиталась))) вот там си частенько упоминался, меня собственно это и интересует- с++ в противопоставлении с Obj. CAML! Я так понимаю, последний конкретно эффективней))) Вы уж меня извините, я кроме си, делфи и ассемблера(одним глазом) в жизни-то ничего и не видела, вроде как недоросла еще до некоторых прог.выражений)))) Если не затруднит-это можно подоступнее объяснить?Буду крайне признательна
Re[6]: ocaml срочно!!!
От: anastassia  
Дата: 16.05.07 19:22
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Поставь вопрос шире. Зачем тебе это все надо? Экзамен, лаба, научная работа, развлечение, впечатление произвести, работу сделать. Опиши короче ситуацию.


ситуация-проще некуда, диплом защищать на след.неделе, там один дядечка вредный будет, может всяких вопросов назадавать, вот и интересуюсь у людей умных и продвинутых))) Интересует меня противопоставление императивные-функциональные языки( на примере си++ и кэмла).
Re[7]: ocaml срочно!!!
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 16.05.07 19:50
Оценка:
Здравствуйте, anastassia, Вы писали:

A>ой аж зачиталась))) вот там си частенько упоминался, меня собственно это и интересует- с++ в противопоставлении с Obj. CAML! Я так понимаю, последний конкретно эффективней)))


Ага, эффективнее для программиста. По скорости работы программы, скорее, OCaml чуть-чуть проигрывает C++. Но как правило, это ничего не значит, т.к. на C++ очень тяжело делать нормальную высокоуровневую оптимизацию, а на ML-подобных языках это делается в два касания.

A> Вы уж меня извините, я кроме си, делфи и ассемблера(одним глазом) в жизни-то ничего и не видела, вроде как недоросла еще до некоторых прог.выражений)))) Если не затруднит-это можно подоступнее объяснить?Буду крайне признательна


А Dам, барышня, обязательно ОКамл нужен? Дело в том, что ОКамл — язык, производный от ML. Но существует много языков, которые так или иначе вобрали в себя фичи ML. Например, Nemerle или Хаскель. Если Вам хочется увидеть "как выглядит ОКамл", то не обязательно смотреть на ОКамл. Достаточно поглядеть на Nemerle или Хаскель. Тут на сайте как раз недавно пару хороших статей с примерами по этим языкам выложили.
... << RSDN@Home 1.2.0 alpha rev. 672>>
Re[8]: ocaml срочно!!!
От: anastassia  
Дата: 16.05.07 20:08
Оценка:
Здравствуйте, konsoletyper, Вы писали:


K>А Dам, барышня, обязательно ОКамл нужен? Дело в том, что ОКамл — язык, производный от ML. Но существует много языков, которые так или иначе вобрали в себя фичи ML. Например, Nemerle или Хаскель. Если Вам хочется увидеть "как выглядит ОКамл", то не обязательно смотреть на ОКамл. Достаточно поглядеть на Nemerle или Хаскель. Тут на сайте как раз недавно пару хороших статей с примерами по этим языкам выложили.



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

а почему, собственно, все так шугаются от него в сторону Nemerle или Хаскеля?
Re[6]: ocaml срочно!!!
От: geniepro http://geniepro.livejournal.com/
Дата: 16.05.07 20:24
Оценка:
Здравствуйте, VladD2, Вы писали:

VD2> Однако Хаскель полнеший тормоз...


Как ты любишь повторять, это зависит... :о)
Можно провести простейшие тесты, в которых анализатор строгости в Хаскелле позволяет сгенерировать более быстрый код, чем даже в Си (пример — функция Аккермана).

VD2> А в области языков компилирующихся в родной код процессоров и обеспечивающих производительность сравнимую с С++ и при этом отлично поддерживающие ФП и неплохо поддериживающие ООП пожалуй больше языков и нет.


Ну, можно привести в пример Common Lisp и Scheme, в которых есть отличная поддержка не только ФП, ООП и метапрограммирования, но и компиляторы, генерирующие нативный код не хуже (или ненамного хуже), чем у Си — Stalin, Bigloo, mzScheme, SBCL...
Re[9]: ocaml срочно!!!
От: geniepro http://geniepro.livejournal.com/
Дата: 16.05.07 20:29
Оценка: +1
Здравствуйте, anastassia, Вы писали:

A>а почему, собственно, все так шугаются от него в сторону Nemerle или Хаскеля?


Просто, как бы это сказать... ОКамл чуть-чуть устарел. Хотя его новые реинкарнации — F# и Nemerle — продолжают его дело (грязное иперативное ООПное дело), но тем не менее, самые новые разработки в области информатики (Computer Science) сейчас крутяться именно вокруг Хаскелла — потому Хаскелл так и интересен.

Немерлёй же тут (на данном конкретном форуме) увлекаются, так как это язык, нахватавший всяких разных фишек из кучи разных языков — ФП, ООП, метапрограммирование. Ну прям новый статический Лисп с сишным синтаксисом... :о))
Re[10]: ocaml срочно!!!
От: deniok Россия  
Дата: 16.05.07 20:32
Оценка: :))) :))) :)))
Здравствуйте, geniepro, Вы писали:

По-моему. Сейчас. Кто-то. Получит. По полной. Программе.
Re[4]: ocaml срочно!!!
От: Аноним  
Дата: 17.05.07 06:22
Оценка:
A>Скажите, он (язык) где вообще используется?

Мне известен один случай: пересылка лент новостей в аську(с маленькой буквы), или если по научному — RSS to XMPP transport

Впрочем не очень удобный, на мой вкус.
http://www.jabber.ru/search/node/rss
Re[10]: ocaml срочно!!!
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 17.05.07 06:37
Оценка:
geniepro,

G>Просто, как бы это сказать... ОКамл чуть-чуть устарел.


Ну да, GADTs, dependent types и прочих высоких технологий нет — всё, можно ставить крест? Дело в том, что OCaml уникален — ему не нужен тяжёлый рантайм, статически типизирован с выводом типов, достаточно мощные типы для многих задач, и это может сыграть в его пользу. Какая-нибудь ниша всё равно найдётся.

И мне кажется, уже две type-лаборатории это чересчур. Одной в лице Хаскеля достаточно
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[11]: ocaml срочно!!!
От: palm mute  
Дата: 17.05.07 07:26
Оценка:
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>И мне кажется, уже две type-лаборатории это чересчур. Одной в лице Хаскеля достаточно

Как ни крути, Окамл — уже type-лаборатория. Например, попробуй эмулировать полиморфные варианты на Хаскеле.
Или почитай, как народ извращается. У Окамла не такая уж простая система типов.
Re[9]: ocaml срочно!!!
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 17.05.07 07:29
Оценка:
Здравствуйте, anastassia, Вы писали:

A>а почему, собственно, все так шугаются от него в сторону Nemerle или Хаскеля?


Просто чтобы доходчиво описать OCaml, понадобится время и литературно-педагогические способности. А по Хаскелю и по Немерле на сайте уже есть замечательные статьи. Я так понял, что нужно не разбираться в тонкостях OCaml, а в общих чертах представить себе, что это такое. Тогда вполне подойдут статьи о похожих языках: Функциональное программирование в Nemerle
Автор(ы): Чистяков Влад (VladD2)
Дата: 03.03.2007
Язык программирования Nemerle заинтересовал многих в первую очередь своей мощнейшей подсистемой мак-росов. Однако и без них Nemerle предоставляет ряд су-щественных улучшений по сравнению с традиционными, императивными языками программирования (такими как Java, C# и C++).
Nemerle, кроме традиционного императивного програм-мирования, поддерживает функциональное программи-рование. Это выражается в наличии конструкций, упро-щающих манипуляцию функциями, построение и анализ сложных структур данных и т.п.
К сожалению, если вы не использовали возможности, присущие функциональным языкам ранее, то вам будет трудно оценить, насколько Nemerle может оказаться вам полезным в реальной повседневной работе. Данная статья призвана в неформальной форме продемонс-трировать это.
и Мягкое введение в Haskell
Автор(ы): Пол Хьюдак, Джон Петерсон, Джозеф Фасел
Дата: 03.03.2007
Задача данного материала – обеспечить «мягкое» введение в программирование на Haskell для имеющих опыт программирования, по крайней мере, на одном языке, желательно функциональном (даже если это «почти функциональный» язык, такой как ML или Scheme).
. Ещё где-то тут на форуме была ссылка на книгу по F# (на английском). А так, можно посмотреть ссылки, которые кинул lomeo тут
Автор: lomeo
Дата: 15.05.07
.
... << RSDN@Home 1.2.0 alpha rev. 672>>
Re[12]: ocaml срочно!!!
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 17.05.07 08:17
Оценка:
palm mute,

LCR>>И мне кажется, уже две type-лаборатории это чересчур. Одной в лице Хаскеля достаточно

PM>Как ни крути, Окамл — уже type-лаборатория. Например, попробуй эмулировать полиморфные варианты на Хаскеле.

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

В принципе согласен, да. Окамл не прост. Я с этим и не спорил, меня встревожила фраза "OCaml чуть чуть устарел" by geniepro. Подожду, может он ответит, что он имел ввиду под ней.
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[13]: ocaml срочно!!!
От: palm mute  
Дата: 17.05.07 08:21
Оценка:
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>В принципе согласен, да. Окамл не прост. Я с этим и не спорил, меня встревожила фраза "OCaml чуть чуть устарел" by geniepro. Подожду, может он ответит, что он имел ввиду под ней.


С утверждением geniepro тоже не согласен.
Re[7]: ocaml срочно!!!
От: Gaperton http://gaperton.livejournal.com
Дата: 17.05.07 08:57
Оценка:
Здравствуйте, anastassia, Вы писали:

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


G>>Поставь вопрос шире. Зачем тебе это все надо? Экзамен, лаба, научная работа, развлечение, впечатление произвести, работу сделать. Опиши короче ситуацию.


A>ситуация-проще некуда, диплом защищать на след.неделе, там один дядечка вредный будет, может всяких вопросов назадавать, вот и интересуюсь у людей умных и продвинутых))) Интересует меня противопоставление императивные-функциональные языки( на примере си++ и кэмла).


1) Забей. Пусть твой научный тебя защищает от дядьки.
2) Противопоставления никакого нет и быть не может — OCaml полноценный императивный ОО язык. ("Чистый" функциональный язык, о котором можно сказать, что он "распространен" — вообще один. Это Хаскель.) Наиболее существенные (принципиальные) отличия OCaml от С++, (синтаксис в рассчет не берем) — система типов Хиндли-Милнера (обращаем особенное внимание на параметрические типы — более гибкий параметрический полиморфизм), сопоставление с образцом (более гибкий ad-hoc полиморфизм), автоматическое управление памятью (сборка мусора), функции высокого порядка + замыкания.
Re[7]: ocaml срочно!!!
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 17.05.07 10:05
Оценка:
Здравствуйте, geniepro, Вы писали:

VD2>> Однако Хаскель полнеший тормоз...


G>Как ты любишь повторять, это зависит... :о)

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

Что то не верится. Си всё таки считай ассемблер и есть.
Приведи, пожалуйста.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.