Kiedy wiesz, że znasz Rubego

Czy ten język w ogóle da się poznać bo mi to się wydaje nie możliwe… bo co krok przy głupim “puts” się dowiaduję czegoś nowego. A to operator << a to " a" “b” “c”, a to jeszcze magia ?znak albo liczb.chr … czy innych magicznych działań - z jednej strony mnie to cieszy z drugiej w kurza :confused: bo ile można się “dowiadywać” … a ja chciałbym kiedyś móc powiedzieć, że “umiem programować w rubym”… i zaczynam się martwić, że skoro jest tego “aż tyle” to kiedyś czytając czyjś kod będę patrzył na konstrukcję, która będzie robiła proste rzeczy, ale nie będę jej rozumiał bo to będzie “kolejna opcja” zrobienia czegoś w ruby - nie jest tak ? Pytam Was - doświadczonych programistów Rubego.

Ruby to prosto wyglądający język ale bardzo rozbudowany jeśli zajrzysz do środka. Ruby ma bardzo rozbudowane API w porównaniu do niektórych języków. To może się na początku wydawać przytłaczające ale po kilku latach programowania to uczucie mija i zamienia się w poczucie siły :slight_smile:

Nie przejmuj się jeśli jeszcze nie możesz powiedzieć “umiem programować w Rubim” - niewiele osób tak naprawdę zna ten język, wiele zna powierzchownie Rails ale np. zaawansowane rzeczy np. metaprogramowanie to dla wielu wciąż czarna magia. Wynika to z faktu, że zrozumienie niektórych ficzerów języka wymaga trochę więcej “brain power” niż na co dzień mamy do dyspozycji. Podobnie jest ze zrozumieniem Lispa - potrzebna jest cierpliwość ale IMHO opłaca się jeśli oczywiście chcesz osiągnąć coś więcej niż poziom “PHP w 24 godziny”.

Tak naprawdę to na ile myślisz, że znasz dany język nie ma znaczenia - ważne jest, żebyś lubił to co robisz i był otwarty na rozwój. Reszta przyjdzie z czasem.

To największa zaleta Rubiego przecież - codziennie uczysz się czegoś nowego :slight_smile: Co więcej, dwóch programistów Rubiego ma sporą szansę (nawet będąc bardzo zaawansowanymi) wymienić się kawałem wiedzy :slight_smile:

No chyba jednak nie do końca. Bardzo lubię rubiego, ale czasami od przybytku głowa boli. Na przykład długość stringu można obliczyć albo za pomocą size, albo length. Moim zdaniem jest to dość mylące, i zupełnie niepotrzebne. Poza tym w rubim jest sporo skamelin rodem z perla i awk, typu BEGIN, END (to nie to samo co begin i end pisane małymi literami), czy kryptyczne globalne zmienne typu $/ czy $. Czy ktoś z Was czuł kiedykolwiek potrzebę ich użycia?

Macie rację, to poznawanie może być tylko ciekawe, zwłaszcza, że Ruby to jednak trochę inny język, nie tylko inna notacja, jak np Java - C#. Ale jednak tak nie powinno być, i na szczęście tak nie jest, że jeśli ktoś nie czuje się odkrywcą, Ruby i tak musi jawić mu się jakaś wiedza, którą zdobywa się jak w klasztorze :slight_smile:

Ale spokojnie, johny - skoro nikt nie zakłada, że zapozna się w kilka godzin ze Stroustrupem, ani skoro nikt nie zapamięta rozdziału o IO w Thinking in Java w przerwie na papierosa, to też nie wiem, na jakiej podstawie z językiem, który daje większe możliwości miałoby być dużo szybciej :slight_smile: Być może dlatego, że 9.times wygląda lepiej niż iterator z STL, no ale wiemy, że to pozory.

W nauce Rubyego przeszkodą bywa za to z pewnością problem z dokumentacją, ale wg mnie porządna książka, jaką już jest na pewno “The Ruby Programming Language” wyd O’Reilly, przygotowuje do samodzielnego używania Rubyego bardzo kompletnie i na pewno nie wolniej, niż wymienione pozycje do C++ i Javy. Po jej lekturze nic Cię raczej nie zdziwi, ale jeśli nie masz fotograficznej pamięci to pewnie, jak zauważył hosiawak, raczej nie nauczysz się całej bibliteki standardowej na pamięć i nie powinieneś do tego dążyć w szczególny sposób - od tego jest dokumentacja.

