Qual é a melhor linguagem de programação para o desenvolvimento de uma aplicação GUI?
Uma coisa que você deve olhar é a programação reativa funcional (FRP). Dê uma olhada em What is Functional Reactive Programming? para uma rápida introdução ao conceito.
I'já encontrou que o FRP torna o código mais modular e mais curto do que as soluções normais baseadas em eventos que tendem a descer para o código de esparguete alimentado por callback bastante rapidamente. It'é uma forma de escrever UIs de nível superior, mais declarativa e vale a pena aprender mesmo se ele'é completamente diferente do que você'está acostumado a.
Haskell é uma boa linguagem para o FRP. It'é expressivo o suficiente para ter algumas bibliotecas de FRP realmente elegantes como a Banana Reativa. Esta é a minha biblioteca de FRP favorita - acho que segue a semântica que queremos muito de perto.
Para os widgets reais, você tem duas boas opções. Se você realmente quer um aplicativo nativo, você pode usar wxWidgets que são suportados por Reactive-banana-wx. As ligações wxHaskell são bem projetadas como uma biblioteca, mas o wx em si é um pouco chato de se construir.
Outra opção é usar uma interface baseada na web. Existe uma grande biblioteca leve chamada threepenny-gui. Esta biblioteca parece uma programação GUI normal, mas na verdade cria um pequeno servidor web Haskell em segundo plano que pode ser ligado a um navegador web. It'é muito fácil de usar e surpreendentemente versátil, mas eu não'não sei como implementar programas com ela. Esta biblioteca vem com seu próprio módulo FRP fortemente baseado em Reactive Banana.
Outra boa opção é compilar seu programa para JavaScript e implantar tudo como uma aplicação web. Você poderia tentar usar um compilador Haskell->JavaScript como ghcjs ou você poderia usar Elm (Elm) que é uma linguagem parecida com Haskell- para usar o FRP no navegador. O Elm é muito interessante porque faz do FRP o foco de toda a linguagem, tornando muito fácil escrever programas completos no estilo. Há alguns grandes exemplos no site do Elm.
Artigos semelhantes
- Python é uma má linguagem para implementar uma GUI?
- Qual é a diferença entre linguagem de máquina, linguagem de montagem e linguagem de alto nível em computadores?
- Quais são as vantagens de uma linguagem de montagem na programação sobre uma linguagem de máquina?
- A linguagem Assembly é considerada uma linguagem de programação funcional?