So you just received a Nordic board for your next project. First thing you do is to open the documentation to see how to setup a project for your board (at least it should be the first thing to do!). Then you quickly realize that in the Nordic world, you have two main ways of managing the environment and your development:
So why would you choose one over the other? First it may be a matter of habits. Maybe you absolutely despise VSCode and never want to ever touch it, maybe downloading yet another GUI app to manage you development is the last straw for you. The good news is that you can use one or the other for almost all your tasks:
Manage your SDKs & toolchains
Flash/erase/recover the board
Monitor the board serial output on a console
Configure the DTS
But not everything can be done by the nRF Connect for Desktop. The nRF Connect for Desktop has no way to let you write and build your applications. The build can be done using the CLI tools offered by Nordic (nrfutils, west, ...).
On the other hand, the VSCode extension allows you to build your project as well as managing your build configurations for your applications. It also hide the build commands under some Tasks linked to your build configuration to help you concentrate on the coding part.
My take on this is that the VSCode extension is becoming more and more robust and features complete. It shows by Nordic pushing to use the VSCode extension in their user guides/doc.
For having used theses two in my projects, I think the VSCode extension is overall the best choice, as it really is an all-in-one solution, actively maintained and developed by Nordic.
Here is my pro and cons for each one.
VSCode Extension Pack:
✅ All-in-one development kit
✅ Integrates in the VSCode ecosystem
✅ Heavily maintained
❌ Hide the build details and how the underlying build system works
❌ Can sometimes be buggy
nRF Connect for Desktop:
✅ Very easy to use
✅ Clear roles of the different applications
✅ Integrated updater
❌ Must compile your code aside
❌ Standalone GUI application
In the end, it is mainly a matter of preference and usage. For example I really like the build configurations management of the VSCode extension Pack as well as its powerful build tasks, but I always use the Serial Monitor of the nRF Connect for Desktop to monitor my board output to have a nice view in another window. As for everything, the correct usage of a tool is the usage you are comfortable with the most!