I recently made a video where people started comparing VSCode to Webstorm - let me tell you why you can't compare the two.
I am going to go through the pros and cons of using text editors such as VSCode (as defined by Microsoft), Sublime and Notepad vs IDEs such as Webstorm, Microsoft Visual Studio and PyCharm. By the end of the video you should have enough knowledge to make an informed decision about what suits you best.
A text editor is a great choice if you are working on a small project, or need to edit a file quickly. That's because a text editor at its core, is exactly that - a text editor. As your projects grow in size and the complexity of your tasks increases, an IDE may become a better option. There are several things to keep in mind though.
An example of text editors are VS Code, Sublime Text, Atom.
These text editors - sometimes known as code editors - are great as they tend to be free, and therefore more accessible to everyone. If you are just starting out, and perhaps trying to figure out if coding is for you, this can be a good choice for you as you are figuring stuff out.
Text Editors are also lightweight and fast. This is because out of the box (so without any plugins, just as it is when you first download it), they do not have many features. This makes them fast in comparison to IDES.
There is also a less steep learning curve. Because a text editor is so simple, and has less features, that also makes it easier to use. The UI is much more minimalistic, and hence easier to use for most people.
Now let's move onto the extensions.
Text Editors can become really powerful if configured properly. This is especially true for VS Code. If you dedicate a lot of time to configuring a code editor - finding and installing the right extensions for the things you need for work - this can make your text editor very close to an actual IDE.
VSCode, built by Microsoft, has had a lot of push in the industry. Which is good as it's now used by a lot of people which means a bigger community, which means a lot of tutorials and blogs on how to use it and personalise it exactly as you want.
It also means people are greeting more and more plugins for it, resulting in a rich plugin ecosystem.
Now let's have a look at some of the cons for text editors.
Text editors require time from you to configure them properly. Depending on what you’d like to achieve, you may need to spend some time or maybe even a lot of time making your code editor work like an IDE. Customising it, looking for the right extensions, making sure those extensions work as expected and also work fine with each other. You may be not paying for a tool with money but you’re still paying for it indirectly with your time.
As you start working with bigger projects in a code editor, you may notice that its performance gets worse, especially if you have a lot of extensions installed. It may also let you down when it comes to working on complex tasks like refactoring code across the entire codebase.
Now, whilst some plugins are made by Microsoft, and they probably will look at things like making sure the plugin is compatible with the version of VSCode, not every plugin creator does.
One plugin for example can be created for VSCode by a third and separate party, it works fine, and then VSCode does an update, and that plugin will then be out of date for that version of VSCode, and this could potentially cause issues. The Third party would then have to update their plugin and make sure it is continuously maintained. This is in contrast to IDEs, where the platform comes as a whole.
Which leads me onto the Pros and Cons for IDEs.
First let's start with the examples of IDEs.
We have WebStorm, Visual Studio, IntelliJ IDEA, PyCharm, etc.
The Pros of these IDES is that, as mentioned, is that you get an out-of-the-box experience. You can start coding straight away without having to research what extensions to install. The support for all the major frameworks and technologies usually just works with zero effort from you. This includes tools for debugging, unit testing, working with the terminal, linters and so much more that comes with the IDE itself .
IDEs are also good for large and complex projects. This is because most IDEs can analyse an entire project and provide coding assistance based on what they are working with. So when you use them for a small project, they might appear to be slower to start, because they still spend time analysing the entire project to see how they can help you, but when it comes to larger projects, this is where the analysing really makes sense and the power of the IDE becomes apparent.
The IDE will look at the project structure and provide more reliable coding assistance whenever you need to do complex operations across your files. This will include navigation, code assistance across files, renaming autocompletions across the entire codebase and much more.
Now the Cons for IDEs.
Because of all the inbuilt support, IDEs are usually paid. It is considered a professional tool that allows you to work more efficiently, saving you the time it would take you to set up your code editor, and debug things that might be caused by faulty plugins and so on. If you value your time over the fee, then this is the tool I would recommend for you.
If you are a student or teacher however, or if you are using IDEs for open source projects, some IDEs can be free. There's also things like the Developer Recognition Program from JetBrains that you can apply for, as well as a bunch of other things that will allow you to use some of their platforms for free of charge, or at a 50% off rate - if you work for a startup for example.
Some IDEs have Early Access Programs, which let you try the latest features and improvements for free as well, so keep your eyes peeled for those.
As mentioned, IDEs are slower than text editors. This is because they are built to analyse big projects, as mentioned before, and the analysing is the bit that takes the time. The time is not very noticeable, we are working with microseconds rather than minutes, but if this is something that you feel is a downfall, and you are working on a simple project, you may want to opt for a text editor instead.
And finally some people consider IDEs harder to get used to. This is due to IDEs in general having more features. More features equal more options and in general might be quite daunting to a first time user. Honestly this reminds me of the first time I ever used Adobe Photoshop or Adobe Premier pro, but, honestly these features are what make both such great products for professional use, and same applies to the IDEs.
So there we have it, my pros and cons for text editors and IDEs. So based on this, and what you are learning and where you are at in your journey, I hope you can now make an informed decision on what suits you best for what you are working on - a text editor or an IDE.