In the dynamic world of software and development practices, JetBrains’ State of Developer Ecosystem 2023 survey unveils key trends shaping the preferences and behaviors of 26,348 developers from around the globe.

This comprehensive overview provides insights into the ever-evolving domain of programming languages and diverse tools and technologies employed by developers.

Developers are consistently upskilling

One notable trend is the survey’s emphasis on learning new programming languages. Python (27%), JavaScript (24%) and Java (21%) lead the list of languages respondents are actively learning or have recently picked up. Python aced JavaScript in language learning goals as there has been consistent growth in Python’s adoption across various domains. The survey indicates that Python’s usage spans diverse areas, with data analysis (47%), machine learning (42%) and web development (40%) emerging as the top use cases.

Over 50% of those who are learning new languages do it out of interest, while 44% and 43% of learners are motivated by personal projects and keeping up with the latest trends, respectively.

Tutorials emerge as the most useful content format (62%), followed by news articles (55%) and industry trends (54%). It’s interesting to note that developers tend to access IT news through various avenues, including social media (50%), IT-focused websites (48%) and YouTube (45%). Of the social sites, respondents reported that they actively use accounts on GitHub (76%), X (Twitter, 48%), LinkedIn (48%) and Stack Overflow (47%).

When it comes to learning preferences, the survey results suggest that developers exhibit a practical approach. A majority (67%) prefer learning through documentation and APIs, indicating a desire to grasp the fundamentals before delving into real-world application scenarios. This aligns with the statistic that 75% of respondents have abandoned learning courses or programs before completion. Among the reasons for discontinuation, 46% attribute it to time constraints, and 39% find the course content uninteresting.

Tools and technologies used in DevOps environments

Docker was the top choice for virtualization or containers used during development at more than half of respondent companies, with “none at all” a second pick at 39%. Kubernetes was selected by nearly a quarter of respondents (23%), and a small minority use Vagrant or other options. Moreover, approximately half of the respondents are running multiple applications containers, using a single container for an application as well as backup services and relying upon dockerized utilities, emphasizing the most common trends entailing container usage.

Docker was also the most favorite server templating tool, with 64% of respondents opting for this choice. Vagrant and Packer trailed vastly behind at 5% each, and once again, “None” was a surprisingly high selection, with nearly a third of respondents opting to use no such tools.

Intermediate to advanced Docker familiarity accounted for nearly two-thirds of respondents’ answers (63%) having at least a working knowledge of Docker processes. A fifth of the responses indicated little familiarity with Docker, and slightly less indicated a basic knowledge of the concept. Over half of respondents (58%) indicated intermediate to advanced Docker Compose familiarity, while 41% reported little awareness of it.

Among the container orchestration services being used in production, Kubernetes is a strong favorite with over a quarter of respondents choosing Amazon products such as ECS / Fargate or EKS. In addition, the use of Kubernetes increased by 16% over the past year. Kubectl and cloud provider consoles/CLI accounted for 81% of tools used to work with K8s clusters, whereas Kubernetes-related tools accounted for nearly half of all answers. Furthermore, the number of people not very familiar with Kubernetes dropped by 9%.

RabbitMQ and Kafka were the most opted tools being used for messaging and delivery at 49% and 46% usage, with Amazon SQS in use at about a fifth of respondents’ organizations. However, message brokers/queues were only in use at 35% of the companies surveyed.

Organizations becoming better educated on importance of testing

The participants in this survey reported that 96% of testing is being done in-house. The number of organizations where more than half of QA professionals do only manual testing is just 27%. This means that the majority of organizations (73% of respondents) staff 1-3 QA per 10 developers.

QA professionals rely on testing tools and frameworks. This year, JUnit is being used by 33% of respondents. JUnit is a framework for unit testing, usually the business layer.

Unit tests still make up the biggest piece of the testing puzzle, reportedly present in 63% of the software projects survey respondents work with. 83% of the respondents are writing unit tests themselves, and 80% of respondents reported that testing is an integrated part of their overall software development process. Despite increased awareness and legislation around accessibility, only 14% of respondents are doing accessibility testing as part of their current process.

Almost half of respondents (46%) reported test case design being a part of their QA process. The most popular design technique was based on use cases (51%), followed by user stories (39%). That said, 41% of respondents are using Office documents to store test cases vs. a specialized test case tool, and 34% admitted to using no specific tools. Of those who are using test management tools, TestRail was first (21%), followed by Azure (17%) and then Xray for Jira (14%).

Cross-platform delivery of mobile applications is here to stay

In terms of mobile matters, 87% of survey respondents develop for Android and 58% develop for iOS. Another 3% develop for “other” mobile operating systems, which include some of the operating systems, such as webOs and Tizen, that have yet to see a lot of mainstream usages.

More than 50% of respondents are using cross-platform frameworks to reach both Android and iOS from a single code base. Modern frameworks are being used with 47% of respondents reported, developing applications with Flutter and 36% use React-Native.

When looking for an integrated development environment for developing mobile apps, developers overwhelmingly agree that the most important features are those that facilitate debugging. 61% of respondents ranked being able to run the application on devices and emulators as the number one consideration, followed by SDK managers, device managers and device logs, which are all closely related topics.

Conclusion

To sum it up, this survey provides a comprehensive snapshot of the evolving landscape in software development. From prominent languages like Python, JavaScript and Java to cross-platform frameworks in mobile application development, developers showcase a dynamic and adaptive spirit.

As the software development ecosystem continues to evolve, these trends reflect the industry’s resilience and commitment to staying at the forefront of technological advancements.

Subscribe to the Developer Insider Newsletter

From the hottest programming languages to commentary on the Linux OS, get the developer and open source news and tips you need to know. Delivered Tuesdays and Thursdays

Subscribe to the Developer Insider Newsletter

From the hottest programming languages to commentary on the Linux OS, get the developer and open source news and tips you need to know. Delivered Tuesdays and Thursdays