
{"id":55937,"date":"2025-04-01T06:48:24","date_gmt":"2025-04-01T06:48:24","guid":{"rendered":"https:\/\/mycryptomania.com\/?p=55937"},"modified":"2025-04-01T06:48:24","modified_gmt":"2025-04-01T06:48:24","slug":"learning-solana-as-a-seasoned-ethereum-developer-part-1","status":"publish","type":"post","link":"https:\/\/mycryptomania.com\/?p=55937","title":{"rendered":"Learning Solana as a Seasoned Ethereum Developer (Part 1)"},"content":{"rendered":"<p>Modern devs of all kinds are regularly faced with the same dilemma: trying to determine which new language\/stack\/framework etc is worth the time and effort to learn and add to our tool belt, especially when that time and effort could instead be spent refining the skills we already\u00a0have.<\/p>\n<p>Photo by <a href=\"https:\/\/unsplash.com\/@kimdonkey?utm_source=medium&amp;utm_medium=referral\">Manki Kim<\/a> on\u00a0<a href=\"https:\/\/unsplash.com\/?utm_source=medium&amp;utm_medium=referral\">Unsplash<\/a><\/p>\n<p>I\u2019ve been a Solidity dev for just over 7 years. In that time I\u2019ve launched a few successful projects of my own, done a lot of contracting, and even had the title of <em>Senior Blockchain Dev<\/em> at a couple of companies. All of this is to say I think I can confidently call myself a \u201cSeasoned Ethereum Developer\u201d.<\/p>\n<p>In that time, the Ethereum ecosystem has evolved and matured quite significantly. The tools we have to work with and the capabilities of Solidity itself have both been improved a lot by the hard work of the Ethereum community.<\/p>\n<p>Trying to debug a smart contract in a time before custom revert messages (ie. before <strong>require<\/strong>(condition, message) ) was a much more laborious process, and my dev environment before Hardhat existed included a lot more home-made tools. There are <em>many <\/em>more examples, but all of them are testament to the fact that a lot of the best dev talent in web3 has channeled their energy into making the Ethereum environment a pleasure to work\u00a0with.<\/p>\n<p>And so, it is with these quality tools at my fingertips, and with this level of experience, that I decided a few months ago to learn Solana dev. In this first article we\u2019ll start off with a more high level discussion, and I\u2019ll cover more specific aspects of Solana as an Eth developer in subsequent articles.<\/p>\n<h3>Why?<\/h3>\n<p>I suspect that people asking \u201cwhy?\u201d will fit into one of two camps. Those with a genuine curiosity about Solana dev who want to know if it\u2019s worth their time, and those Ethereum devs who are more skeptical wondering why I would spend the energy on something they consider inferior to\u00a0Eth.<\/p>\n<p>I do have some reasons, but before I give them I want to push back against this impulse in general. There are a lot of loud voices that will tell you everything you do has to be maximally productive or be a step towards some sort of pre-defined financial or lifestyle goal which is then a measure of your value as a person. To be blunt, this is dumb as shit, and is corrosive to your own humanity. There is great value in doing stuff for no reason other than because you find it interesting or enjoyable.<\/p>\n<p>In fact, despite it being nearly a decade of my career, when I started learning Ethereum I didn\u2019t do it because I expected to make money off it. I did it because the tech seemed cool af, and <em>\u201cthis seems cool\u201d<\/em> is a much stronger motivator for me to learn about something than <em>\u201cthis might make some money\u201d<\/em>. You may not feel the same, but I think this perspective needs to be spread more. Sometimes it\u2019s valid to just do things because you want\u00a0to.<\/p>\n<h3>So why?<\/h3>\n<p>But why male\u00a0models?<\/p>\n<p>Philosophical discussions aside, there were some practical considerations that I made when deciding to learn Solana. The space we operate in as web3 devs is heavily influenced by <a href=\"https:\/\/en.wikipedia.org\/wiki\/Network_effect\">network effects<\/a>, where any chain or dapp\u2019s practical value exponentially increases with the number of people using it. This means that regardless of any considerations of tech, we need to also consider the user base of the chain\/platform we\u00a0pick.<\/p>\n<p>Unlike web devs, whose choice of framework won\u2019t actually influence how many people can <em>theoretically<\/em> use their websites, we are constrained by the popularity of the chains we use. It doesn\u2019t matter if <em>NewFancyBlockchain<\/em>\u2122 has the fastest blocktime, most advanced smart contracts, and cheapest transactions. If that network only has 1000 users, then that is the upper limit to how many users your Dapp will have if you deploy it\u00a0there.<\/p>\n<p>For this reason alone, it was very easy to be a bit of an Eth maxi for quite a long time. Mainnet had all the real activity and all the attention on it too. Launching a dapp on Eth meant you were in the place where most web3 users already were. Otherwise the conversation would go something like:<\/p>\n<p>\u201cCheck out this thing I\u00a0made!\u201d\u201cIs it on Ethereum?\u201d\u201cNo, it\u2019s on [some other network or\u00a0L2]\u201d\u201cOh\u2026 I don\u2019t even know how to get coins\u00a0there.\u201d<\/p>\n<p>But, as tx costs grew with increasing gas and ETH prices, more and more regular users became a little dissuaded. Various EVM L2s and other networks popped up to try to offer a solution to this problem, but none of them emerged as the new de facto EVM chain. Instead, the attention of the space became quite fractured, and the network effects of a unified community were somewhat\u00a0lost.<\/p>\n<p>Indeed, even though it seems like a new chain launches every month, quickly seeing billions of dollars in TVL, they can sometimes feel like a bit of a ghost\u00a0town.<\/p>\n<p><em>(Author\u2019s note: I\u2019m not mentioning chain-abstraction which is pretty new. This may improve things in the Eth space, we shall see.\u00a0)<\/em><\/p>\n<p>All of this is to say that when the Solana meme-coin bubble started kicking off last year, it didn\u2019t just bring an influx of users to that chain, but a community that were all focused on and talking about it. The sophistication of your average Solana user in 2025 may not be the same as the sophistication of your average Ethereum user in 2018, but this brought the promise of a new landscape to build\u00a0in.<\/p>\n<p>It seemed with this level of activity that at the very least I wasn\u2019t going to spend all this time upskilling only to find an ecosystem with no real activity.<\/p>\n<p>So, to answer the question of <em>\u201cwhy?\u201d<\/em> simply: it seemed to me like Solana had matured to a point where I could build stuff there and have a reasonable expectation of it succeeding. You may think I\u2019m wrong about this, or that I\u2019m way too late to the party, but this was my primary reasoning.<\/p>\n<h3>Positive First Impressions<\/h3>\n<p>First impressions can make a big difference as to whether we dig into a new tech. Coming from the well polished and refined Ethereum ecosystem into Solana can feel like turning off a freshly sealed freeway onto a gravel back-road. But before I cover that, I want to mention a couple of aspects of Solana that are a little nicer than what\u2019s available with\u00a0Eth.<\/p>\n<h4>Multiple transactions as one transaction<\/h4>\n<p>The terminology of this subtitle is technically inaccurate, but as a comparison to Etheruem it is apt. In Eth if we have two public functions on our smart contract, <strong>doSomething<\/strong>() and <strong>doSomethingElse<\/strong>() our EOA will need to do two transactions in order to execute both of\u00a0them.<\/p>\n<p>We are all very familiar with the design pattern of having to approve a token in one tx, and then spend it in the next. But Solana allows us to bundle multiple instructions into a single tx. Something like:<\/p>\n<p>\/\/Warning: psuedocode<\/p>\n<p>const tx = Transaction();<\/p>\n<p>tx.add(doSomething());<br \/>tx.add(doSomethingElse());<\/p>\n<p>tx.nowDoTheTransaction();<\/p>\n<p>The user will be given a single prompt to sign the tx, and either both will execute or the tx will\u00a0fail.<\/p>\n<p><em>(Note: The introduction of AA wallets to Eth and user-ops promises something similar, let\u2019s hope that gets wide adoption).<\/em><\/p>\n<h4>No GAS\u00a0fees<\/h4>\n<p>I have spent days, possibly weeks of my life refining smart contracts to shave off a few hundred or thousand GAS from transactions. During the Gas Wars of yore, especially before some of the storage cost improvements to the EVM, a single use of the <strong><em>sstore<\/em><\/strong> opcode could add $10+ to a user\u2019s tx. In practice this meant the right design pattern choices or even just shaving off a single write could hugely effect the number of users that your dapp would\u00a0see.<\/p>\n<p>There are countless ideas I had to shelve because the tx economics of what was needed just meant they would never be practical.<\/p>\n<p>I didn\u2019t see the L2s until I was already an Eth dev, and by then it was nothing to me but BLINDING!<\/p>\n<p>Solana does away with this, and just has a flat tx fee. There are still computational limits for what can be included in a tx, but the user isn\u2019t paying by the opcode, so your design patterns don\u2019t need to be dictated by\u00a0this.<\/p>\n<p>It\u2019s quite liberating and exciting to be able to design things free of these constraints.<\/p>\n<p>Storage on Solana is quite different to Eth, and there are <em>some <\/em>additional costs related to storage, but I\u2019m going to save that for a later, more technical article. For now, the takeaway is that we can build stuff without a GAS-first approach.<\/p>\n<h3>Negative First Impressions<\/h3>\n<p>On a first-impression basis, it\u2019s hard to judge the deep capabilities of a platform since by definition you are just getting started. However, one of the biggest negatives of getting started with Solana actually has nothing to do with the tech\u00a0itself.<\/p>\n<h4>Documentation needs some\u00a0love<\/h4>\n<p>The very first thing I noticed with Solana was the lack of quality of documentation throughout the ecosystem. Coming from a world with things like Solidity\u2019s well maintained and thorough <a href=\"https:\/\/solidity.readthedocs.io\/\">documentation<\/a>, Solana was a bit of a shock to the\u00a0system.<\/p>\n<p>There are many small errors, omissions, or entire pages with the equivalent of just \u201c<em>TODO\u201d<\/em> all over the place. To a new dev in the space trying to orient themself, this is extremely unhelpful. It\u2019s much easier to navigate these sorts of problems once you have a little experience with the tech, but trying to bridge that gap from <strong><em>0 knowledge<\/em><\/strong> to <strong><em>some knowledge<\/em><\/strong> is always the most daunting and demoralising when something goes\u00a0wrong.<\/p>\n<p>One of the earliest mistakes I encountered was the equivalent of a \u201cHello World\u201d tutorial omitting a specific import statement, causing the whole thing to fail. This is a pretty easy fix once you know what you\u2019re looking for, but when you\u2019re just following a tutorial to the letter and it\u2019s still not working, it gives a very strong \u201cwtf?!?\u201d sensation.<\/p>\n<p>I think moments like these could lead to higher new-dev attrition, and an overhaul of the Solana docs would be a very low-cost, high-value improvement to the space, as it would pave the way for more new-dev talent to\u00a0join.<\/p>\n<p>The Solana stack exchange is also sadly nowhere near as active or reliable as the Ethereum\u00a0one.<\/p>\n<h4>Tools and Infrastructure (Wallets)<\/h4>\n<p>Again, I will save the more detailed discussion of tech for a future article, but another thing I noticed very early on was the relative quality of available Solana wallets. I enjoy using Metamask for dev because it\u2019s very easy to hook it up to my local Ganache chain and it all works as seamlessly as if it were on a public\u00a0network.<\/p>\n<p>Most Solana wallets don\u2019t even allow you to connect to a local network, and it seems the only which can (Phantom) has very limited functionality when it does. I like my dev environment to be a well oiled machine, and this just feels\u00a0sloppy.<\/p>\n<p>There are a lot of things like this which, given SOL has a $64 Billion market cap, and is over 5 years old now, you\u2019d kind of expect a little more attention to be given. They\u2019ve certainly got the resources and they\u2019ve certainly had the\u00a0time.<\/p>\n<h3>Digging deeper<\/h3>\n<p>Dev life<\/p>\n<p>So with these considerations and first impressions, was it worth digging deeper? Well, I made it past the initial hump so I clearly thought so. I\u2019ve had plenty of moments where I yearned for the refined and well-paved world of Ethereum, but it\u2019s cool to add a new tool to my belt, and I also enjoy a challenge.<\/p>\n<p>I\u2019m going to wrap this up here so that it\u2019s not too long, but future articles will be more focused (we haven\u2019t even mentioned Rust\u00a0yet!)<\/p>\n<p>If you have any questions or disagreements with what I\u2019ve written, please feel free to reach out. This is all just one dev\u2019s opinion, and that opinion is open to\u00a0change.<\/p>\n<p>Find me\u00a0on:<\/p>\n<p><a href=\"https:\/\/bsky.app\/profile\/anallergytoanalogy.bsky.social\"><strong>Bluesky<\/strong><\/a><a href=\"https:\/\/x.com\/cashtagyolo\"><strong>Twitter<\/strong><\/a><a href=\"https:\/\/github.com\/AnAllergyToAnalogy\"><strong>GitHub<\/strong><\/a><\/p>\n<p><a href=\"https:\/\/medium.com\/coinmonks\/learning-solana-as-a-seasoned-ethereum-developer-part-1-527cb9e0372d\">Learning Solana as a Seasoned Ethereum Developer (Part 1)<\/a> was originally published in <a href=\"https:\/\/medium.com\/coinmonks\">Coinmonks<\/a> on Medium, where people are continuing the conversation by highlighting and responding to this story.<\/p>","protected":false},"excerpt":{"rendered":"<p>Modern devs of all kinds are regularly faced with the same dilemma: trying to determine which new language\/stack\/framework etc is worth the time and effort to learn and add to our tool belt, especially when that time and effort could instead be spent refining the skills we already\u00a0have. Photo by Manki Kim on\u00a0Unsplash I\u2019ve been [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-55937","post","type-post","status-publish","format-standard","hentry","category-interesting"],"_links":{"self":[{"href":"https:\/\/mycryptomania.com\/index.php?rest_route=\/wp\/v2\/posts\/55937"}],"collection":[{"href":"https:\/\/mycryptomania.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mycryptomania.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/mycryptomania.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=55937"}],"version-history":[{"count":0,"href":"https:\/\/mycryptomania.com\/index.php?rest_route=\/wp\/v2\/posts\/55937\/revisions"}],"wp:attachment":[{"href":"https:\/\/mycryptomania.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=55937"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mycryptomania.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=55937"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mycryptomania.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=55937"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}