Programming languages are the tools of the trade for software developers. As with any trade, the tools your teams use can impact their workflow. A mountain climber can’t trek a snowy mountain wearing sandals, and your devs can’t reach their goals using the wrong programming languages.
Programming languages can make or break your workflow efficiency and frustrate your devs if they can’t figure them out. This begs the question: What are the best programming languages for dev workflows? And which are the worst? Yishai Beeri, Chief Technical Officer at LinearB, gives his comprehensive take on the subject.
Watch our full interview with Yishai, or read on for a summary of the best and worst programming languages for developer workflows.
Table of Contents
- Using Data to Rank Programming Languages
- The 3 Best Programming Languages for Dev Workflows
- The 3 Worst Programming Languages for Dev Workflows
- Don’t Panic, We Can Help
Using Data to Rank Programming Languages
Yishai ranked the best programming languages for dev workflow using data extracted from 600,000+ pull requests. He measured several metrics, but especially focused on the PR lifespan to determine the best and worst programming languages for dev workflow.
The PR lifespan is the timeframe between the PR’s creation (not as a draft but as a real PR ready for review) to when it is merged. According to Yishai, this period can show you how efficient (or not) your workflow is. Short PR lifespans would indicate better efficiency, while long ones indicate inefficiency.
In his study, Yishai focused on pull requests that contained only one language. He also noted that other factors in dev workflow processes could affect these results. If he didn’t have enough data on a language, he didn’t include its results (that’s how you know he’s serious!).
The 3 Best Programming Languages for Dev Workflows
At the end of his study, Yishai identified three of the best programming languages with the shortest PR lifespans. They’re basically like the mountaineers of dev workflows.
Java has been around since 1995 and has long been a popular language for dynamic website development. It has stood the test of time and developers with Java coding skills are still in high demand.
Yishai’s research found that Java devs had one of the shortest PR lifespans compared to devs using other languages. According to the study, the average PR lifespan of a dev using Java was roughly 15 hours.
Java is a compiled coding language which can often be easier to review than dynamic languages. The short review time results in quicker code deployment and fewer bottlenecks. For this reason, Java takes the top spot as being one of the most efficient programming languages for dev workflows.
Coming in at a close second is C#. C# is a programming language created to fill the gaps of its predecessor C++ (we’ll talk about this later). C# boasts a multi-paradigm framework, making it an excellent programming language for general purposes.
Like Java users, C# users enjoyed short PR lifespans. Based on the data collected by Yishai Beeri, C# users had their code merged and reviewed after 16 hours, on average.
Like Java-based code, C# code is easier to read and review, despite its “verboseness,” according to Yishai. This also makes it a fan-favorite among devs since it doesn’t create many roadblocks.
PHP has come a long way since its early web application days three decades ago. Today, PHP is one of the most in-demand general purpose programming languages due to its easy integration with CMS frameworks like WordPress and Laravel.
Based on Yishai’s data, PHP development created an average PR lifespan of 20 hours — still well below the PR lifespans of Python, Typescript, and Matlab. This 20-hour lifespan lands PHP the third spot in the best programming languages for dev workflows.
In the podcast episode, Yishai expressed surprise and partial skepticism after seeing PHP’s impressive PR lifespan. He said that the reviewers at the end of the PR lifespan might not actually be reviewing PHP-written code properly.
Nevertheless, the numbers don’t lie.
The 3 Worst Programming Languages for Dev Workflows
Coming in at the bottom of the leaderboard are the three worst programming languages: C++, Ruby, and Groovy. These languages yielded the longest PR lifespans out of the 600,000 + PRs reviewed in LinearB’s research. But their PR lifespans weren’t the only things that pushed down their ranking.
C++ tops the list of the worst programming languages for dev workflow. It’s also one of the hardest programming languages to learn. This software development language was built on the back of C and combined with object-oriented programming, which makes it more complex.
Based on LinearB’s data, the average PR lifespan of C++ clocks in at a whopping 140 hours. This PR lifespan is the longest of any programming language by a lot! For reference, that’s 45 hours more than the next worst programming language. You can already tell devs won’t be too happy (nor efficient) working with this language.
Yishai attributes this grueling lifespan to the difficulty of reviewing C++ code. He also hypothesized that older languages like C++ might often be used for maintenance purposes on older codebases rather than for developing new products and features. This could mean code reviewers have the luxury of time, which could have slightly skewed the results.
Ruby is one of the most popular programming languages and forms the architecture and UI for Twitter, Github, and Crunchbase. It’s a high-level dynamic programming language that was developed in the 1990s by a Japanese computer programmer.
Despite its popularity, Ruby takes second place as one of the worst programming languages for dev workflows. According to Yishai’s research, Ruby has an average PR lifespan of roughly 95 hours. While this is significantly less than C++, it’s still an obvious outlier.
Like C++, Ruby can be hard to review and understand at a glance, and it often gives you many ways to do the same thing. This makes Ruby code more challenging to review and merge. Even though it creates a massive bottleneck, Ruby is still a widely-adopted language for some reason.
Coming in as the third worst programming language for dev workflow is Groovy. Like Java, Groovy is an object-oriented language, sharing several functions with other languages like Python.
Based on Yishai’s research, Groovy recorded an average PR lifespan of approximately 50 hours. Though it’s the third worst language for dev workflow, it’s not a huge outlier. In general, the average PR lifespan across languages fell between 40 to 45 hours.
What makes Groovy the third worst isn’t just its PR lifespan. It’s also not very user friendly, which pushed Yishai to place it below other programming languages with similar PR lifespans, like Python. Dev workflow efficiency isn’t just about speed — it’s also about ensuring devs are happy with the tools they work with.
Don’t Panic, We Can Help
If your org uses any of the best programming languages for dev workflow we’ve mentioned, congratulations! But what if you’re using one of the worst programming languages we’ve ranked in this article? Don’t rush to convert all your existing codebases into another language — we’ve got a better solution.
It takes more than a programming language to optimize your workflow and improve your PR lifespan or metrics like cycle time or merge frequency. Workflow efficiency comes from continuous merge — this means shorter PRs, better team communication, and flexibility in how you treat your PRs.
That’s where gitStream comes in. It’s a free tool that optimizes your review times and shortens your PR lifespan. gitStream applies merge standards to your repos, saving you time and reducing bugs. Rule examples include:
- Add estimated review time labels
- Find a code expert (dynamic CODEOWNERS)
- Auto-approve safe changes (like Dependabot updates)
gitStream can help your teams achieve continuous merge and better workflow efficiency. Your teams will experience less cognitive load, streamlined code review queuing, and improved efficiency. Here’s the best part — it doesn’t matter what programming language your org is using!