Ruby, Rails i pytanko ;-)

witam wszystkich,

Na początku chciałbym powiedzieć, że zafascynował mnie Ruby i Railsy :slight_smile: Wcześniej
pisałem odrobinę w Perlu i PHP. Widać że fajnie rozkręca się polska społeczność
railsów i co zachęcające, można uzyskać na Waszym forum od bardziej zaawansowanych
rubowców rzetelną pomoc. Na niektórych grupach usenetowych (np. takiego perla)
najczęściej odsyłają do manuali i dokumentacji :wink:

No i właśnie ja z małym pytankiem… Wiadomo że w Rubym można swobodnie
modyfikować nawet bazowe klasy, podmieniać metody. Moje pytanie brzmi, czy ta
modyfikacja jest możliwa tylko na czas działania aplikacji, czy można to jakoś np. utrwalić
ją bardziej? (np na poziomie interpretera). Poza tym jak taka modyfikacja “w locie” klas bazowych
wpływa na wydajność aplikacji? Skoro nagle zmieniamy zachowanie danej klasy, to nie
jest tak, że taka zmiana zapisywana jest w jakimś dodatkowym miejscu (pliku?), samo API
obrasta czymś dodatkowym i przez to operację się wydłużają?

Przepraszam jeśli jakieś herezje wypisuje, ale chciałbym “poczuć” jak takie dynamiczne
zmiany działają “od strony bebechów” :wink:

No i ostatnie pytanie. Czy Railsy same z siebie mają wsparcie dla kontynuacji w taki
sposób jak Seaside? Czy zachowywany jest kontekst pomiędzy poszczególnymi requestami,
czy trzeba to dodatkowo oprogramować?

dziękuje za pomoc.
Andrzej

[quote=amarats]Moje pytanie brzmi, czy ta modyfikacja jest możliwa tylko na czas działania aplikacji, czy można to jakoś np. utrwalić
ją bardziej? (np na poziomie interpretera).[/quote]
Zmiany czegokolwiek obowiązują tak długo jak długo działa aplikacja. Musiałbyś zhackować kod w C. :slight_smile:

Nie ma żadnego dodatkowego pliku. Nic specjalnie się nie wydłuża. Klasa w Pythonie, Ruby i Smalltalku jest także obiektem. Można go modyfikować w trakcie pracy.

Railsy nie korzystają z kontynuacji, choć sam Ruby je ma zaimplementowane. Nie wiem kiedy powstawał Seaside, ale wiem że był pisany pierwotnie w Ruby. Autor przepisał kod do Smalltalka ze względu na niedojrzałość implementacji Rubiego. Może się to już zmieniło. Twórca Railsów wspomniał że go ten temat interesuje. Może kiedyś to doda w przyszłości. Na razie najbardziej dopracowanym serwerem kontynuacyjnym jest smalltalkowy Seaside.