New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Insights from the 2022 Solidity Developer Survey | Franzi Heintl (April 2022)

Berlin Ethereum MeetupSat, Oct 7, 2023, 12:00 AM

Join us on Meetup to keep track of our events in Berlin: https://www.meetup.com/de-DE/berlin-ethereum-meetup See you at the next one! --- Apply to speak at our future meetups: https://forms.gle/bGXFc83MHAcnmMQM6 --- Twitter: @BerlinMeetup

Transcript

my name is Francisca I am with the ethereum foundation I worked there for like three ish years now and I do many things but among others and actually for the longest time there I am part of the solidity team I'm doing ecosystem stuff there mostly but literally bridging between users the solidity car team doing project management and just Community stuff and yeah today I'm gonna share some insights from the solidity developer survey with you and also at my own like insights and opinions and things to it so hopefully even if you have read the report you won't be too bored I'm only going to share a selection of insights because the the actual study was kind of long but before I do that I hope that all of you because this is an ethereum Meetup are aware of what solidity is but I still want to get everybody on board so so solidity is a programming language that you use for developing smart contracts on ethereum and I and you can learn everything about it by visiting our language portal at soliditylung.org um and I just I think yesterday or a couple of days ago made the screenshot from D5 llama um of course D5 is not the only application on ethereum so it's not like 100 representative but I just want to give you like a rough idea solidity is currently like the most used language and I think this picture shows it quite good um there are of course also other smart contract languages that you can use in ethereum for example Viper which I think currently is the second most used one and yeah there's then also what we heard before right ZK specific languages etc etc but today we're talking about solidity and before I start with the insides of the actual survey I kind of want to frame this correctly so even though you might think oh my God solidity is now has been initiated in 2014 and must be such an old language and not evolving at all anymore in smart contract or generally in programming languages being initiated in 2014 is incredibly Young And as an example or as a comparison I just put rust there I think rust is a language that everybody thinks is rather modern Young new and it has been initiated as a personal project in 2006 and yeah solidity has been started in 2014 so I think we can agree on that there's still a lot of stuff that is involving because while the ethereum network is evolving and the evm is evolving and all of the depths and security stuff is evolving the language evolves with it and that brings us into quite the unique City situation that on the one hand we already have a lot of users as I mentioned in the first slide but we still want to innovate and iterate and of course have to keep moving um So currently we aim for non-breaking releases every month ish and for breaking releases every year but I also put the dates of our last breaking release there it has been longer than a year and it also has been longer than a month that we did our non-breaking release so the pace is definitely slowing down but there is still change there and now you could ask okay so what is the change based on the changes of course based on external factors I don't know the or cordless people deciding to add a new up code or change an OP code or do things that then in the end also influence the programming language but it is of course also based on uh we want to improve the user development experience we want to listen to user feedback of course it's very hard to circulate the survey because I have to give a few disclaimers the survey is currently only distributed in English and that of course gives a certain framing to the whole thing we do not translate it so far and it's circulated over our channels and then usually also the developer tools the ethereum specific developer environments help us circulate it as well so of course there can be a lot of buyers if you don't really reach the right developer communities this year I really try to for example also reach the Chinese communities which are very like segregated from the Western communities in terms of they have their own social networks that maybe I'm not even active in as a solidity ecosystem person and I think since this year we received quite a few like Chinese responses I I think we did a good job in that but yeah USA still on rank 1. with 241 responses coming from the USA followed by India and followed by France and then a newcomer Nigeria on Rank 4 and Germany followed on rank 5. this was roughly the same in the years before but actually Nigeria um has followed up quite a few ranks then we also ask of course what's your native language um the most spoken language is English but actually closely followed by Indian languages Spanish and then French I clustered a couple of languages into clusters because really everybody respond of course with the whole home language or their mother tongue but for Indian languages Chinese languages and uh I think also Iranian languages which you cannot see here right now I put them into clusters so that they are really representative in the pie and then we also ask do you like to read the solidity documentation in English or in your native language which I think is an interesting question when looking at documentation translations and yeah the big majority of people that we asked this so oh by the way I didn't mention this in the beginning but this little n number here in the corner displays how many people have responded to the respective question because even though we had 1.4k responses overall of course depending on the question we had varying amounts of answers and this question was only asked to people whose native language is not English so basically the majority of them said no it's fine to read this in English the people that did State no I would prefer my native language um there's this tiny breakdown here I'm not sure if you can read it but basically Spanish is on top followed by Indian languages followed by Russian and French and so if we are doing this community okay translation efforts I think it would be good to focus on those languages but again the disclaimer maybe we haven't reached the right communities because the survey was only in English after all so this is not the main goal of the survey it's just a nice to know so next up we have a few insights into the developer profile which are more generic questions that don't really touch on solidity development stuff yet the first question in there is how many years have you coded professionally as part of your work in any language and this is kind of a nice distribution until we receive until we reach the 15 plus years so I think next year I'm gonna split the 15 plus years up into more chunks so that we have like a better representation of how long these guys have been coding but we see that the majority of them are like I would say fairly new with a 1.