No chyba jednak nie do końca. Bardzo lubię rubiego, ale czasami od przybytku głowa boli. Na przykład długość stringu można obliczyć albo za pomocą size, albo length. Moim zdaniem jest to dość mylące, i zupełnie niepotrzebne.[/quote]
Właśnie takie podejście jest częścią filozofia Ruby. Możesz wyrazić tą samą treść na wiele sposobów. Tak jak w języku naturalnym. Ja np. cenię sobie możliwość napisania ‘unless empty’ zamiast ‘if !empty’.

Jeżeli to Cię razi to może spójrz w stronę Pythona. Jeżeli znasz Ruby nie będzie to dla Ciebie zbyt duży koszt. Fragment manifestu Pythona:[quote]There should be one-- and preferably only one --obvious way to do it.[/quote]
http://www.python.org/dev/peps/pep-0020/

piachoo:

Ja musiałem ostatnio sporo rzeczy w pythonie napisać i szczerze mówiąc cały czas brakowało mi rubiego :wink:

Moja sytuacja jest taka, że szukałem w internecie kursów Rubego, trafiłem na kilka, ale niestety było w nich dla mnie za mało przykładów, kodu dotyczących kompletnych podstaw aby były dla mnie wystarczające. Potem usłyszałem, że dobre jest Tao Programowania, dostałem od rodziców na urodziny. We wstępie jest napisane, że “ta książka nie jest dla osób, które chcą się nauczyć języka Ruby”, a w połowiek Książki poddałem się stwierdzając, że autor pisał prawdę, Kupiłem więc: Ruby Wprowadzenie i jestem bardzo zadowolony.

A Pythona poznałem z kursów, mam też rozmówki a kolega z pokoju kupił “Od Podstaw”. W Pythonie denerwuje mnie brak switch/case i to, że w klasach wszystko jest publiczne - reszta jest ok :] jest przejrzysty - a to cieszy.

A co do wielu aliasów - to nie do końca jest tak, że będą one powodowały nieczytelność kodu. mam kolegę, który pisze CMS (hportal.zhr.pl). Ten kolega ma niesłychaną zdolność: nazywania zmiennych, metod, funkcji, atrybutów tak, że kod czyta się jak książkę, sam dla siebie jest dokumentacją, nie trzeba NIC więcej wiedzieć, aby go zrozumieć i zmieniać. DO momentu, w którym metody w Ruby są dobrze ponazywane i mówią same za siebie, co robią - to wszystko będzie czytelne (moim zdaniem)

“Tao Programowania” to świetna książka i czasem jej nie wypuść z rąk - za 2-3 miesiące będziesz zauroczony :slight_smile:
A do tego czasu faktycznie jakieś podstawy - niezła jest “książka z kilofem” (“Programowanie w Ruby”, seria Pragmatic Programmers).

Książkę z kilofem odradzam, jest niekompletna i nie wyjaśnia wszystkiego.
Polecam natomiast The Ruby Programming Language autorstwa Matza. Jest naprawdę kompletna i wyjaśnia bardzo dużo. Pisana jest też dosyć zwięzłym językiem więc nie trudno przez nią przebrnąć.


Ogłoszenia nieruchomości

Dzień dobry!!:slight_smile: Wrocław z tej strony:) Jeśli można to też chciałbym się dorzucić do tematu. Studiuję informatykę i chciałbym się dowiedzieć właściwie o tym Rubym. Mam już pełna listę książek dostępną na stronie głównej. Mam też najnowsze wydanie ruby186-26 pod Windowsa. I od której książki zacząć?? Chciałem zaznaczyć że mogę być wyjątkiem z co poniektórych expertów bo miałem minimalne styczności z językiem programowania jak (C++ podstawy i jak to zawsze bywa Pascal).Wiem że to jest nowość i język mało popularny ale z postów które czytam od godziny na pewno warto się nim zainteresować. Czy jest jakiś znaczący + dla wersji na linuksa? I co trzeba zrobić żeby wiedzieć kiedy znasz Rubiego?( Napisać Cmsa?? Stworzyć sklep internetowy??):slight_smile: I ostatnie jaki projekt byście polecili żeby poznać wszystkie główne cechy Rubiego?? Przepraszam że Się tak rozpisałem. Pozdrawiam i z góry dziękuje za odpowiedź

To że miałeś minimalną styczność z innymi językami programowania może być plusem - nie masz jeszcze zbyt dużo złych nawyków :wink:

