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

Loading player…

Summit | State of Web3 Developer Tooling

ETHGlobalSun, Oct 9, 2022, 12:00 AM

Join us for a discussion with Austin Griffith of the Ethereum Foundation and Nader Dabit of Edge and Node titled, "The State of Web3 Developer Tooling," part of Road to Web3 Summit. This discussion, moderated by ETHGlobal's Kartik Talwar, helped kick-off The Road to Web3, a 6-day virtual hackathon where ETHGlobal partnered with Polygon to help hackers take their Web2 experience to new heights as they built their first projects to interact with decentralized games, DeFi or NFTs. The Road to Web3 Summit was held virtually on Feb. 3, 2022. ---------------------------------------------------- Follow us: https://twitter.com/ETHGlobal​ Check us out: https://ethglobal.co​m Email us at: hello@ethglobal.com

Transcript

[Music] [Applause] [Music] ready for our next amazing panel and uh this one is about just the state of web3 developer tooling and uh joining me will be austin griffith from ethereum foundation and matter david who uh is the lead developer relationship person from edunote and the graph i did a pretty bad job at introducing you both because i want to kind of give you that option so uh we'll kind of start with austin and austin would love to kind of hear more about who you are what you do and that's sort of how you got into the space yeah got into this space building i am a tool builder i love building things and making them very forkable for other people to build i love seeing weird forks of my things in production right so i work for the ethereum foundation thinking about developer onboarding thinking about how we scale it up to to all these new developers coming out and i'm here to learn and build and uh wrap with you guys about web3 and tooling awesome yeah so i would say one of the reasons that i'm here is because of austin when i started learning about web3 and um how to kind of to create gaps as a developer the first person's name that came up was awesome so i started diving into some of his tutorials and then started creating my own tutorials so um i got into web3 after being a traditional software engineer and developer relations developer advocate at aws uh writing code for about nine and a half years and then um got really infatuated with web3 and have decided to kind of take the plunge and having the best time of my life so far that's awesome well i'm glad that you were able to uh share that here with austin being on the other side there so the context for this chat is essentially this event is one of the biggest ones we've ever done actually it is the biggest event we've ever done and we have over 1200 people participating and about 70 of them are coming in from web 2 to web 3 for the first time and that is an incredible metric from even kind of what we see usually for all of our events and not only that it's not just that people are learning about programming it's their season what to developers who are actually in writing and so okay we're considering leaving our jobs or i'm trying to do something here in this space and i think it's an opportunity for uh for me to kind of try something out for for a weekend and that sets up a pretty interesting base because while somebody can be really good and seasoned in programming um there are obviously a lot of gotchas uh when you kind of get into what three and and sadly uh the route of learning those gotchas after it's too late is is not a not a really acceptable route for for too long at least but uh the thing i wanted to do here was talk about sort of what you've seen yourself over the past few years as you've transitioned and sort of any anywhere from observations to things you've noticed that you kind of thought were things that you'd either unlearn or or kind of relearn or just adapt to uh from the web 2 to web 3 side so i'll kind of start off with an actual specific question which is as you kind of interact with a lot more people who are pinging you or you're designing any other tutorials or or any information from a content firm what are some patterns that you notice that anyone coming from up to web 3 sort of falls into as they're going into this and maybe we can start with that or here i think one of the things that i can kind of speak to from myself is that i kind of tried to take my ideas and my experience from web 2 and apply those directly to web3 and i think that that was the first i wouldn't say a mistake but like in hindsight i would have probably tried to understand all the tooling and the different um protocols and the primitives that we have that are just different and you can't really apply all those same ideas to web3 instead i think we have like some of the same we can do some of the same stuff but we now have new things that we can do and there are certain things we we can't yet do so therefore we can kind of like maybe rebuild some of the tank the same types of applications that we're used to building in web too but maybe not all of them today at least but we have these new things that we can do so to me it kind of feels like more of an extension of my skill set that i can now now apply and kind of build more things as opposed to like a replacement of my existing skill set and i think that that might be a good way to kind of frame it for developers that are like in web too like you can still do all the things that you used to be able to do that's the great thing you're kind of like taking all of that knowledge and all those skills that you had and all those opportunities you're just now creating more opportunity and you're now able to kind of build out new types of applications in addition to what you have and you're just kind of like now creating more synergy in in the knowledge that you have and it kind of just opens up a lot of doors i i want to talk about like that's a perfect like plus one like almost all of your skills are going to translate right into web 3 from web 2. it's not like a our our troop first your troop kind of thing right uh the the uh place to like dive in here is sometimes like people use it as like a slow asynchronous database at first right you see first smart contracts from most developers after they get the syntax and get it down and it's like a raise of structs and they're using it like they think that like they're storing everything in these giant arrays first name last name let's write it all on chain and so that's one of the first like gotchas that you have to get over is like be careful what you're putting on chain understand that you're like making all the thousands of the nodes on the network all have to update that value and keep that value it's like a crazy amount of redundancy compared to your read replica of web 2. but other gotchas we should probably dive into are just like big numbers and and way versus eth and the things that like you didn't expect to happen it's like oh yeah i i can't use a floating point here i have to use a numerator and a denominator in this solidity because that evm is this super simple thing that needs to execute this stuff like there's reasons for these trade-offs that we get ourselves stuck in no i absolutely agree i think neter i think is a really good framework that you just kind of laid out and i never thought about that until you just said it which is if if you are learning a different programming language you usually have or even a web framework you have like oh i can do this to do list app usually in ruby and let me try to learn python or flask and i can just clone that i know exactly what to expect because what i'm learning is actually syntax and not necessarily under the hood changes on how things are in a way compiled or executed but here it's a lot of those principles are still applicable however you are fundamentally kind of restacking which layers are actually mutable versus immutable and and that changes a little bit of things so you can't just clone and try something directly i'm going to make a crypto version of some app that i already know and if you try to do so you have to make really specific tradeoffs which become like known at the 10 remaining mark and not the 90 upfront work that you do and that sort of confuses a lot of people and that's kind of what we see a lot um as we kind of do a lot of our hackathons um so so maybe my first question is when somebody kind of does that or or comes to you from kind of that background what are resources that you point them to to anyone from get up to date on sort of how to think about coding and even smart contracts to designing web 3 apps or to actually stay updated given how fast the space is evolving what's the answer when somebody wants to learn more um yeah i mean i would say the combination of a couple things um one of the things that i always obviously just recommend people doing is just building stuff going and finding tutorials out there like austin griffith's speed run i have the complete guide to full stack if they're in development there's literally probably dozens of high quality tutorials like that so like when you start building with these things you start um if you are a developer you start kind of realizing some of these limitations maybe and you also start seeing the new paradigms that are there so that's one thing i would do just start building and start playing around with different things um another thing like i tried to address recently in a blog post called defining the web3 stack goes into specifically the answer to this question like what is the web3 stack what are the trade-offs what can you do what can you not do and i really tried to go into depth around my interpretation of that so yeah those are two recommendations um i would love to hear austin's ideas here as someone a little more senior plus one plus one now i also we should shout out patrick's like 16 hour tutorials that he's been putting out too right there's there's a handful of great ones there too absolutely maybe plus one speed run yeah go ahead no go ahead carter now i was gonna say uh matter maybe it's worth sort of going a bit deeper into that blog post so would you mind kind of going over what you talked about and sort of what are specific recommendations from there yeah so essentially when i was again kind of going back when i started uh learning all this stuff i was taking all of the ideas and all the experience i had and um thinking about the web three in that way and i think not only me but a lot of developers once you've kind of gotten you know used to to building an application using the things that we have available to us um as a full stack developer we kind of have a front end and then we have these backend primitives and kind of using all these together we can build out you know 95 percent of the applications that we need so the web 2 stack is what i would call that like what does that mean exactly well typically it's kind of like a database a server some type of execution layer you know to talk to your database a file storage system so something like amazon s3 would allow you to store videos images and things like that and then you would have something like a front end which would be either a mobile client or a web client and that's kind of it i would say like using those things you could actually build out um so like a twitter clone or an instagram photo you know almost any application you can think of and then the extra five or ten percent is going to differentiate you know depending on the app that you're building you might need a machine learning uh you know api or you might need something like notifications or whatever so uh what does that stack look like in web3 and that's kind of what i tried to break down in in that blog post and the main differences are like we have a lot of these same primitives so we have the api layer we have uh the authentication layer we have the the quote-unquote like database um which is a little different or a lot different i would say that's kind of one of the main differences is like how do we think about data um we have the front end you know you can still kind of use transfer all that knowledge and and mainly it comes down to kind of like what does the back end uh kind of look like at this point since the front end is essentially transferable and uh the new primitive that we have is the blockchain so we've never really dealt with that if you're coming into this space um you have the blockchain development environment so this is really really important from a developer tooling perspective if you are a developer and you've been building with something like aws you have things like cdk you have things like amplify if you're using you know something like super bass or one of these other managed services they come with all this great tooling and i think that we're starting to see some really great tooling now in web3 with things like um foundry we have obviously brownie and hard hat is is really really great hard hat is like kind of what uh helped me get going so you know you have your blockchain development environment you have your chain you have the file storage which you know in web 2 would be something like s3 but in web 3 that's something like ips ipfs or r weave and that is going to be a lot different than what we're used to like we're used to paying a very very small price for storage and um and it's kind of like centralized and obviously it can go down or whatever and then in web three we have kind of like two main primitives for for file storage like ipfs uh you can you can save stuff there and it's a free but you can't always say okay that's going to always be available versus pleasure yeah so yeah are we our weave seems really interesting to me because it kind of offers this this permanent stage storage layer where you kind of pay a single transaction cost and based on what the protocol tells you it will be available 10 or 15 or 20 years from now theoretically which is super interesting to me and then really the other two areas would be the api layer and the identity layer which is kind of really you could go into those um for a whole episode if you wanted to but um you know the ipa the api layer would be something like an rpc endpoint or something like the graph protocol which allows you to kind of index and serve data via some graphql endpoint that was extremely comprehensive and that's awesome and i'll all kind of keep you fair and give austin a chance to talk about sort of the motivation for doing speeder and ethereum what it is how you kind of got to it and where your plans work yeah no so speedrun ethereum uh is about getting that mental model sort of it's it's pretty easy to pick up the syntax right like solidity is pretty easy for a if you're a web 2 developer you'll pick up the syntax in no time and you'll feel like you're at the top of the dunning kruger but you have to go down and into the valley of despair and learn all the different things just like netter said you have to build things over and over again and ship them things out in public in front of people so hopefully speedrun ethereum gives you a chance to like build up your web3 profile and get the mental model of what kind of things we can build on ethereum and what kind of things we can't uh the what he was talking about ipfs like it's immutable and it's decentralized so it's really hard to build right there some of this stuff is is super difficult going going back to speedrun or going back to sign in with ethereum uh learning the mnemonic and learning your key pair is hard for a new time a first time user but once you have that then your identity and and your inventory follows you from app to app and that's a new thing in web 3 and it's kind of kind of emerging right now what that even looks like so yeah i don't know bouncing around a little bit but as a builder on web3 there's a lot of fun things to look out for that kind of come along with this this new paradigm that we're dealing with that's awesome and uh i i'm just impressed with uh the live chat here because they're they're like 10 seconds away from just posting a link of everything you're referring to for everybody else so before i could even check there's a list to every article he talked about the 16 hour video all the blog posts feed right it's just it's incredible so thank you for for doing this uh um everybody and uh well i also want to cover two links in general but i i sort of asked a version of this question earlier but i want to be really specific or see if we can get into specifics which is what what do you think people get most stuck uh at um from kind of your experience and and uh this is kind of commenting specifically web two deafs that are trying smart contracts um any kind of catch-all or very common patterns or trends you've noticed and kind of what are those things where everybody is sort of blocked in most cases maybe austin given your experience tutorial hell right like a lot of people get stuck in tutorial hell of like there's so many tutorials there's so much material out here what is the next thing i should build and i'll i'll paste a twitter thread that i have where it's just like all right you've got the basics you think it's the first challenges you're stuck what's next and it's like you know build yourself an indexer and learn how that kind of stuff work like each each of these like little places to to explore is like a whole like a multi-sig leads to a dow leads to building these new like dow tooling mechanisms uh a dex like learning how to trade things so yeah i i'll paste a link in of of a good kind of next steps uh but i want to hear nader's answer too um yeah i mean i echo everything that he said you know you kind of start learning the stuff and it's the same thing with web 2. if you don't actually take some of those ideas and try to build something and expand the knowledge that you have learned and actually write some code you just won't get anywhere so definitely start building before you feel like you're ready because like that's the that's the perfect time obviously you need to have some somewhere to start from so like do a couple tutorials for sure but like at some point just say okay that's it i'm going to go build an app and there's a handful of good starter applications you know that are like quote unquote like web3 like a token exchange is a good example he mentioned like uh would you say like a token gating or something like that oh yeah token gaming that's a whole that's a whole other thing yeah for sure nft marketplace is a great one um obviously just the hello world yeah just try to build all this stuff and then maybe take someone's tutorial and then extend that and add functionality and you'll run into a lot of areas that you'll but like so there's that and then the other thing would be again a lot of times coming from web 2 you try to kind of apply the ideas that you have directly and let's say i want to build out a web3 version of something i'm used to doing so for instance if i wanted to build like a twitter version uh twitter on web3 you know you will definitely run into a lot of challenges because we don't really have the tooling available today to build something that is that good as far as the user experience is concerned you have to have right now unfortunately points of centralization there so like you you can obviously store messages in something like ipfs or ceramic but how do you actually do the queries and how do you do notifications and how do you do like private messages all this stuff like all this stuff is possible but the we're not quite there yet to make it easily uh available to for most developers to do so in web 2 we have really really great solutions that are out there that kind of abstract away all this complexity things like super bass things like amplify and things like vercell but we don't really have that quite yet and i think that's what we're going to be building over the next few years the leads perfectly into to my next question which was just giving a kind of comment around what's happening with tooling right so i think what you just said is definitely true but i feel like that's a one layer up on the tooling side because that's on the in largely like manages the destination in the interface to code but when you look at developer tooling um obviously we've seen the evolution from how kind of truffle to where we are with hard hat now but um do you think there's anything still missing like or what can still be made better like if we just leave that open-ended what can be improved on developing smart contracts optimistically i just want to say that like developer tooling is so much better than it was a few years ago like it's it's it's pretty damn smooth and it's so conversation every year awesome yeah i keep saying it's all good so so i would say that like one of the things that might have been missing a year ago might have been more like templates and it's not the layer of tooling like hard hat you've got hard hat you've got your you can do all this cool stuff it's the you know if i want to build an nft marketplace am i going to start from complete scratch here am i going to have to build my own indexer like what things are available generically that i can grab off the shelf and just plug in here first and and so that's probably what i should have said last year i don't know what i should i wish i could see into the future to tell you what i should say right now but i don't know exactly what's missing with building i think tooling is pretty pretty good but obviously like ux can get so much better error messages every year i probably curse error messages right like we don't have enough gas and the error message is like this big and it's like right in there somewhere is the actual error that the user needs to understand but it's buried so error messages how about that yeah for me it would be kind of like the the development environment for working on a edm compatible chain is really great right now hard hat is just just amazing like if you pick that up from web too it will feel very very natural because like everything's well documented everything just works you're using like node.js and you're using clies and stuff it feels really great but i would say there are a lot of areas that for instance documentation and a lot of the other tooling so ether.

