Web3 Galaxy Brain 🌌🧠

Subscribe
Web3 Galaxy Brain

Juan Blanco, creator of Solidity for VSCode and Nethereum

17 March 2023

Summary

Show more

Transcript

Nicholas: Welcome to Web3 Galaxy Brain. My name is Nicholas. Each week I sit down with some of the brightest people building Web3 to talk about what they're working on right now. On today's episode, I'm joined by Juan Fran Blanco. Juan is the creator of Solidity, the most popular Solidity-oriented VS Code extension in the world. The extension provides hundreds of thousands of Solidity developers daily access to syntax highlighting, autocomplete, and much more. Juan's main focus is Nethereum, a .NET framework for interacting with EVM blockchains. Nethereum is useful for interacting with the blockchain from Microsoft-based operating systems which constitute a huge number of the virtual and physical devices in the world. On this episode, we discuss Juan's experience working on Ujo Music with Simon de la Ruvier and Karl Florsch, how the Solidity VS Code extension works under the hood, and what role Nethereum plays in the ecosystem. It was great getting to talk one-on-one with someone whose software I use every day. I hope you enjoy this episode. There's a lot of things I wanted to talk to you about. Am I pronouncing your name correctly?

Juan Blanco: Yeah, that's fine. Don't worry.

Nicholas: How do you say your name?

Juan Blanco: Juan. Okay.

Nicholas: All right, Juan. Well, it's great to meet you. I'm excited to talk to you about what I perceive of as your two main projects, which are this Solidity VS Code extension, which I use all the time, and something a little bit deeper in the ecosystem that I don't interact with directly as much, but Nethereum, which are you the lead developer on that? Are you the founding developer?

Juan Blanco: Yes, yes. Yeah, I created Nethereum about 2015, probably a bit earlier than the VS Code extension.

Nicholas: Wow. So I mean, I guess, well, we might as well start at the beginning. You've been in crypto for a very long time. What were you doing before crypto? And at what time did you get involved personally in writing code in the space?

Juan Blanco: Oh, right. Yeah, before crypto, but just before crypto, I used to work at CSC. That was Computer Science Corporation, which is a consultancy company, a consultancy company that later became DXC when it merged with HP Enterprise Development. So just think like Accenture or any other consultancy company. And crypto, when did it start? Well, at first, I had a look at Bitcoin very, very early. I think when it just released in 2009, probably later. I tried to mine a bit, but I was traveling at the time. So it was just like a work laptop. So just for experiments. So I ended up deleting everything because obviously it was a work laptop. I know, I know, I know. But yeah, it was like kind of like trying out like SETI at home, you know, one of those things. And yeah, and over the years, a couple of years or so, I was aware of it. And then I got Bitcoin and then I gave it away and so on. And then by 2013, it's when I started getting interested. I think it was when the price started going up and it caught my attention. It was like first $100 and then $1000 and so on. So it's like everyone, you know, it's like the price is one of the things that kind of makes noise. and then you have a look and then dig deeper. And that was the time that Ethereum, you know, that was the end of the year, 2013, is when the Ethereum white paper or starting conversation of Ethereum started. And at the same time as well, processors that later on become bitters. And so that's when I started to dig deeper into it. And just trying to look at those projects that were a bit different from Bitcoin and then see what they were doing and how they were kind of trying to do something more than what Bitcoin was doing. Although Bitcoin was also very interesting at the time.

Nicholas: BitShares and ProtoShares, those are like early kinds of smart contract protocols?

Juan Blanco: No, no. ProtoShares, which later on become BitShares, it was like the project just kind of leading into BitShares. They were creating a decentralized exchange. It's still around. It was one of the first projects of Dan Larimer, which later on created EOS and other projects. So what they were doing then is creating a new decentralized exchange. And lots of people from Maker that were in the forum there, Lightroom and Nikolai and so on. Well, they moved from BitShares to CreateMaker.

Nicholas: Interesting. And they had their own blockchain, I guess, as a substrate?

Juan Blanco: Yeah, it was a complete new blockchain. The backend was Graphene. And that's when they would call it after an iteration or so. So yeah, it was very interesting at the time. It was kind of the first, kind of one of the first decks. I think it was the first decks. And from there, they come ideas like similar to ENS as well. They have Namecoin and then Nikolai created as well a name service, which later on was created into BitShares. There was, yeah, there was lots of interesting ideas. They have like Coti as well, which was later on was very similar to what would become later Uport in Ethereum, but later Uport kind of disappeared again. And now we have something like Siwi and so on, you know. So there were lots of interesting ideas at the time. But that was like a blockchain without a smart contract. So the idea was to create many different blockchains with different specialties. And at the same time...

Nicholas: Looking back at that, computer scientists, many of whom were academically trained, were even entertaining the idea of having purpose-built application-specific chains for the base layer rather than a Turing-complete architecture. It's funny. I wasn't there at the time. So it's funny to look back on that time and think that there, like the colored coin stuff and all this, that that was the dominant idea was that there would be application-specific chains from the start.

Juan Blanco: Yeah, yeah. Yeah, it was. When you think about it, and that's why Ethereum became so interesting. And it was like, Ethereum was so quick to create a new functionality and add it to the chains. I remember Rune mentioning it. and it's like, well, you know, I've been able to start creating a smart contract and create a couple of the functionality of the bit shares, just creating a smart contract. And I just started to fiddle with it. And to create a duplicate of bit shares or Graphene. at the time, it was interesting, but it didn't seem very complex. Ethereum was rather quick in comparison. And that was kind of the interesting thing. But at the same time, like all those experiments about, was Ethereum was growing as this blockchain that was before smart contracts. You have experiments going there about, you know, what will be DeFi and so on later on. So the two together, there were very interesting parallel environments that you could learn from each other. One from the smart contract perspective and our generic purpose blockchain, whilst the other was like experimenting on specific areas like DAX as well, because they started there creating like the first DAO and so on. So there was lots of interesting experiments on specific domains there.

Nicholas: On Ethereum you mean?

Juan Blanco: No, no, no. On the BitShare side. On BitShare.

Nicholas: Okay, I see, I see. It's interesting because...

Juan Blanco: Because...

Nicholas: Yeah, sorry, go ahead.

Juan Blanco: Yeah, yeah. Because BitShare was released in 2014 and then Ethereum was released in 2015. And obviously lots of these ideas then later on were ported into Ethereum by creating smart contracts. So that was the interesting thing like, hey, you know, actually anybody can start creating this and which make Ethereum super interesting as well. And in the same way, I remember with Maker, that was the... I love the idea of Maker because BitShare had many issues like we will see later on like what will happen with Black Swans and so on, you know, like the stability of stable coins and so on. And having something like Maker, it was then part of Ethereum and backed by Ethereum as an asset and then later on we'll see with the Rai and so on. It was super interesting because having Ethereum as a main generic blockchain, when you can put many, many different domains there, the value of the token is not just tied into one single application, which in this scenario might be the decentralized exchange. You know, maybe if Ethereum can drive kind of the most economies, most domains, you know, let me see with NFT that can be for anything and decentralized finance and then we'll see many other features that will come into place into Ethereum. And then creating stable coins that are backed by Ethereum, they will become more and more stable because the capability of Black Swans will disappear as more and more people use the ecosystem. And obviously overcollateralizing what will happen in the past years with those other extreme experiments that were happening. So yeah, that's kind of... And yeah, I remember coming to like looking into Ethereum and then see how this will grow into a much wider and better ecosystem. And then things like these experiments will work there. It's great.

Nicholas: It's almost been 10 years since you've been in the industry. I don't know if industry is the right word for it, but 10 years thinking about this. 2013, you were saying?

