EVM is not a specific closed-source software but a set of specifications for creating Ethereum blockchain tools, meaning EVM can be written in different languages. There are several implementations of EVMs in different programming languages, and the list keeps growing because anyone can create new implementations. The only requirement is that all EVM implementations must conform to the specification described in the Ethereum Whitepaper. Here are the most popular EVM implementations at present: go-EVM – written entirely in Golang SputnikVM – written entirely in Rust Py-EVM – written entirely in Python evmone – mostly in C++, with some CMake. ethereumjs-VM – despite the name, it is almost entirely written in TypeScript and a little bit in JavaScript. eEVM – almost entirely in C++ and quite a bit in CMake. Hyperledger Burrow – mostly Go, but also TypeScript, Solidity, and others. hevm – written in Haskel