Войти
ДельфинарийФорум

Haskell для Delphi (комментарии)

#0
23:56, 29 дек. 2008

Haskell для Delphi (комментарии)

Это сообщение сгенерировано автоматически.


#1
19:38, 30 дек. 2008

Дроник, хаскель реально крут или тебе просто интересно?
С прикладной точки зрения мимхо в качестве скрипта для Delphi использовать язык паскалязык, его больше народу знают.
А этот хаскель умеет работать, скажем, с деревьями на уровне языка? Как работа с данными в нём вообще, для СУБД какой-нидь с бизнес-логикой уровня малого предприятия справится?

#2
20:05, 30 дек. 2008

Ну и так, мысли с ходу мысли:

  • Буфер для input/output - этого мало. Как минимум - возможность цеплять функции извне.
  • Потом, общие куски данных - это вообще хорошо. Но только если можно проконтролировать Haskell код на выход за границы, если не получится - то это лишние креши, ну нафиг.
  • многопоточность и объекты синхронизации.

  • Вот тада можно говорить о каком-то использовании.

    Как дополнение - этот буфер для тестовых целей конечно может служить, но лучше использовать понятие устройства, типа в один момент может быть открыто какое-то устройство (по номеру например), и команды языка на IO (write/read или что там) выводит/читает байты в/из этого устройства. А уже программер на дельфи раскидает какое устройство на TCP повесить, какое на файловую систему, какое еще на что, ком порт например ) Хотя это уже можно сделать через цепляемые извне функции, но в таких вот случаях имхо лучше как можно меньше портить язык инородными штуками, и побольше пытаться юзать стандартные возможности препарируемого языка.

    #3
    0:11, 31 дек. 2008

    Coriolis
    Я после праздников подробно отвечу:)
    Если вкратце, то для хаскеля есть свои библиотеки для многопоточности, TCP, субд, портов, работы с файлами и потоками, так что не надо ничего дописывать.
    Но! Функциональные языки лучше всего подходят для обработки данных, а не для недетерминированных операций ввода/вывода.

    >цепляемые извне функции
    в ФП функции избавлены от побочных эффектов. То есть результат функции зависит только от входных аргументов. Мы не можем внутри функции просто так вызвать какую-то другую функцию, возвращающую произвольный результат. В хаскеле IO живет в монаде, тут нужно более пространное объяснение:)

    #4
    3:22, 5 янв. 2009

    Дроник, харе бухать!
    За работу! )))

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

    > а не для недетерминированных операций ввода/вывода.
    Это вопрос времени, они недетерминированы пока у тебя на руках не появляется конкретного железа с конкретным протоколом, разве нет? :) Если драйвер для работы с железкой можно реализовать в скрипте - это ОЧЕНЬ удобно, в отличие от варианта с вызовом функций_которые_всё_сделают, которые реализованы во внешних апи в виде бинарного кода. Да че тут говорить - скрипт есть скрипт.

    Что-то гложат сомнения, что такой мега-крутой язык возьмется за какую-то там автоматизацию какого-то там предприятия (например). Функциональный язык - штука красивая, да. Вот только прикладников как я понял хрен найдешь, а значит смысл сего проекта так и остяется непонятным. Поэтому спрошу еще раз - хаскель реально крут или тебе просто интересно? )

    #5
    17:50, 5 янв. 2009

    Coriolis

    >А этот хаскель умеет работать, скажем, с деревьями на уровне языка? Как работа
    >с данными в нём вообще, для СУБД какой-нидь с бизнес-логикой уровня малого
    >предприятия справится?

    По сравнению с хаскелем паскалеобразные/сиобразные языки совсем не умеют работать с деревьями.

    #6
    19:44, 5 янв. 2009

    Coriolis
    >Дроник, харе бухать! За работу! )))
    Не, рано))) я тут лыжи горные усиленно осваиваю, не до того)))

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

    >Поэтому спрошу еще раз - хаскель реально крут или тебе просто интересно? )
    >значит смысл сего проекта так и остяется непонятным
    Хаскель реально крут, но я не ставлю себе задачу это доказывать и вербовать послушников:)

    #7
    22:06, 8 янв. 2009

    DROnik
    >Но никак не драйверы устройств:)
    Когда столкнулся - сам был в шоке ;) Но это лучше, чем везде таскать бинарники, факт. Скрипт есть скрипт, если у тебя терминалка с доступом к портам клиентской тачки то проще на скрипте писать прогу управления (есессно зависит от железки - если нет требования к скорости). Альтернатива - ты на клиенте таскаешь не только сетевого клиента но и бинарники для каждой железки + интерфейс из скрипта к этим бинарникам + заморочки с обновлением (а скрипты обновить проще и безопасней в кило разы - это же тупо текст). Даже если коиент толстый и интерпретатор стоит на нем - всёравно проще, т.к. всю нагрузку на связь с API оси ты делаешь один раз в клиенте, а драйверов (пограмм управления) пишешь сколько хочешь под любые протоколы.
    Просто если будешь делать некое конечное решение - хорошенько подумай о железе, как бы не далёк от мирского и возвышен был функциональный язык.

    fr
    >По сравнению с хаскелем паскалеобразные/сиобразные языки совсем не умеют работать с деревьями.
    ))) То что паскаль и си не умеют - это понятно. Я вот на MSM работаю (cashe) - там дереья очень удобно встроены, мне интересно просто было бы сравнить.

    DROnik
    >Хаскель реально крут, но я не ставлю себе задачу это доказывать и вербовать послушников:)
    посыл понял ;) Дак зачем тогда делаешь? Проект в пустоте? Или по работе надо?

    #8
    17:03, 12 янв. 2009

    Coriolis
    >Проект в пустоте? Или по работе надо?
    По работе, с генетиками проектик есть. Так что за общественно полезный труд мне платят:)
    А общественно полезного тут на самом деле много, например, для хаскеля нет ни одного нормального IDE. Так что если вдруг решишь освоить хаскель, то скорее всего будешь юзать эту мою штуку:)

    В общем, рабочие будни начались. Все религиозные вопросы решились, теперь вывод ведется через FFI, так же добавлен ввод данных через тоже место. Это абсолютно православный способ, то есть портируемый. Это значит что хаскель код в релизе можно скомпилить при помощи ghc в dll, тем самые отцепив текстовые библиотеки и в десятки раз увеличив производительность. IDE практически тоже готово.

    В статье я обновил ссылки на скачивание, но не переоформлял пока, говорят в качалке места нет для картинок.

    fr
    Если не в лом, скачай плиз IDE потестить, может и тебе пригодится:)

    ДельфинарийФорум

    Тема в архиве.