RoR - perspektywy

Wiem, że to pytanie może być irytujące, ale postarajcie się mnie zrozumieć :slight_smile:
Od niecałego roku programuję w PHP, zaczęłam się jednak poważnie zastanawiać nad zmianą na jakiś inny język (też do tworzenia aplikacji webowych).

Zrobiłam research i wybór padł na Ruby, zaczęłam pisać przykładową aplikację w Railsach i podoba mi się to, jednak jeszcze nie poznałam języka na tyle dobrze, żeby mieć jakiekolwiek sensowne zdanie. Ostatnio zaczęły do mnie docierać informacje, że z Rubym nie jest tak fajnie, jak się na początku wydawało, że może być problem z pracą, że tych projektów tworzy się coraz mniej i ten język, który miał stać się bardzo popularny, powoli zaczyna odchodzić w przeszłość, nie spełnił pokładanych w nim oczekiwań.

I teraz moje pytanie do Was - z różnych stron sypią się takie właśnie sprzeczne informacje - że perspektywy są świetne, albo że perspektyw brak. Wiem, że najlepiej pisać w tym, co się najbardziej lubi, ale ja naprawdę nie “wgryzłam się” na poważnie w żaden język poza PHP (swoją drogą, rok to przecież też nic) i chcę spróbować czegoś nowego. Czy Ruby to dobry wybór? Czy może być tak, że się w to zaangażuję, a tak naprawdę za dwa-trzy lata będę musiała znów szukać czegoś innego?

Z góry dziękuję za wyrozumiałość i porady :slight_smile:

gdzieś ty takie bzdury przeczytał? pewnie na forum.php.pl, w magicznym miejscu gdzie python szybszy jest od javy :wink: okej, na Rubiego i Railsy jest już mniejszy hype niż kilka lat temu, ale to nie znaczy że wszyscy tu jesteśmy bezrobotni i klepiemy biedę :slight_smile:

