Question

Si nous avons appris quelque chose de HTML / CSS, il est que des langages déclaratifs (comme XML) font un bon travail de décrire les interfaces utilisateur parce que:

  1. Il est facile de code de construction préprocesseurs qui peut TEMPLATE le code efficacement.
  2. Le code est dans un format bien défini bien structuré (idéalement) il est donc facile à analyser.
  3. La technologie efficace pour analyser ou explorer un fichier source basé sur XML existe déjà.
  4. Le code devient beaucoup plus scénarisée UIs plus simple et plus facile à comprendre.
  5. assez simple que les concepteurs sont capables de concevoir l'interface eux-mêmes.
  6. Les programmeurs sucent à créer UIs il devrait être assez facile pour les concepteurs.

J'ai récemment pris un coup d'œil à la viande d'une application WPF (ie. Le XAML) et il semble étonnamment familier avec le style de langage déclaratif utilisé en HTML.

L'état actuel du développement de l'interface utilisateur de bureau est en grande partie fractionnés, sinon il n'y aurait pas tant d'efforts beaucoup dupliqués dans le domaine de la conception de l'interface utilisateur graphique (IE. GTK, XUL, Qt, WinForms, WPF, etc.).

Il y a 45 plates-formes de l'interface graphique pour Python seul

Quelles sont interfaces graphiques Open Source qui représentent les caractéristiques suivantes:

  • standard
  • indépendant de la plate-forme
  • déclarative langage de balisage
  • langue agnostique

WPF, ou plus précisément XAML semble être un pas assez probable dans la bonne direction.

Mise à jour:

Merci beaucoup pour l'info, garder comin'. Voici ce sont les options que j'ai recueillies à partir des commentaires et des réponses.

GladeXML

  • Editeur: Glade Interface Designer
  • OS Plates-formes: Toutes
  • GUI Plate-forme: GTK +
  • Langues: C (libglade), C ++, C # (# Glade), Python, Ada, Pike, Perl, PHP, Eiffel, Ruby

XRC (XML Resource)

formats basés sur XML qui sont soit pas libre, pas multi-plateforme, ou un langage spécifique

XUL

  • Editeur: Tout éditeur de texte de base
  • OS Plates-formes: Tout système d'exploitation en cours d'exécution d'un navigateur compatible XUL
  • GUI Plate-forme: moteur Gecko
  • Langages: C ++, Python, Ruby comme langues plug-in ne langues de base

Note: Je ne sais pas si XUL mérite de mentionner dans cette liste car il est moins d'une interface graphique de bureau langue et plus d'un make-webapps-run-on-the-desktop langue. De plus, il a besoin d'un navigateur pour exécuter. IE, il est « DHTML pour le bureau. »

CookSwing

XAML (Moonlight)

  • Editeur: MonoDevelop
  • OS Plates-formes: Linux et autres Unix à base / X11 uniquement OSes
  • GUI plates-formes: GTK +
  • Langues: .NET

Remarque: XAML est pas un pur format Open Source parce que Microsoft contrôle ses conditions d'utilisation, y compris le droit de modifier les conditions à tout moment. Clair de lune ne peut être légalement faite pour fonctionner sur Windows ou Mac. En outre, la seule plate-forme qui est exonérée d'une action en justice est Novell. Voir cette pour description complète de ce que je veux dire. XAML est pas non plus une norme ECMA comme C #, Managed C ++ et le CLR.

Mise à jour: La question a été changé de « Y at-il une alternative open source à WPF parce que la question initiale était erronée, et il suçait La direction de cette question a changé de direction pour correspondre à aligner avec le. nouvelle entrée. Je présente mes excuses aux personnes qui ont répondu avant qu'il a changé.

Était-ce utile?

La solution

Qt développe QML, qui ressemble beaucoup à XAML sauf dans JSON. Il est disponible en avant-première construite contre la version actuelle, et est disponible dans les instantanés de la prochaine version.

Voici un petit extrait de http: // doc .qt.nokia.com / 4,7-snapshot / déclaratif-ui-composants progressbar.html

import Qt 4.7
import "content"

Rectangle {
   id: main

    width: 600; height: 405
    color: "#edecec"

    Flickable {
       anchors.fill: parent
       contentHeight: column.height + 20

       Column {
           id: column
           x: 10; y: 10
           spacing: 10

           Repeater {
               model: 25

               ProgressBar {
                 property int r: Math.floor(Math.random() * 5000 + 1000)
                 width: main.width - 20

                 NumberAnimation on value { duration: r; from: 0; to: 100; loops: Animation.Infinite }
                 ColorAnimation on color { duration: r; from: "lightsteelblue"; to: "thistle"; loops: Animation.Infinite }
                 ColorAnimation on secondColor { duration: r; from: "steelblue"; to: "#CD96CD"; loops: Animation.Infinite }
               }
           }
       }
   }
}

Autres conseils

  • Le Web prend la majeure partie de la vapeur loin des applications de bureau comme il est.

    Je pense que la grande raison est que tout le monde est tellement concentré sur le web en ce moment. HTML5 va être un saut quantique en avant dans ce que le web peut faire. Avec interpréteurs JavaScript rapides et navigateurs capables, la nécessité d'un programme de bureau commencera à décliner au fil du temps. C'est le cheval que Google parie sur et, dans une bien moindre mesure, Apple ainsi.

  • Créer quelque chose de bien aurait radicalement différentes implémentations pour chaque système d'exploitation, de sorte que la boîte à outils de base elle-même ne serait pas très portable.

    Si vous pensez à ce sujet, le Web est le seul substrat vraiment commun que nous avons sur pour développer ce genre d'infrastructure d'une manière multiplateforme. WPF est incroyablement différent d'un point de vue architectural par rapport WinForms / code WinAPI droite. Adaptation quelque chose comme à chaque OS prendrait beaucoup de plomberie très différent pour chaque système d'exploitation si vous deviez avoir une prière de faire quelque chose qui bien performé. (Pas que les applications web sont très rapides, voyez-vous, mais ils obtiennent mieux).

  • Look and feel va toujours être un peu d'un problème.

    Dont look and feel utilisez-vous? Essayez-vous d'adapter l'interface utilisateur au chrome OS de sorte qu'il semble « natif », ou est-ce que vous faites quelque chose comme swing il y a quelques années et a fait développer des applications qui ressemblent distinctement différent de tout là-bas? (Ugh, qui était une épave de train ...) Et si vous choisissez d'adapter l'interface utilisateur à l'apparence de chaque système d'exploitation, vous pouvez avoir toutes sortes de problèmes de mesure et de conception.

Novell a une implémentation open source de Silverlight, avec un grand soutien pour XAML, appelé Moonlight:

http://en.wikipedia.org/wiki/Moonlight_(runtime)

http://www.mono-project.com/Moonlight

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top