Was ist eine deklarative Benutzeroberfläche?

16

Ich sehe diesen Begriff immer wieder in Blogs über Frameworks. Obwohl ich den Unterschied zwischen deklarativer und imperativer Programmierung verstehe, wie trifft dies speziell auf die Benutzeroberfläche zu? Warum scheint es einen speziellen Begriff dafür zu geben? Sind das verschiedene Dinge? Wenn ja, was ist die Alternative zur deklarativen Benutzeroberfläche und warum sollte ich sie verwenden?

MrFox
quelle
1
@ Telastyn. Imperativ und Deklarativ sind sehr unterschiedliche Dinge. Es ist "was" gegen "wie". Ein HTML-Layout wäre deklarativ. Eine Abfolge von Zeichenanweisungen wäre zwingend erforderlich.
mike30
@mike: Das OP hat gefragt, ob sich die imperative / deklarative Benutzeroberfläche von der imperativen / deklarativen Programmierung unterscheidet. Sie sind nicht.
Telastyn
@Telastyn Das OP fragt nach dem Unterschied zwischen deklarativer Benutzeroberfläche und <foo> Benutzeroberfläche (z. B. "imperative Benutzeroberfläche") und ob es überhaupt eine Alternative zur deklarativen Benutzeroberfläche gibt.
Izkata

Antworten:

14

"Deklarative Benutzeroberfläche" bedeutet, dass Sie in einer Sprache beschreiben, welche Elemente Sie in Ihrer Benutzeroberfläche benötigen und in gewissem Maße, wie sie aussehen sollen. Sie können jedoch Details wie die genaue Position und den visuellen Stil der Elemente weglassen. In HTML können Sie beispielsweise beschreiben, dass Sie ein Eingabefeld möchten, aber wie und wo dieses Feld auf der Benutzeroberfläche platziert wird, hängt stark vom verwendeten Browser ab.

Heutzutage wird der Begriff häufiger für UI-Frameworks verwendet, bei denen das Aussehen der Benutzeroberfläche strikt vom Verhalten getrennt ist, dh der Code reagiert auf UI-Ereignisse. Mit XAML deklarieren Sie beispielsweise das Aussehen Ihrer Benutzeroberfläche in einem bestimmten XML-Dialekt, implementieren das Verhalten jedoch in separatem Programmcode.

Doc Brown
quelle
1
Gute Antwort. Nitpick: Ob Details wie die "genaue Position" angegeben werden oder nicht, ist orthogonal zur deklarativen / imperativen Teilung. In der Praxis ist es jedoch in deklarativen Systemen üblicher, den Computer mit den Details umgehen zu lassen (obwohl ich nicht sicher bin, warum).
sleske
8

Deklarative Benutzeroberfläche ist eine Benutzeroberfläche, die eher deklarativ (Sie beschreiben, wie sie aussehen sollte) als imperativ (Sie codieren die Schritte, um sie zu erstellen) gestaltet ist. Es ist wirklich nichts Besonderes oder Ungewöhnliches. Es gibt es schon seit mindestens den 1990er Jahren, als Sie Visual Basic und Delphi mit visuellen Formulardesignern hatten, mit denen Sie die Benutzeroberfläche Ihres Programms auf intuitive WYSIWYG-Weise gestalten konnten.

Mason Wheeler
quelle