Juan Blanco: Yeah. Although when I started, I continued working at CSC in 2013. Early 2015, I remember, you know, when I came out in CSC, you know, because at the time the whole blockchain experience was a bit of like, yeah, it was a taboo. Yeah.

Nicholas: It still is for a lot of people.

Juan Blanco: Yeah. But I always remember, I mentioned to everyone, when IBM created the ADEPT demo with Samsung, and that was like around January 2015. And that's when I came out in CSC and I started with a friend, Nigel, creating this internal forum mainly related to promote the ideas of the blockchain. It was called Crypto 2.0 and the name was mainly based in the concept that Vitalik had mentioned, his idea of crypto is like we're going to move into a crypto 2.0 space where we're mainly utilizing many of the technologies for decentralization. And then we named that forum after Vitalik, you know, mainly because the idea was great. And also the demo was great. It was fantastic. It was using Ethereum to make automatic payments for the services of the washing machine, which was great because it was a complete business model there that you can actually say, hey, you know, look, all this is happening. And then you can talk to people about it. And yeah, in that forum, we only started publishing kind of all these projects that we just talked about, you know, like Ethereum ideas to do, you know, like I remember making a big presentation and we were talking about mainly maker Ethereum ideas like Ujo, they were coming in and Uport and so on, you know. So what was it about these ideas?

Nicholas: It sounds like it became a speculative opportunity for you pretty quickly. You became interested in the decentralized computation element or something about the liberty from centralized organizations or what was it? Is there any one thing you think that caught your eye about it?

Juan Blanco: I think, well, to me personally, it was a combination of everything. And then obviously, it was the capability of decentralization of the old ideas. So when you have Ujo, you have a whole registry for music and artists and so on, you know, because you can be as well for a property registry. So it can be for anything that you will have like a middleman that it wouldn't be necessary, but also will open up a lot of opportunities for other people to consume that data. And as well as decentralized finance, because I remember like my early years when I joined CSC, it was the time of the financial crisis. And then I was working on the international reporting financing services. And then this for a insurance company. This was due to the financial crisis and the prior was in 2009. And I was actually leaving it because the office was located in Swindon, which was one of the most affected areas in the UK. So there were many, many areas where I was thinking like, there's a new market that you can put in here in place. There are new ways to use decentralized finance in good ways due to this transparency, etc. And then you can actually achieve a lot of kind of the transparency to remove a lot of corruption and etc. Which can help any internal systems or external systems. The whole idea of things being tamper-proof was amazing. When we were thinking about things like voting as well. And what also excited me is the amount of clever people that you could talk to. And that was really, really amazing. You always think like, where are all the clever people? What are they doing? And then I joined and started looking and chatting with people and looking at forums. Oh my God, they're all here. I just wanted to be part of this.

Nicholas: And also people are quite easy to get in touch with. I find even today, even 10 years later, people are very accessible and open to talking to people without a huge reputation or whatnot.

Juan Blanco: Yeah. But everybody's... The culture of helping people, I hope it has remained. Because how it started, it's like everyone in a forum, trying to tell people, you know, I learned something, help other people and everybody, you know, and then everybody continue helping each other. And that's what I have tried to do myself with the projects that I've been involved with. That's kind of one of the areas that I enjoy the most. Although there are times when you see like, sometimes you see the ecosystem going a bit completely bonkers, like what happened the past years. Sometimes you're thinking, you kind of think like, oh, you know, this is probably not, You carry the guilt for that level of... Just before promoting things, it's like, oh, maybe we will run all alone. But it seems that things are getting better. Again, this put the... Sorry. After the last year and a couple of years before...

Nicholas: Even after 10 years of writing code and writing tooling to help people write code, it's still... The cliche still applies that the bear market is more fun for devs, that it's less frenetic and easier to be focused on actually building stuff. It's really true after 10 years of retrospect for you?

Juan Blanco: Yes. Yeah. If I look back, I don't really like the bull markets. Although, you know, everybody will think that economically it's good.

Nicholas: That's kind of how you got into it in the first place a little bit.

Juan Blanco: Yeah. Yeah. So really, that's what brings people in. But at the same time, it doesn't seem to bring all the right people.

Nicholas: All the right people seem to stay.

Juan Blanco: Yeah. True. Yeah. And there's lots of... Yeah. It's definitely lots of noise and it makes people suffer. And also puts other people off as well. And then people get hurt. So it's not particularly a great time. Although, you know, when this quiet time is where the youthful people stay and the new ones who are really interested in to do something good. I always say good.

Nicholas: Do something good.

Juan Blanco: Yeah. Yeah. When I mean, yeah, it's something that might be a problem in infrastructure or something that... And the good old ideas that we're thinking about changing the world. You know, something that might be just a normal product that doesn't change the world. But it might be very valuable or might be these ideas that we had like, hey, you know, let's just bring all this data into here, into this blockchain. Obviously, as we grow older or as we not realize that scalability is always going to be an issue. We realize that things might take a bit longer than we expected. But as we see like every year, every iteration, things are progressing. And when you look back, like what has happened with the NFTs, for example, it's like everybody now knows that they can hold very valuable assets on chain and might look like a monkey or can be, you know, anything that could be like your...

Nicholas: An elephant, a penguin, anything.

Juan Blanco: Or it can be your property, you know. So that's great. You know, in the same way like DeFi, we were saying like, you have the thing is to have this pool holding millions and even billions. And then we've seen like voting and the problems with voting in a bigger scale for DAOs, you know. And so everything is maturing as well. And we also have seen the replication literally of the 2008 crisis with the likes of centralized finance and so on, bad deals. And then heavy speculation that we might have seen in the NFTs and so on. So we've seen lots of things that people have not lived from the previous crisis. And now we've seen it and it's like, oh, well, that's the route that we should not go. That's what we need to fix. And it's great, you know, at least we got another fresh point of reference to this. I think it's great, you know, because we didn't like it and I really hate it. But it's a point to start.

Nicholas: I want to talk about the extensions and about Ethereum. But before we do, I just want to ask you one last question about these kind of historical, looking back at your time. You mentioned a bunch of devs who were a part of BitShares, who then went on to Maker and other organizations. One thing I've felt, but haven't been in the industry long enough to see personally, is that it's really more about the people than about the projects. Because projects will come and go, but the consistent developers and builders will be the ones who are here to invent the next thing, even if their current thing doesn't work. Is that true from your experience looking at the over the years, people coming and going through different projects?

Juan Blanco: Yes, yes. Yeah, I have seen definitely many people coming from different projects. As an example, we're talking like Nick Lye before who, death and peace. And it's just the same that he passed away so young, like 29. Like how many projects he has been from BitShares, then to Maker and then all the other ones like Dapzs and Daptools. He was involved in Balancer and so on. And it was Rico, starting Rico again. So that's a very good example. And then sadly passed away.

Nicholas: I just saw his name on, I think it was EIP 82, which as I was doing research on the extension, you know, just so many contributions early in the history of Ethereum and elsewhere. It's very sad.

Juan Blanco: He was one of the contributors, obviously, like lots of people helping him as well, from the Maker on those teams as well. But yeah, yeah. He was awfully clever. And very definitely, it was everywhere. And in the same way, you know, people are seen in different places. You know, when I joined Ujo, when I finished CSC, I joined ConsenSys and then I joined Ujo, which is the music project. And then I met Simon de la Ruvier and Carl Foster, and you know, which they have. And Gabe and Jesse, who all of them have gone into working and amazing in different projects. But from Ujo, you know, Carl from Optimism and Gabriel, I don't know if you know, Mochi. And Jesse has been involved in so many projects. And Simon from anything we do with tokens, you will know. He has influenced anything. And so, yeah, totally amazing. And actually, it's another thing that really amazed me. When I joined the whole space, like how young the people were and how clever they were. And the opportunity that they had. Because if you compare that to the normal company, you know, these people will be just juniors. And in this space, when they're underutilized and completely, and how amazingly clever they are. And the things that they can do, you know, and the ideas on how to change the world, you know, totally amazing.

