Karol Oponowicz
Feb. 22, 2019, 6:33 p.m. | Web Development

What Backend Technology Should I Choose for My Web Application?

One of the most important things to consider when developing a new web application is the backend technology it will be based upon.

Businesses that choose the right technology for the job have a much greater chance of getting their projects off the ground and finding long-term success. On the other hand, the wrong backend technology can have a serious negative impact on the performance of the web application, and it may even lead to project failure.

In this article, we compare three popular backend technologies—Node.js, Ruby on Rails, and Django—to help businesses of all sizes make the right decision when working on a new web application.

Backend Versus Frontend

Before we proceed, we would first like to clarify the difference between backend and frontend to make it perfectly clear where Node.js, Ruby on Rails, and Django fit into the web technology stack.

Most modern web applications consist of two major layers: the backend layer (known as the server side of an application), and the frontend layer (known as the client side of an application). The backend layer is invisible to the user, and it provides the application’s functionality. As the name suggests, the frontend is what the user sees.

While there are many frameworks and various tools to make frontend web development simpler and faster, virtually all frontend web developers use the same core technologies: HTML, CSS, and JavaScript. Things are much more complicated when we move over to the backend. Many backend developers know HTML, CSS, and at least some JavaScript, but they can also use PHP, Ruby, Python, Java, .Net, and their major frameworks to get the job done.

Choosing Backend Technology

For the purpose of our comparison, we’ve decided to single out three backend technologies that have been rapidly growing in popularity in recent years: Node.js, Ruby on Rails, and Django. Each of these technologies is based on a different programming language, and each comes with certain advantages and disadvantages that all businesses should keep in mind when deciding what backend technology to choose for a new web application.

Node.js

Node.js is a popular open source JavaScript run-time environment. It was first released in 2009, and it has since then exploded in popularity. Some of the most noteworthy users of Node.js include IBM, Microsoft, Netflix, PayPal, Walmart, and GoDaddy.

At the moment, JavaScript is the most popular programming language on GitHub, the world’s largest software hosting service in the world, and most frontend web developers already know it. As such, businesses should find it fairly easy to hire skilled Node.js developers.

Because Node.js is built on Google Chrome’s V8 JavaScript engine, it offers very high performance and nearly unlimited scalability. “You can make it scale, and it’s very performant, and every property that we’ve moved over to the Node.js stack has seen an increase in performance,” explained Eric Ferraiuolo, Principal Software Engineer at Yahoo.

One important downside of Node.js that all businesses should be aware of is that it lacks consistency. Its Application Programming Interface (API) changes very often, and there has been a number of backward-incompatible changes since the first version of Node.js was released in 2009, which means that it sometimes takes extra time and effort to maintain the compatibility with the latest version of the Node.js API.

Ruby on Rails

Ruby on Rails is a server-side web application framework written in Ruby. It was first released by Danish programmer David Heinemeier Hansson in 2005, and it’s based on Hansson’s work on the project management tool Basecamp at the web application company of the same name.

Ruby on Rails was at the height of its popularity in 2011. Back then, it basically dominated the server-side market and Ruby on Rails developers were in very high demand. While the demand for Ruby on Rails developers is still there, the popularity of the framework has been on a steady decline for many years now.

It’s not that Ruby on Rails has gotten worse over the years (the exact opposite is true), but its slow runtime speed, lack of flexibility, and the high cost of wrong decisions have made it less desirable in the eyes of many businesses. For example, Twitter decided to abandon Ruby on Rails in favor of Java in 2011.

“We were originally a Rails shop, and I believe we are the largest Rails site in the world, but as we've grown as an organization, and as a service, performance, and encapsulation have become very critical. I wouldn't say that Rails has served as poorly in any way, it's just that we outgrew it very quickly,” said Twitter engineer Evan Weaver.

But for businesses that are not planning to reach the scale of Twitter, Ruby on Rails remains an excellent choice with many advantages, including its high speed of development, vibrant community, fantastic tooling, and strong adherence to standards.

Django

Django is a high-level Python framework maintained by the Django Software Foundation (DSF). Just like Ruby on Rails, it was released in 2005. Its main goal is to simplify the creation of complex, database-driven websites. Considering that Django is now even more popular than Ruby on Rails, it’s pretty safe to say that it has succeeded.

Python is the third most active language on GitHub, and it’s also the most wanted technology according to the 2018 Developer Survey by StackOverflow. The demand for Python developers is so high that they can ask for a significantly higher salary than JavaScript or even Ruby developers.

Some of the best-known companies that use Django include Disqus, Instagram, Spotify, YouTube, The Washington Post, Bitbucket, Dropbox, and Eventbrite. Django is designed to help developers take applications from concept to completion as quickly as possible, making it a great fit for teams working in agile environments. It’s designed with security in mind, and it can flexibly scale to meet any needs.

The only thing to keep in mind is that Django is a monolithic and tightly-coupled product that pushes its users into given patterns, but some see this as an advantage.

Conclusion

With choices abundant, selecting the right backend technology can be a challenge. In this article, we’ve described the advantages and disadvantages of three Node.js, Ruby on Rails, and Django to help businesses make the right choice for their next web application. At the end of the day, there’s no single best backend technology because each technology is suitable for certain use cases and unsuitable for others.

Would you like to know more?
Contact us
Show more