1 to two years of experience but then also we have a big chunk of people who have been coding uh three to five years or even six to ten years in general then we ask what are your touch points with solidity so do you do this as a hobby do you do this as your main job or are you like a manager of a development team and here it was multiple choice so whenever you see the little r it means um the N means number of respondents the R means number of responses and if it's multiple choice people obviously just choose multiple things if they like um and yeah like in previous years solidity is really like heavily used for personal projects but also heavily used at work um and this year solidity marked again the most used programming language for the survey audience I think this is an interesting thing to to check on whether you are reaching the Right audience we would want them to be using mostly solidity because otherwise the questions we ask about language design Etc later on in the process would maybe not bring us the correct responses because they are maybe not power users but in this way we know okay yes they are using solidity heavily so hopefully they are power users and solidity was also amongst the most popular languages scoring 18.8 percent but I also have the grabs for you so let's look at it in more detail first which programming language do you use the most I think this one really shows uh we have a big JavaScript slash typescript Community here because those two together are roughly 45 um but yeah the other big chunk is solidity and then also a fairly big amount of python users in terms of favorite programming languages it's a little bit more diverse it's a little bit more distributed then we have solidity on rank one again followed by JavaScript followed by python uh typescript and Trust all quite popular and yeah we always ask which operating system do you use predominantly this is kind of interesting because in the last years it's moved more towards Mac OS and the people who came from Linux I'd say because Linux has decreased its share and Mac OS has increased its share while Windows was usually quite stable in these 30-ish percent then we Deep dive into the solidity user profile where we ask like more specific questions about the solidity usage um but first we want to know okay so how do people celebrate themselves do they think they are solidity Pros or do they think they are beginners just getting started and actually many people really think that they are solidity experts with a Serv rating of seven or higher out of 10 and 4.6 percent of all respondents even rated themselves a 10 out of 10 but um also 70 of those have been using solidity for two or three years or even longer so it is at least somewhat believable here we see the whole distribution so here's this like 58 people saying they are experts but then really um a big chunk of them here in the six to eight range and if we compare this now to how long have you been using solidity for it creates like an interesting picture right we have the majority of people using solidity for like one to two years but we also have quite a significant Chunk in the two to three to three plus years and now going back to the initial statement that solidity is a fairly young language if you have been using solidity for more than three years you are already not too bad and I think also in the next years I will split that up further into more granular chunks as we grow older as a language but also a really big amount of newbies with under three months or three to six months of solidity experience um then we also want to know okay so how difficult is it to get started with solidity luckily it seems like it's not too difficult because currently um in terms of how long did it feel uh how long did you take uh to feel productive with solidity we have uh over 20 actually saying less than a month I think that's pretty great but then the majority of people saying less than half a year um I think that's something that we can work with and also if you read the full report I'm I give like more insights into the people for example who said I don't feel productive yet if you correlate that with how long have they been using solidity and you find out less than three months then it's it's not so bad uh we also again want to check are they power users or not so how often do you use solidity and um yeah that we see 41 of the people who have answered that uh survey use solidity daily which I think is quite intense and the other 37.3 use it weekly so I'm seeing that we basically reach roughly the right target audience um and then we go deeper into the usage specifics so which editor do you use which ethereum development environment do you use in terms of editors it's uh quite crazy um 82 roughly of all people use vs code um followed by vim and IntelliJ but really low rates compared to vs code here's the full graph um yeah definitely vs code dominance um followed by the ethereum development environments if you are not so much into solidity development you can of course use a normal editor but then as soon as you want more features that are more ethereum specific and want help in terms of debugging deploying Etc you may want to use like an ethereum specific development environment and their hat head is definitely the most popular one currently with roughly 75 percent of all respondents using it um remix is also quite popular with 42 percent and then a really interesting Foundry increased its share from compared to 2021 to 2022 from 1.6 to 30 percent so they are rather new it's a rewrite of that tools and here we see the entire breakdown in this case again it was a multiple choice question because sometimes you want to be using different environments depending on your use case so for example you want to really quickly deploy something and just check whether it works you probably use remix but if you want to do something more professional maybe you use I don't know Foundry or hard head also throughout the years we have really seen that the Truffle usage is steadily decreasing but again disclaimer a few years ago we only had roughly 200 respondents so I don't think that's statistically relevant maybe we need to reach out more to the travel users again um then we also ask which solidity versions do you currently actively use that is an important question for us to double check whether people are really upgrading to the latest breaking release and then also to the latest releases respectively uh yes we do not encourage at all to use anything that is lower than 0.

