Need advice about which tool to choose?Ask the StackShare community!


+ 1

+ 1
Add tool

Rails vs Ruby: What are the differences?

Developers describe Rails as "Web development that doesn't hurt". Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern. On the other hand, Ruby is detailed as "A dynamic, interpreted, open source programming language with a focus on simplicity and productivity". Ruby is a language of careful balance. Its creator, Yukihiro “Matz” Matsumoto, blended parts of his favorite languages (Perl, Smalltalk, Eiffel, Ada, and Lisp) to form a new language that balanced functional programming with imperative programming.

Rails can be classified as a tool in the "Frameworks (Full Stack)" category, while Ruby is grouped under "Languages".

"Rapid development", "Great gems" and "Great community" are the key factors why developers consider Rails; whereas "Programme friendly", "Quick to develop" and "Great community" are the primary reasons why Ruby is favored.

Rails and Ruby are both open source tools. Rails with 43.6K GitHub stars and 17.5K forks on GitHub appears to be more popular than Ruby with 15.9K GitHub stars and 4.26K GitHub forks.

According to the StackShare community, Ruby has a broader approval, being mentioned in 2531 company stacks & 1143 developers stacks; compared to Rails, which is listed in 2322 company stacks and 798 developer stacks.

Advice on Rails and Ruby
Max Loua
FullStack Dev at Nouvelles Donnes · | 3 upvotes · 217.5K views
Needs advice
Rails APIRails APIRailsRails

Currently working on my company's new saas, the main goal is to manage content and user. I'm familiar with the rails framework and how it is easy to code and deploy. The thing is I'm the only dev on the project, and in terms of the tech stack, there is no preference. However, because Node.js is everywhere and there is enough dev on the market, I am stuck between choosing Rails or Node.js. I don't mind implementing Vue.js or React on the frontend, but I need a solid argument to explain to people that aren't necessarily tech-savvy as to why we should choose Rails over Nodejs.

See more
Replies (6)

You are probably referring to ruby on rails for web development and nodejs for building the backend. Nodejs has frameworks such as express and next which not only provides a minimal code to build a backend but also gives the flexibility to try and experiment with the framework choices. For example you can have express framework + Passport for OAuth .... etc. The flexibility and the constant improvement of the language provides a good reason to opt for nodejs. Nodejs uses javascript which makes your code uniform when you are working full stack i.e react in front end and nodejs in backend.

See more
Rails APIRails API

I'd use the following metaphor to non-technical people. Rails is like a prepackaged toolkit, which can get most of the common tasks done fairly with ease. Whereas, node.js with whatever backend framekwork of choice, is like a DIY toolkit assembled by mix-and-match different tools in a large tool shop. Of course, at times DIY toolkit can do better on specific tasks. Given that you are the only dev on the project, I'd assume that the resource is fairly limited. And looks like you are not building some next-gen super duper fast smart application. So Just go with the prepackaged toolkit then. Rails is a very opinionated framework, there're pros and cons to it. But thanks to that, many of the gems are coded with it in mind. For example, they are all designed with same naming convention. Many will work well together out-of-box, for example devise and cancancan. Besides, many stuff are built in the framework. For example, logging utility, csrf protection, session encryption, etc. Yes, many of those stuff may not be useful or necessary at the beginning of the project life-cycle. However, down the road, there is a good chance you will need some of those. And the moment you realize that you already have it, it's so delightful. In addition, it's usually easier to debug a rails app than a node app in my experience. Personally, the cases where I would pick node.js over rails would be projects either require a) high-performance, or b) certain core functionality that has been implemented by some node packages but not by any ruby gems. In term of performance, node has a clear advantage over any other major web frameworks, except the ones built with go. It's simply a language feature. Node allows developer to easily write code that runs db query, external api calls, or other stuff of that nature in parallel. And that is THE MOST COMMON performance bottleneck of web applications.

See more
Francisco Quintero
Tech Lead at Dev As Pros · | 4 upvotes · 190.2K views

Rails is currently a very mature and feature complete framework.

It's the ideal one if you're the only dev for your project because you get so many things already baked-in the framework that you'd only need to deeply care about specific stuff.

I won't say any NodeJS framework isn't good enough but in my experience with NodeJS frameworks you have to code a lot of the things Rails already provides. There's many people in Twitter and IRL asking for a "Rails for JavaScript" framework.