a poza tym, nowych języków/technologii uczy się dla siebie (rozwój, poszerzenie horyzontów itd.), a nie żeby od razu zarabiać. No chyba że jest się korpo-szczurem który zna tylko poznaną na studiach Jave (ew. C#) i o niczym innym nie ma pojęcia :slight_smile:

To nie jest branża, w której nauczysz się czegoś raz. Niezależnie do tego, czy będziesz programować w PHP, Rubym, Pythonie czy (niemal) każdym innym języku zawsze będziesz musiała się uczyć czegoś nowego (języka, biblioteki itd).

Jeśli chodzi o moje doświadczenie dzisiaj to jest spore zapotrzebowanie na programistów Ruby’ego (szczególnie jeśli masz ochotę przeprowadzić się do Berlina lub Londynu).

Nawet gdybym używał Rubiego tylko dla siebie (np. w roli kalkulatora: ruby -e ‘p 2 + 2’) to i tak uważam, że warto się go nauczyć.

A co do możliwości zdobycia pracy - jest takie przeświadczenie w Polsce, że Rubiego wykorzystują nieliczne firmy. Nie jest ono bezpodstawne, bo np. wg tego badania Rubiego używa tylko 1% polskich programistów (inna kwestia poruszona w artykule to mediana zarobków - dla Rubiego wynosi 5700). Co nie zmienia faktu, że jeśli będziesz zatrudniał się w niewielkiej firmie i nawet jeśli wykorzystuje ona inną technologię/język, to będziesz przecież mógł wprowadzić w niej innowacje, pokazując “jak prost można to zrobić w Rubim/Railsach” (a w praktyce prościej to można zrobić w Sinatrze/Padrino, bo Railsy są dość skomplikowanym frameworkiem).

Ekosystem Rubiego jest fantastycznie rozwinięty - dosłownie wczoraj zastanawiałem się czy jest progress bar do konsoli w Rubim - taki, który pokazuje ile czasu zostało do ukończenia jakiegoś zadania. Okazuje się oczywiście, że jest, a użycie jego w projekcie sprowadza się do:

  1. siągnięcia gemu progress (gem install progress)
  2. dwóch wywołań

require 'progress' [1,2,3].with_progress{|e| sleep 1}
Czy można wymagać więcej od języka?

Ciężko stwierdzić jakie będą perspektywy dla danego języka za jakiś czas, ale mogę Cię zapewnić, że w obecnej chwili raczej nie można narzekać na sytuację programistów Rubiego. Jest co prawda trochę tak jak napisał Filip - najwięcej fajnych ofert jest obecnie z Niemiec i z Anglii, ale w Polsce też można znaleźć dobrą pracę (przy okazji, wydaje mi się, że programiści rubiego są z reguły lepiej opłacani niż programiści PHP).

Nie chcę tutaj przepychać jakoś strasznie stwierdzenia, że Ruby na 100% będzie dla Ciebie dobrym wyborem, bo tego nie wiem, ale w rubim bardzo stawia się na dobre praktyki (ładny kod, testy, programowanie obiektowe), więc przynajmniej masz szansę, że ucząc się rubiego złapiesz dobre nawyki.

A co do samego wyboru PHP vs inny język, to jeżeli nie wybierzesz Rubiego, to jedna rzecz jakiej jestem w 100% pewien, to: zostaw PHP i uciekaj jak najdalej :wink: Masz dość duży wybór ciekawych języków: Ruby, Python, Scala, Clojure, nawet Java, ale nie PHP! :wink: Po pierwsze jest to język, w którym trzeba się trochę namęczyć, żeby trafić na jakiś dobry kod i dobre praktyki, a po drugie to jest języki tylko do programowania aplikacji webowych. Dla mnie to jest chyba największa jego wada. W Ruby czy w Pythonie możesz bardzo łatwo napisać aplikacje konsolowe, różnego rodzaju narzędzia pomocne przy pracy, serwery aplikacyjne (np. do hostowania rubiego część osób używa serwerów napisanych częściowo lub w całości w Ruby). W PHP niby da się to zrobić, ale ten język nie jest zupełnie do tego przystosowany, więc jego zastosowanie jest bardzo wąskie. Oraz: http://www.tiobe.com/index.php/paperinfo/tpci/PHP.html Tego typu mierniki popularności na pewno w 100% nie oddają rzeczywistości, ale pokazują jakieś trendy i wydaje mi się, że nie jest to dalekie od prawdy.

Nawet nie chciałabym, żeby tak było. Uczenie się nowych rzeczy jest fajne - między innymi dlatego też chcę zmienić moje PHPowe życie na inne :stuck_out_tongue:
Po prostu nie chcę wpaść w pułapkę wielkiego bumu na Ruby sprzed kilku lat - czytając różne wypowiedzi na forach ciężko dobrze zorientować się w rynku i wolałam bezpośrednio zadać to pytanie tam, gdzie dostanę wiarygodną odpowiedź :slight_smile:

Uspokoiliście mnie, więc niebawem zaczynam na poważnie przygodę z Ruby.
Dziękuję :slight_smile:

Pobożne życzenia rozsiewane przez pehapowców (oraz ew. rubistów którzy zachłysnęli się node’em) i zaklinanie rzeczywistości. Tymczasem Rebased zamierzamy rozszerzyć o dwie nowe osoby (inne znane mi firmy rubiowe mają podobnie – popatrz na podforum Praca/Projekty), a i to tylko dlatego że nie chcemy “spuchnąć” w reakcji na prośby klientów o więcej mocy przerobowych.

Znaczy pogłoski o śmierci rubiego należy uznać za mocno przesadzone :wink:

Chętnie bym też przeczytał jakich to oczekiwań ruby nie spełnił, albo zobaczył jakieś cyferki wskazujące na spadek zainteresowania czy projektów. Bo te cyferki, które ja widziałem, wskazują na nieprzerwanie wzrostowy trend, a jedyne próby ich podważana mają postać anegdotyczną (jeśli w ogóle nie po prostu życzeniową).

Problem jest wręcz odwrotny nie ma kogo zatrudnić. Każdy szuka, nie ma ludzi.

ale są też tacy co szukają i znaleźć nie mogą :smiley:

A właśnie, miałem o to jeszcze zapytać, masz jakieś linki do tematów, w którym ktoś twierdzi, że ruby nie spełnia pokładanych w nim oczekiwań? Chętnie poczytam i się (pewnie) pośmieję :wink:

Na polskim rynku jest pernamentny brak programistów Ruby/Rails, ceny doszły do tego poziomu że wiele firm rezygnuje z RoR bo nie są w stanie zebrać zespołu albo ich na niego po prostu nie stać. Na dobrych Railsowców w Polsce stać tylko firmy robiące na zachód albo startupy płacące udziałami. W dodatku projektów jest tyle (w stosunku do programistów), że robota gwarantowana na najbliższe lata. Po prostu za dużo projektów do utrzymania za mało programistów.
Od przeszło roku każdemu programiście jakiemu znam proponuje Railsy i żaden nie żałował że się przekwalifikował.

[quote=apohllo]zastanawiałem się czy jest progress bar do konsoli w Rubim - taki, który pokazuje ile czasu zostało do ukończenia jakiegoś zadania. Okazuje się oczywiście, że jest, a użycie jego w projekcie sprowadza się do:

  1. siągnięcia gemu progress (gem install progress)
  2. dwóch wywołań

require 'progress' [1,2,3].with_progress{|e| sleep 1}
[/quote]
Niech Ci pan bug w forkach wynagrodzi! Do przed chwili nawet nie wiedziałem, że tego potrzebuję, a potrzebuję bardzo. :slight_smile:

Dzisiaj nie ma boomu, dzisiaj to zwykły język programowania po prostu.

[quote=chastell][quote=apohllo]zastanawiałem się czy jest progress bar do konsoli w Rubim - taki, który pokazuje ile czasu zostało do ukończenia jakiegoś zadania. Okazuje się oczywiście, że jest, a użycie jego w projekcie sprowadza się do:

  1. siągnięcia gemu progress (gem install progress)
  2. dwóch wywołań

require 'progress' [1,2,3].with_progress{|e| sleep 1}
[/quote]
Niech Ci pan bug w forkach wynagrodzi! Do przed chwili nawet nie wiedziałem, że tego potrzebuję, a potrzebuję bardzo. :)[/quote]
Cała przyjemność po mojej stronie :wink:

