I mostly use Microsoft Visual Studio Code in development projects that are less appropriate for development in Xcode due to the amount of overhead in getting Xcode projects set up properly. Microsoft Visual Studio Code works very well for our shell and Python scripting tasks related to our Jamf Pro instance. It is just easier to get a project put together with Microsoft Visual Studio Code for these small, low overhead items.
Pros
Quick editing of low overhead projects
Minimal configuration and setup
Following along with online programming courses using Microsoft Visual Studio Code
Cross platform (not just macOS/iOS) development
Expandable with plugins
General AI integration
Cons
Better documentation integration
Odd crashes sometimes
Interface can be a little dense sometimes
Build train support (automation)
Likelihood to Recommend
If the project is a straight up macOS or iOS/iPadOS/watchOS/tvOS/etc development, then Xcode is the way to go, just because it is Apple's development environment. For just about anything else, particularly cross platform stuff, and especially in the case of a macOS/Windows parallel development scenario, Microsoft Visual Studio Code can definitely be appropriate and more effective. It is also a fairly good way to bring a Windows developer on to a macOS environment.
All the developers in the department that I work with are using Visual Studio Code. As we develop in Oracle Apex, we have a bunch of SQL files to create objects and to insert data on applications. We also have files on a shell script that helps to build the applications for other environments. We can compile and create all the Oracle objects just using Visual Studio Code.
Pros
Integration with Oracle.
Lightweight.
Extensions that boost your production.
Updates frequently.
Cons
You need to close and open the program again if you add a new Oracle connection.
You need to save the file before executing it.
It should have another type of output when executing select statements.
Likelihood to Recommend
If you want to create Oracle objects, and you code your SQL, JavaScript, HTML files, it will work fine. However, if you want to create queries for your reports and see these data on VS output is not going to help you. Another thing that helps using VS is that with the right extensions we can do a lot of stuff, and it is worth it to take time and play around with all these options.
MS Visual Code is an amazing IDE for a generalist developer. My team uses it primarily for web development in Javascript and Python, but it can be used for practically any language. The biggest features are the extensions which integrate with DevOps software such as version control (Git), continuous integration (Travis) and container management (docker).
Pros
Language support. The IDE supports various languages through extensions. It's also smart enough to recommend extensions based on the file extensions used, and makes installing these incredibly easy. Other IDEs are typically focused on one language, such as Eclipse for Java or PyCharm for Python - but VS Code really provides a great language inclusive experience.
DevOps integrations. The Git integration is really well done. Having integrations with continuous deployment and containers is another really great feature. The flexibility of extensions allows it to work well with whatever tool your team standardizes around - and to manage them all from one IDE.
Usability. MS made a really good cross-platform application. This runs on Linux. That's... kind of a big deal, considering Microsoft's history. I can configure my IDE and use it on any platform, or standardize the application for all developers on my team. The design is pretty good, and it works really well.
Cons
Working on a single file. Sometimes you are working on a project, and you would like to create an unrelated file. This is hard to do in MS Visual Code. It's much better at organizing all files in one project folder and working out of that folder.
Jupyter Integration. This is coming, and has improved, but I do a lot of Data Science work in python -- and I need to open up Jupyter notebooks distinct from VS Code. It would be nice to have everything running out of VS Code instead.
Configuration. I see this as both a strength and a weakness. My team still uses Eclipse for Java, because it comes configured with everything they need, or the things they need are more obvious. VS Code is more general, and they tried to configure it to meet their needs, but ended up going back to Eclipse for Java. Importing configurations or settings from other IDEs would make switching much easier.
Likelihood to Recommend
MS Visual Code is an amazing all-purpose IDE and will fit into the toolkit of any developer that uses a multitude of languages. It creates an easier pathway to start using deployment technologies, and can be extended/configured to a large extent. If you or your team already has a go-to IDE that works really well, and it's free, then MS Visual Code may not be for you. Pricey IDEs may also work better with specific languages than MS Visual Code does.