Wątek przeniesiony 2024-01-14 11:11 z Kariera przez Riddle.

Dlaczego Ruby jest takie słabe?

0

Od kilku lat programuje w Ruby. Język lubię, masa sympatycznych ludzi i zdarzają się również dosyć fajne firmy. Dlaczego jednak odnoszę wrażenie że język ten (i jego programiści) jest:

  1. Postrzegany gorzej (mniej poważnie) niż Java? Pobłażliwe spojrzenia kolegów z roku kiedy mówię im że programuje w Ruby - czuję się jak duże dziecko…
  2. Miejsca pracy w nim to zazwyczaj (mogę się mylić - stąd mój post) firmy, których nazwy nic nie mówią i które raczej w obecnych czasach nie są zbytnio stabilne czy nie posiadają jakiś atrakcyjnych biur czy udogodnień?
  3. Spora część programistów nawet nie ukończyła I stopnia studiów technicznych (nie jest to jakieś piętnowanie ale spotykając ich często okazywało się że mają braki w wiedzy ogólnej związanej z Informatyką i po prostu nauczyli się Ruby z tutoriali i są „mistrzami”; może tez być ktoś ogarnięty bez studiów ale odnoszę wrażenie ze przez to ze mało jest chętnych do Ruby tutaj osiągnęło to swoje maksimum)?
  4. Aplikacje raczej są mało złożone i ciekawe (znów - z wyjątkami) - nie realizują jakiś wygórowanych potrzeb biznesowych dla milionów użytkowników - jak nawet nudne aplikacje bankowe… zwyczajne crudy i zazwyczaj nic ponad to (No chyba, że „genialny” startup który upadnie za 2/3+ lat).
  5. Stara bo stara Java odnalazła swoją działkę chociażby w Big Data (pomijam już potęgę JVM) a Ruby, No cóż (wydaje mi się) że to tylko Rails, Sinatra i może jakieś pojedyncze egzotyki.

Nadmienię, że nie chce krytykować całego community ponieważ bardzo je sobie cenię (wyrosło z niego również wiele interesujących konceptow) natomiast trochę gryzie mnie fakt, że ludzie, którzy wybrali chociażby mainstremowa Jave radzą sobie chyba lepiej w obecnej sytuacji… (tak pracuje się tez dla pieniędzy) Może to wina skilla czy firm na które trafiłem, natomiast przez to wszystko trochę straciłem ochotę na kontynuowanie swojej kariery w tym wycinku IT. Może jakieś inne zdanie Rubiowca się tutaj pojawi? Jak wyżyć z Ruby jednocześnie nie klepiąc w kółko nudnych „apek”? Może po prostu potrzebuje jeszcze bardziej wejść w temat, a może jakaś zmiana ścieżki kariery czy sposobu poszukiwania nowych projektów/firm?

3

Czemu ekosystem Ruby tak powoli wymiera, to nie do końca wiem, trzeba by to przeanalizować.

Ale ja sam język średnio lubię, dlatego że:

  • Ostatnia linijka jest zwracana z metod bez return - nie podoba mi się to implicitly niejawnie. Tzn bez żadnego keyworda i bez żadnej składni na to.
  • Można wywołać funkcję bez nawiasów, a referencja do metod jest symbolami - dla mnie słabe.
  • Trzeba pisać end na końcu metod, co jest średnie - mogłoby być klamerki albo significant whitespace jak w pythonie. Lubię małe klasy i małe funkcje, i jak jest dużo end to kod wydaje się bardziej obszerny.
2

Nie wiem czy to Ci pomoże, ale ktokolwiek kto jest programistą C++ wątpię by tych od Javy był w stanie zwać programistami, a przynajmniej nie tymi prawdziwymi :D

Co do aspektu Ruby to dodam od siebie, że kilka lat temu miałem epizod gdzie trochę pracowałem w Ruby i trochę w Pythonie. Na rzecz Ruby przemawiał do mnie fakt, że jest to język bardziej ukierunkowany na OOP, znacznie bogatszy framework oraz społeczność, która rzeczywiście przywiązywała dużą uwagę do testów. Z perspektywy zawodowej bardzo mi się ten fakt podobał i w ogóle cała ta otoczka/filozofia jaka wiązała się z naciskiem na czyste programowanie.

Python wygrał z jednego powodu - oferował mi na rynku lepsze projekty. Podkreślam w tym samym kwartale miałem projekty do wyboru: platforma gier (z naciskiem na asynchroniczność), projekt IoT z serwerem asynchronicznym, system bigdata do ecommerce, system obsługi płatności, rozwijanie własnej chmury i to wszystko w jednym mieście.

