What is Ruby?
Ruby is a dynamic, general purpose programming language invented in the mid-1990s in Japan. Legend has it that Ruby’s creator, Yukihiro Matsumoto, named his exciting new tool for the birthstone of one of his colleagues. By the year 2000, Ruby had surpassed Python in popularity in Japan and was quickly gaining interest in the English speaking world.
What is Rails?
Rails is a web application framework, written in Ruby, that was derived by David Heinemeier Hansson (DHH) out of work done to create the project management software Basecamp. Rails aims for flexible, pragmatic, and quick development for web applications. Today, Rails is used on over 1 million websites worldwide and continues to be an attractive full-stack web application platform and a leading open source tool.
Why do we love Ruby on Rails?
It’s a great, out-of-the-box tool with a comprehensive feature kit.
It builds better quality code faster and minimizes repetition.
It’s a tool that focuses on helping computers and software achieve greater purposes — benefiting humans in the bigger picture. (This aligns well with our goal to build great software that makes a positive impact on people’s lives).
Why do our customers love Ruby on Rails?
The efficiency of development in Rails is unparalleled. This allows our customers to quickly get applications, even some that are quite complex, off the ground with great cost efficiency. For example, for many common operations, Rails tends to favor one approach over the others. This avoids the time a developer spends making unimportant decisions.
In addition, Rails is a high-quality and mature framework with a rich supporting library ecosystem. It allows your web product to join a large international community that services small businesses and big businesses equally well (for example, Shopify uses Rails).
A few things we’ve learned about Rails
There’s a bit of debate about Rails and scalability. It’s important to remember that Rails is just a framework, and architecture is partly responsible for scalability. Intelligent architecture combined with a Rails application has helped many businesses to scale using Rails technology including some of the world’s busiest websites. If you are building a website and you are worried about scale, make sure the overall architecture supports multi-level caching, the servers support scaling and load balancing, the database is segregated (the database has its own server), and the database platform optimizes performance (such as: Redis plus PostgreSQL).
Rails supports both traditional server template web applications and newer single page web applications. Server template web applications use both the frontend and backend capabilities of Rails; they are simpler and easier to create, but the application needs to communicate with the server to load the entire webpage and can lack the immediate responsiveness to a user’s taps and selections as a result. Single page web applications can be more complex to create but may allow for more involved user interfaces and offer instant responses to users’ actions by only loading portions of the website as needed. A single page web application would typically use something like Angular, React, or VueJS for frontend but it can still use Rails as a backend, allowing your application to rely on some of Rails’ best attributes while handling greater complexity in your user’s browser.
For applications with a lot of computation or data handling, Rails may slow the application down. If this is happening in your application, have a fresh set of eyes take a look at code optimization — this can greatly improve performance outcomes. Likely there are particular portions of the codebase that are performing slowly, and the tooling and shared experiences that come with the Rails community go a long way to support a team addressing performance concerns.
A key advantage of Rails with respect to security is that the software is open source. The Rails developer community is always working to identify new vulnerabilities and provide patches and solutions for them. In versions 4.0 and higher, Rails also has some built-in features that bring out-of-the box security outcomes including encrypted session cookies, the escaping of string data (available in Rails 3.0 and higher), and strong parameters for attribute visibility.
There are also some excellent Ruby gems available that can be simply implemented to enhance the security of your application. For example, Devise, a popular gem that Ballistiq uses often to create user authentication for Rails sites, automatically expires session IDs on sign-in and sign-out preventing breaches through session fixation.
We look forward to working with you on your next project whether its needs will be suited to Ruby on Rails or another technology.