Je dirais même plus...

Si tu pose cette question c'est sans doute que tu n'a pas vraiment acquis la
notion de langage interprété.

Ruby te (se ?) permet des acrobaties du genre typage dynamique :
truc = 'machin'
> 'machin'
truc = 3
> 3
Ou méta-programmation :
class Toto
  3.times do |i|
    define_method "blah_#{i}" do
      i
    end
  end
end
Toto.new.blah_1
> 1
Toto.new.blah_2
> 2
Toto.new.blah_3
> 3
Du coup, les définitions de classe, les inclusions de modules, etc., tout ça
est fait "à la volée" par ton serveur, et à un coût en terme de
performances. Selon que tu lance ton serveur en environnement de :

   - développement => a chaque requête, on reconstruit les classes et les
   méthodes, ça coûte cher en performances, mais on s'en fout tu es chez toi
   sur ta machine de développement et il n'y a pas des centaines de pékins
   connectés
   - production => on le fait une fois pour toute une fois par instance du
   serveur, ça coûte juste à la première requête, après tes centaines de pékins
   utilisent tous les classes déjà faites de l'instance

Mais aussi, ça a des conséquences sur le fonctionnement de l'appli :

   - développement => a chaque requête, ton serveur utilise la toute
   dernière modification que tu as fait dans ton appli puisqu'il relit tout
   - production => si tu change quelque chose dans l'appli (dans le code de
   l'appli, pas dans les données de la base) tu dois redémarrer les instances
   si tu veux voir un changement cohérent

Voilà, j'espère que c'est plus clair comme ça.

Michel Belleville

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]
-~----------~----~----~----~------~----~------~--~---

Répondre à