Nicholas: Ujo music is a great example because, I mean, at least people who joined since 2020 won't have heard of it, most likely. But quite a cast of people involved in creating this consensus-backed music project. Who then went on to do, as you say, Optimism. Is it Jesse Pollock? That Jesse? I'm not sure.

Juan Blanco: Yeah, yeah, yeah.

Nicholas: Yeah, so creator of Bass, the new Coinbase Optimism fork or whatever you want to call it. So yeah, a lot of talent coming out of projects that even if some project doesn't go anywhere, or doesn't make it the distance. Although, I don't know, maybe Ujo is still around. I'm not up to speed on it.

Juan Blanco: Oh, no, no. It's, I think, yeah, it was just top. But kind of the ideas, lots of ideas that were thought out there or were thought definitely before me. You know, I'd look into the whole ecosystem. I think that like NFTs, like the early NFTs came there, obviously, but later on moving to crypto-kitties. Yeah, all the thoughts about the metadata that Simon was working, you know, have it into IPFS. Kind of removing the debates because I wanted to have it in Ethereum. And then come out in IPFS, you know, but things come and go.

Nicholas: All right. This is Simon DLR. So a huge influential force in NFT thinking as well. Yeah, yeah, yeah. Crazy. All these people working together on a project I hadn't heard of. It's interesting. I think it's kind of interesting for people who are new devs or builders in the space, whatever it is that their talent is, to remember that the things that they're working on, whether or not this specific iteration works, some of the ideas that they come up with in the course of it might have a life beyond the current project. If this is the venue for it.

Juan Blanco: Yeah, yeah, yeah, totally. Yeah, there might be many iterations on the same project. You might, you know, come up with ideas. And the interesting thing, we really were debating all the time, lots of philosophical ideas, you know. You can see, you know, optimism, Carl with his great ideas on public funding and so on.

Nicholas: Retroactive public goods funding, yeah.

Juan Blanco: Yeah, well, at the time, we were in those, but actually kind of similar because it's kind of the same with the music. We wanted people to get paid for who they were, have contributed and have a history for it. Yeah, and that's where this place for coming in something into it. So, you know, all these ideas, yeah, they still prevail, which is great. You know, it's great to see, you know, that they happen.

Nicholas: It's also informative how long it takes. Yeah, sometimes things, sometimes I reflect on how long it took for, say, personal computing to take off relative to the invention of the transistor. And that maybe Bitcoin is the invention of our transistor, but it might take something on the order of, it's conceivable that it takes 50 years for something to be popularized. Even if people very early on can see the Moore's Law progression of its, you know, reducing size, cost, etc. It still takes time to get there. So it's possible that it takes a hell of a lot longer than we anticipate for this stuff to get into everybody's hands. But it must be a little bit frustrating to see things, have the ideas and then have to wait so long. But in the course of helping move things along, you have written this VS Code extension called Solidity, which I think actually ties together both of the projects you work on, both Solidity and Ethereum. The Solidity extension has a million installs on VS Code, 750 stars on GitHub. Features that I use all the time. It has syntax highlighting for Solidity. You can hit F1 and F5 for a contract compilation. It does autocomplete as you're writing code. There's snippets for functions, for contracts, for all kinds of things. Even NAT spec comments to go on top of your functions or other aspects of your contract that need documentation. According to NAT spec. I just learned today looking through the docs that you can even type ERC and get the interfaces for lots of popular ERCs, some final, some even draft. Of course, the extension also does linting, ABI generation, all kinds of stuff. So, well, first of all, how does it work? How does it work to write such an extension that's able to do all of this?

Juan Blanco: Well, it's not just me. You know, this is the, well, the host is, you know, at the backend, you've got the Solidity team. You know, without the Solidity team, this wouldn't work because when you have all the errors highlighted and so on, you have at the backend, they're constantly compiling your source code, you see, and then displaying the errors that the compiler brings to you. So basically you have the Solidity compiler. Without the Solidity team, obviously, we wouldn't have anything like this. So that's cool. And then, and like everything is going to history. The idea, the first idea of the VS Code Solidity extension, well, it was kind of, this was released the day that it was announced that extensions were going to be available on VS Codes. So mainly, and I did this mainly as a promotion for Ethereum. They originally have ping like this, Hanselman, which is from Microsoft. Like, hey, don't you, wouldn't you think it would be great to have a VS Code extension for Solidity and a Visual Studio, like the proper FAT one for as well. And I didn't, now looking at the timeframe, I could have guessed that the time, Cale, Dieter, which was, who later on released the Visual Studio FAT, you know, the big one. And the sweet extension was on the works, but I didn't know anything about it, which is great. Although now it's discontinued, you know, because it really is such a hard work, you know, it's totally amazing that he managed to do that.

Nicholas: I don't actually know if I'm familiar with that extension. Which one was that?

Juan Blanco: So, you know, Visual Studio, the normal development environment for that. So at the end, I think it was in January 2016 or something like that, Cale released an extension for it. You know, he worked for Microsoft and that was super hard. You know, if you create extensions for VS Code, it's much easier to make extensions for Visual Studio. Like, create a simple syntax highlighting is a nightmare. So, yeah, I did this thing and then he announced like, hey, now you're going to create your own proper VS Code extensions. And then it's like, oh, wow, fantastic. You know, so I quickly crafted one, which was just simple syntax highlighting. That's why I'm saying like his work was completely hard. It may seem mine was like just create some simple templates and just drop it there. And then I released it, you know, like probably a couple of hours after the announcement. But the point was like, I just wanted people to see that Ethereum existed, this new language, so it existed. And at the same time, I had the same frustration that everyone is like, how are we going to be able to actually do coding in Ethereum? Because it used to use like Mist or whatever, you know, and it was like a little text box just to write the code, you know. And it was just trying to have something that kind of built in ID, you know. But with really not knowing like VS Code will grow to be what it is now, you know, it was mainly like an example like, hey, you know, this can be a language, main language like everyone else. So that was syntax highlighting. And then people started creating linters, you know. So Solheim was the first linter and the guy was working super hard. And then also it was using SolPars, which was created by Tim from Truffle. And then Solheim came along and then they did the contribution and then it was put there as well. And then obviously talking about Nikolai, he was creating a standard for DAPCs for like a project standard and so on. So I'll put that there. But later on, I started preferring to use things like Open Zeppelin, which was just coming through NPM. Yeah, this is a history of everything. So it was mainly trying to have features and the history, you know, as things come along and trends come and whatever, trying to help them. And the idea always has been like, you know, it's a place for everybody, you know, if you want to, you know, I added an Ethereum for co-generators. But it was like, hey, you know, if you want to put your Java co-generator or your JavaScript co-generator and whatever, just put it there. You know, the same way that people using like for format the document and so on and plug it to the on development environment, which is, yeah, just trying to make, you know, like a simple one stop. You know, if you want to add something, just make a pull request. It's like for everyone. And autocomplete, I slowed down on that area because I was hoping, but the team was working on the small language server, you know, so I was like, well, this is kind of slowly going to make obsolete mine, which is fine, you know, because I think the team is the solution. But it has to slow down the work on that. So now I'm going to try to come in back and add more features. And that's why I have a few months of slow development on this because I was waiting for things to happen. But they're slowing down in the past. So I will continue until things come back.

Nicholas: Are you in touch with the Solidity team? Because I imagine I mean, I don't know if you have daily active stats or anything like that, but a million installs. I mean, there's not that many Solidity developers in the world. You most people are probably interacting with Solidity through the lens of your extension. Do you think about that? And do you work with Solidity team at all? or do they contact you about things they'd like to demonstrate more or change about how people perceive the language?