And you know? In the early stages of any project we have to validate it first with real users/customers. With Rails you can get to production real quick and fast.

I'm going to mention some of the features you get from day 1 when you run rails new app_name:

  • File uploading with Active Storage
  • Rich text editor with Action Text
  • Emailing with Action Mailer
  • ORM, migrations, validations with Active Record
  • Web sockets with Action Cable
  • Internationalization
  • Modern frontend stuff with Webpacker

and more.

The JavaScript community is on its moment, growing and gathering more people everyday but the Rails community is also a big one and there's always going to be a Rails developer to hire whenever you're ready to hire someone.

I suggest you to go with Rails because is a good choice, gives you less things to worry about and it's a very good and mature framework.

See more
Dan Pickett
Co-Founder at Launch Academy · | 4 upvotes · 190K views

I hate to admit it, because I loved my time with Rails (and I still love the framework), I have a hard time justifying new Rails applications these days. Core team has made some tragic design decisions, and developers just don't perceive it as being "cool" any more. The latter is a terrible metric for which to base a technology decision, but I think you'll find it more difficult to recruit additional engineers if you choose Ruby on Rails.

Without knowing too much of the details, Node/Express (ideally with Typescript) seems like a better solution here, given you'll be building out the front-end in Vue or React. It might be worth looking at NestJS, as it's the closest I've seen to a well-formed opinionated framework on the Node side of things. We're also fans of Objection ORM.

I hope that's helpful!

See more
Jean-Pierre Pommet
Engineering at Shopify · | 3 upvotes · 190K views
React on RailsReact on Rails

I need a solid argument to explain to people that aren't necessarily tech-savvy as to why we should choose Rails over Nodejs

Hi Max, it sounds like that you are proficient in both stacks and probably have a higher expertise in Rails (correct me if I am wrong) and since you are the only dev on a project, a good argument that comes to mind is probably the velocity and maturity (enterprise grade, battle tested in production) that Rails provide with proven success stories in the tech industry such as Airbnb, Stripes, Shopify to name a few. You can also make the argument that Rails is great to run the backend and React+Vue (and nodejs for tooling) is ideal for the front-end development (see or find companies example that use both). You can also build and show a prototype using both and share your experience which could help you find and forge the selling points to those non tech savvy folks, why not.

Eventually, are you going to have other developers on your project? if yes then you will need to take in account, onboarding and ramp up to contribution time when they are hired.

IMHO, I am not a fan of the debate Rails vs Nodejs, they are just tools at the disposal of the developer it's just a matter of figuring out what makes the most sense.

Let me know if you wanna discuss further, happy to help out!

ps: markdown preview on stack share... no good.

See more
Rails APIRails API

Rails has advantages over node.js (specifically express) when working a more complicated backend. While Express has some speed advantages to Rails, this is mitigated if your software is more CPU intensive.

See more
Shivam Bhargava
AVP - Business at VAYUZ Technologies Pvt. Ltd. · | 22 upvotes · 342.4K views
Needs advice

Hi Community! Trust everyone is keeping safe. I am exploring the idea of building a #Neobank (App) with end-to-end banking capabilities. In the process of exploring this space, I have come across multiple Apps (N26, Revolut, Monese, etc) and explored their stacks in detail. The confusion remains to be the Backend Tech to be used?

What would you go with considering all of the languages such as Node.js Java Rails Python are suggested by some person or the other. As a general trend, I have noticed the usage of Node with React on the front or Node with a combination of Kotlin and Swift. Please suggest what would be the right approach!

See more
Replies (9)

Use the language which works well for the developers you have or have available. If you're starting, building a first iteration is far more important than worrying about what language might be best to solve a problem you may never have.

When hiring, look for developers, not "node developers" or "java developers" having people who recognise and are willing to adapt means you can have the flexibility you will need to solve as-yet unforeseen issues. Hire people who are wed to a specific language and you will be bound to that language, regardless of whether it's most appropriate or not.

See more

For online banking, it'll be less computation intensive and more data intensive. So, Rails will be better than Python. I'll not recommend Node.js as it's not as scalable as those. If I had to choose indepently I would took Go.

See more

Typescript reduces many errors and makes potentially big app more maintainable. For banking app typed language is must have, so if not node than it could be anything typed, but not python or ruby. Also you can search benchmarks by yourself - ruby is the slowest language in the world, python comes next, javascript is on top of interpreted languages by speed.

