LINUX.ORG.RU

А какая у haskell область применения?


0

0

Что на нем лучше писать? Часто упоминают что на нем, дескать, все 
легко распаралелливается. Ладно, допустим, для сервера самое то, но 
вот беда, сетевые приложения критичны к IO, а на хаскеле оно 
реализовано коряво и преполагаю медленно. Для сервера значит 
неподходит. Десктоп, что на нем можно написать, многие десктопные 
приложения тоже критичны к IO, тоже надо извращаться. Так какая у него 
область применения? Спрашиваю потому как самому интересно, ну и от 
части для флейма.
anonymous

Ломать мозг юным падаванам.

Legioner ★★★★★
()

Когда-то давно я слышал, что для какого-то американского банка пишут на нём что-то финансово-математическое.

anonymous
()

сложные трансформации/трансляции. Всё что легко можно выразить без состояния, "уравненчески".

zort
()

Математики - гениальные люди - они всегда стремятся что-то оптимизировать и тем самым облегчить себе жизнь. Так ими была изобретена первая вычислительная машина, потом первые языки программирования. Со временем темпы развития вычислительной техники стали в 10, 100, 1000 раз превосходить темпы разработки ПО. Они снова сделали шаг вперед - изобрели современные языки программирования при этом они поняли что скорость современных компьютеров позволяет не заморачиваться на оптимизацию ПО под архитектуру и гораздо выгоднее как раз оптимизировать их под свой мозг, тут они вспомнили что давно уже есть подобные средства - нужно только привести их в соответствие с современными потребностями. Теперь им не нужны программисты-железячники от которых они раньше зависели - они сами все могут написать сосредоточившись на собственно алгоритмах.

хороший математик = хороший программист и наоборот
хороший программист = хороший математик
но в то же время есть необходимое условие:

хороший программист = современный язык программирования

И вот тут многие забывают что то что справа это необходимое условие но не достаточное.

Флейм конечно - но это то как я вижу сложившуюся ситуацию.

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

>Математики - гениальные люди - они всегда стремятся что-то оптимизировать и тем самым облегчить себе жизнь. Так ими была изобретена первая вычислительная машина, потом первые языки программирования. Со временем темпы развития вычислительной техники стали в 10, 100, 1000 раз превосходить темпы разработки ПО. Они снова сделали шаг вперед - изобрели современные языки программирования при этом они поняли что скорость современных компьютеров позволяет не заморачиваться на оптимизацию ПО под архитектуру и гораздо выгоднее как раз оптимизировать их под свой мозг, тут они вспомнили что давно уже есть подобные средства - нужно только привести их в соответствие с современными потребностями. Теперь им не нужны программисты-железячники от которых они раньше зависели - они сами все могут написать сосредоточившись на собственно алгоритмах.

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

Вобщем феерический бред. Пока математики анализировали дробно-рациональные автоморфизмы, физики и инженеры делали всю работу.

>хороший математик = хороший программист и наоборот

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

Хороший программист <=> специалист в computer science, а математика в традиционном понимании этого слова имеет столько же общего с computer science, сколько Баба Ягя со Ступой.

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

> Хороший программист <=> специалист в computer science

Или software engineering, или даже специалист-предметник, освоивший программирование.

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

>Re: А какая у haskell область применения?
>> хороший математик = хороший программист и наоборот
>> хороший программист = хороший математик
>Оба раза 4.2

Я думал вы догадаетесь что область определения ограничена топиком :)

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

2koTuk (26.04.2008 20:54:48):

ИМХО полное непонимание современных реалий, происходящее, очевидно, от отсутствия опыта; + 4.2 местами. Особенно вызывающее утверждение:

> хороший программист = современный язык программирования

Это утверждение неверно абсолютно, то есть ни вчера, ни сегодня. АНТИтеза ("хорошему программисту все равно, на каком языке программировать") еще имеет определенный смысл (хотя и спорна), но в представленном порядке утверждение просто бессмысленно( сравни: "хороший гонщик = Формула 1" -- а как же ралли, мотоциклы, велосипеды, лыжи итд?).

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

>но в представленном порядке утверждение просто бессмысленно( сравни: "хороший гонщик = Формула 1" -- а как же ралли, мотоциклы, велосипеды, лыжи итд?).

Не надо свои мысли выдавать за мои. Вы делаете ту же ошибку о которой я писал только с автомобилями - обязательное условие не является достаточным:

Формула 1 = хороший гонщик

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

> Не надо свои мысли выдавать за мои

Верну, пожалуй :-) Сдается мне, что все я правильно понял... В противном случае мысль в посте http://www.linux.org.ru/view-message.jsp?msgid=2693336#2694041 была сформулирована не по-человечески, а слегка из-под подвыподверта :-). Действительно, согласно (вновь) предлагаемой логике, во фразе

