One of the amazing outcomes of building Workshape.io is access to uncommon data sets that tell us something we might otherwise not know. By asking our users to describe the work they want as 'time-distributed-over-tasks', we are not only able to aggregate and segment primary data, but also present it in a way that has never been seen before.

For our second study (you can check out our first - The Problem with Job Titles here) we thought it would be fun to look at some of the major programming languages that power the open source world. Specifically, we wanted to know how two of them directly compared to each other. We all know the technical and philosophical differences between Python, Ruby, PHP and the rest, but what is the impact of those differences on the people who use them? Does your choice of programming language influence how you spend your time?

Python vs Ruby: The Data Set

For this dissection, we took Workshapes from users who had selected Python or Ruby in the input field for 'desired technologies'. The above venn diagram shows that Python was a more common skill listed by developers on our platform. There was a reasonable overlap of skills but the majority in each camp cited one or the other as a technology they would like to work with.

These two groups were compared against the declared seniority level, secondary skills distribution and of course, time distribution over universal aspects of software engineering. Here's what we found:

Python vs Ruby: Seniority distribution

At Workshape.io, we collect information from users about the seniority of the next role they want. We have 4 levels of seniority as shown above.

Our definition of 'Mid-weight' level is an engineer who is considered a competent team member and trusted to produce quality work without the need for extensive support. This was the level the median Pythonistas in our platform declared themselves to want in their next role.

Our definition of 'Senior' level is an engineer who is seasoned enough to be trusted with decisions that impact performance of the system, and have responsibilities to mentor junior members of staff. 'Senior' was the level that the median Rubyists declared to want in their next role.

We make no firm conclusions from this distribution. We only underline that our platform asks users for their desired futures - the seniority level is level you want in your next role - and so perhaps we can speculate that Rubyists have a slightly stronger inclination than Pythonistas to think about career positioning, relative status within a team or a requirement for greater autonomy for their next role.

Python vs Ruby - Most common secondary skill

The ubiquitousness of JavaScript was confirmed in our analysis of secondary skills - technologies other than Python or Ruby listed by the engineers in this experiment. JavaScript was by far the most commonly listed secondary technology for both Python and Ruby developers. A number of skills were common to both sets outlining that even though it may be common to choose one language over the other, the supporting skills used remain somewhat similar.

Python vs Ruby - Secondary skills distribution

We standardised the two data sets to account for slightly different sample sizes and then compared which secondary skills were more prevalent. We hoped this would help us identify more trends in the data. As you can see in the above infographic the data gives quite a clear picture.

Python developers tend to have a stronger affiliation with back-end/lower level technologies whilst Ruby developers seem to be more aligned with the web and mobile. Python developers have a higher tendency to be interested in machine learning and data science. Ruby developers seem to work with more Javascript frameworks.

Something not shown in the illustration was that Chef was the most popular provisioning tool for Ruby developers whilst Ansible was more commonly used by Python developers.

Python vs Ruby: Average Workshapes

For the final part of this study we looked at the average workshapes for the developers in each cohort. You can see in the above infographic, that despite the technical differences between the two languages, the overall time distribution is roughly similar - both aggregates presented well rounded Workshapes, indicating engineering work across the tech stack. This is not too surprising given the popularity and diversity of each language.

The difference between the two reinforced our findings in the skills distribution sections:

In both sets Back-end Engineering is where the average developer wants to spend most of their time

There is strong similarity in Architecture, Operations, Code Review and Documentation

Pythonistas are more aligned to Data Science with a difference of about 7%

Pythonistas seem to want to spend slightly more time in Analysis

Rubyists are slightly more Front-end focussed and seem to be more into TDD and BDD

Conclusions

With this study we have discovered and re-inforced some interesting insights about Python and Ruby developers.

Python is the more common language in our data set with the number of Ruby developers being about 2/3 of the the size. There is a clear polarisation of the two skills with only 15% of Pythonistas specifying Ruby as a supporting skill (20% of Rubyists).

The median level of seniority for Python developers was Mid-weight compared to Senior for Ruby developers. Given the subjective and non-quantative scale of this data there could be any number of reasons for this common classification. We'll leave you to draw your own conclusions on this one!

The skills and time load sections both re-inforce that Python is more heavily linked to Data Science than Ruby. Ruby is more of a web technology with strong affinity to front-end technologies and iOS.

Hope you enjoyed the post everyone - we had a blast putting it together. If you have any suggestions for future things to investigate, please do not hesitate to let us know - either in comments in this below, direct feedback via email or by shouting it out on Twitter.

If you want to see how your own Workshapes up, drop by to our homepage and sign up - we'll see you over there!

Thanks for reading everyone.