Video/demo de Avalon: une icone

[quote name=‹ MrCastor › date=’ 28 Mar 2005, 14:03’]De la 3D avec du XAML ? Ca me rappelle le VRML dans un autre genre (avec du XML).
[right][post=« 344895 »]<{POST_SNAPBACK}>[/post][/right][/quote]
Oui VRML est une tres vieille techno avec des buts tres differents mais c’est effectivement aussi du XML. « XML : a toute les sauces depuis 10 ans pour ton buisness plan. » ™ © :stuck_out_tongue: Non, plus serieusement c’est quand meme bien pratique.

Juste une petite remarque sur les config “milieu de gamme” d’aujourd’hui: de mes 7 PC (oui je sais…) j’ai qu’un seul PC en DirectX 9 (avec une radeon 9700Pro). Le reste c’est du Direct X 7/8 (et encore j’inclus pas mon Celeron 433 avec une mystique dedans vu qu’il compte rester sous nux).

On me dira ce qu’on voudra, mais j’aurais TELLEMENT aimé qu’un jour, microsoft se dise: on va arreter la course au surarmement, on va faire un kernel stable et light pour les vieilles bécannes.

Mais oui je sais ca rapporte pas assez. Et on me dira, ya toujours windows CE, ou XPLite qui trainent, seulement le win CE, ben tu le trouve pas dans le commerce, (ni le media center d’ailleurs, seulement commercialisé avec un nouveau PC), que voila.

Après on m’accuse de developper sur du windows 2000, de raler quand les démos de longhorn ne se lancent qu’avec du XP… j’ai pas les thunes pour passer tout mon parc en XP, et j’ai pas la puissance sur les machines non plus.

J’ai un collègue au taff (gros fana d’assembleur, il developpait des routines d’optimisations en asm pour des jeux vidéos avant) qui m’a dit: plus on avance, plus les ressources sont gachées pour faire des conneries graphiques dont tout le monde se fout: je le rejoins un peu sur cette idée. D’accord cette icone est tres belle, mais la différence avec une bete icone CD de win 95? Ca a exactement les même fonctionnalités.

En gros si j’étais Joystick, je mettrais un Mégastar, mais un Stop Surarmement aussi :P.

Bon je ferme cette parenthèse, la démo reste impressionnante.

Hola ca part dans le debat philosophique… :stuck_out_tongue:

C’est parfois chiant, je te rejoins dans le fait que c’est parfois penible et que ca prend du temps et de l’argent pour mettre tout le monde a jour, les evolutions ont toujours un cout plus ou moins eleve. Elle sont reussies et on appelle ca le progres si le retour est plus gros que le cout. Est ce que c’est le cas ici? C’est a chacun de le determiner et de se faire son opinion, mais si ca vient pas de MS et que demain ils mettent la clef sous la porte, tu pourras etre sur que ca viendra de qqn d’autre et qu’il te faudra quand meme changer tes machines et faire evoluer leur OS, et apprendre une nouvelle API, et en gros suivre les changements qui sont pas pret de s’arreter :stuck_out_tongue:

Tu peux pas rester sur du « ca sert a rien », les changement sont tous incrementaux et ont un prix, jamais continus et gratuits, on serait tous devant des ecrans verts ou ambre en mode texte de 21 pouces avec un 8089 a 12.5Mhz sinon. Il y a toujours des bonnes raisons pour ne pas evoluer les yeux fermes, aujourd’hui encore tu trouves des acharnes de la ligne de commande qui t’expliquent que pour faire leur informatique tu as juste besoin de bash et de vi et peut etre bien que pour leur application, ils ont parfaitement raison et economisent ainsi beaucoup. Mais la il s’agit de faire le design des API qui vont servir pour la majorite des gens pour les 10/15 prochaines annees, comme win16 puis win32 ont ete le centre du developpement sous windows dans la decenie passee. L’investissement est ce qu’il est: un investissement.

