19 paź 20207 min czytania
Dawid Karczewski
Senior full stack developer i CTO w Ideamotive.
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:
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!
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.
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.
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.
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.
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#.
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#.
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.
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.
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.
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.
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.
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 aplikacji – C# 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 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 autoraPopularne artykuły
21 inspirujących projektów UI aplikacji mobilnych na 2023 rok
Michał Pruciak 7 min czytania
MedTech vs HealthTech vs BioTech: jakie są różnice?
Michał Pruciak 7 min czytania
10 biznesowych zastosowań sieci neuronowych (z przykładami!)
Michał Pruciak 4 min czytania
10 przykładów dobrych praktyk w web designie na 2023 rok
Adam Kozłowski 7 min czytania
28 znanych aplikacji webowych napisanych w PHP
Dawid Karczewski 14 min czytania
Jakich usług programistycznych szukasz?
Dane rejestrowe:
Firma
Usługi
Najczęściej poszukiwani specjaliści
Ocena 4,8 / 5,0 od klientów z różnych branż i lokalizacji.