26-10-2011, 09:59 PM
(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.