The other day a mechanical engineer (i.e., non-programmer) who had never programmed before asked me to explain what Ruby on Rails was. I simply replied it was a “web application framework.” Of course, that lead to the next question…
What is a web application framework?
Now of course, I could have just replied with another technical answer from Wikipedia like it’s a “software framework that is designed to support the development of dynamic websites, web applications and web services.” But predictably, that would have lead to even more questions and I would have ended up going down a deeper rabbit hole.
So I came up with an analogy
The Ruby on Rails framework is basically like a car model kit. It gives you some “components” (e.g., libraries and templates) so you can assemble a dynamic website in less time than it would take if you had to write the whole thing from scratch.
In a sense, a web application framework prevents you from re-inventing the “wheel”
In the past, programmers might have had to hand-write complex SQL queries (with all kinds of potential for mistakes) when wanting to retrieve data from a database to display on a web page. With Ruby on Rails, you get an Active Record Query Interface “wheel” (or component) to help you do this a bit more easily.
All analogies eventually break down if you try and take them too far
So I’m curious. How do you explain Ruby on Rails to other non-programmer types?