Je me souviens encore des premiers jeux sous windows 95. Beaucoup de gens trouvaient ca ridicule d’utiliser des API de haut niveau ou on controllait pas 100% du matos directement en assembleur ou en C. Alors oui aujourd’hui on monte d’un niveau d’abstraction, mais il faut voir qu’il ne s’agit pas QUE de faire du plus joli, mais surtout de faire du plus pratique et du plus rapide pour pouvoir se concentrer sur des nouveaux problemes. C’est comme ca que l’informatique evolue, on progresse dans les abstractions, ca consomme plus de resources et c’est le prix qu’on accepte de payer. A tout refaire en assembleur on irait sans doute 500 fois plus vite et on consommerait 50 fois moins de memoire, mais pour faire une seule des applications qui aujourd’hui representent une industrie qui genere des millions d’euros par an, permettent a des gens de faire un travail bien plus efficace, il faudrait des annees. On peut tomber dans le debat philosophique sur la necessite de la course inepuisable du progres et partir elever des chevres dans le Larzac mais la on sort du cadre de notre travail :stuck_out_tongue: Si tu trouve que ce sont des « ressources gachees pour faire des conneries graphiques dont tout le mond se fout » c’est une opinion comme une autre, mais moi je suis absolument pas d’accord.

La difference avec une icone windows 95, c’est pas tant la fonctionalitee, c’est meme pas que c’est fondamentalement plus beau, on peut faire peut etre faire aussi bien sous win95, presque aussi joli et qui se comporte pareil. La difference c’est que tout le concept de la message pump, toute l’API pour creer cette icone, toute la mise en place des evenements pour reagir quand tu cliques dessus, tout ca a ete revu et est monte d’un niveau pour etre rendu plus facile et plus rapide a mettre en place. En prenant du recul, si tu veux tu peux programer en ASM un manager de souris, de rendu graphique qui fait pareil et tu vois vite pourquoi on le fait pas. Meme en win32 pur, facon win95, tu peux faire un programme qui fournit les memes fonctionalites que la deuxiemme video de la demo, meme en plus moche, sans aucune « conneries graphiques » ou effets visibles dans la video, purement fonctionellement identique, et compare tes quelques centaines de lignes de code, leur complexite a l’effort requis ici (quelque dizaines) pour obtenir le meme resultat. L’essentiel est la, c’est pas que c’est plus beau, c’est pas que c’est plus joli, c’est pas que ca bouge mieux: c’est que ca prend 50 fois moins de temps a faire. Le but central de l’informatique c’est la productivite pour resoudre un probleme, la productivite du codeur qui code pour resoudre ton probleme, et la productivite du mec qui utilise le soft au final. Maintenant si en plus ca peut etre plus joli, permettre plus d’effets graphiques tant mieux mais il faut pas croire que les outils de representation graphique servent uniquement a faire de l’artistrique tres subjectif, mais surtout a ce que la UI, serve a rendre un probleme plus abordable et facile, qu’une image vaille 100 mots, ce qui au final sert a encore a faciliter le boulot.

Si dans un programme de quotation boursiere je peux que montrer une ligne de texte avec le changement dans la journee et un graphique, dans le temps qui m’est imparti pour faire le programme, c’est bien. Si je peux faire un historique graphique, des camemberts de repartitions, des animations des changement des perspectives a la hausse ou a la baisse d’un prospect financier, j’ai non seulement gagne en productivite, mais j’ai aide considerablement mon client avec plus de fonctionalites pour l’aider a faire son metier. Ca marche en general assez bien et de la meme maniere si t’es architecte, si tu gere une usine de clous ou si tu veux faire la plupart des metiers qui aujourd’hui s’aident de l’informatique pour ameliorer/faciliter leur travail. Lire du texte c’est bien, mais a l’ere des machines, le role de l’individu c’est de plus en plus de traiter l’information et vu les volummes de donnees que chaque individu a a traiter dans une societee qui devient de plus en plus basee sur qui a l’information, quand, et qui sait en faire quoi au bon moment et rapidement, les aides a la representation sont fondamentales.

