If I was writing the article 6 months ago it may have looked very different, I have fallen in and out of love with various idle's throughout the last year, however I think one editor above others is going from strength to strength. This review is just my opinion and the way you use code editors will effect what is best for you.
What is the difference between an IDE and a text editor? an IDE is specifically designed for developing code will come with features such as a debugger, auto complete, error and help messages ability to collapse code and much more, where as a text editor can be used to write code but they may not be specifically designed for this purpose, for example MS Notepad can be used to write code but it has no specific code related features, but it is light weight and simple to use.
Reviewed - 4 of my favourites from 2021 for 2022:
Standard Python IDLE
Sublime text - not an IDE
Visual Studio Code
Others considered for this review Anaconda, Notepad ++, Espresso, Atom and Vim.
When choosing a code editor I have 3 key elements in mind.
Easy to use
The editor needs to be easy to use, learning to code and learning to use the coding platform at the same time can be frustrating. This is where simple text editors are great, students can focus solely on syntax. Also when learning to code I am not a big fan of autofill and auto correct. Too much auto correct might not help you learn, learning the syntax and learning to be accurate is a key aspect of coding, further to this most exams are hand written, students need to remember the syntax because there is no auto correct in the exam.
The platform needs to be problem free, as a beginner thinking about the problems with code can be challenging enough, the last thing you need is problems with the platform you are using. One of the main problems I face as a teacher is getting Python imports to work on all students computers, in my opinion a lesson that becomes dedicated to fixing import problems is a lesson wasted. The best code editors link seamlessly to the standard Python, such as Python V3.10 and the libraries already installed.
As a teacher I need to trust that the platform I recommend will work cross-platform, on any machine a student chooses to bring to class, I want to spend the minimal amount of time possible on problems with the code editing software to give me time to help students and to minimise the confusion in the process of learning to code.
Looking for useful features of the platforms one aspect that drives me crazy and I know frustrates many students is if the editor will not fun the code directly, when learning to code we should be testing our code at ever opportunity, after every line if possible and having to go to the command prompt or terminal and type a command to run he code is tedious, frustrating and I frequently observe students running the wrong file and wondering what is happening. I just want a run button, click it and the code runs, simple. For this reason a feature to intemperate or compile the code and run it at the click of a button is a key feature.
I have not taken the approach of looking for a editor that focuses on features to provided more efficiency in writing code, the overall focus is from a learning point of view, this been said learning to use a professional platform of industry standard is also a consideration is the two fundamentals intertwine.
As getting to grips with new platforms can be frustrating, this year I have been searching for a platform that will run nearly any language you throw at it, yes this article is Python specific, but with Python you might want to run use flask to connect with HTML then add CSS code for your styling then add a database with some SQL. Or you might want to just try out some different languages just for fun, if your platform of choice does then happy times. VS studio did seem to be the most difficult to set up, however it is now just click download, install and go (released 2016), built in complier and interpreter, compatible with loads of languages, loads of user friendly features, not so easy to use
Sublime text - fairly light weight and intuitive. Needs plugins and lately it has had some quirky bugs and not accessing python bolt on modules
Pycharm - probable - quite a big ide and heavy on resources, is really good however, almost as complicated as vs but without the completeness of the package.
NUMBER 1: VISUAL STUDIO CODE I hope I do not regret saying this by the end of 2022, the love hate relationship with VS Code I have had journeyed on throughout 2021 however, with its ever increasing reliability it has jumped the spot to become number 1. It is now super simple to install, click, download, install and go, gone are the days of its release in 2016 where you needed a guidance video and a spare hour or so to get it up and running.
It has a build in complier and interpreter, works with loads of language and although it looks daunting the basic operation of it is quite user friendly and allow beginner programmers to focus on learning to code rather than learning how the platform works. It is however still a little frustrating how more advanced features seem to require a masters in ICT to figure out how the work, for Computer Science students this can be an annoying waste of time.
Working with cloud storage of your files and working hand in hand with github is a great benefit of Visual Studio, as a teacher and hobbyist coder being able to track changes, edits, share with the git community or share with collaborators is a welcome plugin to Visual Studio.
Features such as the ability to view database or spreadsheet tables directly in Visual Studio make working on project with students even more simple because the data being processed can be viewed by clicking on the holding tab.
NUMBER 2: THE STANDARD PYTHON IDLE I absolutely love the standard Python Idle. It is simple it is easy, press F5 and your code runs, I have less problems with this than anything else. Upgrading to Python V3.10 I was surprised to see it is a whopping 114MB, although its size does not go against it, I need to have it installed regardless of which platform I use.