Juan Blanco: Yeah, we have a chat every so often. And this was in like, they were working on the language server. So, yeah, yeah. Obviously, this is as usual comes on and off conversations, you know, but yeah, yeah, we keep the channels open. But at the same time, you know, hopefully everybody is hopefully busy, you know, so we know we don't have like a regular chat every week. But yeah, yeah. And, you know, again, you see like the amazing work that the Solidity team does with the remakes as well. You know, you kind of, it's amazing.

Nicholas: Do you write a lot of Solidity yourself?

Juan Blanco: Or any Solidity? Yes, yes, I write, but not as much as in the daily basis because I'm focused with Ethereum as well. So it's kind of like trying to do the full circle. So obviously, I look at it as a net developer. Okay, so we'll get to... I write Solidity and then the other bits that comes with it, which is the integration and the other applications that use this Solidity as my...

Nicholas: Is the user base in contact with you often through issues or pull requests or feature requests? Is it an active community or it's just whatever you decide is best? people just stick with and don't ask questions?

Juan Blanco: Which community? Oh, yeah, yeah. Well, I tried to say like, if you want to come, you know, just join the Nethereum Discord channel because it's much easier just to chat there if you want any features and then people come along there. And I try to keep an eye on the issues, but sometimes it's like, yeah, it becomes a bit hard. We just had like many pull requests, but I need to do a release now. But I was last week away visiting my mom's house, couldn't really do it. Although I couldn't publish it on GitHub. So it will be a whole people rowing my house. So, so, so, yeah, yeah, yeah. It's been nice, you know, like the people are doing pull requests and they're very interesting. You know, some of them like a new one that is still on hold there. I was awaiting you just for the... Yeah, it looks super interesting. But yeah, yeah, there's a community and then some small pull requests that really help. And those are really appreciated. And, you know, it's nice to know, you know, it probably is nice if you come and have a chat about the features. It's like I said, it's a slowdown last year, six months, due to this lady working on LSP. I think it has a slowdown, you know, obvious. I'm going to continue working in that direction because people were asking for features. And I was like, oh, this is going to come most probably this area. But wait, it's going to be much better. But yeah.

Nicholas: I know there's a bunch of interesting, like sort of secret features. One of them, or at least less well known to me, like the ERC interface, auto completion. One that I use sometimes is the NAT spec one. And I wanted to ask you a little selfish question. Can we get block style comment NAT spec auto complete rather than the leading slash slash style?

Juan Blanco: That was one of the thoughts that was going to come. But yeah, I will have to work on that. And just talking about this, I put those snippets for generic, like normal smart contracts that you will use.

Nicholas: Yeah, there's those too.

Juan Blanco: So if anybody wants to add them, thinking about any generic smart contracts or interfaces they want to put there. That's a great idea for people to do.

Nicholas: I guess you have ones for the like say the NFT contracts already. I wonder what makes something qualify more like Uniswap, something that's almost become infrastructure at a point.

Juan Blanco: Yeah, I know it's hard, you know, because there are so many EIPs. And you need to know which ones to include, because sometimes, you know, they are overly complex. Because after like, hey, I want to add diamonds in here, you know, and I chat with that with the creative team. And I was like, I don't know how to add diamonds.

Nicholas: Maybe you can do it.

Juan Blanco: Because it's gonna be somebody starts typing a facet and then appears this all day. And they're like, oh my God. And so sometimes you have to stop with the excitement.

Nicholas: What's very interesting to me is Solidity Tips. I don't know if people use this one or not, but I forgot about it until today. I had seen it when I first started writing Solidity. And I think it's so interesting. It's got some handwritten kind of tips from Paul Berg and who else? There's a couple other people.

Juan Blanco: Yeah, yeah. Mainly that came out. ideas like in Twitter, you know, follow them. And then it's like, hey, you know this tip? And it's like, oh, wow, you know, why don't you start putting tips there? And yeah, exactly on the same wavelength. You know, if somebody has any good tips, I think that definitely.

Nicholas: I think that's super valuable real estate. People should really be helping out adding some tips there. And so if you have the Solidity extension, you just type Solidity Tips and you'll see the autocomplete for it. And at the bottom, there's a link to contribute tips by making PRs to a particular file. So it got me thinking about what else could be useful to put in there. Because there's some there that are not obvious, like some simple ones, like surround code with curly braces to avoid stack too deep. And other ones that are not as obvious, like, I don't know, exponential notation for numbers separated by underscores and things like that.

Juan Blanco: Yeah, yeah. Yeah, probably. Yeah, I know the conversation. You know, it's nice to have conversations about this as we have it now. You know, like talking to the probably open CPLM. Yeah, maybe some security tips as well. And so on. In the same way that they have the little games as well as security. Yeah, this will be interesting. Oh, instead of having an extension, the beauty of PS code is that you can have extension, consume an extension, but sometimes people don't find those extensions. So by adding it into this one...

Nicholas: Yeah, I think the discovery is incredible. You've got to have a huge portion of the total Solidity developer audience paying attention to your autocomplete suggestions. So I think it's a really interesting surface for people to think about.

Juan Blanco: Yeah, yeah. And even if you like, just trying to not trying to get the whole, you know, I always say I'm not trying to grab all the real estate, but at the same time, it's a pointer. Yeah. So you might have like, hey, you know, this is my security pointer. Yeah. And then there's a link for this extension. You can have a hundred more pointers, you know? And then we're like, oh, wow, great. You know, I still like extensive on top of this, you know. So trying to use it as an advertisement as well.

Nicholas: For good security code and good performing code. Definitely think that's interesting. I had one more selfish question about the extension. Is it possible to get the extension to pay to two default dependency directories at the same time? And the reason I ask this is because I use Forge, as many people do these days. And this default dependencies directory setting lets you only, although the explanatory comment text in the VS Code settings pane suggests that you could set two at the same time, like lib and node modules, for example, if you're both using Forge submodules style installs and Yarn or NPM style installs. In practice, I can't get it to actually work. Is it possible to set two default dependency directories?

Juan Blanco: Yes, but you won't have to go in the normal role. You will have to use your, like using the normal file for the, yes.

Nicholas: Because it expects a string. We're really in the weeds of a personal request here.

Juan Blanco: Yeah. Yeah. Yeah. So that becomes a bit more money as opposed to like, hey, just look at everything in this file. You will have to, yeah. It's just mainly using the redirects file.

Nicholas: Yeah, sure.

Juan Blanco: Sorry. I'm just looking at it. So you have, so if you create your, your little remappings file, yeah. And then obviously, so like, hey, then if I can, can I kind of post it in the chat?

Nicholas: You can tweet it.

Juan Blanco: All right. Right. Okay. So if you look at the remappings, that will allow you to say like, hey, open simple lib, open simple lib, lib folder, and so on. And then you will pop another folder to, you know, like people are putting with the brownie packages as well.

Nicholas: You have to put it on a per dependency basis in Solidity.remappings, off the Solidity.remappings key.

Juan Blanco: Yeah.

Nicholas: Because there is this other Solidity.package default dependencies directory one, which is very useful because anybody who's got the extension has experienced having their import statements underlined with squiggly red or red lines sometimes. And it's because as I understand it, the Ethereum compiler inside of the Solidity extension isn't able to locate the dependencies, right? So by giving it the right directory.

Juan Blanco: So many, yeah, it defaults to the, to the node modules, which is the, the, as everybody, they start distributing everything through NPM, it defaults to the node modules and that's where it looks for the packages. But you can probably like combine it to the, to the remapping as well. You know, so obviously if you have any extra ones and, and when people are using brownie, they will find in there as well. Yeah. So your idea and your thoughts.

