Venez redécouvrir Hoa !

Eléphant du PHP | 209 Messages

08 juil. 2011, 18:12

ok, donc toute méthode private appelé une seule fois par une classe doit être réintégré dans la méthode appelante ?

( merci de pas prendre ca pour du troll, j'essaye d'aller au fond des choses ... :oops: )
--
Eric

ViPHP
ViPHP | 4674 Messages

08 juil. 2011, 18:23

Tu fais bien de préciser parce que sinon … ;-).

Ici on est dans le cas d'une vérification du système pour que la classe puisse s'exécuter normalement. Elle va donc faire une vérification pour Suhosin. Mais, comble de chance, le constructeur n'a qu'une seule vérification à faire ! Alors pourquoi créer une méthode (privée ou protégée dans le meilleur des cas) pour ne faire que ça ? Ça n'a pas de sens.
Si encore on avait plusieurs vérifications à faire : Suhosin, version de PHP, variables d'environnement, serveurs HTTP etc., ok, on aurait plusieurs méthodes qui valideraient les contraintes une par une. Ça pourrait se justifier. Mais ici, ce n'est pas le cas. C'est pourquoi je mets la vérification directement dans le constructeur. On économise un appel de méthode, c'est plus rapide et plus léger.

Après, on ne peut pas généraliser à toutes les méthodes privées qui ne sont appelées qu'une seule fois. Elles le sont peut-être maintenant, mais plus tard, ce n'est pas sûr. Il faut déplacer le raisonnement sur la nature de la méthode et non pas sur son utilisation. C'est très différent. Créer une méthode doit avoir un sens.

J'ai répondu à ta question ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 661 Messages

09 juil. 2011, 01:36

Bon, je lis ce topic depuis sa création (me semble t il ... ) et je ressent un certain mal-être parfois, je ne parles pas des "j't'envoi bouler pour le plaisir du jeux" mais du coté étriqué des raisonnements critiques !...
Dommage en soit car il enlève tout le charme à la discussion....

