Estoy desarrollando, en C++, un paquete de Diseño asistido por computadora para placas de circuitos impresos y esquemas (también conocido como EDA CAD). Utiliza Lua para algunas cosas específicas, pero me gustaría ampliar el rol de Lua para que implemente gran parte de la lógica de la interfaz de usuario.¿Cómo diseño la estructura de un paquete de CAD?
Me gustaría volver a construir las partes internas de una manera que permita a las personas cambiar fácilmente el comportamiento de la interfaz de usuario editando el Lua, y también agregar nuevas funcionalidades.
El problema es que, a excepción de exponer algún tipo de API masiva al código Lua, no puedo pensar en una buena forma de hacerlo. Sospecho que una API masiva, con una función llamada para todo lo que puedo pensar es probablemente un mal diseño. ¿Cómo puedo diseñar un sistema que permita a los usuarios implementar cosas que ni siquiera había pensado?
¿Hay un buen documento o libro que pueda leer, o un foro donde la gente hable de este tipo de cosas? He estado buscando y pensando durante muchos meses, y todavía no estoy seguro de cuál es la respuesta.
BTW, el proyecto se llama LiquidPCB.
Muchas gracias
Hugo
Mi pregunta es mucho menos sobre Lua, y mucho más acerca de la * estructura de la aplicación *. Podría estar usando Lua, o Python, o C++. La pregunta es realmente: "¿Cómo debería ser la interfaz entre la aplicación y los complementos?" – Rocketmagnet