Garnet (acrónimo de Generating an Amalgam of Real-time, Novel Editors and Toolkits)[1] es una entorno de desarrollo de interfaces gráficas de usuario para Common Lisp y X11 o Macintosh, desarrollado por el Grupo de Software de Interfaces de Usuario del Instituto de Interacción Humano-Computadora[2] de la Universidad de Carnegie Mellon.[3]
Se trata de un complejo sistema que ofrece numerosas funcionalidades:
1) Características intrínsecas de Garnet:
- Un sistema de programación orientado a objetos propio que usa el modelo prototipo-instancia.
- Una capa de abstracción que oculta las diferencias entre X/11 y Macintosh.
- Gestión automática de restricciones: las propiedades de los objetos pueden depender de propiedades de otros objetos, y ser re-evaluados automáticamente cuando haya cambios en los otros objetos. Las restricciones podrán ser cualquier experesión Lisp.
- Un sistema de gestión de eventos de entrada de alto-nivel
- Soporte del reconocimiento gestual.
- Widgets para la edición de texto con diversas fuentes, multi-línea y usando ratón.
- Opción para disponer automáticamente los datos de la aplicación en listas, tablas, árboles o grafos.
- Generación automática en PostScript para imprimir
- Soporte para visualización de aplicaciones y datos de gran tamaño.
2) Dos conjuntos distintos de Widgets
- Una con aspecto Motif y otra con aspecto propio
3) Herramientas de diseño interactivas para crear partes de la interface si escribir ni una sola línea de código:
- Gilt[4] interface builder for creating dialog boxes
- Lapidary[5] interactive tool for creating new widgets and for drawing application-specific objects.
- C32[6] es un editor de objetos y restricciones.