metaclass: (Default)
[personal profile] metaclass
haskell datagrid

ocaml datagrid

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

Я, конечно, понимаю, что заниматься мерянием производительности алгоритмов и разработкой сложной back-end логики это гораздо интереснее, чем делать GUI, но GUI тоже таки делать нужно.
У меня вот в последней сложной фиче, которую я делал, на back-end логику ушло пару дней, на ввод данных для нее - неделя и еще две недели на подгонку GUI чтобы это все было можно использовать как можно удобнее и быстрее.

Date: 2009-07-10 06:32 pm (UTC)
From: [identity profile] permea-kra.livejournal.com
Ребе, а как вы относитесь к идее разнести логику и гуй по двум разным языкам?

Date: 2009-07-10 06:41 pm (UTC)
From: [identity profile] vp.livejournal.com
А сращивание одного с другим будет выглядеть каким образом?
Ключевой момент.

Date: 2009-07-10 06:59 pm (UTC)
From: [identity profile] permea-kra.livejournal.com
Хороший вопрос, на самом деле. Возможно, IPC чем-то текст-ориентированным? FFI больно страшен, да и всё равно желательно выделять отдельный working thread, чтобы гуй не подвешивать.

Date: 2009-07-10 08:46 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Не, не, там ад холокоста.
Единственный адекватный вариант, который я вижу - автогенерация внешних интерфейсов из хаскелевых типов. Если нет готового решения, придется что-то делать самостоятельно.

Date: 2009-07-15 01:15 pm (UTC)
From: [identity profile] zamotivator.livejournal.com
В случае ML, Haskell, Lisp, такую генерацию сделать на порядки проще чем из С или С++, к примеру.
Автоматизировать полностью можно, моё ИМХО

Date: 2009-07-15 01:29 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Я так думаю, что как минимум интерфейсы можно факторизовать на две части - то что генерируется автоматически, и то что делается вручную от фонаря, типа дизайна и картинок красивых :)
Но мне времени не хватает эту мысль довести до практики, а еще я сдуру/ради продакшена все предыдущие(и даже работающие) попытки это сделать, делал на дотнете :)

Date: 2009-07-10 08:35 pm (UTC)
From: [identity profile] zamotivator.livejournal.com
Я, кстати, поглядел как биндинги в ocaml делаются.
Впечатлился. Как в Си (никаких заморочек).
На тему маршализации да, курить но.
НО языки типа Ocaml/Haskell - это мета языки. Вполне за пару дней можно сваять генератор биндингов в dll.

Date: 2009-07-12 06:02 am (UTC)
From: [identity profile] metaclass.livejournal.com
И получим полный набор геморроя, когда одмины поставят на винду новый суперфайрволл, который мало того, что прикроет порты, так и не даст нашей проге запустить вторую, которая работает с сетью. Или набор геморроя при деплойменте и саппорте, когда нужно будет вместо одной проги проверять на работоспособность две и больше.
Юникс сокетов на винде как бы и нету, а всякие там именнованные пайпы это тоже то еще развлечение.
В общем, как я уже писал - сначала мы создаем себе проблемы, потом героически их преодолеваем. Это классическая ситуация, когда цель - не деньги заработать, а развлечься и почесать мозги за счет работы. Все эти "сетевые" приложения, "сервисы", "модульная архитектура" - это же в 90% случаев фетиш и костыли, на самом деле, а не реальная производственная надобность.

Date: 2009-07-12 06:11 am (UTC)
From: [identity profile] lupus-lupusum.livejournal.com
тут геморрой предсказуемый, а потому и не опасный. и тестируется открытый сокет программы легко.

еще есть OLE automation, но то для ценителей.

Date: 2009-07-12 06:17 am (UTC)
From: [identity profile] metaclass.livejournal.com
О да, если что и хуже связи через сокеты, так это завязываться на регистрацию COM объектов и все связанное с ними сектантство :)

Date: 2009-07-12 08:51 am (UTC)
From: [identity profile] olegy.livejournal.com
Когда то был проект, назывался jazz - клиент на QT, сервер на питоне, обмен через сокеты xml ем типа тег <window x ="11" y="111"/><button и т.п.

Date: 2009-07-10 06:43 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Как к вынужденной мере, которую придется использовать, скорее всего.
На данный момент, что GUI, что FFI в ФП выглядят одинаково ужасно, так что неясно, что лучше делать - разбираться с родными биндингами к GUI тулкитам, или же разбираться с FFI и прикручивать хаскелевые модули в виде DLL к проге на чем-нибудь более приземленном.
В общем-то FFI сильно обессмысливает использование хаскеля - что толку от сжатого представления алгоритма на хаскеле, если для этого нужна обвязка для доступа к БД и передачи данных в GUI, которая по размеру больше самого алгоритма, сделанного в лоб обычным образом. Причем, если по хорошему, доступ к БД должен быть интегрирован с выводом типов, а то описаний таблиц в виде Map
[Error: Irreparable invalid markup ('<fieldname,value>') in entry. Owner must fix manually. Raw contents below.]

Как к вынужденной мере, которую придется использовать, скорее всего.
На данный момент, что GUI, что FFI в ФП выглядят одинаково ужасно, так что неясно, что лучше делать - разбираться с родными биндингами к GUI тулкитам, или же разбираться с FFI и прикручивать хаскелевые модули в виде DLL к проге на чем-нибудь более приземленном.
В общем-то FFI сильно обессмысливает использование хаскеля - что толку от сжатого представления алгоритма на хаскеле, если для этого нужна обвязка для доступа к БД и передачи данных в GUI, которая по размеру больше самого алгоритма, сделанного в лоб обычным образом. Причем, если по хорошему, доступ к БД должен быть интегрирован с выводом типов, а то описаний таблиц в виде Map<FieldName,Value> и FieldByName['SHOPETO_ID'].AsDatetime мне и в других языках хватает :)

Date: 2009-07-10 06:56 pm (UTC)
From: [identity profile] permea-kra.livejournal.com
Биндинги к субд в хаскеле есть. Довольно лаконичные, имхо. Фреймворк для интеграции с выводом типов тоже есть, но он, пока, скорее proof of concept, и нуждается в расширении (не весь зоопарк родных типов SQL поддерживается). Впрочем, посмотреть на него можно.

Я ещё подумал бы над разнесением кода двух языков по разным процессам или ниткам. A ffi в хаскеле ужасен, да, но и тульзы для его автогенерации есть. Хотя они тоже неидеальны.

Date: 2009-07-10 07:00 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Насчет разных процессов я думал, все таки общаться между софтом через хотя бы текстовый stdin/stdout хотя и медленно и безумно, но как минимум, пригодно для того, чтобы с обоих сторон вывести автоматом код сериализации/десериализации объектов.

Date: 2009-07-10 08:52 pm (UTC)
From: [identity profile] zamotivator.livejournal.com
Посмотрите как дружат ocaml с erlang'ом.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 21st, 2025 04:35 pm
Powered by Dreamwidth Studios