LINUX.ORG.RU

Основывая на чём можно выбрать OCamL или Erlang или Haskell


0

5

Я догадываюсь, что это какая-то паранойа !!! Но как !?

Конечно очевидный вариант - попробовать все. И подумать.

Пробую... Думаю... А дальше что ???

OCamL похож на F#, красив и удобен... хорошо. Применять можно везде, к web имеет много забавных наработок.

Erlang имеет достаточно мощную, стабильную виртуальную машину и синтаксис очень забавный ! Интересный web server yaws и NoSQL DBMS.

Haskell выигрывает по полярности и там есть много действительно хороших библиотек вообще в любой сфере...

Отвечаю на первый предугаданный вопрос - нет, я не хочу на них писать драйвера. Мне интересны сайты, промышленные приложения, утилиты... Но в любом случае я не понимаю как можно их сравнить и выбрать один. Если есть люди, которые выбрали - расскажите как ?


прочитай http://fprog.ru/2009/issue2/

для Ъ :

Центральная тема второго выпуска журнала — демонстрация применения функционального программирования в реальных, а не академических проектах.

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

CL - это не язык, а множество глупых раздражающих скобок.

Обычно, в редакторах они подсвечиваются самым незаметным образом.

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

В целом программирование... концепции, задачи конечно можно изучать хоть бесконечно, это в профессии зашито.

Но никто меня не остановит обратить внимание и на эти языки так же. Если хочешь сказать, что они бесмесленны, то я тебе не поверю, пусть их создатели мне это скажут.

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

в теме вообще был выбор из трёх )

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

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

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

vertexua ★★★★★
()

Для ынтырпрайза, сетей и веб Erlang, для десктопа и утилиток Haskell, а Ocaml не нужен. Имхо так.

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

>Если нагрузка на сайт будет небольшой, Erlang в производительности уступит тому же Haskell из-за динамической типизации.

Это грустно :( Если это правда

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

Пользой и удовольствием. Мне это интересно.

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

Грустная правда в том, что ерланг в арифметике просаживает няшной в _тысячи_ раз.

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

«CL - это не язык, а множество глупых раздражающих скобок.» — сказал недалёкий жабобыдлокодер.

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

А почему OCamL не нужен ?

качество библиотек оставляет желать лучшего

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

В общем выводы такие: выбранный тобой язык должен быть максимально удобен и тебе и твоему заказчику. Что значит, что он удобен тебе? Это значит, что ты не должна испытывать проблем: с его синтаксисом, семантикой, средствами разработки, документацией, поддержкой комьюнити.

Что значит, что он удобен заказчику? Это значит, что он должен не испытывать проблем с сопровождением и верификацией кода как минимум. То есть он должен мочь в любой момент легко найти человека, который разберется в твоем проекте и внесет в него коррективы, если потребуется. Таким образом самый предпочтительный тобой язык должен быть: а) самым удобным и б) самым популярным, ну или просто известным.

Как-то так.

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

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

А некоторые плюсисты действительно могут сделать все;-)

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

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

а можно линк на багу?

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

>у нас программ нет, значит и проблем нет :P

Бесплатный фикс.

anonymous
()

>Основывая на чём можно выбрать OCamL или Erlang или Haskell

На личных знаниях и опыте. А до этого - вижуалбейсик

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

>пейтон мультипарадигменный язык, в нем есть и фп

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

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

но на деле писать в функциональном стиле ничего сложнее маленькиз примеров не выходит.

А больше и не надо. Ограничивать себя исключительной функциональностью/немутабельностью попросту глупо.

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

Вы глазами в монитор смотрите? А знаете, что человеческий глаз это чудовищное скопление костылей, по сравнению с которым С++ это вершина чистоты стиля и изящества? Если Вы такой перфекционист, что ж Вы себе глаза то не вырвете и не вставите на их место что нить более идеологически выдержанное, какие нить веб-камеры с драйверами на чистом С или хаскеле?;-)

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

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

Я писал, но это банально неудобно. ФП нужно юзать там, где оно позволяет улучшать код, а не везде лишь потому что оно ФП.

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

Дело в том, что это язык тебя ограничивает неиспользованием функциональности/немутабельности.

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

А знаете, что человеческий глаз это чудовищное скопление костылей

Что за бред? Человеческий глаз - идеальный инструмент для решения требуемых от него задач.

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

>Однако, энтузиастов почему-то мало находится.

Правильно - х*р с ними. Все на кресты и пидон! Ведь миллиард мух не ошибается!

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

> Что за бред? Человеческий глаз - идеальный инструмент для решения требуемых от него задач.

Да? А слепое пятно откуда взялось знаете? А катастрофически низкая пропускная способность глазного нерва? Если глаз «идеальный...» так С++ тем более, и нечего тут троллить, лучше почитайте про эволюцию глаза!;-)

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

Все на кресты и пидон!

Я никого не агитирую. Мало ли у кого какие забавы бывают. Некоторые любят железо потягать, какое мне дело? Никакого, пущай играются.

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

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

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

Вы кстати физику знаете? Никогда не задумывались, почему смешение RGB дает произвольный цвет видимого спектра? Как это так выходит - сложили три фотона с разными длинами волн и получили что то среднее? Это все фикция, и работает только потому, что цветное зрение реализовано через кривущий костыль. ДальтонизЪм и проч отсюда же...

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

Да? А слепое пятно откуда взялось знаете? А катастрофически низкая пропускная способность глазного нерва? Если глаз «идеальный...» так С++ тем более, и нечего тут троллить, лучше почитайте про эволюцию глаза!;-)

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

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

> А больше и не надо.

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

Ограничивать себя исключительной функциональностью/немутабельностью попросту глупо.

как будто бы хотя бы в 1 из этих языков нет мутабельных данных, и нельзя писать в императивном стиле.

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

В пейтоне очень ограничены функциональные средства.

ну что-ж посмотрим на аргументы...

Например, настоящих лямбд нет

шашечки или ехать?

иммутабельности и подавно нет

numbers, strings, tuples, frozensets

есть ещё претензии, или это всё?

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

>Вы кстати физику знаете? Никогда не задумывались, почему смешение RGB дает произвольный цвет видимого спектра? Как это так выходит - сложили три фотона с разными длинами волн и получили что то среднее?

+1

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

как будто бы хотя бы в 1 из этих языков нет мутабельных данных, и нельзя писать в императивном стиле.

erlang?

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

Например, настоящих лямбд нет

Определение настоящей лямбды в студию. И почему без них функциональные средства ограничены?

иммутабельности и подавно нет.

a = "string"
b = a # ссылка!

Измени а, манипулируя b.

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

как будто бы хотя бы в 1 из этих языков нет мутабельных данных, и нельзя писать в императивном стиле.

erlang?

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

process dictionary, ets, ещё что-то было? Да не всё рекомендовано, зачастую можно успешно обойтись и без, но если уж совсем присписчило, то все средства есть.

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

Ну кто же еще, кроме лоровцев, умеет настолько идиотично и не к месту козырять «знанием физики»?

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

> А почему OCamL не нужен ?

Нет нормального развития, нет библиотек, нет инфраструктуры, нет многоядерности/параллелизма, нет нормального REPL, серьезные травмы синтаксиса, нативный код, генерируемый хаскеллем, уже догоняет окамл и т.д. Если хочется МЛ-я, то лучше уж F#, хоть это тоже имхо не конфетка.

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

не помню ) может быть уже даже починили.

nCdy
() автор топика
Ответ на: комментарий от baverman

Определение настоящей лямбды в студию.

Очевидно что те которыми можно задать _любую_ функцию, а не только однострочники вида x+y.

И почему без них функциональные средства ограничены?

Потому что ты не можешь комбинировать элементарные функции вида map,foldr,foldl,.... и вынужден писать все в императивном стиле.

Измени а, манипулируя b.

А теперь тоже самое для списков.

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