> хороший программист = современный язык программирования. И вот тут многие забывают что то что справа это необходимое условие но не достаточное.

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

В любом случае "хороший программист" и "современный язык программирования" никак не коррелируют! Есть масса и плохих, и хороших программистов, пишущих на "современных" языках, и масса и плохих, и хороших программистов, пишущих на "несовременных" языках.

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

>была сформулирована не по-человечески, а слегка из-под подвыподверта :-). Действительно, согласно (вновь) предлагаемой логике

Логика как была так и осталась одна :)

хороший человек = (добрый,отзывчивый,щедрый,непьющий)
но не всегда:
непьющий = хороший человек

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

> Логика как была так и осталась одна :)

Стало быть, я все понял правильно, никому своих мыслей (в отличие от некоторых :) ) не приписывал, и моя аналогия остается в силе.

"хороший программист = современный язык программирования"

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

:-)

Die-Hard ★★★★★
()

> Часто упоминают что на нем, дескать, все легко распаралелливается.

Не очень, хотя, как я сегодня выяснил, Control.Parallel таки рулит.

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

4.2 откровенное.

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

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

Придется дать разъяснения :) Вот что я сказал:

>Я думал вы догадаетесь что область определения ограничена топиком :)
>хороший математик = хороший программист и наоборот
>хороший программист = хороший математик
>но в то же время есть необходимое условие:
>хороший программист = современный язык программирования

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

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

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

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

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

>Про хардварную криптографию или кодирование слышал?

Вопрос провокационный, поэтому ответ соответствующий - я где-то говорил что все математики должно использовать только haskell ?

>Перемножить огромные матрицы в весьма скромно-константной памяти - eще та задача.

Давно ли проблемы ограниченной памяти стали проблемой языка ?

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

Если задача вычислительно-ёмкая, её пишут на фортране или С++ с применением специальных библиотек и выполняют на большом кластере. Если задача не вычислительно-ёмкая, её решают на специальном DSL-е вроде Mathematica, Mapple, MathCad, etc (извиняюсь, если фигню сказал, названия только слышал). Хаскель здесь не сильно вписывается, это, всё же, не математический DSL а ЯП общего назначения.

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

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

1. Меняем исходные посылки по ходу обсуждения ;)? В сообщении http://www.linux.org.ru/view-message.jsp?msgid=2693336#2694041 четко сказано: "хороший математик = хороший программист и наоборот хороший программист = хороший математик" в контексте, что математики изобрели компьютер, потом первые языки программирования, и теперь сделали следующий шаг, "изобрели современные языки программирования". Про haskell там ни слова не было, просто далее (там неявно, теперь в открытой форме) _из_приведенных_посылок_ делался вывод, что математику (=программисту), если он "хороший", необходим haskell.

2. Я не разделяю исходные посылки сообщения http://www.linux.org.ru/view-message.jsp?msgid=2693336#2694041 еще до применения их к haskell'ю, и многие присутствующие со мной соглашаются.

Die-Hard ★★★★★
()
Ответ на: комментарий от koTuk

>Перемножить огромные матрицы в весьма скромно-константной памяти - eще та задача.

Вдогонку :) Моя специальность в университете была электроснабжение, так вот большинство задач по расчетам режимов работы сети сводится к решению систем уравнений описывающих состояние системы, соотвественно на компьютере удобнее всего в матричном виде. Я еще на начальных курсах написал маленькую программу на С++ чтобы облегчить себе жизнь используя один из адаптированных алгоритмов Гаусса - этих методов около 20 существует наверно. Это я к тому что никакой там математики сложной нет чтобы использовать какие-то хитрые языки.

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

> ...Хаскель здесь не сильно вписывается, это, всё же, не математический DSL а ЯП общего назначения.

Абсолютно согласен.

Добавлю еще -- часто DSL используется в качестве фронтенда для сишных / фортранных вычислений или для другого DSL. Например, FormCALC http://www.feynarts.de/formcalc использует Математику как морду для Форма, который при этом иногда используется для того, чтобы сгенерить фортранный код.

Где тут место Хаскелю, не совсем понятно.

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

>Флейм конечно - но это то как я вижу сложившуюся ситуацию.

Я не навязываю никому свое мнение и четко сказал об этом. Уже второй человек начинает задавать провакационные вопросы. Из этого ничего хорошего не получится.

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

> Уже второй человек начинает задавать провакационные вопросы. Из этого ничего хорошего не получится.

8-/?

1. Я во всех своих сообщениях _подчеркивал_, что это ИМХО.

2. Если боишься "провокационных" вопросов, зачем тогда дискутировать?

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

>Если боишься "провокационных" вопросов, зачем тогда дискутировать?

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

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

Тебе указали на ошибки. Ты решил начать спорить. У меня такое сложилось впечатление.

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

