To pytanie jest niezwykle subiektywne i otwarte. Może to nawet zabrzmieć jak coś, co powinienem po prostu zbadać dla siebie i podjąć własną decyzję. Ale chciałbym to tam przedstawić i uzyskać od innych przemyślenia.
Krótko mówiąc - wypaliłem się w wyścigu szczurów i w tym roku jestem na samofinansującym się urlopie naukowym. W dużej mierze chodzi o to, aby odpocząć od grindu korporacyjnego i podróżować, ale chcę również bawić się nowymi technologiami i realizować projekty samokształcenia, aby być na bieżąco z programowaniem i dobrze - po prostu uwielbiam majstrować przy programowanie, gdy nie ma presji!
Oto rzecz: jestem dożywotnim programistą C / C ++ / Java. Jestem trochę snobistycznym snobem, odkąd pracuję z tą rodziną języków przez całą moją karierę programistyczną. Chciałbym więc nauczyć się języka, który nie jest tak ściśle związany składni z tą grupą. To, czego właściwie szukam, to język, który jest względnie ogólny, fajnie się go uczy, ma kilka nowych koncepcji, które różnią się od C ++ / Java i ma dobrą społeczność. Drugą kwestią jest to, że ma dobre ramy programistyczne. Trzecim aspektem jest to, że nie jest on całkowicie akademicki (czytaj: są tam rzeczywiste miejsca pracy, które go używają).
Zawęziłem to do Ruby lub Python. Mam wrażenie, że Ruby jest bardzo zorientowana na sieć - że jedyną jego prawdziwą aplikacją jest język skryptowy po stronie serwera do robienia rzeczy w sieci (głównie Ruby on Rails). W ogóle nie mam wrażenia na temat Pythona, poza tym, że wydaje się, że ma on pasjonatów i jest dość uniwersalnym językiem.
TL; DR i mówiąc tak zwięźle, jak to możliwe: które z nich byłyby lepsze dla faceta C ++ / Java, aby nauczył się nowych perspektyw na programowanie? A który jest bardziej otwarty i ma ogólne zastosowanie i ma zastosowanie do szerszego zestawu aplikacji? Obecnie pochylam się w kierunku Ruby, ale martwię się do tego stopnia, że wygląda na to, że jest on używany jako język WWW po stronie serwera.
Odpowiedzi:
Nie daj się zwieść faktowi, że Ruby stało się popularnym językiem, głównie z powodu Rails (frameworka aplikacji internetowych). Jest to język programowania ogólnego zastosowania i można go używać do wszystkiego, do czego można użyć dowolnego innego języka.
Baw się z Ruby i sprawdź, czy się w niej zakochasz. Albo to zrobisz, albo nie. To trochę jak muzyka Grateful Dead; albo to kochasz, albo nie możesz tego znieść.
Ruby rozciąga mózg. Pod wieloma względami jest tak daleko od C ++ / Java, jak to tylko możliwe. Pochodzę z języka C i C # i odkryłem, że dynamika Ruby i moc metaprogramowania są dość odurzające.
Biorąc to pod uwagę, Python jest absolutnie wyjątkowym językiem i wyrwie cię z kręconości.
Dlaczego nie nauczyć się obu? Używam obu na bieżąco: Ruby do programowania w Railsach i Python do pracy z Google AppEngine.
źródło
Wprawdzie prawie nie używałem Ruby, ale oto moje wrażenia z Python:
Te dwie rzeczy mnie wyróżniają.
źródło
object
). Ponadto,len(obj)
jest to skrót do wywoływaniaobj.__len__()
, afor i in range
także abstrakty szczegółów operacyjnych działających obiektów generatora. Myślę, że / równoważny, ale inny / jest bardziej dokładny.Jeśli bierzesz urlop naukowy przez cały rok, proponuję spędzić tydzień lub dwa na nauce, a następnie sam zdecydować, który z nich najbardziej Ci się podoba. Mam doświadczenie w obu przypadkach i moim zdaniem oba są tak zdolne, że naprawdę musisz po prostu zdecydować, który z nich wybierzesz.
źródło
IMO, powinieneś iść z Pythonem. Powodem jest to, że jest bardziej wszechstronny, można go używać do prawie wszystkiego. Ruby jest, jak zauważyłeś, częściej wykorzystywany w tworzeniu stron internetowych ze względu na swoje frameworki. W przeciwieństwie do Pythona, Ruby nie jest tak dobry do tworzenia aplikacji komputerowych GUI, programów numerycznych, statystycznych lub do przetwarzania obrazów.
źródło
Ruby istnieje już o wiele dłużej niż szyny, więc pozwólcie, że przedstawię to na świecie
Ruby != web
, chociaż robi to bardzo dobrze. Istnieje wiele rzeczy związanych z systemami, które można i robi. Wygląda na to, że cała platforma Rails pochłonęła resztę świata Ruby. I tak, jestem fanem Ruby.Z drugiej strony Python ma wiele do zrobienia i został zintegrowany z prawie wszystkim w Linuksie. To mówi mi, że prawdopodobnie dość łatwo można go włączyć do większych programów (w porównaniu do Ruby, Java itp.). Jest sporo infrastruktury Ubuntu Linux napisanej w Pythonie, co mówi mi, że Python ma zastosowanie w programowaniu systemów. Słyszałem, że jego platforma internetowa jest naprawdę fajna, jeszcze z nią nie grałem.
To powiedziawszy, zarówno Ruby, jak i Python są równie sprawnymi językami, a przekonasz się, że znacznie ułatwią ci życie. Ruby ma o wiele więcej głów internetowych w swojej społeczności, ale to nie jest cała społeczność. Użyłem go również w wielu projektach infrastrukturalnych.
źródło
Jest to szczególny przypadek „ idealnej sekwencji uczenia się języków programowania” i podobnych pytań . To, czego potrzebujesz, nie jest „jednym idealnym językiem”, potrzebujesz wielu paradygmatów językowych i wielu doświadczeń uczenia się, aby otworzyć umysł.
Wiem, że powiedziałeś, że zawęziłeś go do Ruby i Pythona, ale sugeruję zacząć od Rakiety (popularnego schematu). Jest zbudowany do nauki i ładnie rozciąga mózg w kierunku programowania funkcjonalnego, programowania interaktywnego i dynamicznego pisania. Nie ma miejsc pracy (dosłownie zero), bardzo mała, rozdrobniona społeczność i nie ma dużego frameworka internetowego, i właśnie dlatego nie utkniesz w nim; usmaż mózg na chwilę, a następnie idź dalej.
Po drugie, chcesz nauczyć się Ruby lub Pythona dla możliwych zadań. Proponuję nauczyć się obu. Nauka drugiego z tych dwóch będzie znacznie łatwiejsza niż pierwszego pomimo różnic. Jeśli chodzi o możliwe prace, mam przeczucie, że jest więcej pracy w Ruby z powodu Railsów, ale wiem, że jest też trochę pracy Zope w tym obszarze. Zainwestuj w co najmniej jedną z nich, ale sprawdź też drugą co najmniej wystarczająco długo, aby zbudować coś małego.
Szczerze mówiąc, prawdopodobnie nauczysz się więcej w pierwszym tygodniu pracy w jednym z nich, niż sam nauczyłeś się; oba mają duże ekosystemy z dużą ilością narzędzi, kultury i idiomów.
tl; dr: Both and Scheme.
źródło
Ja także pochodzę z języka Java / C ++ i programowałem w języku Python w środowisku Django przez ostatnie 4 miesiące i jest naprawdę świetny. Ilekroć mam problem lub pytanie, mogę znaleźć wyjaśnienia na temat istniejących postów. Nie mogę poręczyć za Ruby, ponieważ jeszcze jej nie użyłem, ale na pewno spróbuję, gdy będę miał trochę czasu.
Osobiście podoba mi się to, jak możesz robić rzeczy naprawdę szybko dzięki Pythonowi, ponieważ ma on wiele przydatnych wbudowanych funkcji.
źródło
Głosuję na Ruby. Pochodzę z tła .Net i C #, najpierw wypróbowałem Pythona, ale Ruby mnie po prostu oczarowała =)
Piszę w nim wiele rzeczy systemowych, a niektórzy z Railsów się tym zajmują. Jest zdolny jako Python w programowaniu systemu i jest świetny w sieci. I wydaje mi się, że jest bardziej dopracowany ...
źródło