Ruby on Rails vs C# - Which Technology Should You Choose?
Oct 19, 20207 min read
Senior full stack developer and CTO at Ideamotive.
Both Ruby on Rails and C# are technologies that you can call mature. They have been around for over 10 years, which in a fast-paced industry such as IT is quite an era.
Nonetheless, they are still popular and used in many projects, from simple web apps to complex projects. Although there are some similarities between them, they still remain different and can serve different purposes.
Which technology to pick in the case of YOUR web product? Let’s start the fight of the night: Ruby on Rails vs C#!
The text covers:
What is Ruby on Rails?
What is C#?
Why should we compare them?
Comparison: speed of coding, performance, stability, talent pool and more.
A lot of large brands see it as a great possibility. In April 2017, Twitter released its own web application using the best technologies (including Rails) and got a 65% increase in pages per session, a 75% increase in Tweets sent, and a 20% decrease in bounce rate! Additionally, in comparison with the Android native app, web app used less than 3% of the device storage space and reduced data consumption by 70%. Other companies and brands like AliExpress, Lancôme, or Forbes get the benefits of introducing this concept as well.
If you’re interested in Ruby on Rails in comparison with other technologies, check out our articles about RoR vs PHP and RoR vs Node.js!
What is Ruby on Rails?
Considering that Ruby on Rails is a framework, the first thing to describe is a programming language that is written in. Ruby is one of the interpreted, high-level, general-purpose programming languages. Its creator is Yukihiro Matsumoto from Japan who wanted to balance functional and imperative programming. That’s why Ruby is dynamically typed, uses garbage collection, and supports multiple programming paradigms like procedural, object-oriented and functional. According to the TIOBE Index, it’s one of the most popular languages worldwide. It was released in 1995 under open source licenses.
About 10 years later creators of Ruby on Rails (also just Rails) showed their work. It's a model-view-controller (MVC) server-side web application framework written in Ruby under the MIT License. It provides default structures for a database, a web service, and web pages. At the moment of its emergence, Rails influenced the web app development on a huge scale. Nowadays it’s often hard to tell what is the part of the framework, and what is part of the language. Rails emphasizes also the use of patterns and paradigms like convention over configuration (CoC), don’t repeat yourself (DRY), or active record pattern.
What is C#?
The history of C# started during the development of the .NET Framework. However, the class libraries were originally written with the use of a managed code compiler system called “Simple Managed C”, at the time of the public announcement at the July 2000 Professional Developer Conference all of them and also ASP.NET runtime was ported to C#.
It’s a general-purpose, multi-paradigm programming language including strong typing which encompasses: lexically scoped, imperative, declarative, functional, generic, object-oriented (class-based) and component-oriented programming disciplines. With the use of the ASP.NET Core framework, C# is very interesting and is a good way of developing the web app.
Why should we compare them?
The trend of web applications started a few years ago but it’s still hot. They are much better than the mobile apps which time to load and open them are 15 times longer! So if you still don’t have your web application, you should create it as soon as possible. One of the first choices on a way of developing it is the pick of suitable technology. C# (in pair with ASP.NET) and Ruby on Rails are the popular choices in this matter and it’s hard to wonder why. They’re the best in their applications.
In this case, the question isn’t “which is the better” but “what are my needs and which technology will meet them”. They are very different both in terms of structure and mode of operation. That may make a choice a bit more difficult, but after reading this text everything should be clear.
Ruby vs C# - user interface
If it comes to generating the user interface, you can say that Rails and ASP.NET Core work in a very similar way - use template engines. RoR has ERB and C# with ASP.NET Core are using Razor. In both cases, they are a mix of HTML and a particular programming language. At the moment, when the browser sends a request, controllers are serving up the template with the data. After this, the server renders the page based on the received information and shows it to the user. It’s very comfortable in some sense but, on the other hand, it can lead to extensive mixing layout and logic which may be a problem in the further development of the app.
Speed of coding in RoR and C#
Ruby on Rails is more succinct than C# or ASP.NET. That makes coding in it very fast. Considering software engineering patterns and paradigms which Rails emphasize like CoC or DRY, the speed of coding in this framework can be delightful. However, the C# programming language isn’t as much worse than someone could think. It has a syntax which is regarded as “cool”. It’s very complex but at the same time well-engineered. Because of that coding in Ruby on Rails is faster but you can’t have everything. The situation changes with raising advancement and size of an application. In this case, C# with ASP.NET Core are offering solutions to reduce the amount of the code.
Verdict: Ruby on Rails will be good for small apps, but when they get bigger, the C# becomes a better option.
Ruby vs C# - performance
In this aspect, C# is the undeniable winner. Name any individual routine. It will run much faster in C# than in Ruby on Rails. It’s compiled to intermediate code which is then run by CLR (Common Language Runtime). Additionally, C# is still being improved in the matter of async/await keywords. It means that with the use of this programming language you can write highly scalable asynchronous code almost for free! On the other hand, the Ruby on Rails has a slow CPU processing time in comparison with many other languages, which works to its disadvantage. What more, Ruby is not compiled and it’s fully interpreted at runtime. That also doesn’t work in the favour of RoR.
Community & support
In this respect, we are dealing with completely different products under different licenses. The C# as a commercial product of a big corporation offers a lot of informational resources and professional support. However, community support is declining and even the actions of Microsoft to encourage contributing to public projects aren’t successful. In 2016, the company released an open-source ASP.NET Core that could activate the community but it is still uncertain if it will.
In the case of Ruby on Rails, you can’t find a lot of information and help from the creators but the Ruby community provided an enormous and high-quality suite of tools and libraries.
Verdict: ultimately Ruby on Rails.
Between creativity and stability exist a constant struggle. Creators of Ruby on Rails are trying to manage it by convention over configuration (CoC) or Don’t Repeat Yourself paradigms which encourage reuse of the code to reduce hidden dependencies and a length of the code. C# with the assistance of .NET Core can significantly reduce the amount of code necessary to build large applications. However, the framework, which C# works with, is still in its first intensive years of development. It can be a reason for less stability of it than RoR.
Comparing this aspect of competition, everything should be clear. By the support of the Microsoft C# has much more complex documentation than Ruby or Rails. However, the creators of Ruby on Rails did a good job also. Still, they can’t win with the huge corporation but for the capabilities of the team involved in the open-source project, the documentation of the Ruby on Rails is very good. But what we also have to take into consideration is the documentation of ASP.NET Core and this framework, given the fact of its recent release date and quick growth, can be under-documented. And because of that, there’s a draw.
Maturity of the platform
Ruby was created in 1995. Rails came to life 9 years later - it has been around for 16 years now. Through this time appeared hundreds of thousands of websites have emerged that leverage the power and flexibility of this technology. Since the beginning, Rails has been constantly developed. Its latest release is from 17th June 2020.
C# is now 20 years old. It started as part of the .NET initiative and grew into the independent programming language. Microsoft constantly supports its development. Currently, the latest release of the C# is version 8.0 which has its premiere on 23rd September 2019. On the other hand, there is the ASP.NET Core - the latest framework dedicated to web app development. It’s still a very new platform, which was released in 2016 and changed plenty of things in this matter.
Verdict: Ruby on Rails.
Considering the high and stable position of C# in the TIOBE Index, the number of developers eager to write in this language should be huge. Its popularity is massive and has remained at a similar level for many years. In the case of Ruby on Rails, the situation is very good as well. Many developers think that RoR is still an excellent choice even if there are voices that aren’t so favorable for it. Ruby’s 15th position in the TIOBE Index speaks for itself. It’s a popular and eagerly chosen technology.
Verdict: a close call, but C# seems to be more popular.
Ruby on Rails vs C# - what are they good for?
As you can see from reading the text, Ruby on Rails and C# are very different technologies. However, they are still both a good choice for creating web applications.
If you are planning to build a quick MVP - RoR is your go-to technology for sure. But it can serve you in many other ways - plenty of startups are using Ruby on Rails on a daily basis. It will still be a great choice for SMBs, e-commerce platforms, or even SaaSes.
But if you are planning the long development of a huge application – C# with the .NET will help you in it. As different are RoR and C# as different are the projects what they are good for.
Still not sure which one to pick? Get in touch with us and our software consultants will help you with making the right decision. Looking for web devs? There are dozens of Ruby on Rails and C# developers in our network. We will make sure to connect you with talents perfectly fitted for your industry, technology and company culture.
Dawid is a full stack developer experienced in creating Ruby on Rails and React Native apps from naught to implementation. Technological superhero, delivering amazing solutions for our clients and helping them grow.