Donc course a l’armement? Sans doute, il en reste pas moins qu’un PC top niveau aujourd’hui, coute en $ constant, 10 fois moins qu’un PC top niveau d’il y a dix ans pour 1000 fois plus de capacites de calcul. Tu, je, on y est plutot tous gagnants dans l’absolu :stuck_out_tongue: Et puis surtout, aussi, c’est la preparation de ce qui, peut etre, va devenir un des blocs de base pour l’informatique des 10 prochaines annees.

Pff j’arrive pas à lire la vidéo dans le WMP8 du taf ni avec le dernier VLC. GloP, il me faut quoi comme codec exactement, sachant que je n’ai pas le droit d’accéder au windows update? Hmm ou si je choppe directement WMP10 sans passer par WU, ça le fera peut-être.

[hors sujet]

Bon c’est pas un thread pour sortir tous ces petits démons contre MS/VS/whatever.
Et c’est pas parce qu’on s’excuse de détourner d’avantage qu’on peut détourner d’avantage, ça saoule, et ça fait des thread interminables et/ou illisibles.

Ca parle de programmation là, merci pour l’auteur.

Euh sinon, sans parler optimisation tout ça, ni meme compilation du code à la volée, le rendu vectoriel ça pompe un max de cpu tout de même, bon pour un seul bouton on s’en fout, mais quand t’en affiches 40 avec des fenetres vectorialisée de partout, ça va pas mettre à genoux le proc, si puissant sois-t-il ? ce sera reparti avec la CG ? Parce que de mon coté c’est bien le truc qui m’empeche de garder un yz’dock & Co sur mon desk, mais comme on parle d’une nouvelle techno, la comparaison est faiblarde. So quid ?

WM9 (dispo en player et codec) (dis à ton admin de jeter le 8, hein.)

Merci à WMP10 de m’avoir permi de mater cette petite vidéo. Eh bien, ça poutre la rétine. J’ai un peu peur quand même de quand il y a ouatmille icônes, mais en tout cas ça donne du bonheur dans les yeux ça :stuck_out_tongue:

[quote name=‹ GluP › date=’ 29 Mar 2005, 01:04’]Euh sinon, sans parler optimisation tout ça, ni meme compilation du code à la volée, le rendu vectoriel ça pompe un max de cpu tout de même, bon pour un seul bouton on s’en fout, mais quand t’en affiches 40 avec des fenetres vectorialisée de partout, ça va pas mettre à genoux le proc, si puissant sois-t-il ? ce sera reparti avec la CG ? Parce que de mon coté c’est bien le truc qui m’empeche de garder un yz’dock & Co sur mon desk, mais comme on parle d’une nouvelle techno, la comparaison est faiblarde. So quid ?
WM9 (dispo en player et codec) (dis à ton admin de jeter le 8, hein.)
[right][post=« 344992 »]<{POST_SNAPBACK}>[/post][/right][/quote]
Donc en fait a priori tout le rendu est effectue par DirectX9c en direct de la carte graphique. A priori les perfs du moment que la CG suit devrait pas poser de probleme particulier, le XAML etant compile avant d’etre execute, c’est a dire que c’est pas de l’interpreté. Maintenant je peux pas faire de promesses par rapport aux performances de la choses sachant que c’est meme pas encore en beta1 et que les phases d’optimisations sont loins d’etre commencees. En revanche je peux dire je pense que j’ai vu des progs de taille consequente (par exemple de la taille d’un photoshop, flash ou firefox) avec une interface 100% en XAML, tourner relativement confortablement sur une machine qui est pas un monstre. Ca constitue en rien une garantie mais tu peux etre sur que les perfs c’est qqch d’important :stuck_out_tongue:

Le but c’est pas fondamentalement de mettre des icons qui bougent de partout, de mettre un fond d’ecran en 3d et autres effets funky, meme si c’est rigolo et que je suis aussi client que n’importe quel geek moyen :stuck_out_tongue: Le but c’est surtout de permettre de developpers des interfaces plus complexes, plus intuitives et plus jolies facilement, qui sont independantes de la resolutions en DPI de l’ecran (on y vient a l’augmentation des DPI sur les LCD, on va pas avoir du 36 pouces… 24 c’est deja enorme mais le nombre de pixels va continuer a monter).

