JeuWeb - Crée ton jeu par navigateur
Tiens ! V'là un nouveau ! - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Général (https://jeuweb.org/forumdisplay.php?fid=36)
+--- Forum : Présentez-vous (https://jeuweb.org/forumdisplay.php?fid=41)
+--- Sujet : Tiens ! V'là un nouveau ! (/showthread.php?tid=5766)

Pages : 1 2 3


RE: Tiens ! V'là un nouveau ! - Torevalas - 25-10-2011

Merci de l'accueil !
Désolé du retard de la réponse, déménager ça prend du temps :cogne:

Citation :bienvenue
(Hier 07:24 PM)Jojodu42 a écrit :
Welcome !
Sympa ton prénom !

"Diego, libre dans sa tête!" (sur qu'on te l'a jamais faite..."

+1 pour les deux ! Merci mais le prénom ça vient pas de moi (ConfusediffleSmile, pareil pour la chanson mais là ... ^^

Sinon bah je vais commencer à fouiller un peu sur le forum histoire de voir ce que je peux apprendre, poster deux trois comm' et puis pourquoi pas pondre ce que j'ai sur mon idée de jeu ! On est là pour parler boulot quand même à ce que je sache Tongue

D'ailleurs un question : je débute en PHP, et je voulais savoir si c'était un langage intéressant pour la prog' (je crois que Travian est codé avec ce langage ?) ou si il y avait "mieux" ? Je suis pas assez cultivé pour avoir les points forts et faibles des langages... D'un autre côté, un langage c'est comme dans la vraie vie, qu'on parle une langue ou une autre, au final on dit la même chose ^^


RE: Tiens ! V'là un nouveau ! - Sephi-Chan - 25-10-2011

PHP n'a pas de qualité particulière propre, il est juste très répandu et donc assez peu coûteux à héberger.

Il existe de bons frameworks pour PHP, notamment Symfony ou CakePHP. Si tu apprends, il faut vraiment en utiliser un sinon tu n'iras nulle part quand il s'agirat de faire des choses un peu complexes (c'est le cas d'un jeu).

Mais quitte à apprendre, je te conseille de te tourner directement vers un langage meilleur, genre Ruby. Surtout si tu es à l'aise avec l'anglais (au moins pour le lire). Il dispose d'un framework très puissant pour le Web : Ruby on Rails. Il y a pas mal de gens sur le forum qui s'y essayent et qui aiment, donc tu ne serais pas seul pour débuter. ^^




RE: Tiens ! V'là un nouveau ! - Maz - 26-10-2011

(25-10-2011, 11:48 PM)Sephi-Chan a écrit : Il y a pas mal de gens sur le forum qui s'y essayent et qui aiment, donc tu ne serais pas seul pour débuter. ^^

Je me sent ouvertement visé XD

Pour partager mon expérience, moi qui ai eu une assez longue expérience de PHP(6ans), j'ai été convaincu de tenter l'expérience avec Ruby on rails et j'ai commencer fin août à programmer avec. Je vais te donner le conseil que j'aurais aimé avoir dès le début ou j'ai voulu m'essayer à la programmation web:
n'essaye surtout pas PHP, go Ruby.

PHP va te permettre de faire bien des choses assez rapidement, c'est sur, mais si tu veut vraiment programmer, lances toi directement dans Ruby. PHP est un langage développé un peu avec l'optique "apprendre vite", donc tu va très vite progresser, et tu pourras faire assez rapidement des sites banales, mais dès lors que tu va t'intéresser à d'autres langage, tu va très vite te rendre compte que ce que tu faisait jusque là, c'est crade.

Ruby est peut être un peu moins "facile" à prendre en main car il va de paire avec son framework Ruby on Rails, tu devras donc apprendre un langage + un framework (je te conseil quand même avant de lire les guides de ruby on rails, d'appréhender la syntaxe de ruby pour tout le basique (variables, conditions, boucles, ... ce qui est commun à tous les langages)), mais ruby au quotidien, c'est du bonheur (ne serais-ce que pour sa syntaxe épuré de caractères inutiles dont s'encombres encore PHP (point-virgule & parenthèse et accolade de partout entre autres qui ne font qu'alourdir la lecture de ton code)).


RE: Tiens ! V'là un nouveau ! - niahoo - 26-10-2011

Si apprendre un langage pour le web sans le faire sur un bon framework est une mauvaise idée (selon Sephi, opinion que je partage a moitié), là tu compares Ruby + rails avec PHP tout seul.

Je ne vois pas pourquoi conseiller de ne pas tester un lagage, fut-il un peu branlant comme PHP.

PHP dispose de frameworks divers et variés (dont pas mal inspirés de Rails, mais pas que), et Ruby dispose aussi de plusieurs frameworks.

Si ruby est vraiment supérieur sur de nombreux points alors comparer les deux (donc les tester) est une bonne raison de choisir ruby. Choisir ruby parce qu'on nous a dit que c'était tip top n'est pas une raison suffisante, bien que je suivrais également le conseil de Maz si je n'étais pas parti sur un langage tiers.

Rails sera un tout petit peu plus difficile à mettre en place mais je pense également que ça vaut le coup.



RE: Tiens ! V'là un nouveau ! - Maz - 26-10-2011

Je conseil de ne pas tester php car on tombes dans le piège: "ouai, je sais faire un tas de truc, c'est génial php", et dès lors que l'on fait la comparaison avec un code Ruby qui fait la même chose, c'est limite écoeurant.. PHP n'est pas "mauvais" à proprement parler, mais trouver un tutoriel PHP qui apprends les bonnes façons de faire dès le début sont très très rare, alors on code on se compares aux autres programmeurs et on finis par avoir un niveau respectable dans le langage sans même avoir des notions de programmation ULTRA-BASIQUE de typage par exemple. J'ai appris comme beaucoup de membre ici sur le Site du zéro. Et à l'époque le tutoriel officiel ne comptais pas les chapitres de la partie 4 parlant de POO et MVC, qui sont, à un moment donné dans la vie du programmeur les choses incontournables (ou tout du moins, la POO). Avec Ruby (+ on rails), c'est simple, c'est desuite POO et MVC, et on les apprends comme si c'était naturel. Avant de passer à RoR j'ai essayé CakePHP, à cette époque l'architecture MVC m'as parût être un truc insurmontable... J'ai jamais terminé un seul projet avec CakePHP tellement ça m'as dépassé.


RE: Tiens ! V'là un nouveau ! - niahoo - 26-10-2011


function behead($string) {
$tokens = explode('.', $string);
$head = array_shift($tokens);
return array($head, implode('.', $tokens));
}

function nest_it($flat) {
$nested = array();
$recurse_on = array();
foreach ($flat as $k => $v) {
list($head, $tail) = behead($k);
if ('' == $tail)
$nested[$head] = $v;
else {
$nested[$head][$tail] = $v;
$recurse_on[$head] = true;
}
}
foreach ($recurse_on as $k => $_)
$nested[$k] = nest_it($nested[$k]);

return $nested;
}

print_r(nest_it($flat));


def behead(string)
tokens = string.split('.')
head = tokens.shift
tail = tokens.join('.')

[ head, tail ]
end


def nest(flat_hash)
nested = {}
recurse_on = {}

flat_hash.each do |key, value|
head, tail = behead(key)

if tail.empty?
nested[head] = value
else
nested[head] ||= {}
nested[head][tail] = value
recurse_on[head] = true
end
end

recurse_on.each do |key, value|
nested[key] = nest(nested[key])
end

nested
end

Voilà deux codes qui font la même chose, je ne trouve pas la version php particulièrement écoeurante...

Je pense sincèrement que débuter avec Cake n'est pas plus difficile que commencer avec Rails tellement Cake est une copie du truc. Mettons qu'à force de galérer, l'angle différent que t'a apporté ruby t'as permis de comprendre, mais que tu te serais mangé le même mur en commençant direct avec Rails.

Faut dire que leur tuto est pas mal du tout.


RE: Tiens ! V'là un nouveau ! - Maz - 26-10-2011

(26-10-2011, 08:20 PM)niahoo a écrit :
...beuark...

!!! cool !!!

Voilà deux codes qui font la même chose, je ne trouve pas la version php particulièrement écoeurante...

Moi je trouves, ne serais-ce que la syntaxe, 3caractères inutiles bien montré dans le code php: le signe dollar, les accolades et les parenthèse en trop grand nombre, et tu as oublié les fameux <?php ?> (pourquoi ils ont inventer ces deux trucs?). Après la coloration syntaxique des forums ne mettent pas en valeur Ruby par rapport à PHP beaucoup plus utilisé sur les forums, mais dans mon logiciel (Scribes), coder avec Ruby c'est aussi du bonheur pour les yeux.

(26-10-2011, 08:20 PM)niahoo a écrit : Je pense sincèrement que débuter avec Cake n'est pas plus difficile que commencer avec Rails tellement Cake est une copie du truc. Mettons qu'à force de galérer, l'angle différent que t'a apporté ruby t'as permis de comprendre, mais que tu te serais mangé le même mur en commençant direct avec Rails.

Tant qu'à apprendre un langage + un framework (Ruby + On Rails vs PHP + cake) pourquoi ne pas choisir l'original et le plus développé?


RE: Tiens ! V'là un nouveau ! - Sephi-Chan - 26-10-2011

(26-10-2011, 08:20 PM)niahoo a écrit : Voilà deux codes qui font la même chose, je ne trouve pas la version php particulièrement écoeurante...

Ce snippet Ruby est un portage direct du code PHP, ce n'est donc pas très représentatif.

Ça permet seulement de voir que la syntaxe de Ruby est plus épurée et ça illustre quand même quelques crasses de PHP :
  • Des fonctions au nommage pourri, genre implode. implode('.', $tokens) contre tokens.join(".")
  • L'affectation de multiples variables, ridicule. list($head, $tail) = behead($k); contre head, tail = behead(key)
  • Le fait de manipuler les clés d'un tableau non déclaré, une pratique permise par le langage mais non recommandée. $nested[$head][$tail] = $v


Mais c'est bien sur les opérations plus complexes que de la simple algorithmique que Ruby montre son potentiel. Par exemple, compare l'utilisation de Doctrine à celle d'ActiveRecord, je peux t'assurer que tu vas pleurer.


RE: Tiens ! V'là un nouveau ! - niahoo - 26-10-2011

Juste comme vous ne répondez pas sur le même sujet et vous attardez sur des détails qui ne me semblent pas très importants, je vais faire pareil : à quel moment tu vois que j'utilise un tableau non déclaré ?

Citation :Tant qu'à apprendre un langage + un framework (Ruby + On Rails vs PHP + cake) pourquoi ne pas choisir l'original et le plus développé?

Idem, est-ce que ça répond vraiment à ce que j'ai dit ? Je suis d'accord avec toi mais ça montre un peu le problème d'ego qu'ont plein de développeurs ruby face à php, moi ça me faire sourire car je m'en fous et je me sens à l'aise avec les deux environnements.

Est-ce que les mecs qui ont codé Doctrine sont stupides et les mecs de Active Record des dieux ? Est-ce que ça dépend vraiment du langage ?

edit: juste sur la gueule du code je suis 100% d'accord avec vous, ruby est plus clair, le list(x, y, z) est sur-chiant surtout quand tu codes avec un langage qui propose le pattern matching partout. mais je trouve le code présenté aussi simple à piger que la version ruby.
et en toute amitié, pour moi erlang > * or sa syntaxe est pas top


RE: Tiens ! V'là un nouveau ! - Sephi-Chan - 26-10-2011

(26-10-2011, 09:16 PM)niahoo a écrit : Juste comme vous ne répondez pas sur le même sujet et vous attardez sur des détails qui ne me semblent pas très importants, je vais faire pareil : à quel moment tu vois que j'utilise un tableau non déclaré ?

La ligne $nested[$head][$tail] = $v; implique que $nested[$head] est un tableau, alors qu'il n'est jamais déclaré comme tel. Ça utilise un comportement de PHP un peu crappy (qu'on ne voit pas dans le code des maîtres Yoda de PHP).


(26-10-2011, 09:16 PM)niahoo a écrit :
Citation :Tant qu'à apprendre un langage + un framework (Ruby + On Rails vs PHP + cake) pourquoi ne pas choisir l'original et le plus développé?

Idem, est-ce que ça répond vraiment à ce que j'ai dit ? Je suis d'accord avec toi mais ça montre un peu le problème d'ego qu'ont plein de développeurs ruby face à php, moi ça me faire sourire car je m'en fous et je me sens à l'aise avec les deux environnements.

Ce n'est pas une question d'égo cette fois-ci. CakePHP est un portage de Rails. Mais tu ne peux pas faire Rails en PHP : le langage ne s'y prête pas, ce n'est pas un crime ou même un défaut.


(26-10-2011, 09:16 PM)niahoo a écrit : Est-ce que les mecs qui ont codé Doctrine sont stupides et les mecs de Active Record des dieux ? Est-ce que ça dépend vraiment du langage ?

Qui a dit que les développeurs Doctrine étaient stupides ? Personne. C'est juste qu'ils ne peuvent pas écrire une API aussi sympa à utiliser/lire. Par exemple, PHP ne permet pas d'écrire des choses comme :


class Game < ActiveRecord::Base
# Exclude the games in which the user is.
def self.without(user)
joins { participations }.
where { participations.game_id.not_in(user.game_ids) }
end
end

class User < ActiveRecord::Base
# Send the user in an appropriate game.
def send_in_game!
User.transaction do
game = Game.not_full.without(self).sample || Game.create
game.add!(self)
end
end
end

Le côté très expressif de la condition, le block pour transaction, le OU logique, etc.

Chaque langage a ses particularités. PHP est facile et bon marché à héberger et… c'est tout (ce n'est que mon avis, mais je serais ravi qu'on me prouve le contraire).

Libre à chacun de choisir, l'essentiel c'est de savoir qu'il existe d'autres trucs et que comme souvent, le truc le plus populaire n'est pas forcément le meilleur.