Here are the best Ethereum programming languages. These Ethereum coding languages, include smart contracts, dapps and NFTs development.
This post answers the question of what what language is Ethereum written in. We’ve also included the best resources for programming of Ethereum. Along the way, we have some terrific Ethereum programming videos on the various languages.
Ethereum Programming Languages
The following are the most common Ethereum coding languages for programming and development of the Ethereum blockchain;
Note: To write code to interface with the Ethereum blockchain using a currently unsupported language, then the JSON-RPC interface can be used to connect to the Ethereum network. Also, any programming language which uses TCP/IP can use the JSON-RPC interface.
Solidity is the primary language on Ethereum. A computer scientist called Gavin Wood came up with the concept of the Solidity programming language originally. He served as the CTO at Ethereum for two years. His idea was taken forward by Christian Reitwiessner, who led a team of developers to actually create it.
Solidity For Ethereum Developers
Solidity Programming Videos
The first video below is a nice course, which gets you started to program in Solidity. It covers;
- Intro To Solidity
- Data types and data structures
- Function visibility, modifiers & time
- Sending Ether & events
- Smart contract interaction & inheritance
This next video is from Chris Reitwiessner discussing the new features in the Solidity language which make smart contracts safer and easier to write, debug and audit.
Dart is an Open-Source, client-side programming language used in the development of web, mobile apps, server and desktop applications. It was developed by Google. This language is very easy to learn very stable, and creates high-performance applications.
Dart For Ethereum Developers
You can use Ethereum to create decentralized applications (or “dapps”) that utilize the benefits of cryptocurrency and blockchain technology. There are at least two currently maintained libraries for Dart to use the JSON RPC API for Ethereum.
There are many other libraries, which allow you to manipulate specific Ethereum addresses, or let you retrieve prices of the various cryptocurrencies. Here are the libraries on Pub.dev using the sdk: dart ethereum search term.
Dart Programming Videos
Here is a video on building a blockchain dapp with Flutter and Dart on Ethereum
This next Dart programming video is a full tutorial for beginners. Dart is a strictly typed programming language, and it is used in the Flutter framework to develop cross platform mobile apps. You can view this introduction to Flutter here.
Delphi is a high-level, compiled, strongly typed language, which supports structured and object-oriented design. Application development ranges from database solutions to mobile applications, and is used on Windows as well as Linux. The Delphi interface resembles Visual Basic (VB), making it easy for VB users to use the same skills with Delphi.
Delphi For Ethereum Developers
Use Ethereum to create decentralized applications (or “dapps”), which will utilize the benefits of cryptocurrency and blockchain technology. Dapps can be trustworthy, which means, once they are deployed to Ethereum, they will always run as programmed.
Below is a great website, which has tutorials for working with Ethereum using Delphi.
Delphi Programming For Ethereum Videos
Here is a terrific video, which introduces you to Delphi programming for the blockchain.
Here is another Ethereum dapp Delphi programming video.
.NET is a free, cross-platform, open source developer platform for building many different types of applications. With .NET, you can use multiple languages, editors, and libraries to build for web, mobile, desktop, games, IoT and blockchain.
You can write .NET apps in C#, F#, or Visual Basic.
- C# is a simple, modern, object-oriented, and type-safe programming language.
- F# is a programming language, which makes it easy to write succinct, robust, and performant code.
- Visual Basic is an approachable language with a simple syntax for building type-safe, object-oriented apps.
.NET For Ethereum Developers
With .NET, you can build decentralized applications on top of Ethereum and interact with smart contracts using tools and languages from the Microsoft technology stack. These support C, Visual Basic .NET, on tooling such as VSCode and Visual Studio. Also, develop across NET Framework, NET Core and NET Standard. You can also deploy an Ethereum blockchain on Azure using Microsoft Azure Blockchain.
Nethereum is the .Net integration library for Ethereum, simplifying smart contract management, and interaction with Ethereum nodes, whether they are public, like Geth, Parity or private, like Quorum and Besu.
Nethereum .NET Programming For Ethereum Videos
This hands on .NET programming for Ethereum tutorial, takes you through the steps of;
- Creating a simple smart contract using Visual Studio code
- Start a private test chain
- Interact with Ethereum using .Net
- Deploy the smart contract using Nethereum / Visual Studio and .Net
Go or Golang is an open source programming language, which is supported by Google. It is very easy to learn, and has a built-in concurrency, along with a robust standard library. It has a growing ecosystem of partners, communities, and tools.
Golang For Ethereum Developers
Go Ethereum is one of the three original implementations (along with C++ and Python) of the Ethereum protocol. It is fully open source, and licensed under the GNU LGPL v3. Here is the Go repository and downloads section for the code on Ethereum.org.
Go Ethereum is available either as a standalone client called Geth, which can be installed on pretty much any operating system, or as a library, which can be embedded in a Go, Android or iOS projects. Here is the Ethereum.org Go installation guide.
Golang Programming For Ethereum Videos
This video shows you how to build a blockchain using Golang.
Java was developed by Sun Microsystems. The language was released in 1995 and has continued to evolve consistently.
Key features, properties and qualities of Java include;
- Concurrent – Java has the ability to run several programs, or part of a program at the same time
- Class based and object-oriented – Allows grouping of objects, which can be used across projects
- Portable – Java runs on a ‘write once, use anywhere’ principle, meaning that once the code is written it can be used on other projects
- Secure – Once created, all Java code is converted to bytecode, which cannot be read by humans, protecting the code
Java has become invaluable to developers by enabling them to:
- Write software on one platform and run it on virtually any other platform.
- Create programs, which can run within a web browser, and access available web services.
- Develop server-side applications for online forums, stores, polls, HTML forms processing, and more.
- Combine applications or services using the Java language to create highly customized applications or services.
- Write powerful and efficient applications for mobile phones, remote processors, microcontrollers, wireless modules, sensors, gateways, consumer products, and practically any other electronic device.
Java For Ethereum Developers
Here is the Ethereum.org links which are the best resources for creating dapps on the Ethereum blockchain using java.
Ethereum Smart Contract With Java
This below video provides an overview of what blockchain and distributed ledger technology is, along with how the Ethereum blockchain works. It discusses Ethereum smart contracts with Java, and demonstrates how you can deploy and interact with smart contracts on Ethereum, all from within the JVM.
Java Programming For Ethereum Videos
This 1st video shows how to use Java to get balance information from an Ethereum node.
This next video shows how to create your first blockchain app in Java.
It is often developed to display content updates, interactive maps, animate images like 2D/3D graphics, scrolling video jukeboxes, etc.
Python is one of the most popular programming languages, and is being used in everything from machine learning to building websites, automation of tasks, prototyping, and software testing.
It is an interpreted, object-oriented, high-level programming language with dynamic semantics.
Its high-level built in data structures, combined with dynamic typing, and dynamic binding, make it very attractive for Rapid Application Development, as well as for use as a scripting or glue language to connect existing components together.
Python’s simple, easy to learn syntax emphasizes readability, and therefore reduces the cost of program maintenance.
Python For Ethereum Developers
Python is used to create decentralized applications, which utilize the benefits of cryptocurrency and blockchain technology.
Here is the Ethereum.org Python for Ethereum development webpage, which gives you the best programming resources and links.
Python Programming For Ethereum Videos
This video shows how to develop Smart contracts on the Ethereum blockchain using Python.
Our next video shows how to program a Python dapp on Ethereum
Ruby is an open-source object-oriented scripting language invented in the mid 1990s by Yukihiro Matsumoto. This scripting language is written to a text file, and then parsed by an interpreter and turned into code.
The Ruby programming language is great for building desktop applications, static websites, data processing services, and even automation tools. It’s used for web servers, DevOps, and web scraping and crawling.
Ruby on Rails
Ruby stands alone as a high-level programming language. However, you can’t talk about Ruby without mentioning Rails. Ruby on Rails is the application framework, which thrust Ruby into the spotlight, boosted its popularity, and made it a great language for the cloud.
The Ruby on Rails framework consists of pre-written Ruby code for things like communication, file handling, database connections, and more. One of the key concepts of Rails is DRY (Don’t Repeat Yourself), which is key to the framework’s efficiency.
There are over a million websites written in Ruby on Rails, including big name business and entertainment sites, including GitHub, Bloomberg, SoundCloud, Hulu, Square, Basecamp, Airbnb, Hulu, The Weather Channel, and Twitter.
Ruby For Ethereum Developers
There are some terrific resources for Ruby developers to create dapps on the Ethereum blockchain. Here are just a few;
- eth.rb – Ruby library and RPC-client to handle Ethereum accounts, messages, and transactions
- keccak.rb – The Keccak (SHA3) hash used by Ethereum
- siwe-ruby – Ruby implementation of Sign-In with Ethereum
- siwe_rails – Rails gem that adds SIWE local sign in routes
- siwe-rails-examples – SIWE example using Ruby on Rails with custom controller
- omniauth-siwe – OmniAuth strategy for Sign In With Ethereum (SIWE)
- omniauth-nft – OmniAuth strategy for authenticating via NFT ownership
- ethereum-on-rails – Ethereum on Rails template which allows to connect MetaMask to Ruby on Rails
Ruby Programming For Ethereum Videos
This video shows how to create an Ethereum wallet using Ruby.
Rust was created to ensure high performance similar to that offered by C and C++, but with emphasis on code safety. It is designed for performance and safety, especially safe concurrency.
It is known for enforcing memory safety, with all references pointing to valid memory. This means it does not require the use of a garbage collector or reference counting like other memory-safe languages.
Memory safety is enforced by a borrow checker, which tracks object lifetime, and variable scope as references are passed throughout the program during compilation.
Rust was designed by Graydon Hoare at Mozilla Research, with contributions from Dave Herman, Brendan Eich, and others. Since its initial appearance in 2010, the designers refined the language while writing the Servo experimental browser engine and the Rust compiler.
The major influences include C++, OCaml, Haskell, and Erlang. It has seen adoption in industry by companies including Amazon, Discord, Dropbox, Facebook (Meta), Google (Alphabet),and Microsoft.
To read more about this programming language here is the Rust installer software page.
Rust For Ethereum Developers
Here is the links for developing Ethereum using the Rust programming language. This includes;
- Rust beginner and intermediate articles
- Advanced use patterns
- Rust projects and tools
- Community contributors
Rust Programming For Ethereum Videos
The first video below is a Rust beginners course. We then follow with 2 more Rust for Ethereum videos.
This next video gives an overview of Rust for DeFi on Ethereum, along with installation.
The next Rust for Ethereum video shows how to connect to Ethereum liquidity contracts.