mageekblog - Mot-clé - DCVS - CommentairesLe blog personnel de Frédéric Hardy. Au menu, PHP, agilité, FreeBSD, cuisine et photographies.2021-12-02T08:20:54+01:00Frédéric Hardyurn:md5:26874ca5b8cd4cac8d08b0e68e64f63aDotclearPHP : les nouvelles du front #400 - Paulurn:md5:81321512b0ef09a3ac8b0c6b39f991942011-05-06T06:58:47+02:002011-05-06T07:59:17+02:00Paul<p>Wouah merci, je n'en demandais pas tant <img src="/themes/default/smilies/smile.png" alt=":)" class="smiley" /></p>PHP : les nouvelles du front #400 - mageekguyurn:md5:3ac3f1ed4308398b6208660efe897fa92011-05-05T21:21:33+02:002011-05-05T21:20:54+02:00mageekguy<p>@<a href="http://blog.mageekbox.net/?post/2011/05/02/PHP-%3A-les-nouvelles-du-front-400#c2944" rel="nofollow">Paul</a> : Vu que l'on m'a posé plusieurs fois aujourd'hui des questions sur ce thème, je me suis fendu d'un <a href="http://blog.mageekbox.net/?post/2011/05/05/D%C3%A9mon-en-PHP-%3A-une-solution-pertinente" rel="nofollow">billet</a>.</p>PHP : les nouvelles du front #400 - Paulurn:md5:4e6037674ba0b9096e144cf5b23d53852011-05-05T15:26:11+02:002011-05-05T20:21:27+02:00Paul<p>Je vous avoue que je n'ai jamais rencontrer dans mon entreprise le besoin de faire un démon en PHP.<br />
Y a t'il des spécificités propre à PHP pour écrire un démon ?</p>PHP : les nouvelles du front #400 - desfrenesurn:md5:d9b6ebde0b17ce107e94cd0385a10efe2011-05-04T22:55:20+02:002011-05-04T21:56:42+02:00desfrenes<p>La moulinette tourne avec .Net 4.0 avec des dépendances qui font que tu as besoin de certaines dll même pour le compiler avec Mono... je suis pas près de pouvoir le tester non plus ^_^</p>PHP : les nouvelles du front #400 - mageekguyurn:md5:b9ed651b9fa3cc36b1ac28a9813e47d62011-05-04T22:20:34+02:002011-05-04T21:31:36+02:00mageekguy<p>@<a href="http://blog.mageekbox.net/?post/2011/05/02/PHP-%3A-les-nouvelles-du-front-400#c2941" rel="nofollow">Amaury</a> : J'ai moi même des démons écrit en PHP, et pour certain, ils tournent depuis des années (le record est de plus de 641 jours) sans aucun problème.</p>
<p>Donc oui, c'est faisable de faire des démons en PHP, et c'est donc faisable d'écrire un serveur web en PHP.</p>
<p>Je n'ai d'ailleurs jamais mis cela en doute.</p>
<p>Par contre, je doute fortement qu'un tel serveur soit capable de tenir une charge significative correctement dans un cadre de production, et pour tout un tas de raisons.</p>
<p>Du coup, le concept perd fortement de son intérêt, qui n'était déjà pas bien grand au départ, du fait de la simplicité de mise en oeuvre de solution plus efficace et du nombre de ressources important que l'intégration d'un tel outil dans PHP demanderait aux contributeurs, alors que ce n'est clairement pas l'objectif du projet.</p>
<p>Quand à Fructose, j'ai peut être été trop vif dans mes propos et je me suis certainement mal exprimé.</p>
<p>J'admire la volonté et l'intelligence qu'il a fallu pour développer cet outil.</p>
<p>Cependant, je n'adhère pas à sa philosophie, car j'estime que remplacer Ruby par du code Ruby transformé en PHP est une mauvaise idée.</p>
<p>Le résultat sera au final plus mauvais que du code PHP <q>natif</q>, et de plus, je pense que les concepts les plus intéressants de Ruby ne sont tout simplement pas transposable en PHP, puisque ce dernier ne dispose pas des primitives indispensables, sans compter qu'en plus, le débuggage doit être une horreur.</p>
<p>Autant je peux comprendre la démarche de HipHop, qui apporte une réelle valeur ajoutée, sous la forme d'une amélioration des performances (aux prix de contraintes significatives comme par exemple l'utilisation d'une version de PHP < 5.3) , autant le bénéfice apporté par fructose ne me semble pas pertinent, voir même inexistant. </p>
<p>Bref, je pense que le jeu n'en vaut pas la chandelle fonctionnellement parlant, mais intellectuellement, c'est remarquable (si ça marche réellement, car je n'ai pas testé).</p>PHP : les nouvelles du front #400 - Amauryurn:md5:8c7474943d130f3f86119ccc03bd16672011-05-04T18:07:29+02:002011-05-04T21:20:46+02:00Amaury<p>Quelques réactions dans le désordre, après avoir lu les commentaires.</p>
<p>Il est possible de faire un démon un PHP qui tienne la route même sur de grosses volumétrie. C'est ce que je fais avec FineFS (<a href="http://finefs.googlecode.com" title="http://finefs.googlecode.com" rel="nofollow">http://finefs.googlecode.com</a>) et sur mes serveurs de production ça carbure, c'est stable (uptime qui se compte en mois et consommation mémoire qui n'augmente pas au fil du temps) et c'est plus léger en consommation CPU que ce à quoi je m'attendais. Donc techniquement, faire un serveur HTTP en PHP, c'est faisable.<br />
D'ailleurs, si j'avais besoin de le faire, je le ferais en PHP. Le truc, c'est qu'effectivement, je n'ai pas ce besoin-là, et j'ai du mal à imaginer à quoi ça pourrait servir vu comment c'est facile de mettre en place un serveur Apache qui s'intègre parfaitement aux développements PHP (cf. mon billet cité par Paul).</p>
<p>Sinon, un projet comme Fructose ne me semble pas plus débile que tous les langages alternatifs basés sur la JVM, comme Scala qui est très à la mode en ce moment.</p>PHP : les nouvelles du front #400 - mageekguyurn:md5:84c51c8a842c023d10d8552c7279ce2a2011-05-04T14:57:09+02:002011-05-04T14:01:48+02:00mageekguy<p>Je ne suis absolument pas convaincu par les arguments donnés pour justifier l'existence de Fructose, exception faite de l'un de ceux de l'auteur, à savoir qu'il a fait cela pour apprendre (et pour le coup, j'avoue que l'idée est brillante).</p>
<p>Aujourd'hui, être limité par l'absence d'un langage est quand même tout de même très improbable, à part dans des structures très figées, et dans ce cas, utiliser une sur-couche de ce type est à mon sens casse-gueule, en raison (entre autre) des problèmes de compatibilité potentielle.</p>
<p>Donc dans ce contexte, je préconiserais de soit utiliser le langage disponible et de ne pas chercher à contourner le problème, soit de changer de société, avec une nette préférence pour la seconde solution.</p>PHP : les nouvelles du front #400 - Marcurn:md5:d008f4207ff820fe488dd678a8d805ce2011-05-04T14:52:36+02:002011-05-04T13:56:59+02:00Marc<p>En même temps, s'il y a des projets qui se développent en ce sens, c'est surement qu'il y a une demande, ne serait-ce que par un soucis d'une meilleure portabilité de certaines applis (pas forcément orientées web d'ailleurs), non ?</p>PHP : les nouvelles du front #400 - desfrenesurn:md5:b681e2d979364f5fbc5902833a91925c2011-05-04T10:25:52+02:002011-05-04T13:56:59+02:00desfrenes<p>J'ai demandé à l'auteur le pourquoi de fructoselang:</p>
<p>"hello !<br />
I was curious to know how/why you started fructoselang, what was your motivation ? Is it out of a necessity or a pure intellectual exercise ?<br />
see you."</p>
<p>réponse:</p>
<p>"I did Fructose for a couple of reasons. Mainly it was to understand<br />
compilers at a high level, and second was to actually make something<br />
useful.</p>
<p>Fructose is useful for the small niche of people who only have access<br />
to PHP, but would like to use a nicer language."</p>
<p>Bêtise humaine ?</p>PHP : les nouvelles du front #400 - Paulurn:md5:db86ac6860dd12912227f6f4304c5eac2011-05-04T08:24:52+02:002011-05-04T09:02:24+02:00Paul<p>J'ai essayé le framework python Turbogears 2(<a href="http://turbogears.org" title="http://turbogears.org" rel="nofollow">http://turbogears.org</a>).<br />
Au début, ca m'a choqué que le serveur http soit intégré au framework.</p>
<p>Après utilisation, la seule bonne raison était pour le développement.<br />
Car on a pas besoin de s'embêter à crée des vhosts/enregistrement DNS & co<br />
(cf le billet de <a href="http://www.geek-directeur-technique.com/2011/04/29/creer-rapidement-des-sites-en-local" title="http://www.geek-directeur-technique.com/2011/04/29/creer-rapidement-des-sites-en-local" rel="nofollow">http://www.geek-directeur-technique...</a>).<br />
Mais pas pour de la production.</p>
<p>PS: comment on fait les sauts de lignes ?</p>PHP : les nouvelles du front #400 - desfrenesurn:md5:63f631370f660be043b55a747fef48882011-05-03T22:49:10+02:002011-05-04T13:56:59+02:00desfrenes<p>Chacun prend son plaisir ou il veut... ça ou collectionner des timbres ou implémenter brainfuck... et puis je suis sur que ça lui est très utile à cette personne, c'est pas très charitable de le prendre pour un con juste parce qu'il a osé partager son truc.</p>
<p>Quelque part ce type a du se dire "j'aimerai bien faire du ruby mais je peux pas parce que telle ou telle raison alors je vais faire un ruby qui donne du php". Ce qui est important c'est qu'il a voulu faire ça et pas l'inverse. Je suis sur que tu vois où je veux en venir.</p>PHP : les nouvelles du front #400 - mageekguyurn:md5:af2d656051874527b77bfc02f70fdf6c2011-05-03T22:09:43+02:002011-05-03T21:10:22+02:00mageekguy<p>@<a href="http://blog.mageekbox.net/?post/2011/05/02/PHP-%3A-les-nouvelles-du-front-400#c2934" rel="nofollow">desfrenes</a> : Exemple de quoi ? de la bêtise humaine ?</p>PHP : les nouvelles du front #400 - desfrenesurn:md5:a6d016aafa49df66e0423f369c81da862011-05-03T21:51:18+02:002011-05-03T21:10:22+02:00desfrenes<p>Et allez... encore un exemple... <a href="http://www.fructoselang.org/" title="http://www.fructoselang.org/" rel="nofollow">http://www.fructoselang.org/</a></p>PHP : les nouvelles du front #400 - mageekguyurn:md5:50275968c6044c7c4e62e1a79cce89462011-05-03T12:14:13+02:002011-05-03T11:19:38+02:00mageekguy<p>@<a href="http://blog.mageekbox.net/?post/2011/05/02/PHP-%3A-les-nouvelles-du-front-400#c2932" rel="nofollow">desfrenes</a> : Je suis d'accord, l'innovation est un peu absente de PHP depuis quelques temps (mis à part les traits, il n'y a rien de bien novateur dans le trunk).</p>
<p>Mais a-t-elle été jamais présente ?</p>
<p>Pourrais-tu me citer une seule fonctionnalité spécifique/exclusive à PHP, ou bien qui a été reprise par un autre langage ?</p>
<p>De plus, il est difficile d'innover lorsque la base d'utilisateur est si importante, car pour innover, il faut parfois revoir en profondeur certaines choses et donc casser la compatibilité avec l'existant.</p>
<p>PHP 6 devait le faire, et nous savons tous ce qu'il s'est passé.</p>
<p>Je pense que cela a conforté les développeurs dans le fait que la prise de risque n'était pas forcément une option viable, malheureusement (ou pas).</p>PHP : les nouvelles du front #400 - desfrenesurn:md5:a80ee4869a51904f05b8ba3c23bb4a9e2011-05-03T11:51:09+02:002011-05-03T11:19:38+02:00desfrenes<p>Non mais faut pas être désolé... je me doute que ça ne peut pas intéresser tout le monde mais il y a forcément des cas d'utilisation. CherryPy est par exemple souvent utilisé en serveur d'application Python derrière un NGinx qui fait office de proxy. Dans ces cas là c'est toujours bon d'avoir une pile simplifié.</p>
<p>Le plus marquant quand même c'est d'en arriver à se dire "PHP n'est pas fait pour ça". PHP est parfois présenté comme un langage généraliste (pas forcément par toi), mais dans les faits ce n'est pas le cas. PHP n'est pas taillé pour ce genre de boulot, effectivement, mais ailleurs on ne se demande pas si c'est taillé pour: ça fonctionne.</p>
<p>J'ai un peu l'impression d'un projet qui se repose sur une énorme base installée mais qui ne va plus trop de l'avant, même si on peut reconnaitre des avancées avec la 5.3. Si je démarrais maintenant dans le métier tout ça ne m'exciterait pas beaucoup. L'innovation se fait souvent ailleurs (js, python, ruby,...) puis que les bonnes idées sont "back-portées" sous forme de librairies sous PHP, parfois en versions dégradées. ça crève les yeux dans le monde des frameworks (que tu affectionnent ;-)). Exemples: Django inspire Pluf, Jinja inspire Twig, Sinatra inspire NiceDog, Rails inspire Cake, etc.</p>
<p>Bref, l'impression que l'herbe est plus verte chez le voisin. Reste à oser sauter par-dessus la clôture.</p>PHP : les nouvelles du front #400 - mageekguyurn:md5:e0ded8c11bd812113530a5b9d6ace7302011-05-03T11:19:51+02:002011-05-03T10:21:59+02:00mageekguy<p>@<a href="http://blog.mageekbox.net/?post/2011/05/02/PHP-%3A-les-nouvelles-du-front-400#c2929" rel="nofollow">usul_</a> : Quand la roue tourne <q>carrée</q> et que c'est néfaste au bon fonctionnement du projet, la réinventer ne me gène absolument pas.</p>
<p>Mais si elle tourne rond, et qu'en plus elle n'est pas dans le périmètre fonctionnel du projet, je dis non.</p>PHP : les nouvelles du front #400 - mageekguyurn:md5:912f6b3623f0f951928dbbd52a5d21aa2011-05-03T11:15:34+02:002011-05-03T10:19:06+02:00mageekguy<p>@<a href="http://blog.mageekbox.net/?post/2011/05/02/PHP-%3A-les-nouvelles-du-front-400#c2928" rel="nofollow">desfrenes</a> : Aucune raison particulière de mon côté pour que tu ne puisses pas me suivre, donc j'incriminerais plutôt twitter.</p>
<p>Sinon, désolé, mais intégré un serveur http digne de la production dans PHP, même écrit en PHP, j'ai beau cherché, je n'en vois pas du tout l'intérêt, surtout depuis que le web est devenu un service critique qui doit être capable de tenir une charge conséquente.</p>
<p>Et PHP n'est pas taillé pour ce genre de boulot.</p>PHP : les nouvelles du front #400 - usul_urn:md5:52c1884e523c01ca2ae65321870b18c92011-05-03T10:55:40+02:002011-05-03T10:19:33+02:00usul_<p>Moi je dis ça, je dis rien mais mageekguy vient juste d'écrire : "à quoi bon donc réinventer la roue", comme quoi ... :D</p>PHP : les nouvelles du front #400 - desfrenesurn:md5:0a9351927f11f443a25546a4e64933a62011-05-03T10:47:57+02:002011-05-03T10:19:33+02:00desfrenes<p>Ouais nan, t'as raison, ça sert à rien en fait. PHP n'est pas un langage généraliste après tout. Il faut qu'il reste dans son champ d'action actuel, c'est très bien comme ça.</p>
<p>Ah, sinon impossible de te suivre sur Twitter... bug chez eux ou il y a une raison particulière ?</p>PHP : les nouvelles du front #400 - mageekguyurn:md5:28047f41258f306967aacb20ded199cf2011-05-03T10:39:45+02:002011-05-03T09:40:39+02:00mageekguy<p>@<a href="http://blog.mageekbox.net/?post/2011/05/02/PHP-%3A-les-nouvelles-du-front-400#c2926" rel="nofollow">desfrenes</a> : En PHP ? Je suis un aficionados des trucs extrêmes, voir débiles, écrit en PHP, mais il y a des limites.</p>
<p>Quel est l'intérêt ?</p>