W ruby jak skończyłem projekt mały projekt ecommerce czułem, że następny jaki mi się pojawi też będzie w sumie dość podobny i przez to traciłem gdzieś parcie do rozwoju. Co z tego, że czysto skoro właściwie jest nudno i bez błysku. Poza tym wtedy też wkurzała mnie myśl, że jako programista ruby jestem jeszcze większym i prostszym do wymiany trybikiem. To całościowo sprawiło, że filozofia Ruby gwałtowanie straciła dla mnie swój sens.

EDIT:

Obecnie inaczej widzę Ruby. Nie postrzegam tego języka do tworzenia, a raczej typowego klepania. Ogólnie zazdroszczę programistom Ruby przewidywalności ich pracy. To jest ogromny plus na B2B, gdy ktoś szuka spokojnej roboty i mniej więcej ludzi po których wie czego się spodziewać.

0

A mnie wydaje się ze to Javovca jest łatwiej wymienic (nawet tego z doświadczeniem)? ;) sam raczej uswiadczam faktu ze mając już te 3-4 lata w Ruby nawet u dużych graczy znajduje jakiś kontrakt…bo nie ma ludzi… zwłaszcza ze raczej skończyłem dobre uczelnie techniczne w Polsce i staram się cały czas czegoś uczyć (często niekoniecznie z IT). No ale znowu - kontrakt na jakiś czas… rzucają więcej niż jakbym zaczął „od zera” np. W Java natomiast po prostu jakoś zaczął mnie męczyć taki spsob pracy - chciałbym gdzieś móc posiedzieć dłużej. Dodam ze No jestem jeszcze dosyć młody - w sumie rok temu wyszedłem z uczelni… ;) No i zazwyczaj u tych nielicznych dużych graczy potem się okazuje że to i tak jakiś typowy crud. może masz większy exp i rozwiejesz moje rozterki? Może w takiej Javie/Python tez tak jest? :p

1

Pisząc o wymianie w sumie nie myślałem o dostępności programistów, a fakcie ile potencjalnie kosztuje pracodawcę wdrożenie osoby do teamu. Właściwie jak ktoś zna railsy to z miejsca ogarnia większość rzeczy jakie zobaczy w projekcie, dlatego ta wymiana wydaje mi się niebywale prosta.

Nie jestem pewien czego szukasz, myślę, że Ty sam również tego jeszcze tego nie wiesz. Domyślam się, że mając skill i kompetencje szukasz po prostu czegoś komfortowego, ale wszystko ma swoje ciemne strony. Weźmiesz coś super stabilnego to wyjdzie Ci, że za mało Ci płacą, leniwi ludzie, i zamiast większego rozwoju jest więcej scruma. Pójdziesz za rozwojem to deadliny, mniejsza kasa i łatwo o wypalenie. Pójdziesz za kasą to wyjdzie, że bardzo specyficzne środowisko, że wszystko tak wolno idzie, procedury, stare technologie itp.

Więc tą karierę łatwiej będzie Ci pociągnąć, gdy sam sobie odpowiesz jaki ból jest Twoim ulubionym :-)

0

A może jest ktoś tutaj kto od lat programuje w Ruby i jest z niego w 100% zadowolony? Chętnie wymienię spostrzeżenia :)

1

Używam Ruby jako mojego głównego języka skryptowego i jestem z niego niesamowicie zadowolony. Mam też kilka produkcyjnych API wystawionych z użyciem Sinatry. Od RoR się odbiłem.

1

Koleo stoi na railsach.

1

Ruby ma pare fajnych pomysłów. Jednak to, co fajne było w Rubym, odnajduję w Ruście. Niby dwa całkowicie odmienne języki pod kątem założeń, ale myślę, że oba są na tyle ekspresywne, że stają się przyjemne (w szczególności niektóre rzeczy w Rust są bardzo podobne do tego, co jest w Ruby np. zwracanie ostatniej wartości bez return)

Więc o ile kiedyś za Rubym przemawiał fakt dużej ekspresywności, to mam wrażenie, że obecnie tę ekspresywnosc można znaleźć w innych językach (właśnie choćby w Rust).

Natomiast jak idziemy w stronę języków skryptowych, to ekspresywnosc Ruby’ego ściga się z ekspresywnością Pythona i nowoczesnego JavaScriptu (pisze nowoczesnego, bo kiedyś JS był o wiele mniej ekspresywny)

jednak Ruby staje się coraz mniej popularny, co odstrasza, bo jeśli dana technologia staje się legacy, to już ludzie się boja uczyć (szczególnie, że już nie ma hype’u. To przestało być uważane za język dla modnych ludzi). Może stad opinie o tym, że to język do klepania.

