JeuWeb - Crée ton jeu par navigateur
Jeu sur navigateur = jeu php ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Jeu sur navigateur = jeu php ? (/showthread.php?tid=4091)

Pages : 1 2 3 4 5 6


RE: Jeu sur navigateur = jeu php ? - Sephi-Chan - 16-06-2009

C'est vraiment dommage que si peu d'hébergeurs proposent Ruby et Rails, c'est pourtant tout aussi simple à installer et mettre en place (voir plus simple si l'on utilise un serveur Web fourni par Rails) : Ruby + Apache + Passenger (mod_rails). En PHP, c'est PHP + Apache + mod_php.

(16-06-2009, 04:34 PM)Roworll a écrit :
Citation :Si ça peut aider à ouvrir quelques yeux…
oxman, sors de ce corps ^^

Si je suis insensible à Ruby, ça veut dire que je suis un bulot ?
Je peux comprendre qu'on ne soit pas sensible à Ruby (mais difficilement… Smile), mais ça m'agace de voir des gens (notamment des débutants) qui se jettent sur PHP seulement parce qu'ils ne connaissent pas Ruby (ou Python), qui permettent de faire les même choses mais d'une façon bien plus propre/élégante.

Hélas, le Web francophone manque de ressources en ce qui concerne Ruby… J'essaye à mon humble niveau de participer à ça. Smile


Sephi-Chan


RE: Jeu sur navigateur = jeu php ? - Argorate - 16-06-2009

Moi j'ai regardé les tuto que tu as mis tout a l'heure:

voir écrit
Citation :puts "Je m'appelle #{age}, j'ai #{prenom} ans."
comparé a
Citation :echo "Je m'appelle $age, j'ai $prenom ans."

ta phrase
Citation :ça m'agace de voir des gens (notamment des débutants) qui se jettent sur PHP seulement parce qu'ils ne connaissent pas Ruby (ou Python), qui permettent de faire les même choses mais d'une façon bien plus propre/élégante.

me semble quelque peu sonner faux... :p

La syntaxe semble plus moche et plus chiante: taper un "#" il faut faire deux touches éloigné + encore deux touches pour une ouverture d’accolade et pareil pour fermer…
En php tu appuis sur la touche $ et c'est fini... Wink

J'espère donc que tu excuseras mon scepticisme sur la supériorité de Ruby sur ce que j'en ai vu du moins^^


RE: Jeu sur navigateur = jeu php ? - DragonMaster - 16-06-2009

Je comprends le point de vue de la propreté pour php. Mais c'est une fausse légende que beaucoup d'informaticien s'amuse à répendre sur php. En fait ce n'est pas le langage qui est moins propre, il est très permissif et c'est ce qui conduit les programmeurs à faire du code "sale". Cependant, on peut faire autant du code sale en C++ qu'en php, il vaut donc mieux ne pas accuser le langage lui-même...

Parcontre, je dois avoué que je n'ai jamais fait de ruby, j'y suis beaucoup intéressé et dès que j'aurais quelques temps libre je vais y jeter un oeil. Si sa ressemble à Python sa doit être assez simple à apprendre...est-ce que Ruby est OO ?


RE: Jeu sur navigateur = jeu php ? - Sephi-Chan - 16-06-2009

(16-06-2009, 07:36 PM)Argorate a écrit : Moi j'ai regardé les tuto que tu as mis tout a l'heure:

voir écrit
Citation :puts "Je m'appelle #{age}, j'ai #{prenom} ans."
comparé a
Citation :echo "Je m'appelle $age, j'ai $prenom ans."

ta phrase
Citation :ça m'agace de voir des gens (notamment des débutants) qui se jettent sur PHP seulement parce qu'ils ne connaissent pas Ruby (ou Python), qui permettent de faire les même choses mais d'une façon bien plus propre/élégante.

me semble quelque peu sonner faux... :p

La syntaxe semble plus moche et plus chiante: taper un "#" il faut faire deux touches éloigné + encore deux touches pour une ouverture d’accolade et pareil pour fermer…
En php tu appuis sur la touche $ et c'est fini... Wink

J'espère donc que tu excuseras mon scepticisme sur la supériorité de Ruby sur ce que j'en ai vu du moins^^

Certes, Argorate, mais mes dires concernent la globalité de Ruby (rien qu'à voir l'exemple du $this->prenom là où prenom suffit en Ruby, le point-virgule, également). Ici, ton contre-exemple est tout à faite anecdotique (mais je pense que tu le sais) et je vais même enfoncer le clou :