See more
Varun Sharma
CTO at Nugen Computer & I.T. Services · | 5 upvotes · 54.7K views

HI Shivam, If you the only person who is going to develop the full application then I will suggest you to go for Node.js because you will have to deal with one language only i.e. Javascript. And if you are thinking about scaling then do not worry. Nodejs with mongodb make good application. Capital One bank, Paypal, Linkedin and so on companies shifted themselves to Nodejs. Even if you go for Ruby, it has GVL which again makes it work in single thead. If you want to manage concurrent requests in Ruby then you have to manage by introducing Rubinius/jRuby. If we talk about the deployment of Nodejs, it require less resources as compare to other. I have deployed inventory solution right now using Reactjs with Node.js stack and it is pretty much good. I have also deployed apps in Ruby as well. However, node is fast as compare to Ruby and you can scale it easily. I am not saying Ruby is bad. I work in Ruby as I told you above. But these are the real facts.

You can checkout this link :-

See more
John Akhilomen

Since it's a banking app, I'd advice you go with Python for the backend because of the data analysis you'd be doing in your app. I see you doing some data analysis since it's a banking app. Python is a powerful language for data analysis. And for web, yes I'd advice Node with React, and for mobile, Node with a combination of Kotlin and Swift. Don't even try going hybrid for this kind of application. It's best going native.

See more
Amit Mor
Software Architect at Payoneer · | 3 upvotes · 54.5K views

As others mentioned, the problem domain is around data. From my experience, data means strongly typed entities. It might be good however to start off with a dynamic language such as Python (with Django) just to build a prototype, but once the models have been proved to be valid I'd go with statically typed language such as java/Go (I prefer Go but that's a whole different conversation) as you get compile time guarantees for type safety.

An alternative (or addition) to all of the above is the use of 'strong protocols', such as Protocol Buffers, Avro, Thrift and the likes. In this case you get type safety and stability between communicating backend services, while deciding and changing on whatever backend service language you want. That goes to say that your problem is not related to programming language decision but to a much profound understanding of what's important for the business to be created and be valuable.

As a general note, I don't think you should go, if you've got commercial aspirations, with any language that you'd have hard recruiting people who actually know what their doing. In Israel it would mean take Kotlin out of the equation

See more
Chris Capistran
Software Engineer at Ultra Mobile · | 3 upvotes · 54.5K views

The reason why companies are switching to nodeJS is because it unifies all development under a single language.

If you are a one man team you can start developing anywhere on the stack without the overhead of switching languages at each layer. If you have a large team, your DBAs, your core service team, your application team can all read each others code.

You can build a serverless backend using nodeJS and cloud services( AWS, Azure, etc.) that is extremely scalable. A front end framework (ReactJS(Web/mobile), ReactNativeJS(mobile optimized) all in Javascript. If you need to optimize performance for mobile further you can contract an iOS Developer to build in Swift or an Android developer to build it Kotlin and give them keys to use your nodeJS apis.

See more

You should not go with react,kotlin and swift those are very colourful languages but java ,node.js etc are colourful yet they have depth. You should only go with kotlin if you want to use android studio it is highly compatible. So its your choice . May you choose the best

See more
Jay Rathod
Software Developer at Software Development & Design Services · | 1 upvotes · 54.5K views

node is convenient.

See more
Decisions about Rails and Ruby
Weverton Timoteo
Shared a protip

12 Ruby Gems We use at SourceLevel and Why:

Text Handling & Formatting

We are heavy Markdown users! We produce internal documentation in Markdown. The docs page is a static site entirely written in it (and built with Middleman).

In the main app, we use markerb to parse markdown content and convert it to HTML. Comments to Github, issue explanations and repository badges are examples of markdown usage. Although its repository is archived and doesn’t accept contributions anymore, it does a pretty good job. It works with both kramdown and redcarpet. We chose redcapet as our processor.

Another useful gem is charlock_holmes. As accurate as Sir Arthur’s character Sherlock Holmes, this gem detects character encoding for given files or chunks of text. Under the hood, charlock_holmes benefits from the set of libraries from ICU.

Database & Storage

We love PostgreSQL! It is reliable, open-source and has lots of functionalities that make it attractive. The ability to create materialized views is one of them.

Working with views in Rails is kind of messy. That’s why we added scenic to the SourceLevel main app. This gem adds methods to ActiveRecord::Migration that allow managing views in migrations.

We use materialized views to scope content. If you don’t know what it is, here it goes: it’s a SQL query whose results work as stored in a regular table. Long-running queries or segmented results can be fetched from appropriate views reducing both time and code complexity.

pghero gem, besides the ability to kill them if you need, also ships with a UI for you to monitor other performance indicators.

Another essential dependency is dalli. It does an incredibly good job of storing and retrieving memcached records. It’s thread-safe and allows us to run Rails.cache smoothly throughout the codebase.

Read more in our blog post :)

See more
Andrew Carpenter
Chief Software Architect at Xelex Digital, LLC · | 16 upvotes · 254.8K views

In 2015 as Xelex Digital was paving a new technology path, moving from ASP.NET web services and web applications, we knew that we wanted to move to a more modular decoupled base of applications centered around REST APIs.

To that end we spent several months studying API design patterns and decided to use our own adaptation of CRUD, specifically a SCRUD pattern that elevates query params to a more central role via the Search action.

Once we nailed down the API design pattern it was time to decide what language(s) our new APIs would be built upon. Our team has always been driven by the right tool for the job rather than what we know best. That said, in balancing practicality we chose to focus on 3 options that our team had deep experience with and knew the pros and cons of.

For us it came down to C#, JavaScript, and Ruby. At the time we owned our infrastructure, racks in cages, that were all loaded with Windows. We were also at a point that we were using that infrastructure to it's fullest and could not afford additional servers running Linux. That's a long way of saying we decided against Ruby as it doesn't play nice on Windows.

That left us with two options. We went a very unconventional route for deciding between the two. We built MVP APIs on both. The interfaces were identical and interchangeable. What we found was easily quantifiable differences.

We were able to iterate on our Node based APIs much more rapidly than we were our C# APIs. For us this was owed to the community coupled with the extremely dynamic nature of JS. There were tradeoffs we considered, latency was (acceptably) higher on requests to our Node APIs. No strong types to protect us from ourselves, but we've rarely found that to be an issue.

As such we decided to commit resources to our Node APIs and push it out as the core brain of our new system. We haven't looked back since. It has consistently met our needs, scaling with us, getting better with time as continually pour into and expand our capabilities.

See more

I have used both the tools . Both of them are super awesome , very reliable and their learning curve is also super easy. But, the reason I choose Ruby on Rails over Django is the fact that the dependency injection is super easy in Rails than Django. What I mean is the fact that, Django requires a lot of import statement to do a lot of work, which remembering is not so easy and even after that you may need to write a lot of code. But Ruby on Rails uses gem to add addition feature or dependency in the project. Which requires just copying the gem statement from github and pasting it in the Gemfile, then running bundle install(these days just bundle works super fine). And there you are with the new feature in your app. You can see this with the example of Authentication, where in Django you require several steps like adding class based views and many more, but in rails it's just as easy as installing the 'devise' gem . And if you want to make it beautiful use bootstrap_template gem to make it look prettier. Now with Rails 6 , Rails is a total developer's fervent friend because it has come up with features like Action Mail and Action Text.

See more

Since I came from python I had two choices: #django or #flask. It felt like it was a better idea to go for #django considering I was building a blogging platform, this is kind of what #django was made for. On the other hand, #rails seems to be a fantastic framework to get things done. Although I do not regret any of my time spent on developing with #django I want to give #rails a try some day in the future for the sake of curiosity.

See more

As a small team, we wanted to pick the framework which allowed us to move quickly. There's no option better than Rails. Not having to solve the fundamentals means we can more quickly build our feature set. No other framework can beat ActiveRecord in terms of integration & ease-of use. To top it all of, there's a lot of attention paid to security in the framework, making almost everything safe-by-default.

See more
Christopher Wray
Web Developer at Soltech LLC · | 6 upvotes · 230.1K views

When I started on this project as the sole developer, I was new to web development and I was looking at all of the web frameworks available for the job. I had some experience with Ruby on Rails and I had looked into .net for a bit, but when I found Laravel, it felt like the best framework for me to get the product to market. What made me choose Laravel was the easy to read documentation and active community. Rails had great documentation, but lacked some features built in that I wanted out of the box, while .net had a ton of video documentation tutorials, but nothing as straightforward as Laravels. So far, I am happy with the decision I made, and looking forward to the website release!

See more
Thomas Miller
Talent Co-Ordinator at Tessian · | 16 upvotes · 131.3K views