2

Będę się odnosił do podpunktów.

  1. Postrzegany gorzej (mniej poważnie) niż Java? Pobłażliwe spojrzenia kolegów z roku kiedy mówię im że programuje w Ruby - czuję się jak duże dziecko…

Programowanie na wszystkich poziomach wygląda tak samo, czy to na tranzystorach, mikroinstrukcjach, assemblerze, statycznych językach czy dynamicznych.
Tworzy się logikę i ją wykonuje, wszędzie to wygląda tak samo, tylko czasem brakuje więcej elementów im niżej tym mniej gotowców masz dostępnych i tym bardziej ubogie rozwiązanie wykonasz.
Wartość jest określana na podstawie tego jak coś mocno jest przetworzone(nie wiem czy to idealne określenie) i im więcej jest wewnątrz nawet nie twojej pracy to zwiększa to twoją wartość.

A co do tego, że czujesz się jak małe dziecko, pierwsze są techniki manipulacyjne, które dość dobrze działają na ludzi, wywołują skrajne emocje, smutek, depresję, żal, ludzie to stosują nagminnie.
Kobiety facetą mówią, że zachowują się jak dzieci, albo nie są prawdziwymi facetami? jak to facet nie jest facetem??? ludzie straszne gówna wymyślają nielogiczne, to przykład, bo nie znam adekwatnej kombinacji w programowaniu.

  1. Spora część programistów nawet nie ukończyła I stopnia studiów technicznych (nie jest to jakieś piętnowanie ale spotykając ich często okazywało się że mają braki w wiedzy ogólnej związanej z Informatyką i po prostu nauczyli się Ruby z tutoriali i są „mistrzami”; może tez być ktoś ogarnięty bez studiów ale odnoszę wrażenie ze przez to ze mało jest chętnych do Ruby tutaj osiągnęło to swoje maksimum)?

Życie, zdarza się że nawet nie pójdziesz na studia z różnych przyczyn, ale możesz to nadgonić i twierdzić, że tylko studia pozwolą ci nauczyć się danej rzeczy jest dziwne, gdyż jak ktoś nam każe czegoś się nauczyć, to zwykle kiepsko się tego nauczymy, a jak ktoś sam bez studiów trafi na ten temat i sam go zacznie zgłębiać bez żadnego przymusu to opanuje go lepiej, chodź nie koniecznie, może mu się znudzić lub liznąć tylko i za parę lat wrócić z większą wiedzą ogólną do tego tematu, bo szczerze to wiele rzeczy jest niezrozumiałych i trzeba wrócić za parę lat i wtedy wpadają do umysłu łatwiej.
Po prostu trzeba też sporo innej wiedzy przyswoić, żeby daną zrozumieć.

  1. Aplikacje raczej są mało złożone i ciekawe (znów - z wyjątkami) - nie realizują jakiś wygórowanych potrzeb biznesowych dla milionów użytkowników - jak nawet nudne aplikacje bankowe… zwyczajne crudy i zazwyczaj nic ponad to (No chyba, że „genialny” startup który upadnie za 2/3+ lat)

Akurat jak rynek oczekuje takich rzeczy to jest to naturalne, tutaj chodzi o zarobienie pieniędzy, możesz robić coś fajnego, ale nic na tym nie zyskasz.
Świat chce takich i takich rozrywek, a że one mogą nudzić kogoś, ale innym dawać przyjemność, ktoś za to płaci więc dla niego to jest jakaś wartość potrzebna.

  1. Stara bo stara Java odnalazła swoją działkę chociażby w Big Data (pomijam już potęgę JVM) a Ruby, No cóż (wydaje mi się) że to tylko Rails, Sinatra i może jakieś pojedyncze egzotyki.

Ruby też może startować w big data, tyle że python trochę przejął rynek.
Nic nie stoi na przeszkodzie, żeby ruby zrobiło bindy na C biblioteki i też tam grzebało, chodź przydało by się w ruby coś w stylu JAX pythonowego odpowiednika, czyli just in time compiler kodu pythona do data science.

