Recently, the well-known analysis company SlashData, after surveying more than 19,000 developers in 155 countries/regions around the world, released the “Developer Report” (20th edition) for the first quarter of 2021. In this report, focusing on tools and fields such as programming languages, machine learning, emerging technologies, and embedded, analyze the application status of development tools and the latest development trends of the developer ecology.
Highlights at a glance:
Programming language development prospects
- Since Google announced at the I/O conference in 2017 that Kotlin has become the first-level development language for the Android system, the number of users of Kotlin has more than tripled;
- In the past year, Rust and Lua became the two fastest-growing language communities of all programming languages.
The latest changes in machine learning
- Unstructured text data is the most common data type in the work of machine learning (ML) developers and data scientists, with a usage rate of 68%;
- The majority (53%) of machine learning engineers and data scientists are professional developers, but in some cases, they also participate in some hobby/student projects at the same time.
- The adoption rate of mini-programs is rising;
- Human brain-computer interface technology, quantum computing, and self-driving cars are still in the field of science fiction.
- Embedded developers are more likely to participate in the industrial Internet of Things, consumer electronics, augmented reality and virtual reality than those who are not involved in embedded software.
- C++ is the most commonly used programming language for embedded developers, and 40% of them use it.
In this survey, SlashData adopted a different approach from the previous TIOBE, Redmonk, Stack Overflow and other lists. It first independently estimated the number of software developers worldwide. As of the first quarter of 2021, there were 24.3 million worldwide active developers. This value is an increase of about 14% compared to the 21.3 million in October 2020, which means that the number of developers worldwide is in a stage of rapid growth.
As a necessary tool for development, the development of programming languages has always been one of the key directions that developers care about.
The increasing use of Python is indispensable to the rise of data science and machine learning (ML). For this, nearly 70% of machine learning and data science engineers say they are using Python.
In comparison, the development of R language, which is often used in data analysis and other fields, is relatively bleak, with only 17% of respondents saying that it is using it.
With nearly 20 years of development, the Java community now has 9.4 million developers
In fact, no matter how serious the external debate on programming languages is, Java, which has been in development for 20 years, is still the foundation of the mobile application ecosystem and one of the most important universal languages for Android development.
According to the survey, since the end of 2017, nearly 2.5 million developers have joined the Java community, which now has 9.4 million developers.
C# has declined, PHP is still popular in the Web field
Among them, C and C++ are the core languages used for device-level and application-level coding in embedded and IoT projects.
In addition, the report pointed out that between the third quarter of 2019 and the third quarter of 2020, the popularity of C# declined. However, after the number of C# users increased by 500,000 developers in the past six months, C# surpassed PHP and returned to fifth place in the ranking.
In the application field, C# has been mainly used for desktop development and other dimensions. In recent years, it has also become the choice of AR/VR and game developers. The reason is that the Unity game engine is being adopted in these fields. related. At the same time, researchers said that the language is “rarely used” in data science and mobile development, so if Microsoft wants to continue to develop C# and make Xamarin and MAUI (multi-platform application UI framework) successful, or there is still a lot of work To be perfected.
Kotlin is growing rapidly, and it is inseparable from the support of Google
In the past three years, Kotlin has risen from 11th to 8th on the list. This trend is largely due to Google’s decision in 2017 to make Kotlin the language of choice for Android development.
However, even so, Kotlin still has a long way to go if it wants to catch up with Java. After all, according to surveys, there are currently twice as many mobile developers using Java to build applications as Kotlin.
The number of Rust users has more than tripled in the past three years
As a programming language with high security, Rust has gained the favour of more and more enterprises, including Google, Amazon, Microsoft and so on. According to the report, Rust has more than tripled its user base in the past three years, from 1.1 million developers in the fourth quarter of 2017 to 2.6 million in the first quarter of 2021.
In addition, Lua is also one of the fastest-growing language communities last year. Some developers engaged in AR/VR and IoT are using Lua to replace languages such as C and C++.
Objective-C is being phased out
In the development of iOS-related applications, Swift is still the default language developed on all Apple platforms, which has also led to the gradual elimination of Objective-C by users. According to the survey, its ranking has dropped from 9th to 12th.
Professional developers are mainly engaged in machine learning research
In recent years, all walks of life have started all in artificial intelligence, machine learning and other technologies. According to the survey, 68% of ML/AI/DS engineers are using unstructured text data, which is also the most common data type for developers. However, audio is the most common type of combined data. 75–76% of the respondents indicated that they will use image, video or text data while processing audio data.
Second, the Tabular data type accounts for 59%, making it the second most popular data type.
According to the survey, 52% of the people who use image data are also video data users. These two data types are mainly used: image classification and facial recognition. These are two key application areas that promote the development of next-generation smart devices, as well as an important technical direction for improving augmented reality in games and supporting autonomous vehicles, home robots, home security monitoring, and medical imaging technologies.
Machine learning, artificial intelligence, and data analysis have high thresholds, and 53% of respondents are professional developers
In the ML / AI / DS developer group, 53% of the respondents are professional developers. The proportion of professional developers doing audio data processing is the highest, accounting for 64%. Among them, 50% of professional developers are mainly engaged in the research of applying audio data to text-to-speech generation.
Correspondingly, data types that are popular with student groups include images, tables, and text. 18–19% of developers who use this type of data are students. In addition, since many of these types of data can be obtained for free, many students can use the data to study a certain field after mastering the data.
There are not so many large-scale data sets
Now in the era of big data, many people think that ML / AI / DS developers can use very large data sets on a daily basis. But according to reports, research shows that very large data sets may not be as widespread as people expect.
Take image datasets as an example. 18% of image datasets are between 50MB and 500MB, while only 8% of image datasets exceed 1TB.
In addition, the size of the data set also varies with professional status. Only 11% of professional developers use a structured training data set of up to 20,000 rows, while 43% of hobbyists and 54% of students use only smaller data sets.
On the influence of contemporary developers
Developers have the world. According to the survey, 42% of front-line developers and 64% of team leaders make suggestions or influence decision-makers in their company.
Among them, by combining one’s own professional ability and experience, the role of the head of the development team lies between the CTO and the product manager, becoming a very influential person in the organization.
However, the CTO is still the chief purchasing officer (when purchasing (54%) or approving expenses (33%)) the person who makes the final decision.
It’s worth noting that 42% of front-line developers who do not have leadership positions say they make suggestions or influence decision-makers. According to survey data, the reason for this phenomenon is that experience plays a vital role in work. Through further analysis, the data pointed out that among developers with less than one year of experience, only 32% said they would often influence decision-makers, while among experienced developers with six years or more of experience, more than 50% of people in the interview indicated that their recommendations or influence decision-makers.
Mini program development has become an inevitable trend
In this survey report, SlashData has conducted a follow-up survey on emerging technologies such as robotics, applets, and computer vision, and finally found that half of the developers said that they are researching, learning, or interested in many of these technologies. Among them, small programs are most interested in professional developers, while amateurs/student groups are more curious about robotics.
In fact, in the past 12 months, the actual application of small programs has been widely recognized by developers, and the adoption rate has increased by four percentage points. This is also one of the largest growth in emerging technologies.
Quantum computing and self-driving cars have been at a low point in terms of penetration, but they still attract the attention of some developers. According to the survey, 45% of respondents are using autonomous driving technology. At the same time, the adoption rate of quantum computing has also increased compared with the past, currently accounting for 43%.
40% of embedded developers use C++
According to data, one in ten developers participates in embedded software development. However, engineers who do embedded development usually also involve many other fields. Among embedded developers, Web applications/SaaS are the other most popular areas.
Where does the code written by embedded software developers run?
It is very different from the model and method of pure software development. Many people are very curious about the daily life of hardware/embedded engineers. Do they have to write code?
Under normal circumstances, embedded engineers must write code. 58% of developers write code on a desktop or laptop computer. Secondly, developers who run code on smartphones and tablets account for 31 %.
According to the survey report, desktop-oriented embedded development is a closed ecosystem, that is, embedded developers who write code for the desktop environment are unlikely to target other development environments.
Although the code runs on the desktop/notebook computer side, industrial applications are not the mainstream of embedded software. In contrast, a quarter of embedded developers mainly write code for industrial computing units. One in ten respondents said that they mainly write code related to network infrastructure. Nevertheless, these modules are still an important part of embedded software development.
40% of embedded developers use C++
In embedded software projects, C++ is the most commonly used programming language for embedded developers. Secondly, C and Python followed closely, accounting for 32% and 30% respectively.
In the list of programming languages commonly used in embedded development, such as Embedded C (16%), Arduino (14%) and Assembly (12%) rank relatively low, not so popular, and the popularity of these programming languages will also be affected by the environment of the code written by the developer. For example, when developing for CE devices other than smartphones or non-x86 hardware architectures, a quarter of developers use the embedded C language. When writing code for industrial computing units or network infrastructure, Arduino is also popular among developers. According to the survey report, embedded engineers are more likely to participate in the industrial Internet of Things (IIoT) field than those without embedded experience.
For more report, please visit: