Por que o código precisa ser recarregado no Rails

Sou ex-desenvolvedor de PHP aprendendo Rails e Sinatra. No PHP, toda solicitação de página carregava todos os arquivos necessários. Se eu alterasse algum código e atualizasse a página, poderia ter certeza de que o código estava atualizado.

No Rails 3, o código do controlador é atualizado a cada solicitação. No entanto, se eu modificar algum código na pasta / lib, preciso reiniciar o servidor para que as alterações tenham efeit

Por que isso acontece? Tem algo a ver com a maneira como o Ruby é projetado? O Rails está fazendo algumas otimizações para evitar recarregar o código em cada solicitação?

Obrigado

Edit: Estou mais interessado no que está acontecendo sob o capô. Frameworks como Rails e Sinatra fazem algum cache especial para classes? Se sim, o que eles fazem? O comportamento padrão no Ruby é que todo o código seja recarregado a cada solicitação? Por que precisamos de ferramentas como Shotgun for Sinatra http: //sinatra-book.gittr.com/#automatic_code_reloadin)?

questionAnswers(2)

yourAnswerToTheQuestion