The 7 Best Solidity IDEs for Solidity Development (2023)
{{learn-solidity}}
An integrated developer environment (IDE) is necessary for programming with Solidity. IDEs allow Solidity developers to write, edit, execute and debug code within one software.
In this article, we introduce IDEs for Solidity Development, explain what IDEs are, why they’re important, and list the types of IDEs available. By the end of this article, you will have a better idea of what IDEs are available and suitable for your project.
The IDEs covered in this article include:
- Remix
- VScode
- EthFiddle
- IntelliJ IDEA
- Atom
- Embark
- Yakindu
What is an integrated developer environment (IDE)?
An integrated developer environment (IDE) is a single application that enables developers to write, edit, execute, and debug code. These developer tools combine to empower developers with an all-in-one environment for development from start to finish.
Within the graphical user interface (GUI), the software bundles together features that support three objectives: source code editing, debugging and deployment (local). The process consisting of writing the code, testing, and local building ensures that the software development lifecycle can be completed within one environment.
In web3, a similar approach is taken with IDEs. For the development of web3 applications, IDEs serve as a necessity in the web3 tech stack for creating decentralized applications (dApps), smart contracts and more.
Why are IDEs important for Solidity development?
Solidity IDEs are important because they deliver an optimal developer experience; developers create, edit, compile and debug code within the same environment. As smart contracts are not iterative once deployed, the environment used to create the code should provide Solidity specific benefits. These would consist of additional tools such as a Solidity complier, deployment support, unit testing, and much more.
Solidity development mirrors the existing processes standardized in Web2. Although the technology and systems are different, the fundamental steps to get started remain the same. Hence IDEs are vital and play a key role for developers looking to create smart contracts.
Because there are numerous types of IDEs and options that exist, each with benefits and tradeoffs, a developer, should evaluate different IDEs.
Types of Solidity IDEs
There are two types of IDEs for Solidity development: desktop IDEs and online IDEs. Desktop and online IDEs offer similar functionalities, with specific differences. Although desktop IDEs have traditionally been the most popular, online IDEs have gained momentum over the recent years as their capabilities have been able to approach feature parity with desktop IDEs.
1. Desktop Solidity IDEs
The desktop IDE is a local IDE. The IDE requires the user to install the integrated developer environment onto the computer as it enables the development environment to be created locally within the system.
Without the dependency of the internet, desktop IDEs offers Solidity developers the flexibility to leverage thousands of plugins and extensions to optimize for the development process. Once development is completed, the files are all stored within the local storage and can be accessed at any time.
In Solidity development, not all desktop IDEs will provide the same value or support. As the web3 ecosystem continues to mature, it’s best to use the most popular IDEs for Solidity that provide extensions or plugins that optimize for smart contracts (i.e. syntax highlighting, snippets, etc.).
2. Online Solidity IDEs
The online IDE is also known as the cloud IDE. Online IDEs require no installation or prerequisites to get started. Cloud IDEs offers tremendous flexibility to start developing smart contracts immediately without configuration to the developer workspace.
Online IDEs have continued to gain traction in recent years as they all continue to provide very similar functionalities to the developer experience without any installation (i.e. speed, Github integration, etc.). However, it is important to be mindful that the storage of online IDEs often resides in browser storage and is not permanent.
In Solidity development, online IDEs have emerged as the leading tool for developers of all backgrounds. The simplicity and ease to start writing Solidity without any prior setup to the environment allows developers to have more flexibility building and learning Solidity development.
The 7 Best Solidity IDEs
The seven best IDEs are: The IDEs covered in this article are Remix, VScode, EthFiddle, IntelliJ IDEA, Atom, Embark, and Yakindu.
1. Remix
Remix is an open-source, online IDE for Solidity development on Ethereum or EVM-compatible blockchains. Remix is popular because users can get started without any prior setup, and it supports an entire software development lifecycle.
Remix’s layout consists of four sections that divide the main panel for writing code, terminal, plugins/extensions, and files. Remix offers various Solidity modules including a Solidity compiler, deployment support, debugger and Solidity static analysis. Moreover, Remix provides unit testing assistance with tools such as a CLI, assert library, and plugin.
Remix's online IDE supports Firefox, Chrome and Brave with restrictions on tablets and mobile devices. Since its launch, Remix has expanded beyond its online IDE to a desktop application and VSCode extension.
Remix also enables native external integrations with Hardhat, Foundry, Truffle, and Slither for expanded Solidity troubleshooting tools and developer features.
2. VScode
Visual Studio Code is the leading code editor that was launched in 2015 and continues to be maintained by Microsoft. The majority of VScode's traction is because its desktop application offers extensive support to developers. VScode is fully equipped with integrations with Github, various workspaces, and offers support for 20+ programming languages.
Though it’s not recommended, the development process can take place in both the online and local environment as this IDE provides both an online and desktop IDE at no cost.
Solidity developers can leverage various extensions and plugins that offer an immersive experience to develop end-to-end decentralized applications. The 50+ extensions provide direct support to develop smart contracts on Ethereum by providing syntax highlighting, snippets, compilation and much more.
VScode also provides integrations with web3 technologies like Hardhat for an optimal and inclusive developer experience.
3. EthFiddle
EthFiddle is an online Solidity IDE powered by Loom Network, which was launched in 2017. EthFiddle’s simple user interface enables developers to write, test and debug smart contracts within the browser for free.
Once completed, the code can be accessed seamlessly using a permalink which allows users to share and create code snippets. With EthFiddle’s objective to become an accessible and quick Solidity IDE that requires no configuration, this platform is not accessible locally on your computer.
4. IntelliJ IDEA
Launched in 2001, IntelliJ IDEA is an integrated development environment (IDE) created by JetBrains. It was developed in Java and primarily created to support software written in Java, Kotlin and other JVM languages.
The IntelliJ IDEA desktop IDE provides numerous developer-focused features including coding assistance (i.e. refactoring, debugging, etc.), various plugins and more. Since 2017, IntelliJ IDEA has offered Solidity support enabling developers to write code in Solidity and leverage other tools in the ecosystem, such as Foundry.
5. Atom
Atom is an open-source desktop IDE launched in 2014 and developed by Github. This platform, including its extended packages, is maintained and developed by the open-source community allowing it to be customizable by its user.
Etheratom is the Ethereum IDE plugin that allows the development of smart contracts including compilation and deployment. It provides an efficient contract management interface and an integrated test suite for smart contract testing. Please note that Etheratom will require Ganache or geth.
6. Embark
Embark is a command line interface (CLI) that extends into a suite of developer tools for developing decentralized applications (dApps). Its developer environment extends beyond the framework to provide an all-in-one solution for the decentralized application lifecycle.
Embark provides features such as integration with Ethereum or EMV-compatible blockchains, decentralized storage (i.e. IPFS), decentralized communication (i.e. Whisper), smart contract configuration, testing/debugging workflows and much more.
7. Yakindu
Yakindu is a free, Eclipse-based IDE for smart contract development in Solidity and Ethereum. Yakindu was created in 2017 by itemis AG and continues to be maintained as an open-source IDE.
Yakindu's features include code completion, live validation, code navigation, templates, semantic highlighting, Solidity compiler integration and much more. Its simplistic user interface follows the similar design of the Eclipse IDE providing familiarity to existing users.
Become a Solidity Developer
This article has introduced you to the most popular tools for Solidity development. If you’re learning Solidity and want to become a Solidity developer, explore Alchemy University's free 7-week Ethereum Developer bootcamp. If developers are new to development in general, Alchemy University's 3-week JavaScript crash course is a great prerequisite before starting an Ethereum bootcamp.