This post, authored by CircleCI Senior Technical Content Marketing Manager Jacob Schmitt, was originally published on The New Stack.
One of the privileges of working in the continuous integration space is the unique perspective it offers into how software teams organize their work to deliver value quickly without sacrificing quality, security, or developer happiness.
At CircleCI, we support more than 2 million developers running 90 million build, test, and deploy jobs each month. In our annual “State of Software Delivery” report, we analyze data from over a quarter billion workflows. Using this data, we can determine the habits and practices that lead to DevOps success so we can share these learnings and benchmarks with the community.
Each year we examine workflow data to illustrate how teams on our platform perform relative to four key metrics:
- Duration: The length of time it takes a workflow to run
- Throughput: The average number of workflow runs per day
- Mean time to recovery: The average time between a workflow’s failure and its next success
- Success rate: The ratio of successful runs to total runs for a given time period
This research also surfaces interesting trends around the tools and technologies teams use to perform their work. In this report, we’re going to dig into data around the most popular programming languages among organizations building on CircleCI. The following chart illustrates trends in the volume of work performed using the 25 most popular programming languages on our platform.
Figure 1: The top 25 programming languages used on CircleCI, ranked by volume of work performed, 2019–2021.
Before we get started, a quick caveat on the data: Because our dataset is so large, a massive number of workflow runs are required to register a change in language rankings. To reach the top 25, a language needs to be used in over 150,000 workflow runs. To reach the top 10 requires millions.
What this means is that, unlike other language trends reports that use metrics such as Google searches, GitHub stars or open source repository data to determine language popularity, the following results are skewed toward well-resourced teams that use cutting-edge technology and commit many changes each day. However, even smaller teams and startups can use these trends and the SOSDR benchmarks to identify cultural and technological changes that will help them compete with the world’s best software delivery teams.
The data used in the 2022 State of Software Delivery report represents workflows run between Dec. 1, 2019, and Sept. 30, 2021. It was filtered to include only projects that use GitHub as their VCS, have at least two contributors and have run workflows on CircleCI at least five times. In all, this constitutes data on more than 250 million workflows, from more than 43,000 organizations and over 290,000 projects.
Now let’s take a look at three of the most interesting language trends observed on our platform.
What are the reasons behind TypeScript’s ascendance as the most commonly used language on CircleCI? First and foremost, type safety enables developers to catch bugs right in their IDE (integrated development environment) or at compile time rather than at runtime, reducing the risk of shipping bugs into production. Types also support rapid onboarding and collaboration across projects by making code easier to read, refactor and share. These productivity and confidence-boosting benefits are a key driver of TypeScript’s adoption at the enterprise level and are a natural complement to the developer experience improvements that continuous integration provides.
Hashicorp Configuration Language jumps into the top 10
HashiCorp Configuration Language (HCL) is a declarative configuration language used with HashiCorp’s cloud infrastructure automation tools, most notably Terraform. A superset of JSON, HCL is intended to provide a human-readable config language — with support for comments, variables, and functions — that is interoperable with machine-generated JSON. This provides DevOps teams the flexibility they need to provision and manage cloud environments at scale.
Usage of HCL on CircleCI has grown steadily over the past several years, climbing three spots since 2019 to become the ninth-most popular language used on the platform. This is not entirely surprising, as HCL also appeared on the list of fastest-growing languages in GitHub’s 2018 and 2019 “State of the Octoverse” reports. What it suggests is that infrastructure as code (IaC) has crossed the chasm from individual practitioners to widespread adoption among organizations delivering software at scale.
HCL is not only the ninth-most popular language used on our platform, but it also has the second-fastest MTTR behind only Gherkin (more on that in a moment) as well as the eighth-shortest duration. Combining HCL’s developer-friendly syntax with the well-known speed and standardization benefits of IaC tools results in lightning-fast deployment workflows and even faster debugging.
Gherkin brings behavior-driven development into the top 20
Like HCL, Gherkin (number 19 on our list) is a domain-specific language used to define test scenarios in Cucumber, an open source testing tool that supports behavior-driven development (BDD). Gherkin follows a highly readable Given-When-Then syntax that allows nontechnical stakeholders to both define expected behaviors in the planning stages of the development cycle and verify that behavioral requirements have been met during acceptance testing.
An offshoot of test-driven development (TDD), BDD breaks down traditional barriers between product owners and developers by establishing shared expectations around product behavior, without specifying how features should be implemented under the hood. Gherkin’s appearance on our list in 2020 and subsequent rise in 2021 suggests that organizations are increasingly prioritizing cross-team collaboration and user experience from the outset of the development process.
Notably, Gherkin projects had the fastest MTTR of all languages measured on our report. This may imply that Cucumber’s detailed error reporting gives developers highly actionable information on which to focus their debugging efforts. And, as automated acceptance testing sits near the top of the testing pyramid, it is safe to assume that more comprehensive unit and integration tests at earlier stages of the pipeline catch more significant code defects, making remediation at this stage comparatively straightforward.
Taken together, these three data points tell a compelling story: Elite software delivery teams are adopting human-friendly tools and practices that allow them to automate and scale while also eliminating friction for developers and managers. The ability to move quickly is critical in today’s competitive ecosystem, but just as important is an organization’s ability to attract talent, keep employees happy and tear down information silos and other obstacles to team success.
From development languages to testing frameworks to deployment scenarios, high performers are gravitating toward tools that encourage collaboration, repeatability, and productivity.
At CircleCI, we’re building toward a world where software is an idea problem, not a delivery problem. To learn more about how the world’s best development teams use continuous integration and delivery to boost developer happiness and ship quality software faster, download the 2022 State of Software Delivery report.