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ń.
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ą?
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.
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++).
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.
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.