8 because there are regular bug fixes there are new features and please please please upgrade your contracts and do not use old versions anymore this was again multiple choice so probably a few people have contracts still on older versions because those have been audited or those are already deployed or I don't know why but please if you start a new project use the latest version of solidity and also I always put this like kind of funny thing and I don't know why people really tackle it but I don't know which version I'm using I really hope everybody knows which version they are using but 74 people either felt funny or are beginners um now another interesting question since we are moving towards the L2 world and also have of course a lot of other evm compatible chains out there we wanted to know what do you actually use solidity for do you use it for ethereum mainnet and ethereum test net or do you use solidity contracts for completely other I don't know ebm compatible chains that we don't know of or we aren't aware of and um here we see that roughly 53 percent do use solidity outside of ethereum and 40 6.5 percent only deployed to ethereum magnets and test Nets and the people who said yes to we of course asked the follow-up questions so which networks do you deploy to that was again um a free text question so I tried to correlate the answers as best as possible definitely on rank one here is currently polygon or some people also is the roadmatic network so I think they meant I mean I'm interpreting here but because they only wrote polygon ormatic I think what they mean is this uh regular chain that they have which is actually for me personally the least exciting one but that's okay um yeah then there's also of course a couple of roll ups some people also said stuff like most other evm chains or all layer twos so I clustered that in as well and then in the later section of that chapter we ask very specific questions just to get a feel of do people really understand what we are doing there and are they using the new features or not and this one um there there were a couple of questions but I only picked the interesting ones for this talk this one I thought was rather interesting so we asked do you use via ir and before I talk more about it who of you knows what via IR is raise your hands yay you don't know okay so Maya IR is uh means stands for Via immediate intermediate representation and as the new co-gen of the solidity compiler which goes via the intermediate representation View and this has been experimental for forever and has been marked non-experimental also kind of a long-ish time ago and this is a good reality check for us uh 70 almost 71 said what's via AR they have literally no clue so that is a good information for me and the whole team okay we do need to spread the word more about it we do need to explain it more it's not just self-explanatory right and I mean luckily there were roughly 19 saying yes they do and a couple of people saying no um you can read all about like the benefits that this brings on our blog as well but basically it's that helps you avoid stack to deep in many cases and compilation times are currently a little bit worse than in the old coaching but we are working on this and it really brings yeah a lot of benefits so please check it out then we also asked do you publish The Meta data of your contracts gladly at least more than 50 percent said yes they do but still a shocking uh 28 say no and the rest say what is that so I think also there we can do a little bit of more educational work to really bring everybody on board and if you want to find out more about metadata I really recommend you to checking out the project sourceify and the sourceify playground at playground.sourcify.dev and if you're interested into human readable transactions and joining a working group there I give a shout out to Khan who's also in the audience please go talk to him later and he's also one of the maintainers of sourcify decentralized source code verification in metadata stuff um yeah next to other evm networks of course we also want to find out do people use other smart contract languages as well and as we know some DK staff doesn't work with solidity yet or the transpiler isn't optimal or maybe people use other languages for other things so of course we want to find out do you use other smart contract languages um half I've always been respondents actually only use solidity and the second most used smart contract language after that is Yule which is the intermediate representation of solidity followed by Viper followed by Cairo that's the language from stagnet that was also mentioned before followed by half and Sway and rust Etc so yeah I think that's also useful and interesting to know but again we were of course targeting solidity users so it is not representative to an entire ecosystem maybe if a Viper would also do a solidity a Wi-Fi developer survey we would find out the other way around um yeah now let's go a little bit more into details on the solidity developer experience and how devs feel about it luckily the majority of 75 believe that the solidity developer experience improved in the last year and more than 25 also even think that it was a big Improvement compared to the year before so that is for us a kind of a happy sign here's the photograph and we see yes of course there's a difference between like big Improvement some improvement and slight Improvement some people also say I don't know now one could check in the data again are those people that have only been using solidity for three months or less or are those people that have been around for forever and don't have an opinion um 0.9 out of the opinion it got worse so what if one wants to analyze the data we can basically filter those out and see what they wrote about the language because we also had free text fields on what's your favorite feature what's your most dreaded thing about solidity what's your biggest pain point and then we can really find out what um what they dislike about the development and going deeper into these developer experience one thing that is crucial for us to know is do you encounter the same or multiple issues multiple times and if so which ones because that would be bad right luckily this share has increased decreased compared to previous service so 60 of the respondents now say no I don't really encounter the same problems multiple times but the people that do encounter things multiple times for them it's mostly around debugging issues stack to deep errors that will haunt us for forever probably but use via and white code size limitations and yep here is the graph for that again and another graph about the multiple issues I talked about that so I think last but not least language design and upcoming features in this section depending on the year we either present new features that we are thinking about implementing and asking for prioritization of those or asking for feedback on those or generally ask which what is the most anticipated feature for you what are you currently missing in the language and we also asked would you like solidity to become less or more restrictive or explicit because there's obviously lots of opinions on that and the majority is leaning towards staying as is or becoming a little bit more um restrictive or explicit and then in terms of developer Community we ask a couple of questions like do you interact with other devs do you know what what other channels do you know how to stay up to date Etc I didn't want to bore you with those but I think this here is an interesting last one to show basically we give a couple of statements um as like again a kind of feelings check in with with the developer community and see if they agree or disagree to those statements and I would say the summary of this in case you cannot read it the first one says I feel welcome in the solidity developer Community the second one says I am confident with the work of the solidity core team the third one says I feel welcome to contribute to solidity the fourth one says I the solidity team understands my needs as a developer and the last one says the options how to contribute ideas or feedback to solidity are clear to me to summarize the the dark blue one means agree and then basically gets less and yellow means I don't know um people are somewhat confident in the work the solidity core team does and yes and they also feel somewhat welcome but they don't really know how to contribute and or they don't feel welcome to contribute and they are also not sure whether the solidity team understands their needs as a developer but they still feel somewhat confident so of course we as a team then have to analyze what does it mean but the one thing that I think I can fix today or at least tackle to fix is the the options on how to contribute ideas to solidity are clear to me so bear with me oh first uh here's the full report um I usually write a blog post on all of the findings of the developer survey and of course in the spirit of Open Source we also open source all of the raw data as well as all of the graphs so feel free to take a photo or scan these codes if you want to learn more but now very quick x-cores into the solidity language design process and how you can contribute yay so all of what we do I mean goes without saying but it's open source and your feedback and contributions are welcome and basically it has several steps right so I'm just going to walk you extremely quickly through the several steps of how a new feature or language change goes into solidity usually usually starts with a proposal then some sort of community discussion quality and discussion followed by like a more detailed implementation discussion and implementation details to then somebody actually implementing it um yeah and you can follow this process along even if you don't want to contribute to it because everything is transparent on our GitHub and you can also even follow the development conversations along as well because even those are transparent on our Matrix or GitHub it's bridged and if you want to learn more about how this process works it's also documented in our docs so you can go on docs.

