Dwa pytania od początkującego - zainteresowanego przejściem z C++ na Ruby

Cześć,

Od pewnego czasu uczę się programowania w C++. Ostatnio na jednym z for zobaczyłem przykładowy kod napisany w Ruby i nie ukrywając zakochałem się w tym języku mimo, że w nim jeszcze nic nie pisałem. Troszkę poczytałem i postanowiłem skusić się jednak na Rubiego. W związku z tym mam kilka pytań.

  1. Jak wygląda pisanie aplikacji okienkowych pod Windowsa i Linuxa w Ruby? Możecie wskazać jakieś przykładowe programy, aby móc zobaczyć jak one działają?

  2. Czy mógłby mi ktoś pokazać (oczywiście jeżeli komuś by się chciało) jak by wyglądał kod w Ruby w przeciwieństwie do tego napisanego przeze mnie w C++. Ogólnie celem tej małej aplikacji jest potęgowanie. Użytkownik wprowadza dwie liczby (podstawa, wykładnik), a następnie potęguje i zwraca wynik. Taki prosty przykład, abym mógł zobaczyć jak to wygląda w rzeczywistości. Poniżej wklejam kod napisany w Cpp. Wrzucam tu, bo na forum wcięło znaczniki i inne -> http://pastebin.com/2d7LZGu0 (jest to z wykorzystaniem funkcji, można byłoby to nieco prościej napisać).

I jeszcze jedno pytanie. Jak wygląda pisanie w Ruby bardziej złożonych projektów wykorzystujących algorytmy. Interesuje się matematyką i algorytmami i nie ukrywam, że w przyszłości też chciałbym pisać coś bardziej złożonego.

  1. Na 99% nikt Ci nic sensownego nie pokaże. Dlaczego? Bo w rubym akurat pisanie aplikacji GUI nie “chwyciło”. Oczywiście są frameworki, które pozwalają na tworzenie takich aplikacji, ale nie są używane na jakąś wielką skalę.

puts "Podaj podstawę:"
base = gets.to_i

puts "Podaj wykładnik"
exponent = gets.to_i

puts "#{base}^#{exponent} = #{base ** exponent}"

Myślę, że do nauki algorytmów jak najbardziej. Natomiast jeśli interesują Cię jakieś zawody typu OI, spoj, potyczki algorytmiczne to trzeba celować w coś wydajniejszego (c/c++).

Ok, dzięki za odpowiedź.

Faktycznie względem ilości kodu do napisania i jego przejrzystości zdecydowana przewaga Rubiego nad C++.

Więc nadal kontynuować będę naukę C++ z myślą o pisaniu aplikacji desktopowych i tych bardziej złożonych, wymagających wydajności, a Ruby z Railsami nauczę się na potrzeby pisania projektów webowych i nic więcej do szczęścia mi nie potrzeba.

Bardzo dobre podejście :). Znajomość kilku języków da Ci w przyszłości możliwość bardziej perspektywicznego spojrzenia na programowanie i pragmatyczny dobór narzędzia do problemu.

Dokładnie i też tak zrobię. Warto znać kilka języków programowania. W dłuższych planach mam C++, Ruby (+ Rails), Asemblera oraz Pythona (lub Jave, ale bardziej jestem za Pythonem jest bardziej “podobny” do Rubiego). Ogólnie też zacząłem naukę od C++ żeby lepiej jak to się dzieje bliżej komputera, a też Cpp dobrze wprowadza do programowania mimo, że nauka podstaw jest procesem długotrwałym (właśnie skończyłem Programowanie. Teoria i praktyka z wykorzystaniem C++ ok. 1 tyś stron, teraz siadam do Szkoły Programowania ok. 1,2 tyś stron, po czym trzeba przerobić jeszcze jedną książkę też ponad 1 tyś stron, aby móc powiedzieć, że zna się właściwie podstawy C++ przy czym nie licząc już tysięcy linii napisanego kodu rozwiązując zadania z książek i pisząc własne programy).

Do Rubiego mam jedną książkę, którą dostałem w prezencie “Ruby. Przewodnik programisty” autora Davida Black, ale jak patrzę na opinie na helionie nie są one za dobre, o dziwo na amazonie są świetne (bodajże 30x6). Podstawy Rubiego opanuje z polskich książek (są 2-3 ebooki) z połączeniu z toutrialami i YouTube, a następnie przesiądę się na coś anglojęzycznego.

1 Like

Możliwe, że zainteresuje Cię np. Elixir/Phoenix. W moim mniemaniu nauka Pythona po Ruby rozwinie Cię w mniejszym stopniu, niż przesiadka z OOP na functional programming.