Pregunta Herramientas de GUI que están activamente desarrolladas y bien documentadas para Haskell


Pasé la mayor parte de la mañana y la tarde jugando con frameworks de GUI en Haskell, ya que necesito algunas capacidades de visualización e interacción y no estoy enamorado de escribir mi funcionalidad principal en Haskell y luego terminar en una interfaz escrita en otra GUI; Prefiero hacer todo desde un idioma. La mejor parte de esa parte mejor se ha usado compilando y parcheando el código fuente, o buscando en Google errores de compilación poco claros.

He pasado mucho tiempo leyendo preguntas sobre SO, mucho tiempo en haskell.org y mucho tiempo leyendo la documentación. Lo que he encontrado es una gran cantidad de información desactualizada o mal documentada. Puedo resumirlo en estas tres cosas:

  1. Un exceso de opciones creadas sobre enlaces Gtk +. No me importa mucho Gtk +, sobre todo porque me parece bastante desagradable, especialmente en OS X. Gritar sobre la interfaz de usuario fuera de lugar y / o simplemente feo puede parecer una tontería, pero eso es importante para yo. Especialmente si quiero que otras personas utilicen cualquiera de los programas que creo.

  2. wxHaskell, que es estable e increíblemente fácil de instalar, pero muchos de los tutoriales existentes parecen ser para wx-0.1x y las convenciones para enlazar los documentos wxWidgets 2.9.x a wx-0.90.x son muy irregulares y difíciles de asimilar, cuando incluso existen

  3. qtHaskell, que parece estar en su mayoría abandonado (corrígeme si me equivoco), solo compila con las versiones más nuevas de GHC después de aplicar un parche de un año, y escupe una enorme cantidad de advertencias que indican que pronto se convertirán en errores de compilación en versiones más nuevas de GHC.

En efecto, estoy buscando la respuesta de Haskell al Swing de Java; una biblioteca que es robusta, mantenida, bien documentada, fácil de usar, intenta ser nativa en apariencia, puede seguir el ritmo de desarrollo de GHC y no estar en alto riesgo de abandono. Esto parece ser exactamente cero marcos de GUI, pero luego parece que la mayoría de los recursos / wikis / páginas / documentos "oficiales" relacionados con los marcos de la GUI están lamentablemente sin mantenimiento, así que decidí recurrir a la comunidad para ver si había algo que simplemente no estaba encontrando. No estoy terriblemente preocupado porque el framework sea multiplataforma, siempre y cuando funcione en las versiones modernas de OS X.

Para reiterar, realmente no estoy buscando a alguien que me envíe un enlace a haskell.org o al WikiBook. He estado allí, y no me gustó lo que vi. La mayor parte de la información está tan desactualizada que solo crea más trabajo, no menos.

Me doy cuenta de que mis "demandas" son un poco extremas, especialmente para un idioma con una comunidad más pequeña como Haskell, pero esperaba que alguien me pudiera ayudar. Mientras tanto, pretendo simplemente tratar de manejar wxHaskell o qtHaskell hasta que tenga éxito o muera.

Espero no parecer demasiado brusco o agotado.


32
2017-12-14 22:35


origen


Respuestas:


wxHaskell es bueno, sí, y mi biblioteca GUI de nivel medio. Admito que se ha enfocado en actualizar el código antes de los documentos en la nueva versión.

Para las cosas divertidas y modernas de programación reactiva funcional, además de eso, me gusta plátano reactivo, que se mantiene activamente, y tiene el beneficio adicional de Heinrich Apfelmus él mismo puede aparecer aquí para responder sus preguntas.


4
2017-12-17 23:46



Threepenny-gui es el contendiente más reciente en el espacio de las bibliotecas de GUI de Haskell.

Su principal argumento de venta es que es muy fácil de instalar, ya que utiliza el navegador web como pantalla. También es fácil Empezar con.

Por otro lado, ni siquiera intenta tener una apariencia nativa: la interfaz de usuario se basa exclusivamente en HTML. (Esto puede cambiar en el futuro, ya que tenemos la opción de usar XUL) Además, la API todavía está en constante cambio, así que prepárese para que las nuevas versiones principales de la biblioteca rompan la compatibilidad con versiones anteriores. (Por otro lado, esto significa que está activamente desarrollado. :-))

(Divulgación: soy el autor / mantenedor del paquete threepenny-gui).


4
2018-01-01 09:08



Siento tu dolor; esta respuesta es un intento de proporcionar algunas alternativas que pueden ser lo suficientemente buenas y quizás ayudarlo con su búsqueda.

Primero, hay un lenguaje llamado Concurrent Clean. Se supone que es similar a Haskell, tiene soporte de GUI y está diseñado para escribir aplicaciones del mundo real. Difiere en algunos aspectos; por ejemplo, su E / S se basa en tipos únicos en lugar de en Mónadas, que en lo que a mí respecta, es algo bueno :). Aquí hay un enlace: http://wiki.clean.cs.ru.nl/Clean

A continuación, busqué un compilador de Haskell para la JVM, con la esperanza de que se aprovechara de las bibliotecas de Java, ala Clojure. No dados. Lo que sí encontré fue un hilo conductor sobre la carencia y los desafíos de la misma: Haskell en JVM?

Sin embargo, de ese hilo, surgieron otras dos opciones. Uno es Frege: http://code.google.com/p/frege/

El otro es CAL: https://github.com/levans/Open-Quark

También hay trabajo en programación reactiva funcional en Haskell. Se supone que debe habilitar cosas como las GUI, aunque si realmente obtendrá o no una GUI de esto es otra cosa: http://www.haskell.org/haskellwiki/Functional_Reactive_Programming

Es triste. Aquí tenemos JVM y .NET y, sin embargo, nada para Haskell. Es peor que eso; .NET ha mostrado una tendencia alarmante a deshacerse de implementaciones prometedoras. ¿Qué pasó con IronScheme, IronLisp y IronHaskell? Todos muertos, por lo que puedo decir.

No está bien :(


3
2017-12-15 00:33