Jeżeli chodzi o plusy dla linuksa w kwestii rubiego, to są pewne rzeczy, które pod windowsem w rubim w ogóle nie działają (wywołanie polecenia systemowego na przykład - trzeba się z tym pobawić trochę). Podobno można skompilować rubiego na cygwinie i wtedy wszystko jest ok, ale nie miałem ochoty tego sprawdzać. Oprócz tego różnic raczej nie ma. A przynajmniej nie takich, które by Cię na tym etapie interesowały :wink:
Jeżeli chodzi o Ruby on Rails, to bardzo dużym plusem jest to, że w większości wypadków hostujesz strony na Linuksie właśnie - dzięki temu pracujesz w podobnym środowisku, można przez to uniknąć różnych błędów.

Sprecyzuj czy mówisz o czystym Rubim (język programowania), czy o Ruby on Rails (framework napisany w Rubim) - bo piszesz o rubim i zaraz później o CMSie (a to pewnie chciałbyś w railsach zrobić :slight_smile:

Książkę z kilofem odradzam, jest niekompletna i nie wyjaśnia wszystkiego.[/quote]
Ja też lubię i podziwiam Zeda, ale nie przesadzajmy :wink: Z tej ksiązki uczyli się Rubiego nasi bogowie i tak jak pisałem - na sam początek jest bardzo dobra. A potem, kiedy się pojawia temat metaprogramowania, obsysa i trzeba się przerzucić na jakąś lepszą, np. Fultona.

A ja a ni go nie lubię ani nie podziwiam (no, może trochę za ciekawe władanie językiem angielskim :wink: )
Chodziło mi tylko o to, że od czasu wydania książki z kilofem pojawiło się dużo o wiele lepszych pozycji dlatego nie ma sensu imho dalej ludziom jej polecać jako podstawy od której dobrze zacząć. Po prostu po jej przeczytaniu i tak będą zmuszeni kupić inną książkę, która w bardziej dogłębny sposób opisuje język, wiec dlaczego nie polecać od razu Fultona lub Matz’a ?

Też polecam ten tytuł. Autorzy wzorowali się na Kernighanie&Ritchiem, stąd powstała zwięzła a jednocześnie kompletna dokumentacja języka.
W książce Pragmatic Programmers (w tym temacie zgadzam się z Zedem) część przykładów jest, za przeproszeniem, wzięta “z dupy” i trzeba najpierw opanować co autor miał na myśli, zanim się opanuje tłumaczoną ideę.

Uśmiechnołem się jak to napisałeś…:stuck_out_tongue: szczerze mówiąć wolałbym znać powiedzmy C++ jak amen w pacieżu i mieć nawyki w rubim niż w takim stadium jakim obecnie jestem

[quote=drogus]Jeżeli chodzi o plusy dla linuksa w kwestii rubiego, to są pewne rzeczy, które pod windowsem w rubim w ogóle nie działają (wywołanie polecenia systemowego na przykład - trzeba się z tym pobawić trochę). Podobno można skompilować rubiego na cygwinie i wtedy wszystko jest ok, ale nie miałem ochoty tego sprawdzać. Oprócz tego różnic raczej nie ma. A przynajmniej nie takich, które by Cię na tym etapie interesowały :wink:
Jeżeli chodzi o Ruby on Rails, to bardzo dużym plusem jest to, że w większości wypadków hostujesz strony na Linuksie właśnie - dzięki temu pracujesz w podobnym środowisku, można przez to uniknąć różnych błędów.[/quote]
czyli generalnie Linux jest głównym środowiskiem programistycznym dla Rubiego:)

[/quote]
Hmm na ircu dostałem taką odpowiedź “jak poznasz samo rails to w czystym ruby mo żeszz się pogubić bo przywykniesz do kilku railsowych metod i będziesz tylko z nich korzysał” Jak to jest właśnie między rorem a rubim??

jest może polski kanał ircowy o ruby on rails ???

a no jest : irc://irc.eu.freenode.net/rubyonrails.pl

Coś w tym jest - lepiej najpierw poznać Rubiego, a potem RoR. Moim zdaniem to zdecydowanie właściwa kolejność, choć trzeba przyznać, że w drugą stronę też się da.

Jeśli chcesz trochę lepiej poznać Rubiego, zanim kupisz jakąś książkę możesz rzucić okiem na mój tutorial.

książki już mam wszystkie z oficlanej listy na tej stronie do RoRa ale do samego Rubiego mam mało oczywiście że się zapoznam nawet wydrukuje bo zapewne jest wart tego!!

Tylko że debianowca wgram w takim razie:)