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
Czy wytłumaczenie może być inne niż to, że jak ktoś będzie chciał zrobić sobie krzywdę to zawsze znajdzie sposób?
Jest coś takiego jak podstawowa kontrola typów, nawet w językach dynamicznych. Jak już robią udogodnienia to powinno to być dopracowane. Jak już coś nazywamy to powinno się zachowywać jak to coś. Po funkcji “gigabyte” integer powinien tracić metodę “ago” lub zyskiwać ją po funkcji “day”.
Ciche pozwolenie na operacje na typach ze sobą nie zgodnych może przynieść tylko problemy.
Tak więc widzicie, moze ta kosiarka jest fajna, skosi cały trawnik bardzo szybko i dokładnie, ale wystarczy tylko wziąć ją odwrotnie, przemontować uchwyt do góry nogami, no i co? No właśnie. Kowalski się potknie i nieszczęście gotowe.