soliditylang.org in the contributing section there is basically one section on the language design process and on our team calls and how to contribute PRS all that stuff and then basically if you ever have a change request feature idea feature request whatever for solidity or even only feedback I'd say the best place to get started is the solidity Forum at forum.soliditylang.org there's different categories I took a screenshot here of the language design category so people proposing And discussing new features when they are still in this idea mode so to say if it then gets a little bit more precise then those ideas from The Forum are turned into GitHub issues and then are discussed in the GitHub issue so basically as soon as it gets more tangible either we asked you to create a GitHub issue or there is already a GitHub issue or the conversation somehow moves to GitHub and there you can also follow along by just checking the labels of the open issues there's one label called language design and that is basically the one where all of the future language design stuff gets discussed and then you can also follow the status of those issues once they are basically in the implementation mode in our different GitHub project boards so there's one project board which is called solidity Focus board where you can really see other things already being worked on are they still in to do or are they already in progress or are they in the review stage what is the team currently doing and if you do not find your things there and do not know whether this is even currently a priority or not for the team I recommend you checking out our high level priorities because this is also a revamped roadmap we have created for 2023 which basically shows yeah our development priorities and feature priorities for um the this year and feel free to to check it out it's called solidity roadmap project on GitHub and that's it thank you very much and let me know if you have any questions um I remember that in the survey was a question regarding which feature would you like to add into the programming language is it possible to get a clustered overview if there are some special features that are wished by the majority of the community yes um I also summarized this in the report but I don't have it open right now let me quickly go there sorry I don't know all of the stuff by heart okay okay but it must be somewhere here but at the spot on the report yes so I can yeah later okay yeah it's definitely part of the report I'm just checking if I find it quickly um it's a long report here I think here we have favorite feature most dreaded most anticipated yeah oh yeah I remember so basically some of the most mentioned anticipated features and again that was free text so it was more difficult to Cluster but lots of stuff got mentioned around support for fractional numbers which were either called decimals fixed Point types floating points um also some people mentioned generics better optimization getting rid of Stack to deep the obvious stuff better debugging um and so on thank you foreign hey thank you I would like to know what were the channels that used to reach the developers and for how long uh you guys keep the survey open yeah yeah um in terms of channels I would say the major like the major Channel where I announce everything is the solidity uh Twitter account but I also mirror everything to master Dawn where we also have a solidity account and then um posting it in The Matrix channels in different channels like the ethereum security telegram chat everywhere where I can find like core developers and then also sharing it with these people that are like solidity influencers so to say from Austin Griffith to Patrick Collins and all of them then also shared it then we've had different Ides also had Implement a pop-up I think remix had a little tire hard hat implemented a pop-up so sharing it with the tools so that they can also share it in their things and also got shared and weekend ethereum newsletter so I think that we're roughly the channels I don't know how much further it got from there um in terms of how long it was open we did open it in December and it stayed open until beginning of January so we usually take care it's longer than a month I think this time it was maybe 1.5 months or something awesome thank you uh do you have any information on the organizational size where these developers are part of so it would be interesting to know if they're like smaller teams or bigger organizations taking part of this survey if there's any information on that on the size of the teams unfortunately not in the demographics section we do ask the question which industry do they work on um but nothing really on the team size or on the organization size okay and the second one would be like when people ask you about learning about solidity where do you send them to which is the best source for newcomers um so first of all there's also a section on that in our documentation in the resources section but honestly I sometimes also post on Twitter what's like the best new things to send people to because I feel like my default is still open Zeppelin not open Zeppelin uh crypto zombies um but of course now there are cool courses right there's like depending on the type of learning person you are Patrick Collins has made this solidity course which goes I think 24 hours on YouTube which is insane uh probably good for people that are YouTube based Learners um there is this whole uh Biddle giggle around Austin Griffith I think he's also doing very good tutorials which you can follow along so yeah really depends on the type of learner you are and in terms of reading up and finding those tutorials I can highly recommend the ethereum.

org developer portal so ethereum.org and then just click on developer and you find tutorials you find um ways how to get started Etc thank you

Automatic transcript — names and jargon may be misspelled.