Szukasz najlepszych specjalistów od wytwarzania oprogramowania? Znajdziesz ich w kilka kliknięć.

Ruby on Rails vs C# - którą technologię wybrać?

19 paź 20207 min czytania

Dawid Karczewski

Senior full stack developer i CTO w Ideamotive.

ruby vs c sharp w 2023

W nieustannie zmieniającym się krajobrazie branży IT Ruby on Rails i C# ugruntowały się do 2023 roku jako dojrzałe technologie. Obie są na rynku od ponad dekady - w tak szybko zmieniającej się dziedzinie to sporo - co dodatkowo umacnia ich reputację i przydatność w wytwarzaniu oprogramowania.

 

Mimo to wciąż są popularne i wykorzystywane w wielu projektach, od prostych aplikacji webowych po złożone przedsięwzięcia. Choć mają pewne podobieństwa, pozostają różne i mogą służyć innym celom.

Którą technologię wybrać dla TWOJEGO produktu webowego? Zaczynamy walkę wieczoru: Ruby on Rails vs C#!

 

W tekście znajdziesz:

  • Czym jest Ruby on Rails?
  • Czym jest C#?
  • Dlaczego warto je porównać?
  • Porównanie: szybkość kodowania, wydajność, stabilność, dostępność specjalistów i nie tylko.

 