Sinon, j'ai pas l'habitude de fleurté avec les raisonnements mis en place dans HOA (oui, je l'ai lu en diagonal, mais avec curiosité) je suis plutôt habitué à mettre en place de grosses machines que je maitrise parfaitement (vu que j'en suis généralement le concepteur) je m’appuie sur des objets que je fais évoluer aux file des projets et épure en version RC pour le gain de perf (et si ça ne suffit pas j'augmente la ram ou le proc ^^)

Bref, J''aime ton discours ambitieux, le partie pris du défis d'excellence et les idées intéressantes que j'ai pu lire à droite ou a gauche sur Hoa ...

cela dit, Hoa est optimisé au possible, dénué de toutes fioriture ... est-ce prouvable ?
Est-il envisageable de vérifier aisément les comparaison entre un code que tout le monde est habituer à voir et un code réalisé grâce à Hoa ?
Une petite apli qui permettrait entre autre de voir la méthodologie appliquée et l'emploi des librairies de Hoa dans un environnement de production. suffisamment simple pour être mise en concurrence (pref / nb caractères / temps de rédaction ) avec d’autres approches de framework plus courant sans que cela ne gâche trop de temps aux développeurs dévoués qui s'y attèleront ... ?


Dans tous les cas, vous avez mon soutiens ! ... j'aime le design et l'esprit du site :D tout comme la ténacité des développeurs et de leurs détracteurs :wink:

@+

Eléphant du PHP | 209 Messages

09 juil. 2011, 08:34

J'ai répondu à ta question ?
Oui, parfaitement. On n'a simplement pas la même définition de "ne faire qu'une chose" ! Le constructeur : défini des constantes, vérifie que suhoshin laisse passé les hoa:// et initie la timezone, donc pour moi, c'est clair que y a trois appel de fonctions.

Encore une fois, ma critique bien que pouvant effectivement semblé étriqué et la seule que je connaisse : la lecture du code par sondage : cela me permet de voir avec quel difficulté je vais pouvoir utiliser le logiciel/framework/bibliothèque. L'utilisation d'un fw requiert assez souvent la lecture de son code source, notamment dans les cas suivant : documentation défaillante, bug dans le fw, mise à jour du fw sans que les auteurs ne s'occupe de la compatibilité. Dans tous ces cas, on est obligé d'entrer dans le code, alors autant que la lecture soit simple et agréable.

Et mon **impression** sur Hoa est que la lecture de son code source est difficile.
cela dit, Hoa est optimisé au possible, dénué de toutes fioriture ... est-ce prouvable ?
Non. Même en calculant la complexité des appels des pages, c'est trop compliqué pour que l'on puisse prouver quoique ce soit.

L'idée d'un projet de base qui permettrais de montrer l'intérêt de Hoa est demandé depuis le début du thread :-)
--
Eric

ViPHP
ViPHP | 4674 Messages

09 juil. 2011, 21:35

Un mini-tutoriel est en cours d'écriture. Peut-être qu'il se transformera en création d'un petit projet (genre un blog, exemple classique) plus tard ; on verra. Pour l'instant, on se concentre sur l'écriture de ce petit tuto.
Bref, J''aime ton discours ambitieux, le partie pris du défis d'excellence et les idées intéressantes que j'ai pu lire à droite ou a gauche sur Hoa ...
Merci :-).
cela dit, Hoa est optimisé au possible, dénué de toutes fioriture ... est-ce prouvable ?
La preuve est un monde que tu n'imagines même pas ;-). Ou plutôt : que tu ne veux pas imaginer :-D !
En revanche, je peux donner plusieurs exemples. Si on prend les ACL (Hoa\Acl), une implémentation naïve se ferait avec des tableaux. Mais dans Hoa, on utilise un graphe (Hoa\Graph), qui est codé avec des listes d'adjacences. Je ne connais pas plus performant pour une utilisation abstraite/générique des graphes. Ses solutions et ses algorithmes sortent tout droit des universités.
Autre exemple, les flux. La conception du système a mis un certain temps mais au final on a quelque chose de très hackable et plutôt rapide (on n'a pas un delta trop important entre ce que Hoa propose et une implémentation 100% PHP, mais on gagne beaucoup en possibilités, maintenance etc.).
D'autres paquetages implémentent des algorithmes qui proviennent de la recherche, comme Hoa\Compiler\Llk (un compilateur de compilateur), Hoa\Tree (pour gérer des arbres), Hoa\Regex … D'autres paquetages sont le résultat de mes recherches au LIFC (Laboratoire Informatique de Franche-Comté) et à l'INRIA (Institut National de Recherche en Informatique et en Automatique), comme Hoa\Realdom et Hoa\Test (qui sont le sujet de ma thèse pour tout te dire).
Je pourrais ajouter que je participe activement au W3C, WHATWG etc. Par exemple, Hoa\Websocket est la bibliothèque la plus avancée pour gérer les protocoles Websocket. Il existe aussi une implémentation en Python, qui sert de référence. D'autres paquetages sont aussi utilisés par Mozilla pour certains de leurs outils : un sacré test de charge ;-).
Concernant l'interface graphique, Hoa propose un langage qui s'appelle XYL, qui reprend des concepts qui ont fait leur preuve dans d'autres langages, comme XUL, XSLT etc., mais apporte aussi de nouveaux concepts (comme le yielding, le binding etc.). Tout ça sera expliqué dans le mini-tutoriel justement.

Bref. Justifier que Hoa est optimisé n'est pas simple, mais ma « position » et celles des contributeurs de Hoa (à l'université, à l'INRIA, chez Mozilla, dans des agences …) font que l'on va toujours chercher les algorithmes qui nous semble les meilleurs.

D'ailleurs, il existe une constante chez nous. Avant d'implémenter une bibliothèque, on fait toujours un état de l'art (ce qu'il se fait ailleurs, dans d'autres langages, le mieux, le moins bien). On lit beaucoup de RFC, de standards etc. Puis après on réfléchit longtemps à l'API et enfin on passe au codage. Le processus est assez long mais on ne fera rien à la va-vite pour dire qu'on l'a.

Ça, c'est l'argumentaire officiel. Après, on peut aussi se tromper, avoir tout faux sur l'API par exemple, et qu'on soit obligé de changer. Mais d'une manière générale, on élabore toujours un système qui soit maintenable et le plus souple à la maintenance. Du moins, on essaye ;-).
Est-il envisageable de vérifier aisément les comparaison entre un code que tout le monde est habituer à voir et un code réalisé grâce à Hoa ?
Dans l'absolu, je ne vois pas rien qui pourrait nous en empêcher :-).
Dans tous les cas, vous avez mon soutiens ! ... j'aime le design et l'esprit du site :D tout comme la ténacité des développeurs et de leurs détracteurs :wink:
Merci :-).
Encore une fois, ma critique bien que pouvant effectivement semblé étriqué et la seule que je connaisse : la lecture du code par sondage : cela me permet de voir avec quel difficulté je vais pouvoir utiliser le logiciel/framework/bibliothèque. L'utilisation d'un fw requiert assez souvent la lecture de son code source, notamment dans les cas suivant : documentation défaillante, bug dans le fw, mise à jour du fw sans que les auteurs ne s'occupe de la compatibilité. Dans tous ces cas, on est obligé d'entrer dans le code, alors autant que la lecture soit simple et agréable.
Le code de Hoa est quand même « réputé » pour être clair, lisible et facile à comprendre. Le noyau est compacte pour des soucis de performances évidentes. Mais tu devais regarder par exemple Hoa\Core\Consistency, Hoa\FastCgi, Hoa\Stream (un des mes préférés) ou encore Hoa\Xml. Ce sont des sources qui pourraient plus t'intéresser.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
xTG
ViPHP | 7331 Messages