Il faut voir qu’il y a aussi plein d’ameliorations typographiques (mattez le gif anime des fontes, c’est tres marrant et aussi), un nouveau cleartype, des tas de trucs qui sont pas la pour faire flashy facon tuning mais qui, ils esperent, ameliorent le rendu en general.

Xas: si tu veux, ecris moi un PM, j’ai des reponses a tes commentaires/questions. Et desespere pas, on fait un service pack pour VS 2003 pour corriger les bugs, on abandonne pas un produit qui a des defauts, et on bosse pour les corriger. Mais nouvelle fonctionalite = nouveau produit, ca a toujours ete comme ca.

Et euuh… si on peut faire des interfaces graphiques en xml, est-ce que ça veut dire qu’on va pouvoir faire des interfaces graphiques portables qui marchent sous windows, linux, macos et autres ?

Coccobill: non faut pas pousser tout de même… Tu fais ton interface en XAML, et après il faut que le compilo gère toutes les fonctionnalités d’Avalon. C’est Avalon qui fait l’interprétation. Si tu veux avoir ça chez les manchots ou chez les fermiers, il faudrait qu’Avalon soit porté ou bien que quelqu’un l’adapte.

Purée, je ne sais pas si c’est chez moi ou quoi. J’ai Net 1 + Net 1.1, j’ai viré toutes les beta de VS Express 2005 (tout en ayant la 2003 complète), j’ai aussi viré la beta de Net 2. J’ai downloadé Avalon+Indigo, j’ai downloadé VSCSExpress le dernier dispo, me suis enregistré, j’ai extrait l’iso, j’ai installé au fur-et-à mesure: Avalon, Indigo, WinFX SDK… Et j’ai des soucis pour lancer correctement VSCSExpress:

[quote]D:\DEV\VisualStudio8\Common7\IDE\VCSExpress\HTML\GettingStarted.htm

The page cannot be displayed
The page you are looking for is currently unavailable. The Web site might be experiencing technical difficulties, or you may need to adjust your browser settings.
Blablablabla[/quote]

Oui, je n’installe pas sur C (vieille habitude). De plus, j’ouvre un projet et : “E:\avalonsample\Avalon\demos\geometrydesigner\geometrydesigner.csproj” (un exemple fourni avec Avalon) je veux le lancer et “VSDesigner Package’ has failed to load properly”

Edit: designerslove.net semble dans les choux…

Est-ce dû à mon installation non standard ou bien?

Question débile: okay, le rendu des interfaces graphiques ne met pas à genoux le PC si la carte graphique est pas trop pourrie… Mais ça en consomme quand même une partie, ce qui est drastiquement différent du “avant”. Donc est-ce que ça va pas nous faire un choc quand on voudra jouer à WoW ou à EVE-Online en mode fenêtré tout en chattant sur IRC et en browsant le web? Passkeu là ça risque de la mettre à genoux, la carte, non? (surtout si on joue au MMORPG qui tue qui sortira en 2006, et qui mettra, de base, la carte graphique à genoux!).
D’ailleurs, on peut tout simplement se demander ce qui se passera pour ceux qui vont faire du 3dsmax ou d’autres applis graphiques qui, avant, avaient toute le CPU graphique pour eux…
Je remets pas en question le choix d’afficher les GUIs à travers le CPU graphique, hein, ça me parait au contraire logique, c’est un CPU graphique après tout (les vieux se rappellent des cartes VGA accelérées 2D!), mais c’est juste que je crains une période de transition douloureuse entre l’ancien load-balancing et le nouveau…