In December we successfully flipped around half a billion monthly API requests from our Ruby on Rails application to some new Python 3 applications. Our Head of Engineering has written a great article as to why we decided to transition from Ruby on Rails to Python 3! Read more about it in the link below.

See more
Mike Fiedler
Enterprise Architect at Warby Parker · | 3 upvotes · 110K views

When I was evaluating languages to write this app in, I considered either Python or JavaScript at the time. I find Ruby very pleasant to read and write, and the Ruby community has built out a wide variety of test tools and approaches, helping e deliver better software faster. Along with Rails, and the Ruby-first Heroku support, this was an easy decision.

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of Rails
Pros of Ruby
  • 851
    Rapid development
  • 650
    Great gems
  • 605
    Great community
  • 481
    Convention over configuration
  • 417
  • 349
    Great for web
  • 344
    Beautiful code
  • 311
    Open source
  • 270
    Great libraries
  • 260
    Active record
  • 106
  • 89
    Easy to learn
  • 87
    Easy Database Migrations
  • 79
    Makes you happy
  • 74
  • 62
    Great routing
  • 53
    Has everything you need to get the job done
  • 41
    Great Data Modeling
  • 38
    MVC - Easy to start on
  • 38
  • 35
    Easy setup
  • 26
    Great caching
  • 25
    Ultra rapid development time
  • 22
    It's super easy
  • 17
    Great Resources
  • 16
    Easy to build mockups that work
  • 14
    Less Boilerplate
  • 7
    API Development
  • 7
    Developer Friendly
  • 6
    Great documentation
  • 5
  • 5
    Easy REST API creation
  • 4
  • 4
    Great language
  • 4
    Haml and sass
  • 4
    Easy to learn, use, improvise and update
  • 2
    It works
  • 2
    Jet packs come standard
  • 2
    Easy and fast
  • 2
  • 2
  • 1
    Convention over configuration
  • 1
    Easy Testing
  • 1
  • 1
    It's intuitive
  • 601
    Programme friendly
  • 535
    Quick to develop
  • 487
    Great community
  • 467
  • 429
  • 271
    Open source
  • 233
  • 203
  • 155
  • 138
    Powerful one-liners
  • 67
  • 57
    Easy to learn
  • 49
    Easy to start
  • 41
  • 36
  • 30
  • 20
    Fun to write
  • 19
    Diverse web frameworks
  • 12
    Reads like English
  • 9
  • 9
    Makes me smarter and happier
  • 8
    Elegant syntax
  • 7
    Very Dynamic
  • 6
  • 5
    Programmer happiness
  • 4
    Generally fun but makes you wanna cry sometimes
  • 4
    Fun and useful
  • 4
    Object Oriented
  • 3
    Elegant code
  • 3
  • 3
    There are so many ways to make it do what you want
  • 3
    Easy packaging and modules
  • 2
    Primitive types can be tampered with

Sign up to add or upvote prosMake informed product decisions

Cons of Rails
Cons of Ruby
  • 22
    Too much "magic" (hidden behavior)
  • 13
    Poor raw performance
  • 11
    Asset system is too primitive and outdated
  • 6
    Heavy use of mixins
  • 6
    Bloat in models
  • 3
    Very Very slow
  • 7
    Memory hog
  • 7
    Really slow if you're not really careful
  • 3
    Nested Blocks can make code unreadable
  • 2
    Encouraging imperative programming
  • 1
    Ambiguous Syntax, such as function parentheses

Sign up to add or upvote consMake informed product decisions

What is Rails?

Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern.

What is Ruby?

Ruby is a language of careful balance. Its creator, Yukihiro “Matz” Matsumoto, blended parts of his favorite languages (Perl, Smalltalk, Eiffel, Ada, and Lisp) to form a new language that balanced functional programming with imperative programming.

Need advice about which tool to choose?Ask the StackShare community!

What companies use Rails?
What companies use Ruby?
See which teams inside your own company are using Rails or Ruby.
Sign up for Private StackShareLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Rails?
What tools integrate with Ruby?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

Nov 20 2019 at 3:38AM


Oct 24 2019 at 7:43PM


Jun 6 2019 at 5:11PM


What are some alternatives to Rails and Ruby?
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort.
Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.
It is a web application framework with expressive, elegant syntax. It attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as authentication, routing, sessions, and caching.
Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
See all alternatives