Witam, ogólnie do pewnego czasu moja kariera opiewała o Cpp, potem trochę Javy, ale nie już przy konkretnych projektach. Co do web’a to tworzyłem w PHP, ale nie jestem ekspertem. Zniechęca mnie wrażenie, że mimo pewnej prostoty programowania w PHP, to standardy zostały tam wepchnięte jakby na siłę (subiektywnie nie czuję się naturalnie programując w PHP). Ostatnio w przypływie energii postanowiłem się pobawić Pythonem i wrażenie było super, zwłaszcza że pierwszego dnia zacząłem się dosłownie bawić w tworzenie gry i bez problemowo napisałem podstawowe klasy dla gry, jak i relację serwer - multiklient wykorzystując istniejące już moduły, po prostu wypas.
Zapewne takiej prostoty nie ma w Cpp. Postanowiłem też wejść na forum RoR’a, aby dowiedzieć się o nim trochę więcej pod kątem wykorzystania go do projektów aplikacji webowych.
W samej składni Ruby widzę trochę nowości, ułatwień, co daje doświadczonemu programiście możliwość pisania aplikacji w bardzo szybkim tempie(niedoświadczonemu, duże straty czasu na szukanie głupich błędów).
Jak oceniają to doświadczeni programiści Ruby? Jakbyście mogli powiedzieć mi trochę właśnie o szybkości programowania w Ruby zaawansowanych aplikacji, czy konkretniej aplikacji web za pomocą RoR.
-jaka jest szybkość tworzenia aplikacji Web w odniesieniu do PHP
-jaka jest szybkość tworzenia aplikacji desktop i ich przenośność na różne OS’y w odniesieniu do Cpp
-jak z tworzeniem aplikacji na Antka
-jaka jest wydajność tych aplikacji w odniesieniu do powyższego
-jak jest z kompatybilnością wsteczną nowszych wersji Ruby (jak chciałem się brać kiedyś za pythona i szukałem tutoriali, to reakcja zawodowców była taka, nie ucz się stąd, nie ucz się tamtego wszystkie źródła w necie są już nieaktualne)
-jakie bardziej zaawansowane silniki gier obsługują Ruby
-czy jest wielokrotne dziedziczenie bez którego nie potrafię żyć
Witaj na forum, dzięki za ciekawe pytania. Odpowiem na podzbiór, na którego temat mam jakiekolwiek pojęcie.
Zdecydowanie.
Przenośność i możliwości są teoretycznie spore, ze względu na opakowanie w Ruby różnych bibliotek do robienia GUI (por. QtRuby). W praktyce takich aplikacji ani widu ani słychu. Podejrzewam, że jeden z problemów może polegać na udostępnianiu źródła całej aplikacji wszystkim jej użytkownikom. Brak popularności powoduje, że nie ma gdzie zbierać danych do porównań szybkości tworzenia.
Ruby jest od dawien dawna obywatelem pierwszej klasy na OS X, ale temat mogę tylko zasygnalizować, bo nie mam z nim żadnego doświadczenia.
Tzn. Androida?
Wydajność kanonicznej implementacji Ruby, MRI, jest podobna do CPythona. Szału nie ma, ale do aplikacji interaktywnych z zapasem starcza, a wąskie gardła można zawsze przepisać w czymś szybszym - choćby wspomnianym przez Ciebie C++ - i wywoływać z Ruby.
Świetne pytanie. To raczej delikatny i wstydliwy temat. MRI, kanoniczna implementacja, korzysta z dość specyficznej polityki wersjonowania. W efekcie 1.9 okrutnie złamało zgodność wsteczną z 1.8, a nadchodzące 2.0 to poprawki kosmetyczne względem 1.9. Na obronę pozostaje chyba tylko fakt, że Ruby powstał w zupełnie innej części świata i nieporozumienie możemy zrzucić na karb różnic kulturowych.
Niemal jest. Miksiny, w Ruby znane jako moduły, formalnie nie polegają na dziedziczeniu, ale efekt jest podobny. Włączasz moduł M do klasy K i w efekcie klasa K ma metody z modułu M. Ponadto, na pytanie “czy K jest rodzaju M?” Ruby odpowie “owszem”. Ucieszyć powinien Cię fakt, że w przeciwieństwie to wielodziedziczenia, które w C++ powoduje wiele skrajnych emocji, miksiny w Ruby nie powodują agresji.