C’est une possibilite mais ca reste une interface, c’est pas un jeu qui pompe tout a fond. De plus si ton interface reste en Win32 pour 3dsmax, ou ne fait pas utilisation massive de 3d, qu’elle occupe une bonne portion de l’ecran comme Wow meme en fenetree, il y a pas de raison que ca te pompe tellement de ressource que ton prog s’en ressente. Comme pour win32, a priori, tu ne te fatigue que sur ce qui “paint” sur l’ecran. Il est possible que certains doivent s’adapter au nouveau modele de programmation et fasse des choses mal et a la mulet au depart cela dit ce qui pourra causer des problemes, mais je vois pas de raison d’etre pessimistes pour l’instant.

De toute facon, a ce que j’ai compris, on aura la possibilité de dire a l’interface de tourner en mode legacy, (DirectX6, comme un bon vieux windows 2000), non? C’est certainement le mode que je mettrais :P.

L’interface du shell (explorer) est independante de Avalon. Un programme ecrit pour utiliser l’API Avalon tournera avec Avalon quel que soit le mode que tu as choisit pour faire tourner ton shell/explorer. C’est une API pour les programmes, c’est pas Aero. (Bien que Aero puisse utiliser/s’interfacer/profiter/whatever est sous “NDA” Avalon).

Bon ça commence bien…

Je voulais essayer de faire une petite appli avec un dockpanel et 2 panel dedans.
Le tout redimenssionnable, avec un splitter entre les deux.

Les exemples que j’ai trouvé parlent d’un attribut DockPanel.Dock=“Fill”.

Or Fill n’est pas reconnu. J’ai que Left, Right, Top et Bottom…

Et y a pas de version XAML de SplitContainer ?

Je suis perdu.

[quote name=‘Xas’ date=’ 30 Mar 2005, 03:24’]Bon ça commence bien…

Je voulais essayer de faire une petite appli avec un dockpanel et 2 panel dedans.
Le tout redimenssionnable, avec un splitter entre les deux.

Les exemples que j’ai trouvé parlent d’un attribut DockPanel.Dock=“Fill”.

Or Fill n’est pas reconnu. J’ai que Left, Right, Top et Bottom…

Et y a pas de version XAML de SplitContainer ?

Je suis perdu.
[right][post=“345451”]<{POST_SNAPBACK}>[/post][/right][/quote]
C’est pas complique mais surtout beaucoup de concepts, en particulier de layout ont ete repenses, il suffit de rentrer dans l’esprit du truc. En comme c’est meme pas encore en beta1, des gros changement arrivent d’un version a l’autre quand un design se raffine pour etre le plus pratique possible.

Donc Dock.Fill existe plus non.

Si tu regardes ici, dans la section Layout, c’est meme explique.

La plupart des exemples dispo sur le net utilisent la super vieille version de XAML, un “premier jet” qui a bcp evolue, c’est a ca que ca sert les alpha :P. Il va falloir du temps pour qu’ils se mettent a jour avec le nouveau layout et la nouvelle syntaxe. La doc est bien sur ici et toujours utile meme si, elle aussi, elle est en alpha. C’est super tot encore et c’est pas pour tout le monde, loin de la, c’est vraiment pour les temeraires, mais c’est plutot marrant moi je trouve.

PS: Tu as une tetrachiee plus mille d’exemple dans \samples\Avalon. Ils se buildent avec msbuild. Fais toi un racourci qui lance un truc du genre:
C:\WINDOWS\system32\cmd.exe /E:ON /V:ON /K SetEnv.cmd /RELEASE
et qui demarre dans d:\devel\winfxsdk (par ex chez moi, enfin la ou t’as setenv.cmd). Et apres de n’importe quel rep dans le shell ouvert avec ce racourci tu peux faire msbuild machin.csproj ou msbuild bidulle.sln et t’as ton exe qui t’attend…

PPS: Je te conseille de commencer par regarder dans winfxsdk\samples\Avalon\intro y a des projets pour “debuter”.

[quote name=‘rolyat’ date=’ 29 Mar 2005, 15:56’]Coccobill: non faut pas pousser tout de même… Tu fais ton interface en XAML, et après il faut que le compilo gère toutes les fonctionnalités d’Avalon. C’est Avalon qui fait l’interprétation. Si tu veux avoir ça chez les manchots ou chez les fermiers, il faudrait qu’Avalon soit porté ou bien que quelqu’un l’adapte.
[right][post=“345192”]<{POST_SNAPBACK}>[/post][/right][/quote]

