¿Qué es la IU declarativa?

16

Sigo viendo este término en blogs sobre frameworks. Si bien entiendo la diferencia entre la programación declarativa y la imperativa, ¿cómo se aplica esto específicamente a la interfaz de usuario? ¿Por qué parece haber un término especial para ello? ¿Son estas 'cosas' diferentes? Si es así, ¿cuál es la alternativa a la IU declarativa y por qué querría usarla?

Señor Fox
fuente
1
@Telastyn. Imperativo y declarativo son cosas muy diferentes. Es "qué" vs "cómo". Un diseño HTML sería declarativo. Una secuencia de instrucciones de dibujo sería imprescindible.
mike30
@mike: El OP preguntó si la IU imperativa / declarativa era diferente de la programación imperativa / declarativa. Ellos no están.
Telastyn el
@Telastyn El OP pregunta la diferencia entre la IU declarativa y la IU <foo> (como "IU imperativa"), y si existe una alternativa a la IU declarativa.
Izkata

Respuestas:

14

"Interfaz de usuario declarativa" significa que usted describe en algún tipo de lenguaje qué elementos necesita en su interfaz de usuario y, hasta cierto punto, cómo deberían verse, pero puede omitir detalles como la posición exacta y el estilo visual de los elementos. Por ejemplo, en HTML puede describir que desea un campo de entrada, pero cómo y dónde se colocará este campo en la interfaz de usuario depende en gran medida del navegador que esté utilizando.

Hoy en día, el término se usa con más frecuencia para los marcos de la interfaz de usuario con una separación estricta de la apariencia de la interfaz de usuario del comportamiento, lo que significa que el código reacciona a los eventos de la interfaz de usuario. Por ejemplo, al usar XAML, declara el aspecto de su IU en un dialecto XML específico, pero implementa el comportamiento en un código de programa separado.

Doc Brown
fuente
1
Buena respuesta. Nitpick: si se especifican o no detalles como la "posición exacta", es ortogonal a la división declarativa / imperativa. Sin embargo, en la práctica, el enfoque de dejar que la computadora maneje los detalles es más común en los sistemas declarativos (aunque no estoy seguro de por qué).
sleske
8

La IU declarativa es una IU que está diseñada de manera declarativa (usted describe cómo debería ser) en lugar de una forma imperativa (codifica los pasos para crearla). Realmente no es nada especial o inusual; ha existido desde al menos la década de 1990, cuando tenía Visual Basic y Delphi con diseñadores de formularios visuales que le permitían diseñar la interfaz de usuario de su programa de una manera intuitiva, WYSIWYG.

Mason Wheeler
fuente