Close

il nous FAUT un window manager solide pour les navigateurs internet

A project log for YGWM Whygee's JavaScript Window Manager

YGWM is much more than a window manager! It's a JavaScript framework that turns your website into a "HTML5 application" (or vice versa).

llollo 01/26/2021 at 21:083 Comments

Préambule

(juste un petit mot pour rappeler à quel point je hais le thème sombre de #hackaday, qui me donne l'impression de devoir naviguer en plein brouillard au milieu d'une nuit sans lune, et que proposer un thème clair c'est quand même pas si compliqué et personne ne va en enfer pour ça ... voilà, c'est dit).

Contexte

Il y a quelques semaines, j'ai démarré un projet ambitieux de logiciel visant à aider le plus grand nombre à faire du DataScience dans le sens noble du terme, c'est à dire à s'accaparer les données statistiques provenant de nombreux sites à travers le monde pour en extraire des informations utiles afin de faire avancer les choses et de participer à la vie scientifique, même modestement.

Étant donc un projet au moins en partie éducatif, Il me fallait une interface user friendly. Je me suis donc dirigée vers le blockly et j'ai accepté de mettre un peu de JavaScript dans mon java. Or le navigateur Chromium, bien qu'il ait l'extrême bonté (je ne suis pas sarcastique, je trouve ça fabuleux et rien ne les y obligeaient) de se proposer dans une version toute nue intégrable partout (le Chromium Embedded Framework, cef pour les intimes), cela ne suffisait pas, car il me fallait gérer des alert(), ce qu'il ne peux pas faire. C'est en effet une fonctionnalité liée à l'environnement, trop éloignée du cœur donc. J'aurai pu régler ça en Java (on peut TOUT régler en Java, et là non plus je ne suis pas sarcastique, j'aurai pu, je pourrais, grâce à graalvm (si si, Dieu existe : https://www.graalvm.org/) mais étant donné que c'était du côté client, autant régler ça en JavaScript. Or je connaissais YGWM, le Window Manager de Whygee, qui est décidemment bien sa créature >-) J'ai donc plongé dans le code, je l'ai nettoyé, un peu ordonné, j'ai séparé la partie WM de la partie YASEP. Le résultat, perfectible, est disponible ici (lien github). L'opération fut longue et pas indolore. Hélas, à l'heure actuelle, son code est trop 2010 pour qu'il soit compréhensible par les devs du futur, voir du présent, il lui fallait faire carrément un saut générationnel vers 2020, notamment en matière de lisibilité et de concepts absurdes tel que le nommage, la documentation ou ne pas sauter directement du développement à la compaction.......................... l'intéressé comprendra.

J'encourage vivement son développeur a se retrousser les manches pour produire un code réellement accessible à tous, donc réellement open source et je serai à ses côtés pour l'y aider. Ça n'est pas si difficile qu'il y parait, on peut y arriver. En attendant, je développe de mon côté son petit frère : yglloWM, que j'essaie de garder sociable et moderne, avec une emphase sur l'ergonomie, non seulement de l'interface elle-même mais aussi de son code et de son API. D'ici quelques mois, je prévois ensuite de rejoindre Whygee sur sa refonte du code de YGWM pour proposer une version retro, à quatre mains, qui sera probablement le nouveau YGWM, mais qui sera conçu pour être compatible avec tous les navigateurs depuis l'invention du HTML et avec cette fois une emphase également sur la performance dans des ordinateurs un peu faiblards voire carrément à genoux, mais en restant lisible et simple dans sa structure et son déploiement. On a le code qu'on mérite et on mérite ce qu'il y a de mieux.

La documentation

Il faudra aussi faire une documentation accessible à tous et facile à parcourir, particulièrement en ce qui concerne l'API donc. Je suggèrerai qu'elle ne soit pas intégrée à l'interface, bien que ce soit extrêmement tentant. Mais je pense que paradoxalement ce serait plus intimidant qu'autre chose pour les nouveaux venus. Rien de pire qu'une documentation qui nous sorte de notre zone de confort, ça multiplie la difficulté d'apprentissage par deux. Donc un simple HTML avec un sommaire modeste, se concentrant sur l'essentiel, en particulier les premiers pas, et une fonction de recherche pour les utilisateurs plus avancés.

Quoi dire d'autre ? Même si je me suis beaucoup gratté la tête en lisant le code source de YGWM, j'ai aussi beaucoup souri, car à l'époque de son développement je ne m'intéressai absolument pas au JavaScript, donc écouter Whygee me parler de ses exploits me faisait rêver à tout ce qu'il était possible de faire en quelques lignes de code. On prétend toujours que nos rêves s'amoindrissent à mesure qu'on grandit, mais je crois bien que maintenant que j'ai les deux pieds dans la programmation, que j'y suis même enfoncée jusqu'au cou, je rêve dix fois plus grand, en particulier quand je vois la qualité, l'éthique et la solidité des grands projets qui nous entourent.

Alors au boulot !

PS : voici la vidéo de la première monture, il va sans dire qu'il reste du travail (au 27/01 en tout cas) : 

(and hackaday, please, give us a light/bright theme, it's not so complicated and it would enhance the life of many people who (try to) participate to your website)

Discussions

Yann Guidon / YGDES wrote 01/27/2021 at 14:31 point

Mais où est la vidéo de démo ? :-D

  Are you sure? yes | no

llo wrote 01/27/2021 at 18:55 point

faudra que j'en refasse une pour la v0.1 tiens, une fois le menu terminé et tout

  Are you sure? yes | no

Yann Guidon / YGDES wrote 01/28/2021 at 00:03 point

ah mais carrément.

  Are you sure? yes | no