Apple - Separate environment for personal and development use under macOS

There are multiple options:

The simplest would be to create two user accounts. Your first account is created during the first use of the Mac. Create a second account by clicking the Apple-menu in the top left corner, select System Preferences, Users & Groups, open the lock and click + to add a new user.

This way you can login to either a personal or professional account. In the same place you add accounts, you can click "Login Options" where you can enble "Fast User Switching". This allows you to easily switch between the personal and private account (both can be logged in at the same time).

Other options for seperating personal and professional use are:

1) BootCamp Windows installation for professional use, macOS installation for personal use. Major drawbacks are that it requires a full reboot every time you want to switch between the two, and it is a hassle to ensure that disk space is available according to where you need it.

2) Virtual Machine with Windows (or macOS) for professional use, and the macOS native system for personal use. Can be done with for example VMware Fusion, Parallels Desktop or free alternatives such as VirtualBox. You can run the two environments simultaneously and share files, clipboard, etc. However allocating storage correctly can still be a nuisance.

3) Spaces. You can divide your open application windows in different "spaces" on the Mac. When you change "spaces" a whole set of windows are exchanged, such that you can keep a virtual desktop with all your professional stuff seperated from the private stuff. It is however up to yourself to organize windows between the two spaces, and there's no seperation of files, etc. on the disk.


Caveat

I am not a user of or developer for Microsoft technologies, generally speaking. I do almost all of both my professional and personal use on a combination of MacOS and Linux. I use almost exclusively free tools (e.g. vim) for development, and so little to no concerns of licensing, product activation, etc.

That being said...

I would challenge you to reframe your way of looking at this: development environments, for work or personal use, should be (as far as is possible given the constraints) completely disposable.

I do almost all of my dev work in VMs that are provisioned by scripts. Reusable, replaceable, reproducible VMs. The host and guest OSes aren't super-relevant, as long as the system meets those goals.

On my trusty MBP, that is achieved through a combination of Vagrant/VirtualBox for server vms (sub with Docker if you swing that way) and Parallels for my actual dev environment. All of my configuration and provisioning are stored and versioned courtesy of github, and I regularly update them as my needs/tastes change.

Now, I don't always strictly adhere to that, I do some work on the host MacOS. But I'm 60% remote, and it's really nice not to have to switch gears too much between home office (MBP) and office office (linux workstation).

You may not want to go this far, and I'm still not sure it was worth all of the effort it took to set up, but I can be productive on a new machine in half and hour or so, and I never have to worry about "works on my machine" kind of issues.


You can create a second user account to separate both purposes, or even add a partition and install a second macOS for even more separation. An additional user account is usually more than enough.