gigabajtosekunda
Po ostatniej, fajnej dyskusji na pl.comp.lang.python postanowiłem sprawdzić co mi Rails powie.
I tak:
1.day * 1.gigabyte => 92771293593600
Nowa jednostka? sekundobajt:
1.second * 1.byte: => 1
To jest dobre:
1.gigabyte.ago => Wed Feb 27 06:08:25 +0100 1974
W sam raz do nowego Startreka: “W dawnych czasach. Cały gigabajt temu. Kiedy jeszcze ludzie mierzyli czas w prymitywnych sekundach” :)
Następny wpis będzie 512.kilobytes.from_now
=> Thu Mar 13 21:32:10 +0100 2008
Ruby z punktu widzenia programisty Pythona
Ostatnio trochę bawię się railsem i zdenerwowała mnie jedna śmieszna kwestia.
A było to tak:
Robiłem model zamówienia i pomyślałem sobie, że przydało by sie pole “hash” w bazie. A tu bach wyjątek. Konflikt z funkcją “hash” podstawowego obiektu rubiego. Ok, będzie brzydko nazwałem pole po polskiemu “hasz” :(
Idziemy dalej: model do wymiany danych za pomocą xml’a. Wymyśliłem sobie metodę “send”, która wyśle przygotowany wcześniej xml. A tu bach, metoda “send” obiektu rubiego. Ok, bedzie “send_xml”.
Cholera, każdy obiekt ma ponad 40 publicznych metod na starcie. Teraz boję się dodawać nowe atrybuty do klasy bo nie znam dnia i godziny kiedy znowu natrafię na magiczną wbudowaną metodę :)
Ciężkie jest życie człowieka, który chce poznać nowe, fajne technologie ale przyzwyczaił się do minimalizmu pythona.
Rails - dygresje
Zawsze uważałem, że nazywanie Railsa Java killerem to gruba przesada. I dalej tak myślę, lecz po bliższym poznaniu RoR’a muszę mu zwrócić trochę honoru. To co mocno uderza to kompleksowość frameworka. Widać jak twórca RoR wyciąga wnioski z procesu tworzenia web-aplikacji. Wszystko z czym spotyka się przeciętny autor serwisów internetowych ma podane na tacy. Od projektowania struktury bazy, wersjonowania jej i łatwego przenoszenia (migracje), przez wprowadzanie testowych danych (scaffold) a kończąc na łatwym deployingu (capistrano). Prawie każde pytanie znajduje odpowiedź w funkcjonalności.
RoR jest przygotowany profesjonalnie. Nie widać zbyt dużo niedoróbek czy luk w myśleniu. To co można spotkać nieraz w innych frameworkach, gdy autorzy skupiają sie na jakiejś funkcjonalności pomijając lub zapominając o innych (np. czyszczenie sesji w Pylonsie).
Konwencja nad konfiguracją wprowadza też dużo porządku w kodzie. Uczy programistów jak ważny jest ład w nazewnictwie.
Do tego jeszcze takie szczegóły jak pokazywanie w trybie developerskim czasu wykonania wszystkich sql’i oraz stron.
Naprawdę warto się zainteresować Raislem nawet tylko po to aby zobaczyć dobrze przygotowany soft. Soft, który napędza coraz większa społeczność, która zdaje się dobrze przy tym bawić.
Tylko wielka szkoda, że to jest Ruby, a nie Python …