Nicholas: Especially because if you're doing forge, like, basically the plan that I've landed on lately is to use yarn for anything that has an NPM package and to use forge sub modules for anything that doesn't, if it's just on GitHub. But the sub modules are, it's okay, but it adds a lot of cruft. It adds all the sub modules to your project and then they show up in your VS code, you know, get a tab. And then there's potential for, it just seems to work cleaner if, if you're using the node module style, but for ones that don't have NPM packages, you have to resort to using the forge style GitHub installs.

Juan Blanco: Yeah. I know it's, this is the, but normally forge is supposed to remap things as well.

Nicholas: It's okay. But there is a danger if you, I don't fully understand it, but basically if you are relying on a dependency that has its own remappings inside of it, sub modules is supposed to handle the kind of recursive updating and not get confused. But I have found that there are situations where if two dependencies have different ways of referring to shared dependencies of their own, I've run into trouble. I'm not sure I fully understand what the trouble was. It's not, it's not bothering me now. So I've stopped thinking about it, but the dependency management can be a little bit tiresome. So having this ability to tell forge the other thing I've learned along the way for people listening, I might as well share all the knowledge in the foundry.toml. You can put the libraries in there and you can list in there as in the array. You can put both the lib directory and node modules directory. And then forge will look in both. So that way it's, you know, you can use both at the same time.

Juan Blanco: Yes. Yes. This is funny because they come from like, cause forge came from daptools, which is kind of used in the dapt scene. Yeah. And that was kind of the original structure. Just to, what the contrast would be and where the directory will be, you know, so obviously you have like your, a structure in which you have your lib, lib is the, your, the folder where you have all your libraries. Yeah. And then you, for some reason, you just put everything underneath the source, but you don't really want that to do, to be part of your path. Those, those can be removed from that search. You know, the, the source. Yeah. Hopefully that makes sense.

Nicholas: You know, just basically you're importing something and from the import statement is, as if you're importing it from a parallel directory, but in fact, it's looking in lib or in node modules instead.

Juan Blanco: Yeah. So, so for example, you say like, I got the, I have the lib and then module one, I'm looking at the read me at the moment and then the forward slash source and then forward slash test dot solve. Yeah. And this is scenario when you say like, Hey, the contrast directory is in source, you know, but you don't want to solve source and your import. So you only want to solve module one forward slash test dot solve. That's where you will use that specific section. And that comes from the old app sees, and then that's why it will work in a, you know, on force. Cause yeah.

Nicholas: Which is a project, which is. that's from Nikolai, right?

Juan Blanco: Yes. Yes. Yeah.

Nicholas: Yeah. Very crazy. I was looking through some of the DAPS stuff today and I saw DAPL and I didn't know what that was. And I looked it up and it's from that, that project from that era.

Juan Blanco: Exactly. So yeah. So that was the, what it is like open simply in the, but it was just for a maker. So mainly they were creating all these new patterns and contracts. Yeah. As part of creating maker. So in that way, there's like, Hey, you know, instead of making part of make itself, you know, we can create this library for, for everyone to use, you know, we thought the best, you know, simple patterns, you know, and they have like the oath and wherever, you know, the, the typical pattern for authentic, you know, but, and validate that is something is a, is from a specific owner and so on overflow and so on. And then some tokens, you know, while we create a West as well, you know, so, so many small patterns that can come in from there. And then the way that we're structuring, that's where coming with this conversation, like I've like the source and the main library because there was an every recursive mode. So obviously you will have a model that has inner models as a dependency. Yeah. And, and that was a kind of looping through the, those small dependencies. And, and then later on came open settling. Obviously the, the, that seems was very focused on, you know, it's like we've got this for another community and, and then we started, you know, but it's kind of the backend for, for maker. And then we started with everyone and then opposite came in with more specialized and like, Hey, we just make it, this is what contracts for everyone, for all the patents. And then, so that's what we call the mixture of, of, of both. So hopefully I kind of expense. and then, and then, yeah, then that tools grew, but obviously that was the, you know, the, the guys who make it continue the, the, the project and yeah, which is, is there were some people from a Martin as well. Yeah.

Nicholas: That's where DS test came from and that's where forge inherits its, its logic from.

Juan Blanco: Yeah. Yeah. So, oh yeah, I, again, you know, so, and that was one of the things that made me super excited as well. Like when I was in CSE and I was talking about it, it's like, cause I was as well worried like, Hey, you need to test this, you know, and how are you going to test, you know, and they're bringing the sample. So I was creating as well as examples myself. And, and, and I remember one of my little battles at the time, which it was like, in the center price environment, nobody will use node at the time. Nobody will use JavaScript, you know, because all the media dependencies and security and so on, that was like a red herring across. And then you couldn't install all the normal enterprise might be a little lockdown and just bringing, just merely installing windows, the MPM packages because they were bringing all the easy libraries and so on. Yeah. I was a complete nightmare. So, so, so as a little battle, it's like, Hey, we need to make this work in windows. And people are like, Oh, we don't like windows. There's lots of people that use windows as well. So, so yeah, when I was doing the demos, I think, I still keep one of the demos. I did like, Hey, you know, how can you test using this test? And DAPL, which is to me, kind of hit again a super selling point and on this. And the interesting part of this test at the time as well, it was, it was like unit testing and in the smart contracts. Cause normally most of the tests are integration tests. It's kind of what we'll do with an Ethereum. Yeah. Which is mainly write a smart contract and then I tested externally through integration tests, deploy it and so on. Or we'll do with Truffle or Hard Hat and so on. Yeah. As opposed to test it internally. Yeah. By having another smart contract.

Nicholas: So you're saying that's relevant because you're trying to make it composed with other contracts. So it's relevant to be writing tests and solidity the way DAPTools was doing so.

Juan Blanco: Yeah. Yeah. Yeah. To me, that was like super interesting. Although personally I ended up doing it with like I said, with an Ethereum for simple integration testing. But by using the smart contract itself, it allows you to open lots of possibilities because you can, you don't need to have to deploy it to Citrion. Then you might need to create some private, you know, things that are private but you want to test it internally.

Nicholas: And the difference, the shift from DAPTools to Forge, Foundry inclusive of Forge, as Foundry is written in Rust. What was DAPTools written in? What was the impetus for the shift?

Juan Blanco: Oh, I don't know. I don't know the history of why they moved from DAPTools to Forge.

Nicholas: I think Forge was the Rust implementation of DAPTools, but I'm not sure. I never used DAPTools personally.

Juan Blanco: I think DAPTools was like a main thing is by Martin and a couple of other people. So they just wanted to create their own tooling. That was kind of based on that. But I don't know the history of why they moved to the new tooling.

Nicholas: So tell me about Nethereum more because Nethereum is, I mean, so personally, I don't come from a .NET background or Windows development backgrounds, but Nethereum is a huge project and very popular. Maybe could you explain a little bit what Nethereum is and what it's used for in popular projects?

Juan Blanco: Yes. Yeah. So Nethereum is the .NET integration platform. It was born in the kind of the same way of the VS Code Solidity as a way to promote Ethereum, but for the .NET community. I started doubling, you know, creating .NET stuff for Ethereum in 2015. So I was just creating EVM and many other little bits and bobs for integration, but nothing really. But yeah, I was around to, yeah, early 2016. Yeah, I was working with the maker guys and talking about integrations and so on. And then I thought, hey, you know, we definitely need an Ethereum .NET integration. And this was more focused about my kind of my work, you know, the people, the experience of the developers in my company. It's like if these people, what we were talking about before, you know, it's like these people are not going to be able to work in JavaScript. They're not going to, they have all the experience working with .NET. You know, how can we enable these developers who have this background to work in Ethereum? And at the time, this is when Microsoft just bought Xamarin, which obviously is a company that allowed the development of .NET for Android and iOS and Mac. So as well, the first sample, like a mini wallet, you know, to work with that. So, yeah, so we're sorry, I'm kind of drifting away in history. So what does Ethereum do? So mainly the idea is that it's a .NET integration platform. So you can create your own backend in .NET that integrates with Ethereum. You can create your frontend and desktop, mobile and so on for Mac, Windows or whatever. As well, work on the web. So you can now with Wasm, you can host in Wasm the whole .NET framework. So if you look at the Ethereum playground, you can just go there and execute any Ethereum snippet of code that you will see there and integrate or even just write your own and integrate directly with the browser with Ethereum.

