Discussing editors and IDEs
Our focus in is this book is to explore and learn VS Code, but before we do that, let's discuss the difference between an editor and IDE and try to understand where and how VS Code is positioned for developers.
Over time, several languages and frameworks have become available for developers to work with. Along with these languages, a considerable amount of effort has been put in place to create the right tool to increase developer productivity and support the complete development life cycle.
These tools can be categorized into editors and IDEs.
Editors support a variety of languages, work around files and folders, and they are limited in terms of projects or solutions. They are lightweight and predominantly keyboard-centric, which allows developers to work faster.
IDEs support code editing, compiling, and debugging, as well as code execution. They are mainly specific to a particular language or a few selective languages. They usually work with project or solution files, provide support while writing code in terms of IntelliSense, and build processes that are well integrated into the environment. They provide language-specific wizards to help in generating the project skeleton and code while providing support for Application Life Cycle Management (ALM). In summary, IDEs provide extensive productivity features but are limited to a set of languages and frameworks.
VS Code falls between the editor and IDE space. It's lightweight and fast, yet provides support for several languages through a set of easily installable VS Code extensions. It's a cross-platform editor supporting Windows, macOS, and Linux operating systems, and provides features to cover the complete development life cycle.