Подтвердить что ты не робот

Инструменты GUI, которые активно разрабатываются и хорошо документированы для Haskell

Я потратил большую часть своего утреннего и дневного времени на работу с графическими интерфейсами в Haskell, так как мне нужны некоторые возможности визуализации и взаимодействия, и я не люблю писать свои основные функции в Haskell, а затем передний конец написан в другом графическом интерфейсе; Я бы предпочел сделать все это с одного языка. Лучшая часть этой лучшей части была потрачена на компиляцию и исправление исходного кода, а также ошибки Google для компиляции в Google.

Я потратил много времени на чтение вопросов SO, много времени на haskell.org и много времени на чтение документации. То, с чем я столкнулся, - очень большое количество устаревшей или плохо документированной информации. Я могу сварить это на три вещи:

  • Недостаток опций, построенных поверх привязок Gtk+. Я не очень забочусь о Gtk +, в основном потому, что нахожу, что это довольно неприятно смотреть, особенно на OS X. Схватка о том, что пользовательский интерфейс выглядит неуместным и/или просто уродливым, может показаться глупым, но это важно для меня. Особенно, если я хочу, чтобы другие люди использовали любую из создаваемых мной программ.

  • wxHaskell, который стабилен и невероятно прост в установке, но многие из существующих обучающих программ, похоже, для wx-0.1x, а соглашения для подключения wxWidgets 2.9.x docs к wx-0.90.x очень пятнистые и труднодоступные, когда они даже существуют.

  • qtHaskell, который, кажется, в основном заброшен (исправьте меня, если я ошибаюсь), только компилируется с более новыми версиями GHC после применения годового патча и выплескивает огромное количество предупреждений, указывающих на то, что они скоро станут компиляцией ошибок в новых версиях GHC.

В сущности, я ищу ответ Хаскелла на Java Swing; библиотека, которая надежна, поддерживается, хорошо документирована, легко начать работу, делает попытку быть родной по внешнему виду, может идти в ногу с темпами развития GHC, а не с высоким риском отказа. Кажется, что это абсолютно нулевые рамки GUI, но тогда кажется, что большинство "официальных" ресурсов /wiki/pages/docs, связанных с графическими интерфейсами GUI, безмерно потеряны, поэтому я решил обратиться к сообществу, чтобы узнать, есть ли что-то, что я просто не находил. Я не очень беспокоюсь о том, что инфраструктура является кросс-платформой, только если она работает с современными версиями OS X.

Повторяю, я действительно не ищу кого-то, чтобы отправить мне ссылку на haskell.org или WikiBook. Я был там, и мне не нравилось то, что я видел. Большая часть информации там просто устарела, что она создает больше работы, а не меньше.

Я понимаю, что мои "требования" немного экстремальны, особенно для языка с меньшим сообществом вроде Haskell, но я надеялся, что кто-то из них может мне помочь. Между тем, я намерен просто попытаться выехать из wxHaskell или qtHaskell, пока не добьюсь успеха или не умру.

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

4b9b3361

Ответ 1

wxHaskell - это хорошо, да, и моя библиотека среднего уровня GUI. Я признаю, что основное внимание уделялось обновлению кода перед документами в новой версии.

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

Ответ 2

Threepenny-gui является самым последним конкурентом в пространстве библиотек GUI Haskell.

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

С другой стороны, он даже не пытается иметь собственный внешний вид - пользовательский интерфейс построен исключительно на HTML. (Это может измениться в будущем, поскольку мы можем использовать XUL). Кроме того, API по-прежнему очень популярен, поэтому будьте готовы к тому, что новые основные версии библиотеки, скорее всего, нарушат обратную совместимость. (С другой стороны, это означает, что он активно развивается.: -))

(Раскрытие: Я автор/сопровождающий пакет из трех пенни-ги.)

Ответ 3

Я чувствую твою боль; этот ответ - попытка предоставить некоторые альтернативы, которые могут быть достаточно хороши и, возможно, помогут вам в поиске.

Во-первых, существует язык, называемый Concurrent Clean. Предполагается, что он похож на Haskell, имеет поддержку графического интерфейса и предназначен для написания приложений реального мира. В некоторых отношениях он отличается; например, его ввод-вывод основан на уникальных типах, а не на Monads, что, насколько мне известно, является хорошей вещью:). Вот ссылка: http://wiki.clean.cs.ru.nl/Clean

Затем я выкопал для Haskell, скомпилированного в JVM, в надежде, что он будет скопирован в библиотеках Java, ala Clojure. Нет кубиков. То, что я нашел, было нитью, обсуждавшей недостаток и проблемы, Haskell на JVM?

Из этой темы, однако, были подняты два других варианта. Один из них - Фреге: http://code.google.com/p/frege/

Другой - CAL: https://github.com/levans/Open-Quark

Там также работают над функциональным реактивным программированием в Haskell. Он должен включать такие функции, как графические интерфейсы, хотя независимо от того, действительно ли вы получите GUI, это другое дело: http://www.haskell.org/haskellwiki/Functional_Reactive_Programming

Это печально. Здесь у нас есть JVM и .NET и все же zilch для Haskell. Это хуже, чем это;.NET продемонстрировал тревожную тенденцию отказываться от перспективных реализаций. Что бы ни случилось с IronScheme, IronLisp и IronHaskell? Насколько мне известно, все мертвы.

Нехорошо: (