The creator and lead developer of Solang, Sean Young, a compiler that allow developers to write Solana programs (aka smart contracts) in the Solidity programming language. This has been a multi year effort to allow existing Solidity developers, like all those existing in the Ethereum ecosystem, to use their existing language knowledge to write Solidity smart contracts on the Solana blockchain.
Sean describes how he started his developer journey in the blockchain space, starting as writing his own compiler for the Solidity programming language for a EVM compatible blockchain for the purpose of processing traditional documents.
Sean began hitting roadblocks when he was trying to add new features into the Solidity language, which is effectively only used for Ethereum and EVM compatible blockchains and maintained by the Ethereum community.
As a general overview, Sean describes how a compiler actually works. Including how compilers like Solang and even native Solana uses LLVM toolkit (Low Level Virtual Machine) to maximize compatibility for multiple programming languages.
Words and acronyms used throughout the episode
- solidity - A statically-typed curly-braces programming language designed for developing smart contracts that run on Ethereum and most EVM compatible blockchains.
- EVM - the Ethereum Virtual Machine - essentially the portion of any Ethereum based blockchain that actually runs/executes smart contracts written in the Solidity programming language
- EIP - Ethereum Improvement Proposals - standards specifying potential new features or processes for Ethereum
- WASM - Web Assembly - is a binary instruction format for a stack-based virtual machine
- LLVM - Low Level Virtual Machine - a set of compiler and toolchain technologies that can be used to develop a frontend for any programming language and a backend for any instruction set architecture.
- Solana specific terms (or at least common in the Solana ecosystem):
- BPF - Berkeley Packet Filter - a technology used in certain computer operating systems for programs that need to, among other things, analyze network traffic.
- SBF (aka SBPF) - Solana Berkeley Packet Filter - this is a custom implementation of BPF with tweaks for the Solana runtime and SVM
- SVM - Solana Virtual Machine - the portion of the Solana runtime that actually runs/executes code on the Solana blockchain
- IDL - Interface Definition Language - generic term for a language that lets a program or object written in one language communicate with another program written in an unknown language