Choć aplikacje webowe mają swój początek w ostatnich latach lat 80. (od stworzenia przez Larry'ego Walla języka skryptowego Perl w 1987 roku), ich wygląd i działanie zmieniły się przez lata. Nowoczesne aplikacje webowe wyglądają i działają tak samo dobrze, a nawet lepiej niż wiele natywnych aplikacji mobilnych. Dziś często nie sposób ich odróżnić. Od JavaScriptu, przez Ajax i HTML5, pojawianie się nowych technologii i rozwój tych starszych umożliwiły programistom tworzenie wybitnych aplikacji działających w przeglądarce.

 

Wiele dużych marek widzi w tym ogromną szansę. W kwietniu 2017 Twitter wypuścił własną aplikację webową opartą na najlepszych technologiach (w tym Rails) i uzyskał wzrost liczby stron na sesję o 65%, wzrost liczby wysłanych tweetów o 75% i spadek współczynnika odrzuceń o 20%! Dodatkowo, w porównaniu z natywną aplikacją na Androida, aplikacja webowa zajmowała mniej niż 3% pamięci urządzenia i zmniejszyła zużycie danych o 70%. Inne firmy i marki, takie jak AliExpress, Lancôme czy Forbes, również korzystają z wdrożenia tej koncepcji.

 

Jeśli interesuje Cię porównanie Ruby on Rails z innymi technologiami, sprawdź nasze artykuły o RoR vs PHP i RoR vs Node.js!

Czym jest Ruby on Rails?

Skoro Ruby on Rails jest frameworkiem, najpierw trzeba opisać język programowania, w którym go napisano. Ruby to jeden z interpretowanych języków wysokiego poziomu ogólnego przeznaczenia. Jego twórcą jest Yukihiro Matsumoto z Japonii, który chciał zrównoważyć programowanie funkcyjne i imperatywne. Dlatego Ruby jest dynamicznie typowany, korzysta z odśmiecania pamięci i wspiera wiele paradygmatów: proceduralny, obiektowy i funkcyjny. Według indeksu TIOBE to jeden z najpopularniejszych języków na świecie. Wydano go w 1995 roku na licencjach open source.

 

Około 10 lat później twórcy Ruby on Rails (albo po prostu Rails) pokazali swoją pracę. To framework aplikacji webowych po stronie serwera w architekturze model-widok-kontroler (MVC), napisany w Ruby na licencji MIT. Dostarcza domyślne struktury dla bazy danych, usługi webowej i stron. W momencie pojawienia się Rails wpłynął na tworzenie aplikacji webowych na ogromną skalę. Dziś często trudno powiedzieć, co jest częścią frameworka, a co częścią języka. Rails kładzie też nacisk na wzorce i paradygmaty, takie jak convention over configuration (CoC), don't repeat yourself (DRY) czy active record.

Czym jest C#?

Historia C# zaczęła się w trakcie prac nad .NET Framework. Biblioteki klas pisano początkowo z użyciem systemu kompilatora kodu zarządzanego o nazwie „Simple Managed C”, ale w chwili publicznej zapowiedzi na Professional Developer Conference w lipcu 2000 roku wszystkie z nich, a także środowisko uruchomieniowe ASP.NET, zostały przeniesione na C#.

 

To wieloparadygmatowy język ogólnego przeznaczenia z silnym typowaniem, obejmujący programowanie z zasięgiem leksykalnym, imperatywne, deklaratywne, funkcyjne, generyczne, obiektowe (oparte na klasach) i komponentowe. W parze z frameworkiem ASP.NET Core C# jest bardzo ciekawym i dobrym sposobem na tworzenie aplikacji webowych.

Dlaczego warto je porównać?

Trend aplikacji webowych zaczął się kilka lat temu, ale wciąż jest gorący. Są dużo lepsze od aplikacji mobilnych, których czas ładowania i otwierania jest 15 razy dłuższy! Jeśli więc nadal nie masz aplikacji webowej, stwórz ją jak najszybciej. Jedną z pierwszych decyzji na tej drodze jest wybór odpowiedniej technologii. C# (w parze z ASP.NET) i Ruby on Rails to popularne wybory w tej materii i trudno się dziwić. Są najlepsze w swoich zastosowaniach.

W tym przypadku pytanie nie brzmi „która jest lepsza”, tylko „jakie są moje potrzeby i która technologia je zaspokoi”. Bardzo się różnią - i strukturą, i sposobem działania. To może nieco utrudnić wybór, ale po lekturze tego tekstu wszystko powinno być jasne.

 

Ruby vs C# - interfejs użytkownika

Jeśli chodzi o generowanie interfejsu użytkownika, można powiedzieć, że Rails i ASP.NET Core działają bardzo podobnie - korzystają z silników szablonów. RoR ma ERB, a C# z ASP.NET Core używa Razora. W obu przypadkach to mieszanka HTML-a i konkretnego języka programowania. W chwili, gdy przeglądarka wysyła żądanie, kontrolery serwują szablon z danymi. Następnie serwer renderuje stronę na podstawie otrzymanych informacji i pokazuje ją użytkownikowi. W pewnym sensie jest to bardzo wygodne, ale z drugiej strony może prowadzić do nadmiernego mieszania warstwy widoku z logiką, co bywa problemem przy dalszym rozwoju aplikacji.

 

Werdykt: pat.

 

Szybkość kodowania w RoR i C#

Ruby on Rails jest bardziej zwięzły niż C# czy ASP.NET. Dzięki temu kodowanie w nim jest bardzo szybkie. Biorąc pod uwagę wzorce i paradygmaty inżynierii oprogramowania, na które stawia Rails - jak CoC czy DRY - szybkość kodowania w tym frameworku potrafi być rozkoszna. Język C# nie wypada jednak tak źle, jak mogłoby się wydawać. Ma składnię uważaną za „fajną”. Jest bardzo złożona, ale jednocześnie dobrze zaprojektowana. Dlatego kodowanie w Ruby on Rails jest szybsze, ale nie można mieć wszystkiego. Sytuacja zmienia się wraz ze wzrostem zaawansowania i rozmiaru aplikacji. Wtedy C# z ASP.NET Core oferuje rozwiązania ograniczające ilość kodu.

 

Werdykt: Ruby on Rails sprawdzi się w małych aplikacjach, ale gdy urosną, lepszą opcją staje się C#.

Ruby vs C# - wydajność

W tym aspekcie C# jest niekwestionowanym zwycięzcą. Wskaż dowolną pojedynczą procedurę. W C# wykona się dużo szybciej niż w Ruby on Rails. Kod jest kompilowany do kodu pośredniego, który następnie uruchamia CLR (Common Language Runtime). Do tego C# jest wciąż rozwijany w kwestii słów kluczowych async/await. Oznacza to, że w tym języku napiszesz świetnie skalowalny kod asynchroniczny niemal za darmo! Z drugiej strony Ruby on Rails ma wolny czas przetwarzania na CPU w porównaniu z wieloma innymi językami, co działa na jego niekorzyść. Co więcej, Ruby nie jest kompilowany i w całości interpretuje się w czasie działania. To również nie przemawia za RoR.

 

Werdykt: C#.

Społeczność i wsparcie

Pod tym względem mamy do czynienia z zupełnie różnymi produktami na różnych licencjach. C# jako komercyjny produkt wielkiej korporacji oferuje mnóstwo materiałów informacyjnych i profesjonalne wsparcie. Wsparcie społeczności jednak słabnie i nawet działania Microsoftu zachęcające do współtworzenia publicznych projektów nie przynoszą efektu. W 2016 roku firma wypuściła otwartoźródłowy ASP.NET Core, który mógłby ożywić społeczność, ale wciąż nie wiadomo, czy tak się stanie. 

W przypadku Ruby on Rails nie znajdziesz wielu informacji i pomocy od twórców, ale społeczność Ruby dostarczyła ogromny i wysokiej jakości zestaw narzędzi oraz bibliotek.

 

Werdykt: ostatecznie Ruby on Rails.

Stabilność

Między kreatywnością a stabilnością trwa nieustanna walka. Twórcy Ruby on Rails próbują nad nią zapanować przez paradygmaty convention over configuration (CoC) i Don't Repeat Yourself, które zachęcają do ponownego wykorzystania kodu, żeby ograniczyć ukryte zależności i długość kodu. C# z pomocą .NET Core potrafi znacząco zmniejszyć ilość kodu potrzebnego do zbudowania dużych aplikacji. Framework, z którym pracuje C#, jest jednak wciąż w pierwszych latach intensywnego rozwoju. To może być powodem jego mniejszej stabilności niż RoR.

 

Werdykt: remis.

Dokumentacja

Gdy porównamy ten aspekt rywalizacji, wszystko powinno być jasne. Dzięki wsparciu Microsoftu C# ma dużo bardziej rozbudowaną dokumentację niż Ruby czy Rails. Twórcy Ruby on Rails wykonali jednak dobrą robotę. Wciąż nie mogą wygrać z ogromną korporacją, ale jak na możliwości zespołu zaangażowanego w projekt open source dokumentacja Ruby on Rails jest bardzo dobra. Trzeba jednak wziąć pod uwagę także dokumentację ASP.NET Core - a ten framework, biorąc pod uwagę niedawną datę wydania i szybki rozwój, bywa nie w pełni udokumentowany. I właśnie dlatego jest remis.

 

Werdykt: remis.

Dojrzałość platformy

Ruby powstał w 1995 roku. Rails pojawił się 9 lat później - jest z nami od 16 lat. Przez ten czas powstały setki tysięcy stron korzystających z siły i elastyczności tej technologii. Od początku Rails jest nieustannie rozwijany. Jego najnowsze wydanie pochodzi z 17. czerwca 2020.

 

C# ma dziś 20 lat. Zaczynał jako część inicjatywy .NET i wyrósł na niezależny język programowania. Microsoft nieustannie wspiera jego rozwój. Obecnie najnowsze wydanie C# to wersja 8.0, której premiera odbyła się 23. września 2019. Z drugiej strony jest ASP.NET Core - najnowszy framework dedykowany tworzeniu aplikacji webowych. To wciąż bardzo młoda platforma, wydana w 2016 roku, która sporo w tej materii zmieniła.

 

Werdykt: Ruby on Rails.

Pula specjalistów

Biorąc pod uwagę wysoką i stabilną pozycję C# w indeksie TIOBE, liczba programistów chętnych do pisania w tym języku powinna być ogromna. Jego popularność jest olbrzymia i od wielu lat utrzymuje się na podobnym poziomie. W przypadku Ruby on Rails sytuacja też jest bardzo dobra. Wielu programistów uważa, że RoR to wciąż doskonały wybór nawet jeśli pojawiają się mniej przychylne głosy. 15. pozycja Ruby w indeksie TIOBE mówi sama za siebie. To popularna i chętnie wybierana technologia.

 

Werdykt: niewielka przewaga, ale C# wydaje się popularniejszy.

Ruby on Rails vs C# - do czego się nadają?

Jak widać z tego tekstu, Ruby on Rails i C# to bardzo różne technologie. Obie są jednak dobrym wyborem do tworzenia aplikacji webowych.

 

Jeśli planujesz szybko zbudować MVP - RoR na pewno będzie Twoim pierwszym wyborem. Ale przyda się też na wiele innych sposobów - mnóstwo startupów korzysta z Ruby on Rails na co dzień. Wciąż pozostanie świetnym wyborem dla MŚP, platform e-commerce, a nawet SaaS-ów.

 

Ale jeśli planujesz długi rozwój ogromnej aplikacjiC# z .NET Ci w tym pomoże. RoR i C# różnią się tak samo, jak różnią się projekty, do których się nadają.

 

Wciąż nie wiesz, co wybrać? Skontaktuj się z nami, a nasi konsultanci pomogą Ci podjąć właściwą decyzję. Szukasz web deweloperów? W naszej sieci są dziesiątki programistów Ruby on Rails i C#. Zadbamy o to, żeby połączyć Cię ze specjalistami idealnie dopasowanymi do Twojej branży, technologii i kultury firmy.

Dawid Karczewski

Dawid jest full stack developerem. Tworzy aplikacje w Ruby on Rails i React Native od pierwszego pomysłu aż po wdrożenie. Buduje dla naszych klientów rozwiązania, które pomagają im rosnąć.

Zobacz wszystkie wpisy autora
im_ebook_cover_template 4 (2)

Ruby on Rails w Twoim kolejnym projekcie webowym

Kompletny przewodnik biznesowy

Czytaj teraz
home-05
Szukasz ekspertów od tworzenia stron do swojego zespołu?
W naszej sieci talentów czekają dziesiątki zweryfikowanych specjalistów od tworzenia stron.
Skontaktuj się