There are many environments you can use to write and execute CircuitPython code. Below, we go over some specifics and comparisons of viable environments.
The Mu Editor is an editor specifically designed for CircuitPython; thus, it is the most stable and reliable. It has a simple interface that is great for beginners or novice programmers. It contains a built-in serial output window, which displays any feedback or output from your program or the board, and a plotter if the circuit you are developing with has any output. You can even use this environment to write regular Python code, as well as with MicroPython and Raspberry Pi!
Download Here: https://codewith.mu
Sublime Text is a classic text editor. As previously mentioned, a text editor is a straightforward environment in which one can simply edit text or code. Sublime Text creates a more streamlined environment in which developing code is the primary goal. You can push changes to the CircuitPython Board using Sublime, and you can access the serial output through your machine's terminal.
Download Here: https://www.sublimetext.com/download
Visual Studio Code is not quite an IDE, but comes close. It is still a text editor, but a far more advanced one at that. Visual Studio Code allows you to install extensions, which are analogous to browser extensions; they allow for various languages or additional features in VS Code. There is a CircuitPython extension which can be installed for free in order to use VS Code with your board. You can also use the command pallette to start and close the serial output window. You can also install extensions to help with debugging and unit testing.
Download Here: https://code.visualstudio.com/download