Nicholas: So that's essentially executing .NET code in a browser entirely, no Microsoft OS required.

Juan Blanco: No, no, no, no. I think, yeah, exactly. Which is if you kind of start thinking about how is this going to be in the future, you know, and lots of people are working now in Wasm in the .NET world. Yeah, you can see like there's a new model to work in the browser or work decentralized. And that way, because you can use fully publish this directly and then just use mainly hosted through IPFS.

Nicholas: Who's the audience for that? Is that like an Ethereum devs, people who have a background in writing code for Microsoft and then are for .NET and then either deploying it to .NET devices or to the browser via this Wasm extension? Is that the audience? primarily people who have a background in .NET? or is there a reason you would want to learn .NET development to use the Ethereum outside of it?

Juan Blanco: Yeah, yeah. Well, we've seen lots of people is coming because they want to do games. Because Unity is one of the major game platform development, you know, not just games. Obviously, you will have like see the metaverse or 3D environments or shopping using 3D or whatever. So you will normally use one of the biggest platforms for that. And you see .NET is the main script of language. So I have lots of people using Ethereum for this. And another reason is like, do you want to create a cross platform applications, you know, for targeting mobile desktop and so on, and the browser, you know, all at the same time, you know. So with .NET now in MAUI and Blazor, you can create the same application that targets everything with one's code base, you know. And so people might want to do that, use that instead of kind of a mystery of React Native or so.

Nicholas: I guess JS would be the choice that would come to my mind. But you're saying .NET is another viable alternative for similar kind of cross platform development, especially sounds like for if you like a Unity oriented kind of dev.

Juan Blanco: Yeah, yeah, yeah. Or you are mainly just creating a cross platform. Yeah, definitely application. If you want to try to get native and fully native, like, you know, compilers into native. Just create an app for everything. As opposed to like using Electron or other stuff. Right, which is so slow. Yes, exactly.

Nicholas: Are there projects that people are using today that they might not realize are powered by an Ethereum?

Juan Blanco: Well, EtherScan uses an Ethereum. Wow. In some places, I don't know how much they use it, but I know that they use it. And there's some NFTs, Bitcoins that they were using it.

Nicholas: I can't remember. I asked ChatGPT who uses an Ethereum and you tell me if this is accurate. They told me Microsoft Azure Blockchain Development Kit. I've never used it, but it makes sense that that would be Ethereum based.

Juan Blanco: Yeah, they still use it and they're not moved to consensus.

Nicholas: Okay.

Juan Blanco: Yeah.

Nicholas: MakerDAO, somehow MakerDAO uses an Ethereum to interact with its smart contracts. That one wasn't obvious to me what the connection would be.

Juan Blanco: No. Yeah. Historically, when I was chatting with them, trying to help them, one of the examples I put, it was for MakerDAO, the wallet example. And then... Okay. But no.

Nicholas: KyberSwap, apparently. Maybe it's a similar thing. It's just in some example. They said also Stratis and Enjin.

Juan Blanco: Oh, Stratis. Stratis was a chain that years ago that they were using. They were using it for something.

Nicholas: I guess Enjin maybe makes sense in the SDK for like a C-sharp interface for writing games somehow.

Juan Blanco: No, no, no. It was not for Enjin. It was mainly for Stratis, so they will have used it for some dependency for some of the utilities that might have happened for the API coding.

Nicholas: Well, I think Etherscan is a pretty big example of the value of Ethereum.

Juan Blanco: Yeah, yeah, yeah. Of course, you know, the Etherscan team is great. You know, the thing that people don't know is that they use bb.net and they... From many conversations, but I don't know if it's across, but they use bb.net or, you know, it's created by Matt in bb.net, Etherscan, which is totally amazing. If you think about it, bb.net or bb.basic, it was kind of. the people have moved more into the C-sharp side. You know, so that shows you how deep into .NET world they have been for years. So, yeah, that's...

Nicholas: I've heard Tesla also runs on .NET. I'm not sure. I have to confirm that.

Juan Blanco: There is so much stuff that runs in .NET that you wouldn't know, you know. Obviously, there are other projects that run, but I'll say, you know, mainly if you... And .NET enables you to compile to native and to do many, many things. In a similar way to JavaScript, if you think TypeScript, it has been created by the creator of C-sharp in .NET, you know. So that shows you how things are influenced by each other in the two languages.

Nicholas: Yeah, that is interesting. I'm curious. I wanted to pull back a little bit to ask about like Solidity and the whole environment of development today. You know, you've got started with the Solidity extension like right away on the first day that extensions were available. I'm curious if you have any observations about how writing code for the EVM has changed over time and if you think Solidity is like locked in as the programming language that we'll be using for the future of writing for EVMs.

Juan Blanco: I hope so. That it will be. Mainly because I'm very old. And the reason for this is that I, you know, I have seen like people coming and going like, oh, Solidity is going to go and so on. And like I said, I'm very old, you know, and then you might see like, hey, you know, you got issues, you know, but it is important to stick to something, you know, if you're going to stick to like the things that are solid, like the EVMs or whatever, things are starting changing, changing and people don't know what to choose. And then adoption disappears and then all the values are kind of go out the window. And if you can see like how chains have grown and they have grown and not just Ethereum, but like all the L2s or just forks of Ethereum have grown thanks to the EVM and Solidity. And mainly because the portability of these smart contracts that like OpenSibling has put in place there. Obviously, you will have like the new CK stuff. But when I see like, I personally when I see the Solidity compatible one on transpilations or obviously looking at the EY that they have created now with, I think it's fantastic. Because it's about the learning and the knowledge and the capability of the users. You know, people want to, you want people to create businesses, create applications.

Nicholas: That's the only thing that I mean, I'm sure there's lots of things that are suboptimal about Solidity, but I noticed that it's great for the fact that it's very legible to someone who just speaks English. The syntax is very comprehensible, especially if you have a little bit of awareness of JavaScript. Even though it's not really like JavaScript, it is readable to someone who has played around with JavaScript, which I think makes it very powerful. But the multiple inheritance issues are really bad. I haven't used any other language, but I can't help but feel that Solidity's multiple inheritance choices are maybe not very good ones. As soon as you start dealing with two dependencies that share a dependency of their own, it becomes very difficult to order your inheritance and your overrides. And it just seems like maybe not the right way to do things.

Juan Blanco: Yeah, yeah. I think it's one of those things that you have to get used to, you know, and then when you fail, you kind of fix it. Although, yeah, multiple inheritance sometimes really helps you because it's like, hey, you just got the same set of code and reuse.

Nicholas: The real issue is when two dependencies have conflicting versions or conflicting keywords from their dependencies, then you just have to go and edit your dependencies, as far as I know, which is not great.

Juan Blanco: Yeah, true. True. But I think it's one of those things that, yeah, things are getting more and more complicated. As you have many dependencies and so on. But you think like how everything started, like having a very tiny smart contract. The whole idea, you know, when you look at DApps, and then you have like three levels of inheritance. that was like a nothing, you know.

Nicholas: Now we have diamonds.