11 juil. 2011, 08:06

Si on prend les ACL (Hoa\Acl), une implémentation naïve se ferait avec des tableaux.
En même temps faut pas avoir réfléchi longtemps pour implémenter des ACL avec des tableaux, donc c'est une fausse comparaison. 8-|

ViPHP
ViPHP | 4674 Messages

11 juil. 2011, 08:18

Je ne citerai pas le nom du célèbre framework chez qui j'ai vu ça …
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
xTG
ViPHP | 7331 Messages

11 juil. 2011, 08:23

On veut un nom ! :priere:

ViPHP
ViPHP | 4674 Messages

11 juil. 2011, 08:39

Je ne suis pas là pour comparer Hoa. Seulement, si j'ai donné cet exemple, c'est que ça existe, malheureusement … :-(.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 171 Messages

15 août 2011, 14:15

Hey !

Je voudrais savoir si un manuel de référence sera bientôt mis à disposition ? (si elle n'existe pas déjà car je l'ai pas trouvé) J'ai vu un thread sur le forum http://forum.hoa-project.net/topic/475/ ... ou-la-doc/ en parlant.

Et je souhaiterai signaler que la création de compte sur le forum hoa-project a l'air d'être dysfonctionnelle car je ne peux pour l'instant pas me créer un compte. Saurais tu vérifier que le problème ne vient pas uniquement de moi ? Et si oui y remettre en place :)
Le bon jugement s'apprend par l'expérience qui s'acquiert en partie par le mauvais jugement.

ViPHP
ViPHP | 4674 Messages

15 août 2011, 14:22

Oui, il y a eu des petits soucis ces derniers jours. Ce sera bientôt réglé. Sinon, nous sommes sur IRC : irc://irc.freenode.org#hoa_php. Le manuel d'apprentissage est prioritaire sur le manuel de référence, et ce dernier n'est pas encore commencé.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 171 Messages

15 août 2011, 14:31

Ok, d'accord. Merci de ta réponse rapide.
est prioritaire sur le manuel de référence, et ce dernier n'est pas encore commencé.
On fera avec le code source en attendant ;)
Le bon jugement s'apprend par l'expérience qui s'acquiert en partie par le mauvais jugement.

ViPHP
ViPHP | 4674 Messages

15 août 2011, 14:36

Le manuel API devrait bientôt refaire surface. J'attends de finir mon mémoire (fin aout) avant de m'y remettre à 80% ;-).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).