js and web3.js are kind of like the two main use libraries and they're both really really great and just work really great but i would feel like that the documentation on both of those could be more approachable for web 2 developers if i go in and read that like now after having experience i still don't know everything but i can at least find my way through it but when i first looked at that stuff i didn't even understand how to do anything at all like like i could literally read all that doc and there's no example to kind of like show me what to do with all that stuff so i had to go watch videos um like austin's and stuff like that that would actually show me oh okay this is how you use it i think we could use more polished and in documentation with more like end-to-end tutorials within our examples in there so like not only showing the api interface but also showing how you would actually use that uh because there's a lot of assumptions that you just don't understand this is this is a really good first step though in terms of if you're a web 2 developer and you're just getting in go grab ethers and learn about providers and signers and wallets just like get them and understand them providers are like your connection signers are like your your sign in the transaction and wallets are like your kind of your mnemonic where you kind of generate those private keys learn those things build a simple script that just like i don't i don't know like it's a wallet and you send money to it when money lands there it sends it on to something else like build a simple script no front end nothing like that just that does that and that's such a good entry point to kind of get the mental model of providers and signers and eventually you'll build a full-scale app that uses those same things but just that simple little script is a lot to get you through through the door absolutely i was gonna say that i think uh it's a pretty good segue into maybe are you talking about developer now and you kind of talked about all these things would love to hear about sort of what what sparked that and uh kind of what happens there yeah i mean an army of developers there's a bunch of cool dows out there right now that are doing similar stuff and um i would love to touch on like a handful of other ones as well but with developer dow it was kind of like um i just started diving into dallas that month you know i really just started starting understanding am i doing friends with benefits and saw what was going on there and the excitement around some of that and i had seen the communities that were building around nfcs and i realized okay like there's a lot of overlap between nfts and communities and dows like there isn't a clear distinction between what each of these is um salute project dropped that week and i realized like this is a very forkable contract because all it was was just svg and i wasn't as an expert smart contract developer but i knew how to read a contract and how to kind of like update it so i was like oh this is a cool opportunity for me to deploy my first smart contract so i forked loot i updated the properties it was just a bunch of arrays of properties and instead of using you know the robe and the sword i was using like developer characteristics i am a developer that lives in austin texas and i write python and i'm wearing a black hoodie like that would be the the items in those arrays and and i was like okay so what can i do with this contract oh let's create a dow there isn't a dial that's focused for developers right now that i knew of there was uh friends and benefits that had a developer's channel but that channel was not active at all so that'd be cool just to have that and i'll just launch the contract tweeted it out and kind of left it alone for about a month or two and the community actually together formed around it created the discord created the token gating created the forum and all the mechanisms around governance and i luckily just got pulled along for the ride and i'm still definitely a huge um i'm a contributor but i'm not i wouldn't say cons i wouldn't consider myself one of the main people that's actually doing the work the community is there doing the the cool stuff i'm just i feel fortunate enough to kind of like come along for that ride um we haven't created a ton of we're not trying to be like i feel like there's too much stuff around investment and money and stuff in web3 and not enough around focused on developers at least there could be more i would say i wouldn't say there's not enough i feel like there's there's like this hyper financialization of everything so we wanted to kind of be the opposite of that um almost to the point where we didn't have enough money to do so like maybe we should have like charged money for our nft or maybe we should have done something with d5 but instead we're like focused on donations and we've sold a portion of our governance token to get coin who really aligned really well with what we're doing and those partnerships and sponsorships are kind of giving us that runway and our main focus is on building public goods learned a lot again from austin and all the people at get coin because they are literally like the examples that we're going by spending their time money and effort to create things that are free for everyone to use and that kind of help people in general like in different ways that is absolutely incredible thank you for sharing that um i i do want to sort of switch your gears a little bit and come back to the question before on tooling what have you kind of commented on just seems like we're actually in a pretty good state right now where what developer just lets us do um do you do you differentiate do you do you change that answer if it were to say is that same tooling sufficient for us going uh deeper into l2s like whether that's talking to different uh providers or services what does that look like when you're not on mainnet and that's what that's what we should have told you experience let's take it through that i wish future austin would have that same like whatever happens on l2 something's about like something neat is about to happen right like we we've got like games where like things that weren't we able we weren't able to do like crafting and all sorts of like strange nfts owning nfts and mainstream ramps into l2 and these mainstream experiences something is about to happen and we are going to need some specific tools i maybe maybe it's going back to like your devops skills will transition really well from web 2 to web 3 because we're about to scale up and we really need some help handling like all of this flow of users right maybe maybe that's part of it but yeah i think l2 will bring a whole new set of challenges and tools that need to go with that anything too matter there on how you see tooling wise yeah i think that tooling is has kind of been built around the most popular protocols and the most popular used products in web 3 right now and we're starting to see new things that come out and there just isn't an equal set of tooling for that so for instance i would say when i started learning um solidity and evm hard hat was there and it was amazing but when i wanted to go learn solana there wasn't anything there so i was like oh and then anchor came around and it's a really great thing that kind of fills in that gap i don't know what the answer to that is if someone offer asks me if i want to build on um on a zk roll up or something like that like i don't know what that looks like it might look the same i haven't done enough um research in that so maybe austin knows the answer to this if i wanted to usually just say i'm an evm maximalist that's usually what i say yeah if i wanted to build on something like starknet or um something like that like is can you use hard hat i don't think you can but maybe there's something that cairo i think it has its own language doesn't it yeah okay like compute i think everything at the end kind of converges to evm compatibility or cross-compatibility but uh that's a fair bet to make uh you know i mean i think the other kind of piece here is that austin you already kind of covered is basically we're moving towards how web 2 works right now from a cooling standpoint at the end of the day maybe a year from now like you end up with specializations like i don't necessarily always need to know how backhand works in in existing engineering company if i am solely focused on front end because there's an abstraction there there is availability of hey this is what the interface looks like and i will talk to it and we're kind of in the place where right now everybody's doing everything uh but it doesn't have to be the case and largely i don't think it will either and uh and kind of the most common questions we get is like i don't know how to write smart contracts can i still participate these hackathons and the answer is yes because even if somebody writes a smart contract for interrupt interacting with something with define nft he's like they still used to be a user interface that uses react and then everything else and that is largely decoupled from what's happening on chain and and that doesn't take away anywhere from the arguments or tooling or the rules or your background or your skills and and that's absolutely uh still going to be the case whether it's about layer twos or your knowledge proves abstraction still helps at the end of the day um so uh one kind of final question when and we're ready to move on to our next talk is uh obviously security is a big issue in this space especially when we're dealing with with money um any advice for newcomers to uh to kind of consider as they think about deploying things to mainnet uh whatever chain it may be uh and what should they keep in mind uh when uh thinking about smart contract security maybe austin we can start yeah i'm i'm i'm the guy that says prototype everything and get everything out there and and let it fail and keep going so maybe i'm not the best person to to push on security you want to have audits and you want to do due diligence and you understand that it's not just this contract it's a system of contracts they're doing all sorts of complex things but also i i'm the prototyper that throws stuff up at the wall so maybe nader can talk more about like writing good tests and test driven development and stuff like that long-term only test nets yes right yeah i think the security implications of smart contracts that deal with uh with with value are orders of magnitude like more important to to understand or to kind of have um enough eyes on it and and reviews and understanding what you're doing versus maybe something like in web 2 where you know you can't make a mistake and then lose billions of dollars or something like that or even even a dollar or ten dollars or anything like that um so like so therefore you see even protocols and teams that have the best engineers in the world still getting more people to come look at their code by hiring these auditors and stuff so you know um i guess what i'm trying to say is yes it's extremely important um and and maybe the more people that can see your cut the better so don't build in a silo if you're gonna be shipping something like put it out there open source it like let people scrutinize it like take as much feedback as you possibly can especially if there's going to be any if you're if you're asking someone to trust you with their money and that they're going to be buying something from you through that contract or an nfc project or something you want to just do everything you possibly can to make sure that you're being a good steward of that person's uh their their trust i guess that's a that's a perfect note to end on and yes preferably the non-testing prod um so matter i'll say i want to thank you so much for your time today and i also want to give a special shout out to karate for being an amazing member on the chat and kind of context filling all the resources that we've talked about so thanks for that and uh thanks again for your time thanks everyone thank you see you [Music] [Applause] [Music] you

Automatic transcript — names and jargon may be misspelled.