Juan Blanco: Yeah, yeah, exactly.

Nicholas: And still things like Etherscan don't... It just takes so long for the ecosystem to catch up to things like. even just looking at inspecting a Gnosis safe transaction on Etherscan is very difficult to figure out what's going on. So while all the information is there, the fact that it's so opaque to users makes the transparency promises of the open source code. It just takes time for the ecosystem to catch up to these things. Even something as popular as Gnosis safe, which I mean everybody uses, still you can't. If you go look at one of those exec transaction calls, it's not easy to figure out what's happening.

Juan Blanco: Yeah, yeah. So of course, yeah, you will have to know which function it is, what contract it belongs and then do the decoding that way.

Nicholas: Yeah, there'll be interfaces for it. I mean, safe does it to an extent. I also wonder about the like four bytes. That seems to be a weak point of... I guess, is that Solidity or is that the EVM? Maybe it's EVM.

Juan Blanco: It's a combination of both. No, that's definitely the Solidity search because when you compile it, then it will search for the four bytes and then that's the function signature. But obviously, that has become the standard as well. So it's one of those things by Solidity, it's deep into the way that everything works.

Nicholas: The ERCs and everything.

Juan Blanco: Yeah, exactly. So yeah, definitely. Yeah, you're totally right. You just said yourself, ERCs.

Nicholas: It's a bit crummy that there's like collisions of the four byte selectors. Also, it seems to me, I'm not... There are much wiser minds that I'm sure have more sage opinions on it. But it seems to me like the whole supports interface, is that 165 or whichever EIP that is, without having guaranteed execution, we find out years later things like OpenZeppelin's. safe transfer from is actually less safe because you're passing execution to the scope of the contract that is the recipient, or the address that's the recipient, which is potentially a malicious contract. So actually safe transfer from in 721s is unsafe, much less safe than not checking whether it supports the interface in which the implementation of which it could be doing nasty things.

Juan Blanco: Yeah, I think probably for that, that's why I came on creating simulators. That's why I left the EVM for a long time because I didn't want to start like a full node because it will be a maintenance issue. But at the same time, I knew I needed to provide all the components for the nodes because you just need to simulate the transaction, you just want to validate the method, which is much easier, so your account state or whatever, and do so much stuff. So yeah, simulation of the transaction, the users should be able to simulate and know what states have changed just before they actually submit the transaction. You know, that might be a malicious smart contract.

Nicholas: You can sort of do it. unless they do something like, it's only so safe because you can do the simulation, but if they front run your transaction and deploy, like create to deploy to counterfactual address before your transaction hits, then actually maybe there is a contract there, even if there wasn't when the simulation was run.

Juan Blanco: Yes, true. And I hate, I really hate the math, you know, it's like, but you know, the Gnosis guys, they were experimenting with the Gnosis chain with the encryption of the input data. And I thought, oh, that's a great idea. But now looking at the kind of abstraction, you know, where this comes in another form, the input data, you might be creating a new math there, you know, so. But yeah, if we could get rid of the math, then it's great. You actually, you know that your transaction is going to execute similarly as what you expect. And of course, you may have changes that will affect your transaction. Like we said, the kind of sandwich mechanism, but basically nobody knowing why, you know, nobody preempting that you're going to send a transaction with a malicious intent. So yeah, ideally, I personally, yeah, it would be great if we can get rid of the math and it doesn't make any sense. Of course, there's got to be a market for, you know, for like, hey, you pay more cash, and the transaction will be included. But nobody needs to see the input data until it's there.

Nicholas: Yeah, but I guess I don't understand the internals of it well enough. But even the nodes don't need to be able to simulate the execution of the thing until, like they include transactions that are fully encrypted without checking if they're viable or not?

Juan Blanco: Well, the kind of the idea is like, hey, I know that I'm going to order this transaction. I'm going to include this transaction. And then you can say, hey, this transaction is going to be included. And then based on these fees, and then now they're included. You know that it's going to be included in the password, now you can decrypt it. And now when it's decrypted, you can execute it and then do the normal stuff.

Nicholas: Oh, I see. I see. Okay. So they did the sequence before it's revealed.

Juan Blanco: Yeah, exactly. So and how they sequence because they put the priority fees and so on. So I think that's probably the same kind of, it's a solution, you know, it's a way forward. So then, yeah, the whole mess, people sandwiching and people having to go to a private nodes just to get things included and then get sandwiched there as well. You know, it's just that it's not particularly great. It's not great.

Nicholas: Nor is censored blocks.

Juan Blanco: Yeah, yeah, exactly as well. Yeah. If you don't see the data, things don't get censored as well.

Nicholas: Yeah, that's true. Oh, that's exciting. All right. I'm gonna have to learn a little bit more about that. Well, we've been talking for a long time. I wanted to ask you a couple last questions. I'm curious, do you play around with NFTs at all? Or do you have any things that you're excited about that are happening at the app level these days?

Juan Blanco: NFTs? Personally, no, I haven't really played lately with any NFT. Obviously, I'm just doing the tooling for the NFTs. I know that people are creating stuff for gaming, which is exciting. Different assets that can be for gaming, you know. But obviously, there's people that are moving in that direction, which I think is great. I want to see more, like I said, like properties and things like that. And some other assets that can be there, or the kinds of materials as well.

Nicholas: Real world assets?

Juan Blanco: Yes. Yeah, exactly.

Nicholas: I think it's going to take some time because it's so much easier to deal with things that are just living inside of the chain. But definitely, it will be cool.

Juan Blanco: Yeah, I think that would kind of prove the whole ecosystem. But yeah, you're right. Virtual assets and gaming is actually one of the much easier ones as people can... As we grow, I think like, again, new generations will be able to understand those very quickly. And then they see the value. That's why we're so keen on gaming since many years. You know, since we started creating the first Unity sample with the floppy F.

Nicholas: Yeah, for sure. I'm curious, how does Ethereum... Is it supported by Ethereum Foundation or is it a part of a company? How does it work?

Juan Blanco: When I joined ConsenSys, obviously I was putting some time on there. When I was working in Ujo, the backend was created using Ethereum. So it was kind of working both ways, you know, like improvements were going to Ethereum and so on. And later on, because I was spending so much on it, it became like a spoke there. Like you know, mini funded, you know, like open source project. And later on, I left ConsenSys. And then during the COVID period, so that was just mainly me trying to keep it alive. And then I went back to ConsenSys because I used to do some blockchain work and so on. So that also allowed me to continue working on it. And now I'm off ConsenSys. So yeah, so looking at some kind of funding or maybe just doing some work, which will allow me to continue the work with it.

Nicholas: Got it. So Ethereum is accepting donations now.

Juan Blanco: No, well, if I can keep it, you know, I do work and then I continue. the work is great.

Nicholas: Do you have a Gitcoin or anything for the project?

Juan Blanco: No, no, I haven't created any Gitcoin. Not having created any Gitcoin. Mainly because at the time, there were so many projects that were going to Gitcoin and people were putting, donating with the expectation this is going to be a token. So I felt like...

Nicholas: Oh, because Uniswap did that.

Juan Blanco: Yeah, yeah. If you see like the guys from DropDayLift mentioned it, like every other day, like people asking like, hey, when token, you know, because you got the credit there. So I kind of was, yeah, I was very reluctant to ask for donations and COVID time. for that reason. And also because like you said, like Ethereum is very popular within its .NET niche. Although it's got like 2 million downloads. No, it's got a few downloads.

Nicholas: That's awesome.

Juan Blanco: That's great.

Nicholas: A big niche. Yeah.