En PHP, quand tu manipules des entrées de tableau (ou des propriétés d'objets) dans une chaîne, la documentation conseille de protéger l'expression en l'entourant d'accolades (note qu'on peut le faire également pour les chaînes) :

echo "Je m'appelle $prenom.";
echo "Je m'appelle {$prenom}.";
echo "Je m'appelle {$user->prenom}.";
echo "Je m'appelle {$user['prenom']}.";

puts "Je m'appelle #{prenom}."
puts "Je m'appelle #{user.prenom}."
puts "Je m'appelle #{user[:prenom]}."

Tu noteras que user.prenom est plus lisible et concis que $user->prenom, de même que user[:prenom] par rapport à $user['prenom'].

En Ruby, la cohérence est de mise, on utilise toujours #{variable}. C'est ce genre de petits riens en ce qui concerne la cohérence qui font la lisibilité de Ruby.

PHP est un très mauvais élève à ce sujet (isset(), is_numeric(), etc.), c'est sa réputation de langage sale est méritée : il est plus facile de faire un code sale avec PHP qu'avec Ruby.

J'en profite également pour souligner qu'en PHP, on ne différencie pas une variable globale d'une variable locale. En Ruby, une variable globale est préfixée d'un symbole dollar. A nouveau : clarté du code oblige.

Cela dit, je tâcherais de t'en convaincre avec la suite des articles. Je préfère que tu te rendes compte toi même de ses petits riens qui font l'élégance de Ruby. Smile


Sephi-Chan


RE: Jeu sur navigateur = jeu php ? - naholyr - 16-06-2009

(16-06-2009, 08:43 PM)Sephi-Chan a écrit : Tu noteras que user.prenom est plus lisible et concis que $user->prenom, de même que user[:prenom] par rapport à $user['prenom'].
Ah.

Citation :En Ruby, la cohérence est de mise, on utilise toujours #{variable}. C'est ce genre de petits riens en ce qui concerne la cohérence qui font la lisibilité de Ruby.
C'est une contrainte, en PHP on peut toujours utiliser les accolades autour d'une variable (c'est plutôt une bonne pratique d'ailleurs). L'inconvénient de PHP dans ce cas et de ne pas imposer une notation, mais de laisser le choix.

Citation :PHP est un très mauvais élève à ce sujet (isset(), is_numeric(), etc.), c'est sa réputation de langage sale est méritée : il est plus facile de faire un code sale avec PHP qu'avec Ruby.
Perso je n'ai toujours pas réussi à ne pas vomir devant des lignes de ruby manipulant fièrement des listes et des chaines de caractères avec des opérateurs ésotériques à base de caractères spéciaux. Les tableaux sont d'excellents exemples : plutôt que de faire un système de hash standard ou la clé est une variable, nooooon il fallait qu'ils rajoutent un caractère spécial (":"). Et c'est partout comme ça : c'est super de pouvoir faire trouze-mille choses en tapant :a->#~b! mais c'est impossible à relire Tongue

Citation :J'en profite également pour souligner qu'en PHP, on ne différencie pas une variable globale d'une variable locale. En Ruby, une variable globale est préfixée d'un symbole dollar. A nouveau : clarté du code oblige.
De manière général, les globales c'est mal, et en PHP là encore rien n'interdit (au contraire, c'est une bonne pratique) d'utiliser $GLOBALS.
Là encore, liberté de choix versus choix unique.

C'est pour ça que la dernière fois je ralais sur ces effets de mode et associait Mac à Ruby : il y a la même philosophie derrière, qui est "ne laissons aucun choix à l'utilisateur, tout en lui expliquant qu'au fond il a le choix, mais qu'on a déjà fait les meilleurs pour lui, il sera content". Et j'adhère pas Wink


Cela dit, il y a plein d'autres langages entre les deux, qui sont moins permissifs, et moins "write only". On appréciera le fait que quasiment tout le monde ait cité Python dans ses messages (moi y compris) mais que personne ne l'utilise Tongue


RE: Jeu sur navigateur = jeu php ? - Allwise - 16-06-2009

Chipoter sur des trucs aussi futiles c'est lamentable pour des programmeurs confirmés :hahahaha:
J'ose espérer que vous ne résumez pas la puissance d'un langage à ce genre de détails, mais bien à d'autres choses plus solides.
La lisibilité, elle n'existe que dans votre tête parce que vous connaissez l'outil que vous utilisez. Il arrive un stade où on fait abstraction de ces détails parce qu'ils deviennent des automatismes. Alors quand on apprend à programmer, la syntaxe de Ruby s'assimile probablement plus vite... Mais c'est pas l'argument à retenir pour ma part.
Le coup du $this->jambon vs jambon, c'est peu pour ridiculiser un langage et c'est plus une question de logique du langage que de lisibilité pure. J'ai lu que Ruby était tout objet, pas PHP. L'un peut se le permettre, l'autre pas, tout simplement. En C++ on a aussi des this, ça n'en fait pas un langage de merde pour autant.
Ce qui est bien avec PHP d'ailleurs, c'est que sa syntaxe est proche du C / C++, Java. Ceux qui viennent de ces langages prendront plus rapidement la syntaxe de PHP en main.
Je regrette, comme Wild et d'autres, le peu de convention dans PHP, et aussi la façon étrange qu'ils ont de déclarer les namespaces ( choisir le caractère d'échappement comme séparateur c'est assez infâme )

Des arguments plus sérieux seraient la gestion de la mémoire, la richesse du langage en terme de fonctionnalités ( gestion des images, xml, flux, dom que sais-je encore ), la diversité des framework / librairies existantes, la documentation, l'ampleur de la communauté, la mise en place / déploiement du langage, le coût, et bien d'autres trucs...

Ruby ça a l'air sympa. Pour ma part si j'avais rien à faire j'étudierais python Smile


RE: Jeu sur navigateur = jeu php ? - Holy - 16-06-2009

Vive le prosélytisme...


RE: Jeu sur navigateur = jeu php ? - DragonMaster - 16-06-2009

Code PHP :
<?php 
En Ruby
, une variable globale est préfixée d'un symbole dollar.

Hum certaine personne diront que c'est un manque à l'abstraction, un des principes fondamental de la POO. D'ailleurs il suffit d'utiliser la notation hongroise et un programmeur peut facilement marqué le type de chacune de ses variables de manière lisible.

Aussi, je suis en majeur partie en accord avec Allwise, la syntaxe d'un langage n'est qu'un tout petit argument. PHP a été conçut dans le but de laisser les programmeurs choisir eux-même le genre de programmation qu'il souhaite faire. D'ailleurs c'est ce qui en fait un langage aussi abordable. On pourrait beaucoup plus discuter sur la syntaxe des langages logiques comme prolog plutôt que d'énumérer de bêtes différences de goût entre le foreach de php et celui de javascript huhu.


RE: Jeu sur navigateur = jeu php ? - Sephi-Chan - 16-06-2009

Allwise, ce n'était que des exemples de syntaxes. Ne crois pas que ce goût du Ruby vient uniquement de sa syntaxe. En ce qui me concerne, je vois plutôt tout ça comme un jeu.

(16-06-2009, 09:31 PM)naholyr a écrit :
(16-06-2009, 08:43 PM)Sephi-Chan a écrit : Tu noteras que user.prenom est plus lisible et concis que $user->prenom, de même que user[:prenom] par rapport à $user['prenom'].
Ah.
Je pense pas être subjectif :
Plus concis car plus court : objet, point, attribut/méthode.
Plus lisible car moins verbeux : la flèche à la place du point, les guillemets (symbole très bruyant) qui entourent la clé.

(16-06-2009, 09:31 PM)naholyr a écrit :
Citation :En Ruby, la cohérence est de mise, on utilise toujours #{variable}. C'est ce genre de petits riens en ce qui concerne la cohérence qui font la lisibilité de Ruby.
C'est une contrainte, en PHP on peut toujours utiliser les accolades autour d'une variable (c'est plutôt une bonne pratique d'ailleurs). L'inconvénient de PHP dans ce cas et de ne pas imposer une notation, mais de laisser le choix.
Comme tu le dis, la bonne pratique va à l'utilisation des accolades, pourquoi ne pas le rendre obligatoire ? C'est comme ça qu'on a un code source plus lisible.

(16-06-2009, 09:31 PM)naholyr a écrit :
Citation :PHP est un très mauvais élève à ce sujet (isset(), is_numeric(), etc.), c'est sa réputation de langage sale est méritée : il est plus facile de faire un code sale avec PHP qu'avec Ruby.
Perso je n'ai toujours pas réussi à ne pas vomir devant des lignes de ruby manipulant fièrement des listes et des chaines de caractères avec des opérateurs ésotériques à base de caractères spéciaux. Les tableaux sont d'excellents exemples : plutôt que de faire un système de hash standard ou la clé est une variable, nooooon il fallait qu'ils rajoutent un caractère spécial (":"). Et c'est partout comme ça : c'est super de pouvoir faire trouze-mille choses en tapant :a->#~b! mais c'est impossible à relire Tongue
Tu trouveras des gens pour s'amuser d'une portion de code monoligne dans tous les langages, il y a même des concours autour de ça. De là à se baser dessus pour critiquer la lisibilité d'un langage.

Ensuite, concernant les clés, tu peux tout à fait utiliser une chaîne de caractère (ou n'importe quel objet qui implémente une méthode qui permet de calculer le symbole équivalent) en guise de clé. Mais l'utilisation des symboles (ces variables préfixées des deux points) est recommandée pour la performance.

(16-06-2009, 09:31 PM)naholyr a écrit :
Citation :J'en profite également pour souligner qu'en PHP, on ne différencie pas une variable globale d'une variable locale. En Ruby, une variable globale est préfixée d'un symbole dollar. A nouveau : clarté du code oblige.
De manière général, les globales c'est mal, et en PHP là encore rien n'interdit (au contraire, c'est une bonne pratique) d'utiliser $GLOBALS.
Là encore, liberté de choix versus choix unique.
Je parle de syntaxe : Ruby différencie syntaxiquement une variable locale d'une variable globale. C'est tout de même plus simple (et sémantique) que de passer par un tableau, non ?

(16-06-2009, 09:31 PM)naholyr a écrit : C'est pour ça que la dernière fois je ralais sur ces effets de mode et associait Mac à Ruby : il y a la même philosophie derrière, qui est "ne laissons aucun choix à l'utilisateur, tout en lui expliquant qu'au fond il a le choix, mais qu'on a déjà fait les meilleurs pour lui, il sera content". Et j'adhère pas Wink
Je comprends que tu n'adhères pas, mais c'est un parti pris qu'a fait le créateur du langage : si on aime cette philosophie (encore que dans le cas de Mac OS X, c'est différent puisque dessous, tu as une bonne part de FreeBSD plutôt personnalisable mais là n'est pas le débat), on choisit ce langage. Sinon, on en prend un autre.

En l'occurrence, comme on est amené à développer et donc se relire (et c'est encore plus vrai dans le travail en groupe), c'est plutôt pas mal que le langage fixe lui-même des règles.

(16-06-2009, 09:31 PM)naholyr a écrit : Cela dit, il y a plein d'autres langages entre les deux, qui sont moins permissifs, et moins "write only". On appréciera le fait que quasiment tout le monde ait cité Python dans ses messages (moi y compris) mais que personne ne l'utilise Tongue
Je n'ai pas vraiment accroché à Python car ça devient vite chiant à lire, comme ça fonctionne à l'indentation et qu'il n'y a pas de fermeture de bloc. Ça me va très bien dans des fichiers de vue Haml, mais pas dans du code métier.

En tout cas, la réputation de PHP comme langage sale vient bien de quelque part : on laisse plein de choix aux développeurs, donc forcément chacun y va de sa petite touche personnelle et au final, on a plus facilement tendance à lire du code crade. Par contre, je ne vois pas les avantages (pouvoir choisir ne fait ni partie des avantages, ni des inconvénients en ce qui me concerne).


Sephi-Chan


RE: Jeu sur navigateur = jeu php ? - DragonMaster - 16-06-2009

Sephi-Chan a écrit :En tout cas, la réputation de PHP comme langage sale vient bien de quelque part : on laisse plein de choix aux développeurs, donc forcément chacun y va de sa petite touche personnelle et au final, on a plus facilement tendance à lire du code crade.

DragonMaster a écrit :Je comprends le point de vue de la propreté pour php. Mais c'est une fausse légende que beaucoup d'informaticien s'amuse à répendre sur php. En fait ce n'est pas le langage qui est moins propre, il est très permissif et c'est ce qui conduit les programmeurs à faire du code "sale".

Il y aura toujours des gens pour programmer en saloperie, peu importe le langage. D'ailleurs ce n'est pas toujours mauvais, quand on a besoin d'être rapide et qu'on est sûr à 100% de ne plus avoir besoin de touché au programme, pk pas? Mais en tant que tel PHP n'est pas sale, c'est l'utilisation qu'en font certaine personne et je tiens vraiment à cette nuance car un bon programmeur php produira du code vraiment très très beau.