Oui mais il suffirait de faire un compilo qui transforme ça en fonctionnalités d’avalon, ou à peu près équivalent non ?

Parce que sinon c’est dommage, c’était le plus gros avantage que j’aurais vu à faire une définition d’interface en xml. Jusque maintenant l’interface restait plus ou moins le seul truc que l’on doit porter d’un OS à l’autre quand on fait une architecture de programme pas trop pourrie (en admettant que ça soit possible).

Enfin bon je suis pas une brute en marketing non plus.

Yep, c’est assez chiant, passkeu si on veut faire du multiplateforme, on doit se taper des bouses genre Qt et autres.

D’ailleurs GloP, pourquoi WinForms n’est pas inclus dans le standard ISO/ECMA du Framework.NET ? Autant l’implémentation qui se trouve derrière et qui utilise du Win32/GDI/Gna-gna, je comprends, mais y’avait pas moyen d’arriver à foutre les interfaces de l’API et quelques autres détails? Passkeu là, les implémentations de Mono, par exemple (sous Linux), elles font ça comme elles peuvent, en attendant en plus un petit mot officiel de MS disant si oui ou non elles ont le droit…
(j’ai trouvé quelques blogs de MSiens qui demandaient eux-mêmes pourquoi MS ne donnait pas une position claire vis à vis des 3 trucs (ADO.NET, ASP.NET et WinForms) qui ne sont pas dans le standard, donc je suppose que je n’ai pas raté d’annonce MS à ce sujet…)

Bah c’est evident :stuck_out_tongue: Parceque dessous c’est du win32 pur. Et que l’API ne se comporte jamais que de la maniere dont se comporte Win32. WinForms c’est pas un truc fait de zero pour faire de l’interface graphique, le bouton, le listview, et pas mal de controls, c’est un wrapper (plus ou moins) fin par dessus ComCtl5 et ComCtl 6 ainsi que Win32. Je sais meme pas comment ils vont faire pour etre 100% compatibles dans Mono avec les cas qui se reposent sur une particularite ou une autre de Win32/GDI/GDI+ qui a ses « bizzareries » apres 15 ans d’evolution. En fait je veux pas savoir, c’est surement possible mais ils vont en chier et devoir reproduire des comportement qui sous linux auront pas de sens. Il y a des limitations a la capacitee d’abstraction, en particulier d’une API de ce genre. Comme tres bien explique par Joel de JoelOnSoftware toute abstraction « fuit » a un moment ou a un autre, et ces fuites la sont supra specifique a ce qu’il y a dessous.

Un standard n’a d’utilite que du moment que ce qu’il decrit peut etre implemente de maniere compatible par quelqu’un d’autre sans avoir d’autre choix que de copier coller le code de tout windows. Alors la syntaxe du C#? No soucis. Le code MSIL intermediaire duCLR? No soucis. L’api win32 et son wrapper malin WinForm? A mon avis a moi que je l’ai : aucun interet, ca revient presque a refaire windows. Meme si les « fonctions » etaient standard leur effet, lui, est dependent de ce qu’il y a dessous.

Si je pouvais re-ecrire une classe ImageList aujourd’hui de zero, je la ferais pas forcement de la maniere dont elle est decrite dans Winform, et je lui ferais donc pas la meme API. Quand tu construit sur une base tu es « force » dans certains choix de design, d’autre systemes qui ont pas la meme base seront pas construits de la meme maniere et exposeront pas les meme choses, meme si t’as 99% en commun. Le diable est dans les details comme ont dit en anglais et ces 1% vont demander 80% de l’effort.

Maintenant qu’un truc qui reprend bcp plus de choses de zero comme XAML, Avalon ou ASP.Net soit un standard peut etre, pourquoi pas, je connais pas assez bien pour dire. Je pense pas que ca soit facilement le cas de WinForm.