Ruby on Rails vs Python and Django: Which is better?

An insider's perspective on Python versus Ruby for web development

Sonya Jendoubi

2015/06/09

Back in the summer of 2013 we began the process of brainstorming and formulating the curriculum for a new range of web development training courses and bootcamps to be launched under the RocketU banner.

Front-End TechnologiesFrom a front-end development perspective the main pieces fell into place pretty easily — HTML, CSS, JavaScript and jQuery are the core components that are processed in the browser — so these were no-brainers. Then it was just a case of considering how deep to dive into areas such as newer HTML5 and CSS3 features (Canvas, Geolocation, Local storage, etc.) and what to focus on in terms of frameworks and templating (Mustache, Angular JS, etc.)

Back-End TechnologiesOf course, the other side of the HTTP equation comprises all the server-side technologies that are used to retrieve and process data and then generate and serve the HTML documents and other resources back to the browser.

The responsibility for processing incoming requests, interacting with various other technologies (databases, web services, etc) and then delivering the initial HTML document back to the browser falls to a server-side programming language and, usually, an associated framework.
Ruby on RailsWhereas on the client side the choices are pretty well fixed — HTML, CSS, JavaScript — there are a range of server-side languages and frameworks that can be used. At the time that we started brainstorming RocketU the predominant candidates for the roles of language and framework were Ruby and Rails - that seemed to be what everyone else was offering on their curriculums and the initial thought was that we should follow suit.

Pros and ConsRuby on Rails is extremely versatile and has a very strong community around the web development framework of Rails. It has great open-source libraries that can help make development a lot faster. A lot of startups choose to use this framework for ease and speed of development.

On the other hand, because the framework is so extensive, it can be quite cumbersome to do custom designs and doing anything that is outside of the framework's scope. A lot of developers find the framework conventions quite annoying and bypass the framework altogether. Many prefer lighter frameworks.

Python and DjangoAt RocketU, some of us felt that other languages may offer students more opportunities. In particular, some of us had experience of Python and Django and felt that they would be better candidates. So, before just jumping on the Ruby/Rails bandwagon, we decided to reach out to a number of technology companies and get their input.

We found that there was a message coming back that Python and Django were indeed highly regarded in the community, and that CTOs would be keen to recruit developers with Python experience. The other feedback was that there seemed to be a limited number of Python developers available, certainly fewer than for Ruby and PHP for example.

Pros and ConsThe main attractions of Python as far as we were concerned were:

+ Straightforward syntax
+ Enforces good practices, such as indentation
+ Robustness
+ Scalability
+ Extensive standard library (often referred to as coming with "batteries included”)
+ Dynamic user community and events
+ Used extensively in the scientific community

"At the time of writing (July 2014), Python is currently the most popular language for teaching introductory computer science courses at top-ranked U.S. departments. Specifically, eight of the top 10 CS departments (80%), and 27 of the top 39 (69%), teach Python in introductory CS0 or CS1 courses."

Another consideration is that there is a large scientific and research community that contributes a lot to Python and opens up more job opportunities to developers and engineers. Add that to the facts that Python has a major role in the Internet of Things (IoT) movement that is driving the connection of hardware devices to the Internet, and is the operating system for devices such as the Raspberry Pi, we see it as an exciting language that will provide developers with a fantastic springboard into emerging technologies and applications.

Of course this is not to say that we consider Python and Django to be the only viable choices for server-side language and framework. Other candidates such as Ruby and PHP are hugely significant. PHP, used by some serious players, probably powers more websites than any other language out there and Ruby has certainly placed its stake in the web technology landscape, but we wanted to focus on giving students a thorough knowledge of one core language and framework, rather that trying to cover all bases.

To summarize, whilst RocketU is the leader in creating production-ready Python developers, it’s also important to say that we have no intention of ignoring other languages and frameworks that we’ll be adding live online and in-person courses and modules to cover these and a range of other web-tech topics over the coming weeks and months.

This article is a guest post by Sonya Jendoubi, a member of the RocketU education team at RocketSpace. This blog is not written by Switch. The author is responsible for the content.

RocketU is the education division of the hugely-successful technology campus, RocketSpace. RocketU is immersed in the RocketSpace campus giving students not only a first-class technology education, but also access to some of the hottest startups and companies on the planet. Learn more about RocketU on Switch.