Ruby on Rails, often referred to as Rails, is an open-source web application framework written in Ruby. It emphasizes convention over configuration (CoC) and the don't repeat yourself (DRY) principle, aiming to simplify and accelerate web development by providing default structures for a database, a web service, and web pages. Rails enables developers to use a model-view-controller (MVC) pattern to organize application programming. Its rich ecosystem of gems (libraries) allows for rapid development of complex web applications.
Capabilities |
|
---|---|
Segment |
|
Ease of use |
|
Deployment | Cloud / SaaS / Web-Based, N/A, On-Premise Linux, On-Premise Windows |
Support | FAQs/Forum |
Training | Documentation |
Languages | English |
The tooling rails provides is second to none.
Beware the amount of dependencies the gems you use introduce as that can be a source of complexity.
We built our entire stack in Ruby on Rails and no complaints so far. There are things it abstracts away from you that have cause problems in the past. Implicit ordering and other such features. However, those minor problems don't take away from the fact that we can get new engineers up to speed incredibly quickly.
Ruby on Rails makes it fast to bootstrap your product and get an MVP running for a small startup. If you're in a larger company the Rails monolith allows you to enforce standards like default database structures, and routing patterns. Ruby Gems make it trivial to add additional functionality to your environment and amazing testing frameworks like Capybara and Cucumber make TDD and BDD a breeze. Although still relatively young at under 10 years old, it's been battle-tested by companies like Twitter and Github. There's something to be had for developers of any level.
Because Ruby on Rails enforces standards, it makes it difficult to sometimes tailor your platform for specific needs; there's the "Rails way" of developing and deploying which can be drastically different than what developers may be used to. Additionally, the monolithic nature of Rails made it difficult to use Rails as a back-end while employing a front-end like Ember.js. Active Model JSON Serialization has alleviated some of this stress and Rails API has been merged into the upcoming Rails 5.0 release making this less of a concern.
Ruby on Rails has allowed us to develop products for customers in record time and enforce standards across our development practice. Our development team has been able to congregate easier around a methodology and embrace code reviews and Test Driven Development.
Ruby on Rails is an excellent choice for developing simple applications or early stage business products due to its full-stack scaffolding capabilities. It provides developers with the ability to quickly get up and running without having to write a lot of code. This means that developers can focus on the functionality they need in order to create their product or application, rather than spending time writing boilerplate. This is amplified drastically by utilizing IDE and intelli-sense tools like Github co-pilot. Development speed is incredible. The framework also has fantastic support from its creators at Basecamp, including various auxillary libraries like Stimulus JS. They continue to release updates and new versions, as well as providing helpful documentation and tutorials that make it easier for new developers to get started. Additionally, there is a thriving community of experts and professionals who are always willing to lend a hand when needed.
On the flip side, Rails has a lot of "philosophical conventions" that doesn't necessarily match with modern web paradigms and also allows critical parts of the website functionality to happen magically. The later is only a problem in the early/middle of adoption, as the debugging can be time-consuming and demoralizing and as a result you'll learn to make fewer mishaps. Pairing Rails with a solid IDE and a tool like Github Co-pilot significantly reduce the painpoints.
Rails provided a quick and efficient starting point for launching a website product. Since the business is in very early stages, the framework fits nicely to provide flexability and speed without terrible overhead costs.
Rails is an old enough framework, but it's still a good choice for nowadays project. It's itself a collection of best practises. Not to mention it has a big ecosystem. Both of them can boost up the projects for startups. Even you can not find the gem to solve your domain problem, you can build your own wheel with Ruby (with some low level gems), it's a joy journey. Rails also inspires many other frameworks, that means if one day you switch to another language & platform, you can still use some of the experiences. For example, you can reuse 80% of the experience in Phoenix framework if you care about concurrency.
Rails is not for newbies. It's productivity based on "I'm experienced about web and I know Rails has solved lots of tricky problems", but not "I have less experience so I need a framework to help me to keep away from those details". It's not actually a disadvantage. But be careful not to shoot your feet. A real problem is, you need to judge what to use and what not to use from a lot of gems. Some of them are awesome, but maybe not very fit for your project. You can build a prototype quickly by using lots of 3rd party gems, but later on you may find the code is hard to modify and upgrade. Choose wisely for Rails built-in parts and 3rd party gems. Rails is extracted from Basecamp, that also means some of the solutions are affected by Basecamp. Many people like to call them the "Rails way". It's not good for everyone, so you still need to judge.
Frankly speaking, Rails and most of other web frameworks are just "shells". You just build a web server to handle requests and delegates your real business layer. But Rails and it's ecosystem gives you a very convenient way to integrate many things you want. Because many tools care Rails integration. Recent years I use Rails to build APIs. And I found I can still use many things from Rails. The ActiveRecord is awesome, for more complex SQL I can use squeel gem, for full-text search I can integrate Elasticsearch, etc. API isn't just a data layer, you still care about authorization, service layer, background jobs, and more. Rails make it easy to do such things. I even think it's better without it's view layer.
The simplicity, the big community of users, and the variety of sites with information about the framework. It is much simpler than Django, and I have experienced that it's much faster using this product.
The simple 'promises' between the user and the developer can act as an entry barrier for newcomers. It is very easy after getting used to it, but still it can be displayed and trained in some way.
I have been developing web applications. It had been made quite easy using this product
We've been using rails across 5 projects that our company is working on and I think it's really true what they say about Rails - "Allows small teams to do big things". We've moved several projects from other Frameworks to Rails mainly because there's a good amount of functionality out of the box and we really don't need to waste time writing code for that. It's allowed us to focus on building the product rather than looking into things like routing and adding things to the database. We've also found that the rails community is really helpful and active which has also helped us grow into better developers. Because we love the rails community quite a few of our developers have also started to give back to it which is really nice to see!
Rails has quite a steep learning curve and also a lot of care needs to be taken into integrating other frameworks such as AngularJS to a Rails app. We've also seen that since there is so much magic that rails takes care of, there is a chance that developers sometimes don't understand what is really happening in the background.
We generally partner up with startups to provide them with technical partnerships. We've realized that rails allows us to build really flexible apps that are able to keep up with the rate of change that startups generally function with and give them the flexibility to change their business model.
My favorite part about Rails has to be the "opinionated" part of it. Yes, you may find yourself battling the framework for some unconventional things, but the time saved using it is enormous! This was also a huge benefit when learning the framework because all tutorials stay consistent with where code goes and configuration. routes go in routes, models are in models, views in views... Comparatively, when trying to learn node.js/express.js, you could find a tutorial on posting a form, then another for handling files, and the server setup is completely different.
I dislike the asset pipeline when dealing with frontend framework, mainly angular.js. Things can get messy fast here in my experience. There are some great resources best practices for connecting angular and rails though. Just the learning curve of angular mixed with integrating it into rails turned me off from using it one of my projects.
Rails is a mature framework at this point, which is a huge benefit. It is easy to scale and in rails 5 they are adding ApplicationCable for dealing with web sockets, which has been a pain point in rails for awhile.
High productivity, readability and maintainability. Ruby is an excellent language to allow the developer to focus on high level software design concepts.
Process based concurrency is very inefficient. Rails used a lot of RAM, is hard to make real time applications with it.
We have several E-commerce and SEM applications. It allows new developer to quickly become productive, and we can implement new feature pretty quickly, clients are always impress when they see features coming out 1 or 2 weeks after they requested, they have teams that use other tools, some based on java, and those take months to deliver features.
Ruby syntax is very friendly and it encourages users to write the code like a story. Object oriented model is the core of Ruby it allows to apply OOP principles in a very easy manner. Moreover it opens new horizons with the full power of meta- programming. There is a joke: when you use lightweight framework for the project after some time you would have a huge monster that will try to do the same things as rails do but in a very pervert way. Rails is a very stable framework that combines one of the best ORM I have ever seen, easy routing module and nice aggregation of useful modules, that make life easier when you are thinking about the security, scaling and maintaining of your application.
The real pain for me was the magic, that is going inside some rails parts. I have a really interesting time debugging it during migration from rails 3.1 to rails 3.4
I have solved different business problems including automated social networks postings, information processing and scheduling of internal processes
The framework is strictly MVC based. Each new user can build a web application with in 20 minutes. The ruby language is user friendly.
Ruby on Rails framework will load too many things at the very beginning. Some of them will never be used by developer. It will make the framework big and slow.
STRM education problems. We make our project totally open-source. Students can make contributions to our project.
ActiveRecord makes dealing with databases a breeze.
One issue with Rails is that release schedule is not stable.
Creating a web application in a quick as easy fashion.
For quick web development, ruby on rails is a wonderful framework that works like a charm. Ruby as a programming language is very easy to code and learn and rails is completely based on ruby. The MVC elements are bound very well in ruby on rails and it enables us to write clean, reusable code. Also there is a very good community for ruby on rails.
As your web application grows bigger, ruby on rails may just slow your app a little bit. This is in comparison to others and this is one major drawback of using ruby on rails.
We have a web based application that uses ruby on rails. The app is used for creating and managing various tests and exams conducted by organizations. Ruby on rails favor quick rapid development when a new idea props out.
The ruby language is rich and natural. The rails framework made development so easy and fast.
It has become way to heavy and way too much "magic" behaviors that have to be learned.
eCommerce. Faster and less costly development with simplified deployment and host.
The thing I like most about ruby on rails is it's Conventions Over Configurations mindset. Everything in rails has a convention of where to place stuff, how to do it etc. If you're following the conventions of rails, the framework lift you a lot of heavy burdens.
The drawback of opinionated conventions. Most of the rails conventions are great and reasonable for normal web development process. But business needs are not always identical and there will come a time we have to do things that rails didn't configured to do. This is the moment rails' magic is dispelled. You have to look into a lot of stuff just to customize something not the rails way.
I've built a few office management systems, ecommerce system, small civic apps with rails. The main benefit of rails is that it's very easy and productive to create a web application. Especially for small typical database driven apps, the productivity of using rails is really high. Also when you're prototyping ideas, a quick and fast rails app can be a huge win.
RoR makes the language easier to learn for novices and it has better code readability. It encourages avoiding code duplication and provides a standard structure for web apps, where all the common patterns are taken care of. The MVC principle promotes modularity and extensibility of the application. It enables the development of features incredibly fast thus productivity is fast. There are lots of publicly available gems (3rd party libraries) to help to build a web app. RoR has a huge active community of developers to ask for help and use their code snippets.
It can be hard to find good documentation. RoR has a slow runtime process that makes it hard to scale the RoR application. The boot time can be really slow depending on the gems and dependencies. Developers don't have total control over the framework architecture, and modules. Lack of stability because it's constantly evolving and this makes it challenging to learn for beginners because you always have to be up-to-date.
RoR was to made to speed up the development process thus it makes it beneficial for projects that have limited time. RoR is perfect for MVPs and small, and medium websites. The Don't Repeat Yorself principle makes RoR projects efficient to maintain. It can be easily extended with new features.
There is a wealth of documentation and community support out there for getting up to speed with Ruby on Rails (RoR) quickly. Most of the ideas you can think of for a new application already have gems / plugins / tutorials that show you exactly how to get what you want without writing a lot of code. In many cases, you can write some code that is your best guess as to how something should work, and it will cover 80% of the cases you need to handle, thus giving you a minimally viable product (MVP) you can bring to market quickly.
Although you can get 80% of what you want quickly, the remaining 20% takes 2x to 4x more time to get than with any other solution we've tried. Both Ruby (the language) and Rails (the framework) were written assuming that they would be used only very specific ways. As your project -- no matter what project it is -- grows, those assumptions no longer fit your use case, and you find yourself fighting the language and framework more than it is helping you. RoR makes it very easy to keep adding scope to your MVP to the point where you have so much technical debt that you end up having to rewrite everything. What was once fast and easy for you to iterate on is now very slow and hard to maintain. It is very easy to get into but hard to master; consequently, it's hard to find qualified RoR talent without paying 2x what it costs for Java Enterprise developers. In short, RoR does not scale as your business scales; it becomes an albatross. Lastly, we hate that it only really runs well on Linux. It barely runs at all on Windows, requiring our team members that use Windows to run a VM just to work with Rails.
Our business needed a way to quickly turn an e-commerce idea into a minimally viable product we could start selling immediately. It was a good fit for our start-up to see if our idea(s) had legs, and to pivot quickly as we found our product-market fit.
Convention over configuration. A rails developer will be able to work on any rails project without a steep learning curve. Rails "magic" lets us focus more on delivering new features instead that the minutae.
Performance is not comparable to other languages/frameworks.
Easy configuration and blazing quick setup for a startup project. Lets us focus on implementing features rather than the structure of the application and inner workings.
One of the great things about Ruby on rails is that it is so easy to read other peoples code. I also love that there are so many great library is that you can plug-in to really enhance your code velocity.
I think that there are some languages like elixir which have better tools for debugging. But overall with a lot of the rails library’s, it has everything that I need on a day-to-day basis.
I’m solving problems in terms of building with SMS chat bots. Ruby on rails is the tool that we use for our backend code. We also use Ruby on rails for different authentication purposes and for some of our view layers with admin tools and with client portal’s.
The framework takes care of all major requirements in a web development workflow : testing, security, common development flows, auth, etc.
The updates to the framework are so rapid that it's hard to keep up sometimes. But i guess, that's its strength too.
We built many things using Ruby on rails : e-commerce system, ride sharing system, startups, marketplace, etc
Rails provides fantastic tooling that helps you to deliver more features in less time. Lots of ready-to-use libraries and gems. Large community, so it's easy to get a support when you get stuck.
Runtime Speed: Ruby on Rails might be "slow", especially for highload projects.
Products of different scale: from start-ups to complex corporate solutions.