Juan Blanco: Let me see. So I thought, yeah, I was not particularly... Yeah, it's got 2 million downloads. But that is like in total. You know, like, so it's not like 2 million people working on it every day. But obviously, yeah. This is funny, you know, it's not like VS Code is so big because like you have a developer and you work on it. You know, like these packages you can have like a huge company, Microsoft at the time. And they might use just one package, you know. So it doesn't mean, you know, that doesn't come one developer per download. So, yeah, yeah. I saw those issues, you know. I didn't really want to... I still didn't have like a solid idea of how the whole token... If I was going to release one, because I always thought like if I was going to release one, it was going to be kind of following like Carl's ideas and so on, you know. Or the drips. You can see the examples in the playground. How, like I see like, eventually like my ideas of Ethereum deployment with multiple, you know, like using WebAssembly and so on. And multiple components that can use each other and then validate it and then drip into each other, you know, for the usage. You know, so kind of like my hiding the sky idea. That's like a semi open source kind of helping each other, projects and so on, you know, but using things like drips. So, yeah, I don't think...

Nicholas: Essentially like projects paying one another.

Juan Blanco: Yeah, yeah. That will be... Yeah, that's kind of what drips is, you know. But kind of like if you couple that with the deployment and the loading and then people having the visibility because you can see that it has been based on something like that. Yeah.

Nicholas: Makes perfect sense.

Juan Blanco: Yeah. Well, great.

Nicholas: Well, no, open source projects should be supported and they should be able to support each other and people should be paying for their dependencies, especially if they're making tons of money.

Juan Blanco: Yeah, yeah, yeah. It's kind of... But kind of just put it as a time of loading, you know, because with WebAssembly and .NET, you are able to say, hey, I want this component. I want this component and they all load dynamically. If you go to the playground, you can see that where the assemblies have been loaded, et cetera, and so on. So I'm using the playground as an experiment for this. Obviously, I'm growing as .NET is growing as well. It's one of those things like I want everything tomorrow or yesterday. But things don't develop as fast. The same thing with wallets and so on, you know, things like Maui now getting solidified. We're talking about how in 2016 Microsoft bought Summerink, which is the people who created Mono, which is another version of .NET and so on. And now we are in this corporate brand into Maui. And then this is where we are, you know, here with the probably like. things are stabilizing now for these cross-platform desktop mobile application development. And then we all have been waiting there. And you've got fantastic projects, which are not Microsoft related, which is Avalonia. And they have a fantastic wallet for Bitcoin and CoinJoin as well, which is developing in Avalonia. And so, yeah, the .NET ecosystem in the Bitcoin world is actually really, really good. And so they're in Bitcoin guys and Nicholas Dory, which is a very good, great. It's another one. That's good. Yeah. Lots of information from many people. And it's amazing by all the research you have done. I'm quite impressed by it.

Nicholas: Oh, good. I'm happy. I was nervous for this interview. I was looking things up, trying to make sure I know enough to ask you good questions. This has been really great. Thank you so much for sharing the history of, well, both your personal history and the history of these two interesting projects. One of which I use, I guess both of them, because I use Solidity, the extension. I'm using Ethereum every time I save the file or every time I format the file. So I'm a big Ethereum user too.

Juan Blanco: No, no, no. Actually, the only thing that... Only for compile? No, no, no, no. Even the compilation is the Solidity compiler. There's the Solidity team. Is there no Ethereum? No, no, no, no. The only Ethereum part there is just the tooling to allow, to generate the interfaces. The same with hard hat, truffle will do with the artifacts. So there's no more Ethereum there.

Nicholas: Is that used for checking if the import statements work?

Juan Blanco: No, no, no. That's just for me, TypeScript.

Nicholas: Oh, wow.

Juan Blanco: I can code other languages, obviously. I'm not as good in TypeScript as in .NET. But yeah, it's just mainly TypeScript. Although, I was thinking I might plug in the Ethereum EVM there eventually.

Nicholas: For what purpose? Just for fun or for something in particular?

Juan Blanco: No, because all the other compilers, debuggers, they are growing, and they are more specialized. So just adding a debugger there, it will be pretty not necessary. Like you're using it as well, it's part of the overall tooling. that will be conflicting. This is part of the Ethereum. The VS Code Solidity is for everyone. Don't want to impose. I just want more people to be able to say, right click, oh, generate my JavaScript, my Java, the same way as I do with Ethereum. Because I want to generate UIs as well for .NET as well, part of the VS Code extension. So if you want to get started in .NET or Unity, if it can give you a kick start through the extension, that's great. But at the same time, it would be great if other people were like, hey, I just want to add my quickly react or whatever app or whatever there. In the same way, that would be ideal. So everybody just goes there and then write some smart contract and get something visible very quickly. That would be amazing. Just to get more people to see the whole workflow. People get very lost with the end to end. If people can see like, oh, I got a UI, I got something there, I got a smart contract, they learn it much faster. That's my perspective. Especially thinking, again, younger generations, those are the ones who... That was also happening over my years. as Ethereum grows and grows so quickly and things get more and more and more complex. How to ensure that everybody knows about everything. And so it's the learning curve going to be more and more complex as things are coming, new things are coming. So it was hard.

Nicholas: Yeah, there's never a better time to get involved than now when things are relatively simple.

Juan Blanco: If you think about years ago, it was complicated. Just to people understand what was a blockchain and how it works and all the different ideas behind it. And as we keep growing and then decompose it into different ledgers and dependencies and different types of storage and so on. Yeah, it's the learning curve is higher. Also, I think with less fear now, I guess, thanks to things like NFTs that make it very simple. And in a way, those monkeys are makes it very simple for people to say, oh yeah, I get it.

Nicholas: And tooling too. I think the tooling has improved a lot.

Juan Blanco: Yeah, yeah, true. Yeah, definitely. That was kind of my goal for my tiny, tiny, tiny parts. Just to make it easier. If you look at the playground, hopefully you have a quick look at how to enable people to learn without any fear. Like, okay, so I'm going to connect here and then RPC and send a transaction and so on. And deploy my contract. Yeah.

Nicholas: Where should people go check out? Playground.netherium.com. And that's the best place to check out Netherium. And if people want to try the extension, I guess the VS Code extension marketplace, just search for Solidity. Yeah, yeah, yeah. Certainly the number one hit.

Juan Blanco: Yeah. If you go to the playground, you mainly go many examples there. And if you go to the GitHub of Netherium, you go many, many, many projects and templates as well there. And the VS Code Solidity, of course, for your day to day Solidity needs. Yeah. And trying to keep it platform, you know, develop environment agnostic. To use. And yeah, yeah. Like you said, like, yeah, ping me, ping me your suggestions. And then we can have a chat.

Nicholas: Yeah. Everyone jump into the Netherium Discord if you have ideas or I guess maybe post an issue on GitHub. And thank you so much, Juan, for all that you've done for the ecosystem.

Juan Blanco: Thank you. I appreciate that as well. Yeah. Thank you very much. Yeah. Thanks for having me.

Nicholas: It's great to get to meet you and chat. Put a voice to the details in the extension on my computer. Thanks so much. Thank you to everyone who came through and listened to this conversation. So, Juan, thanks so much. Hope to talk to you soon. For everything Web3, follow me on Twitter at Nicholas with four leading ends. You can find links to the topics discussed on today's episode in the show notes. Podcast feed links are available at Web3GalaxyBrain.com. Web3 Galaxy Brain airs live most Friday afternoons at 5 p.m. Eastern Time, 2200 UTC on Twitter Spaces. I look forward to seeing you there. Thanks.

Show less

Related episodes

Podcast Thumbnail

Derek Chiang, CEO of ZeroDev

7 December 2023
Podcast Thumbnail

Nazar Ilamanov, creator of Monobase

8 January 2024
Podcast Thumbnail

Ethscriptions with Tom Lehman

1 August 2023
Juan Blanco, creator of Solidity for VSCode and Nethereum