segunda-feira, 1 de janeiro de 2007

Widgets para Lisp

Vou desenvolver uma aplicação gráfica em lisp e para isso estou escolhendo qual biblioteca de widgets utilizar. Tenho feito algumas experiências, e gostaria de compartinhar com vocês o que eu aprendi.

As primeiras bibliotecas que me chamaram a atenção foram as que utilizam a biblioteca Cells do Ken Tilton. A Cells cuida da propagação de valores entre instantâncias, isso permite que o valor que seja alterado na camada view seja automaticamente propagado para o model da sua aplicação, achei interessando pois essa foi uma das coisas que eu achei mais interessante no Smalltalk. Nessa categoria temos:


  • cells-gtk: Utiliza o gtk como widgets. Me parece o mais desenvolvido dos três, porém eu não consigo rodar ele no SBCL.

  • celtik: Utiliza o TK como widgets, aparentemente vai ser disponibilizado junto com o Cells 3.0, atualmente tem que ser baixado via CVS

  • cello: Me parece o projeto mais ambicioso, pois utilza OpenGL para desenhar as widgets, é também o menos acabado.



Apesar de simpatizar com o Cells, a única widget que funcionou direto foi o LTK, esta utiliza um pipe para enviar comandos para o TK. Vale resaltar a boa documentação. Ele implementa quase toda a API do TK, porém faltam alguns aspectos da Text Widget, mas felizmente o código e claro e da para adiciona-las facilmente.

Por fim eu testei a clg, outra biblioteca baseada na GTK, porém encontrei diversos problemas para compila-la.

Outra opção são:


  • lgtk - Aparentemente sem desenvolvimento ativo.

  • McClim - Implementação livre do sistema "padrão" de widgets do Lisp. Me parece interessante, porém meu medo é a falta de documentação e a aprência "antiquada" desta widget. Vejam este screenshot.

Nenhum comentário: