Si nous avons appris quelque chose de HTML/CSS, c'est que les langages déclaratifs (comme XML) décrivent bien les interfaces utilisateur parce que:
J'ai récemment jeté un coup d'œil à la viande d'une application WPF (c'est-à-dire le XAML) et elle semble étonnamment familière au style de langage déclaratif utilisé en HTML.
L'état actuel du développement de l'interface utilisateur de bureau est largement fractionné, sinon il n'y aurait pas autant d'efforts dupliqués dans le domaine de la conception d'interfaces graphiques (IE. GTK, XUL, Qt, Winforms, WPF, etc.).
Il existe 45 plateformes GUI pour Python seul
Quels sont les GUI Open Source qui représentent ces caractéristiques:
WPF, ou plus précisément XAML, semble être un pas très probable dans la bonne direction.
Merci beaucoup pour l'info, continuez à venir. Voici les options que j'ai recueillies à partir des commentaires et des réponses.
Formats basés sur XML qui ne sont ni gratuits, ni multiplateformes, ni spécifiques à la langue
Remarque: Je ne suis pas sûr que XUL mérite d'être mentionné dans cette liste, car il s'agit moins d'un langage GUI de bureau et plus d'un langage make-webapps-run-on-the-desktop. De plus, il nécessite un navigateur pour fonctionner. IE, c'est "DHTML pour le bureau".
Remarque: XAML n'est pas un pur format Open Source car Microsoft contrôle ses conditions d'utilisation, y compris le droit de modifier les conditions à tout moment. Moonlight ne peut pas légalement être exécuté sur Windows ou Mac. De plus, la seule plate-forme exemptée de toute action en justice est Novell. Voir ceci pour une description complète de ce que je veux dire. XAML n'est pas non plus une norme ECMA comme C #, Managed C++ et CLR.
Mise à jour: la question a été modifiée de "Existe-t-il une alternative open source à WPF? Parce que la question d'origine était erronée, et elle était nulle. La direction de cette question a changé de direction pour correspondre à aligner avec la nouvelle entrée. Mes excuses aux personnes qui ont répondu avant qu'il ne change.
Qt développe QML, qui ressemble beaucoup à XAML sauf en JSON. Il est disponible sous forme d'aperçu construit par rapport à la version actuelle et est disponible dans des instantanés de la prochaine version.
Voici un petit extrait de http://doc.qt.nokia.com/4.7-snapshot/declarative-ui-components-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 }
}
}
}
}
}
Le Web retire la majeure partie de Steam des applications de bureau telles quelles.
Je pense que la grande raison est que tout le monde est tellement concentré sur le web en ce moment. HTML5 va être un bond en avant dans ce que le Web peut faire. Avec des interprètes JavaScript rapides et des navigateurs capables, le besoin de programmes de bureau commencera à diminuer avec le temps. C'est le cheval sur lequel Google parie, et dans une bien moindre mesure, Apple également.
Créer quelque chose de bien aurait des implémentations radicalement différentes pour chaque système d'exploitation, donc la boîte à outils de base elle-même ne serait pas très portable.
Si vous y réfléchissez, le Web est le seul substrat vraiment commun sur lequel nous pouvons développer ce type d'infrastructure de manière multiplateforme. WPF est incroyablement différent du point de vue architectural par rapport au code WinForms/WinAPI direct. L'adaptation de quelque chose comme ça à chaque OS nécessiterait beaucoup de plomberie très différente pour chaque OS si vous deviez prier pour faire quelque chose qui fonctionnait bien. (Pas que les applications Web soient très rapides, faites attention, mais elles s'améliorent).
L'apparence sera toujours un problème.
Dont l'apparence utilisez-vous? Essayez-vous d'adapter l'interface utilisateur au système d'exploitation chrome pour qu'il ait l'air "natif", ou faites-vous quelque chose comme Swing l'a fait il y a des années et développez des applications qui sont distinctement différentes de tout ce qui existe? (( Ugh, c'é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 support pour XAML, appelé Moonlight: