Sunday, March 23, 2008

RUBY - Raczej Uporządkowany Bałagan

Zaraz po zapoznaniu się z językiem Python postanowiłem liznąć Ruby ego. Tak się składa, że poprosiłem o"RUBY Tao Programowania w 400 przykładach" książkę na urodziny i dostałem ją od moich kochanych rodziców :]

Wrażenia są mniej więcej takie, że Ruby to Raczej Uporządkowany Bałagan (i w tym bałaganie zaginęła literka "y"). Ponieważ nie pisałem jeszcze żadnego programu w Ruby więc może to tylko wrażenie bałaganu, może wszystko się wyjaśni kiedy zacznę w nim pisać.

Na pewno poznanie języka Ruby to jak poznanie języka jakby 3 razy bardziej obszernego. Ucząc się Pythona masz powiedziane jasno: jak chcesz coś zrobić to użyj XYZ i XYZ wykona dla Ciebie to. A w Ruby masz owszem napisane operator ABC wykonane dla Ciebie to co chcesz, ale masz przy okazji opisane milion innych sposobów jak wykonać tą samą operację w inny sposób a przy okazji omówione drugie tyle newansów, którymi rozwiązania się różnią.

Być może właśnie przez tą różnorodność mam wrażenie bałaganu. Natomiast na pewno jedna rzecz jest szalenie ważna. Obsługa pewnych podstawowych rzeczy w Ruby jest połowiczna. Używanie dodatkowych bibliotek w celu poprawnego obsługiwania łańcuchów kodowanych w UTF8, pisanie w ogóle o WADACH języka i w celu ich "rozwiązywania" używania zewnętrznych bibliotek, nagłe zmiany działania metod (np. przyjmują szerszy zakres zmiennych) po załadowaniu jakiejś biblioteki czy wrażenia braku jednolitości co do stosowanych notacji ... to coś czego w kursach Pythona nie spotkałem. Kurs Pythona to poprostu same superlatywy, opis cech języka bez zagłębiania się w szczegóły. Pokazanie jak działają mechanizmy bez wchodzenia w wady i cechy danych rozwiązań - może też dlatego kursy Pythona, poprzez taki "trik socjologiczny" wydają się prezentować język Python jako lepszy... społeczność mówi jednym głosem pokazuje jego zalety, cechy - a o Rubym to co rusz da się wyczytać o jakiś wadach (powiedziałbym cechach). Moim zdaniem to bardzo negatywnie rzutuje na wrażenie jakie odbiera się podczas czytania o języku.

Myślę, że to dobyr punkt, żeby zacząć tworzyć publikacje nie wgłębiające się w szczegóły, pokazujące język Ruby od tak poprostu w zastosowaniach, w których się sprawdza i już !

No comments: