Original title: "Solidity Developer Survey 2021 Results》
Original author: Solidity Developer Survey 2021 Results
Compilation of the original text: Poplar

Compilation of the original text: Poplar
This is the second structured annual large-scale Solidity developer survey conducted by Solidity officials (the 2020 survey report can be clickedherehere
secondary title
Summary
Summary
Respondents: A total of 435 developers from 73 different countries participated in the survey, an increase of more than 100% compared to 2020. The countries and regions covered will also increase dramatically from 48 in 2020 to 73 in 2021. More than 20% of users said they lived in the US, followed by India (9%) and Germany (4%), with around 9% preferring not to share details of their location.
Developer profile: Moderate to high level of programming experience, most respondents have been engaged in professional programming for 3 years or more, 36.6% even more than 6 years.
Solidity experience: More than half of the respondents have used Solidity for less than a year, while 15.5% have used it for more than 3 years, and almost 80% use Solidity on a daily or weekly basis.
Solidity Expertise: The majority of respondents consider themselves Solidity experts, with a self-rated expertise rating of 7 or higher (out of 10). 4.2% rated their expertise as a 10. 80% of respondents use Solidity for their personal projects, about 60% also use it at work, and more than half of the time they use Solidity in less than a year.
Developer Experience: A majority (>70%) think the Solidity developer experience has improved in the last year, with only 1.6% saying it has gotten worse.
Language accuracy: 60% of developers hope that Solidity can add more checkpoints, reduce errors caused by insufficient precedents, and improve the accuracy of smart contract development. 26% would prefer to maintain the status quo.
Future features: A more efficient optimizer and the ability to catch custom errors are listed as the most important future features being discussed. Additionally, support for decimals, better array management, and resolving stack too deep errors are some of the most anticipated features.
Community: Less than a third of respondents have worked with Solidity language design.
secondary title
Survey object
Note that the fact that this survey was conducted in English only is an important factor to consider when interpreting the results regarding country of residence distribution and language preference.
First, let's take a look at the developers who took part in this survey, we'll detail general information like location and language, and get into more detail about their professional experience, programming preferences, and more.
The number of countries and territories also climbed from 48 in 2020 to 73 in 2021, also appearing to reach a more geographically diverse audience.

secondary title
More than 20% said they lived in the US, followed by India (9%) and Germany (4%), with around 9% preferring not to share details of their location.

secondary title
language
Respondents covered a wide range of languages in their native language, with a total of 50 different languages mentioned as native languages.

English is the native language of 35% of respondents, followed by Spanish (9.4%), French (5.9%), Russian (5.9%), Portuguese (4.9%) and German (4.9%).

More than 80% of respondents use English primarily at work. Some respondents also speak Spanish (2.8%), French (2.1%), Russian (1.6%) or Portuguese (1.6%) at work.

Among respondents whose native language is not English, more than 90% can read the Solidity documentation in English, and 8.6% prefer to read it in their native language, of which Mandarin and Traditional Chinese, Spanish are the most frequently mentioned and Portuguese.Please keep in mind that this survey is conducted in English only, which may affect the results of this question. We continue to believe that the internationalization of resources such as the Solidity documentation is a key factor in lowering the barrier to entry, and we aim to support community efforts to adopt new, more clearly structuredtranslation guide
Developer profile
Developer profile
work experience and employment

77.1% of respondents are currently employed, about 10% are students, and 12.5% are not currently employed full-time.

Respondents mainly work in the fields of technology (62.8%) and financial services (15.5%). In addition, education, media and games also account for a relatively high proportion.
About 10% are new to programming and have only been programming professionally for less than a year. However, it is worth mentioning that the proportion of senior developers with more than 15 years of programming experience has also reached this figure. About 30% of respondents have 3-5 years of programming experience. The programming experience years of the respondents participating in this survey basically present a normal distribution.Overall,

The level of programming experience is at a medium to high level. Most respondents have professionally programmed for 3 years or more, and 36.6% have even exceeded 6 years.
Interestingly, the majority of respondents (80.4%) use Solidity for their personal projects, about 60% use Solidity at work, and 40% mainly use another Programming language to write code.

More than 20% said they were leading a programming team.
When it comes to open source contributions, 60% of respondents said they never or rarely contribute to open source projects written in Solidity.

However, about 30% of respondents said they do this every day or every week.
programming language preferences

In the "Favorite Programming Language" poll, Python successfully defeated Solidity's "anti-customer-oriented" and won the favor of 22.7% of respondents, followed by Solidity (19.4%), JavaScript (14.5%), TypeScript (10.8%) and Rust (8.4%).

operating system
operating system
Similar to the 2020 survey, macOS and Linux appear to be equally popular.

solidity-experience and-solidity-developer profile
Solidity Experience and Solidity Developer Profile
Most respondents consider themselves Solidity experts, with a self-rated expertise rating of 7 or higher (out of 10).

4.2% rated their expertise as a 10, and about 23% could be considered beginners or infrequent users with a self-rated expertise of 4 or less.
The percentage of beginners has increased slightly compared to last year, with more than half of respondents using Solidity for less than a year.

15.5% have used Solidity for more than 3 years, so can be considered as Solidity seniors.
Solidity still seems fairly easy to learn, with 26.7% of respondents feeling productive in less than a month, 30.7% in less than half a year, and 7.7% in over a year It takes time to get used to the language.

23.3% of people feel that they are not efficient yet, and more than 75% of them are beginners and have used Solidity for less than 6 months.
Introduction to Solidity Developers

Most (approximately 80%) of the respondents use Solidity on a daily or weekly basis, with 8% saying they "rarely" or "never" use Solidity, with almost all of them working primarily on code in another programming language Of those, most said they had been using Solidity for less than 3 months.
Over 50% use VSCode as an editor to write Solidity, followed by Visual Studio (14%) and Remix (11%), 7% of respondents use Vim, followed by IntelliJ (5.8%) and Atom (3%) ).

Compared to 2020, IntelliJ, Atom, Vim, and Sublime are used less in 2021.
Hardhat emerged as the most popular Ethereum-specific development environment, used by nearly 45% of respondents, followed by Truffle and Remix, each with around 17% user share.
Relatively small shares of Ethereum-specific development environments are Brownie (7.2%), Dapptools (5.6%), Scaffold-ETH (3.2%), Foundry/Forge (1.1%), and Embark (0.5%).

Compared to 2020, the shares of Truffle (2020: 34.6% -> 2021: 17.9%) and Remix (2020: 29.3% -> 2021: 17%) dropped significantly, while the shares of newcomers such as Hardhat, Brownie, Dapptools and Foundry Increased user share.
The 0.8.x Solidity (86.3%) version is by far the most used version, the 0.7.x (23%) and 0.6.x (18.3%) version series are still in use, and older versions are almost no longer used .
This is a big development from 2020, when most users were still using the 0.6.x release series,

Fortunately, only a few people are still using very old versions of the 0.4.x or 0.5.x series.Reminder: Make sure to update your code frequently. Added since 0.4.x!
solidity-user experience
Solidity User Experience

A majority (greater than 70%) think the Solidity developer experience has improved in the last year, with only 1.6% saying it has gotten worse.

recurring problem
features
features
future work
future work

A more efficient optimizer and the ability to catch custom errors were listed as the most important future features being discussed.
Also, support for decimals, better array management and fixing stacks that are too deep are the most anticipated features.
We noticed that respondents used a variety of different terms, such as "floats", "floating point arithmetic", "floating point number", "fixed point numbers", "fixed point math", which we categorized as " factional numbers", and assume that all of the above is ultimately intended to describe "fixed point math".
「floats」
The most frequently mentioned expected features are listed in descending order:
Better Array Management/More Array and Mapping Capabilities
fix stack too deep
Gas optimization/optimizer improvements
better debugging
Better support for strings
console.log()
Easier/better gas metering when building/developing
generics
Custom errors for require()
Better documentation (especially advanced stuff like inline assembly, Yul, etc.)
Code generation via Yul
fixed point mat
custom value type
Favorites and Fears
Favorites and Fears
Most frequently mentioned favorite features in descending order:
Simple
Simple
easy to learn
domain-specific language / right tool for the job / "it works"
SafeMath /over- & underflow checks by default
Modifier
clean syntax
interface
interface
static type
inheritance
good tool
structure
structure
delegate call
require and assertions
inline assembly
memory management
event
libraries
event
ABIEncoderV2
clarity
flexibility
flexibility
language safety
object oriented
object oriented
The most complained keywords are debugging, stack too deep error and lack of support for decimals.
Arranged in descending order of the frequency of complaints:
debugging
stack too deep
Missing floating point/fixed point
inline assembly
Ambiguous/generic (reverted) error messages
array
string
Breaking changes in minor versions/lack of compatibility
Safety
Gas cost/deployment cost
inheritance
test
test
Gas optimization
Modifier
Outdated Resources/Tutorials in Community Resources
returns
more and more complicated
explicit conversion
Lack of documentation on inline assembly/yul
missing console.log
memory allocation
reentrancy
missing standard library
restrictive
restrictive

solidity-community
language design
language design
Less than 20% of respondents have worked on Solidity language design, 6.2% participated in Solidity forum discussions, 5.1% participated in language design calls, and 6.4% opened or contributed to Github issues in Solidity repositories .

stay informed
stay informed

Interaction with other -solidity-developers
Interaction with other Solidity developers
Over half of the respondents interacted with other Solidity developers, and interestingly still almost 45% said they rarely or never contact other Solidity developers.

As the last part of the survey, we wanted to know how many participants agreed or disagreed with some statements about the Solidity community and the Solidity team's work.
75% of respondents feel welcome in the Solidity developer community.
About 80% agreed or somewhat agreed that they had confidence in the Solidity team's work.
More than half felt welcome to contribute to Solidity, but less than half said they knew how to contribute ideas or feedback to Solidity.