>сложные математические алгоритмы на языке assembler

кнут хороший программист ?

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

>Моя специальность в университете была электроснабжение,

теперь понятно почему в математиках ни черта не понимаешь...

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

> Когда уходят герои, на сцену выходят клоуны. (с) Генрих Гейне.

Замечу, уважаемый, что это именно Вы, высказав (ИМХО) глупость, отказались от дальнейшей дискуссии и теперь просто иносказательно оскорбляете оппонентов.

Предлагаю Вам либо высказываться по существу, либо более не засорять эфир.

Die-Hard ★★★★★
()

1. Компиляторы и интерпретаторы DSL

2. Логику (автоматические доказательства и верификация доказательств)

3. Прототипы для практически любой области. Бытро, грязно, технологично.

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

> хороший программист = современный язык программирования

Это говорит пишущий на Си и ассемблере? Гы гы.

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

> Где тут место Хаскелю, не совсем понятно.

Вот там и место - компилировать DSL в Си. У меня так язык для статистических рассчётов (для непрограммистов) реализован (всякие R и stata не годились, ибо сложны).

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

> Вот там и место - компилировать DSL в Си.

Дык -- в том примере DSL (Форм) сам Сишный код и выдает...

А для компиляции одного языка в другой, опять же, испокон веков применялись соответствующие DSL (например, YACC).

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

> А для компиляции одного языка в другой, опять же, испокон веков применялись соответствующие DSL (например, YACC).

Бедноват и кривоват, однако.

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

>>Моя специальность в университете была электроснабжение,
>теперь понятно почему в математиках ни черта не понимаешь...

Это по вашему комплимент был ? Ответ был вполне адекватный. Непонятно - к чему эти двойные стандарты ? Или иметь мнение отличное от вашего - это для вас оскорбление ?

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

> Это по вашему комплимент был ?

Это было резкое (на грани допустимого) слабо аргументированное высказывание в рамках дискуссии, которую Вы публично отказались продолжать.

> Ответ был вполне адекватный.

Ваш ответ представляет собой бессодержательное (вообще не аргументированное) высказывание на грани оскорбления.

Уважаемый, Вы хотите продолжения дискуссии по поводу Ваших высказываний? Если нет, то почему Вы продолжаете (выборочно) отвечать оппонентам?

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

> Бедноват и кривоват, однако.

Однако, это просто пример. А свою функцию он выполнял вполне исправно.

Я не собираюсь высказывать свою точку зрения по поводу ниши haskell'я, ибо не эксперт. Но мне интересно выслушать аргументированные устоявшиеся точки зрения...

Die-Hard ★★★★★
()

Ну и нахрена снесли пол-топика? Чувство корпоративной солидарности переклинило?

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

>А для компиляции одного языка в другой, опять же, испокон веков применялись соответствующие DSL (например, YACC).

Посмотри: http://www.cs.chalmers.se/Cs/Research/Language-technology/BNFC/

На Хаскелле кстати написан. Может и через yacc'а в том числе генерить.

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

> На Хаскелле кстати написан.

Не, ну -- впечатлен!:-)

Но где там _ниша_? Есть куча более жизнеспособных конкурентов ИМХО...

Посмотрел, кстати, мнение в ВИКИ -- "Популярен в академических кругах, но малоизвестен среди прикладных программистов." -- видмо, все же, ниша языка сводится к (одному из) популярных среди теоретиков программирования -- впрочем, думаю, "крутые" теоретики - программисты, все же, предпочитают опять DSLи, а в качестве "общеизвестной" лошадки выбирают ЛИСП.

ПОВТОРЯЮ: я просто фантазирую, не эксперт...

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

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

Это смотря что обкатывать, если систему типов или что-то связанное с паралеллизмом то Хаскелл лучше подходит.

imp ★★
()
Ответ на: комментарий от Die-Hard

> Посмотрел, кстати, мнение в ВИКИ -- "Популярен в академических кругах, но малоизвестен среди прикладных программистов."

При этом там забыли добавить "популярен среди хороших прикладных программистов".

А вообще, больше читай русскую википедию.

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

> При этом там забыли добавить "популярен среди хороших прикладных программистов".

Дык -- добавь! Кто мешает? Это ж Вики -- сразу все и прояснится!

Но сильно сдается мне, что твой патч не проживет до отката больше нескольких часов... :-)

Die-Hard ★★★★★
()
Ответ на: комментарий от imp

> Это смотря что обкатывать, ...

ИМХО этот аргумент годится только для DSL. Позиционировать в качестве "ниши" общего языка "обкатку системы типов" -- как-то чересчур...

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

> Дык -- добавь! Кто мешает? Это ж Вики -- сразу все и прояснится!

> Но сильно сдается мне, что твой патч не проживет до отката больше нескольких часов... :-)

Естественно, это ж русская вики.

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