To obczaj jeszcze to:

code=ruby.with_progress(‘Outer’).map do |a|
(1…10).with_progress(‘Middle’).map do |b|
(1…10).with_progress(‘Inner’).map do |c|
sleep 0.1
end
end
end[/code]
I przyjrzyj się też tytułowi konsoli :smiley:

To nie były jakieś większe artykuły, ale na przykład komentarze w stylu tych tutaj:


Każdy taki komentarz potrafi zasiać ziarenko niepewności (szczególnie jak się dopiero zamierza coś poznać), co właśnie - po przeczytaniu odpowiedniej ich ilości - skłoniło mnie do założenia tego tematu i upewnienia się czy dobrze robię :slight_smile:

Przecież to ma 4 lata.

Większość komentarzy i artykułów ma 4 lata, bo wtedy było chyba największe zainteresowanie Rubym i Railsami. A skoro wtedy było największe, a i tak były negatywne komentarze, to tym łatwiej się zasugerować i dojść do wniosku, że skoro popularność spadła, to te negatywne opinie miały sens.
Nieważne zresztą, nie ma co dywagować, ja też nie chcę wygłaszać żadnych opinii, bo ich po prostu jeszcze nie mogę mieć :slight_smile:
Dziękuję wszystkim za tyle fajnych opinii, które mnie już na 100% przekonały, że warto.

Warto to wręcz mało powiedziane. :slight_smile:

Niby wszystko fajnie, ale nie można też zapominać o minusach:

[quote]1a. Argumenty pehapowców przeciw Ruby on Rails.

  • Brak polskich książek (te obydwie na rynku są do wersji przestarzałych).
  • Hostowanie to dodatkowa praca, dodatkowy czas, dodatkowe problemy.
  • Hostowanie to koszmar i drożyzna.
  • Bez sensu używać do małych projektów (czyli przez conajmniej 50% programistów).
  • Kłótnie w samym sercu założycieli frameworka (odszedł twórca serwera mongrel).
  • Zdarza się przepiswyanie gotowych już projektów w RoR na PHP np.
    a. http://www.wykop.pl
    b. http://www.oreillynet.com/ruby/blog/2007/0...ack_to_p_1.html
  • Jeśli coś już pójdzie nie tak, to będziesz szukał powodu conajmniej tygodniami w źródłach RoR.
  • Brak kompatybilności jakiejkolwiek wstecz. Pojawienie się nowej wersji RoR grozi powrotem do korzeni (może nie trzeba uczyć się od nowa wyświetlania “Hello World”, ale trzeba
    douczyć się ogromnej ilości nowych rzeczy i zapomnieć o tych starych rozwiązaniach).
  • Bardzo agresywny marketing, rodem z telezakupów “Mango”, tu zacytuję dla przykładu:
    książka “Rails Space” M. Hartl, A.Prochazka - Helion 2008,
    str. 31
    “Witryna Rails Space (wykonana w RoR) będzie miała wiele elementów kojarzonych z popularnymi sieciami społecznościowymi jak Facebook”.
  • ZARAZ ZARAZ - Facebook jest w PHP !
    str. 26
    " (…)stwierdził, że gdy porządnie przyjrzał się PHP, uznał, że jest do niczego(…)".
  • brak argumentów.
  • Programista RoR MUSI być jednocześnie administratorem serwerów, żeby wdrożyć projekt na hosting.[/quote]
    http://forum.php.pl/lofiversion/index.php/t151895.html

Można gadać w nieskończoność, ale ja tam lubię fakty. Funkcje (nie wszystkie) operujące na łańcuchach w PHP:

addcslashes convert_cyr_string convert_uudecode count_chars implode lcfirst nl2br sha1 str_getcsv str_shuffle strcasecmp strchr strrchr strlen
Funkcje operujące na łańcuchach w Ruby:

ascii_only? block_scanf, bytes, bytesize capitalize, capitalize!, casecmp, center, chars, chomp, chomp!, chop, chop!, chr, clear, codepoints, concat, count, crypt delete, delete!, downcase, downcase!, dump each_byte, each_char, each_codepoint, each_line, empty?, encode, encode!, encoding, end_with?, eql? ...
Zastanów się co dla Ciebie jest czytelniejsze i bardziej spójne. Można pisać, że PHP5 jest obiektowe, ma traitsy i inne super bajery. Ale biblioteka standardowa, to jest coś czego się nie zmieni.