Jako aspołeczny człowiek, z brakiem jakichkolwiek znajomości od podstawówki, jestem w stanie określić pewne cechy jakimi ludzie się kierują, nie potrafię dołączyć do społeczności, ale próbując coś zrozumieć ustawiamy swoje filtry percepcyjne na dane informacje, które chcielibyśmy zrozumieć.
Ja przyglądam się ludziom jak rozmawiają, żeby kiedyś móc zbudować jakieś relację, bo tak zawsze jestem aspołeczny?
I tak jak patrzę to ludzie najczęściej walczą o dominację w grupie, każdy się tam jakoś wywyższa i każdy myśli, że najlepiej tam wypadł, każdy czuje wartość dodatnią do swojej samooceny.
Tak ludzie tworzą swoje skupiska, jeśli nie dążysz i w żaden sposób nie wyjdziesz przed szereg, to nigdy nikt cię nie zaakceptuje, nawet nie polubi, bo tak działa społeczeństwo, musisz dobrze manipulować słowami.
Dlatego czasem jest tak popularny shaming, gdzie po prostu ktoś komuś wmawia, że jest jakiś chory psychicznie lub nie jest facetem, żeby próbować manipulować jego sposobem życia.

Ale też bym dodał, że jak ktoś źle na ciebie patrzy, to może ma po prostu kiepską mimikę lub źle wygląda nie koniecznie ma ci coś za złe.
Ocenianie sytuacji na podstawie tego jak ktoś wygląda, to dosyć prymitywne i głupie.
Możesz ciekawy wykład przeprowadzić, a uczniowie byli by po mega grubym melanżu, mega źle czując się na kacu i doszedłbyś do wniosku, że nikt cię nie słucha lub nie jesteś szanowany.
Jak ktoś walczy o przeżycie to może nie wyglądać najlepiej, albo nie umieć tak manipulować mimiką, tego trzeba się nauczyć nagrywając siebie kamerką i zmieniając swoje zachowanie i zapamiętując elementy, które potem przełożą się na lepsze wyglądanie przed innymi.

1

Ruby jest w tej samej sytuacji co PHP. Swojego czasu dominował webdev, ale ta specializacja jest bardzo kapryśna, bo rozwiązań jest od groma i w praktycznie każda technologia się do tego nadaje

Programista157k napisał(a):
  1. Postrzegany gorzej (mniej poważnie) niż Java? Pobłażliwe spojrzenia kolegów z roku kiedy mówię im że programuje w Ruby - czuję się jak duże dziecko…

Bo to mało popularna technologia, która szczyt popularności ma już daleko za sobą?

  1. Spora część programistów nawet nie ukończyła I stopnia studiów technicznych (nie jest to jakieś piętnowanie ale spotykając ich często okazywało się że mają braki w wiedzy ogólnej związanej z Informatyką i po prostu nauczyli się Ruby z tutoriali i są „mistrzami”; może tez być ktoś ogarnięty bez studiów ale odnoszę wrażenie ze przez to ze mało jest chętnych do Ruby tutaj osiągnęło to swoje maksimum)?

To samo co w PHP. Ruby to środowisko startupowe/małych firm, gdzie ważniejsze było wydanie PoC jak najszybciej przez osoby, które niekoniecznie były mocno technicznie

  1. Stara bo stara Java odnalazła swoją działkę chociażby w Big Data (pomijam już potęgę JVM) a Ruby, No cóż (wydaje mi się) że to tylko Rails, Sinatra i może jakieś pojedyncze egzotyki.

Java od zawsze była korpo technologią. Do tego JVM jest potężny i praktycznie nie było w tym polu żadnej konkurencji. W czym innym chciałbyś napisać wydajną platformę te 10 lat temu? Z popularnych rozwiązań miałeś tylko natywnego C++, który ma całą masę innych problemów

Nadmienię, że nie chce krytykować całego community ponieważ bardzo je sobie cenię (wyrosło z niego również wiele interesujących konceptow) natomiast trochę gryzie mnie fakt, że ludzie, którzy wybrali chociażby mainstremowa Jave radzą sobie chyba lepiej w obecnej sytuacji… (tak pracuje się tez dla pieniędzy) Może to wina skilla czy firm na które trafiłem, natomiast przez to wszystko trochę straciłem ochotę na kontynuowanie swojej kariery w tym wycinku IT. Może jakieś inne zdanie Rubiowca się tutaj pojawi? Jak wyżyć z Ruby jednocześnie nie klepiąc w kółko nudnych „apek”? Może po prostu potrzebuje jeszcze bardziej wejść w temat, a może jakaś zmiana ścieżki kariery czy sposobu poszukiwania nowych projektów/firm?

Zawsze możesz się przebranżowić.

0

Ruby jest lepiej zaprojektowanym językiem a z jakiegoś powodu przegrał z Pythonem. Możecie wymienić wady i zalety Ruby w porównaniu do Pythona?
Obecnie jest setki języków o składni podobnej do Ruby i Pythona. Julia, R, Scala, Elixir, Roc, Idris, Crystal, Nim, Mojo i większość nowych nie dodaje już klamerek.

1 użytkowników online, w tym zalogowanych: 0, gości: 1