Yo soy desarrollador de .net por varios años, especialmente para c# y ASP/MVC5, pero también he sido por varios años desarrollador de Java Spring Boot, python3, node, php y demás y por experiencia propia te puedo decir que hacer un desarrollo en node o en c++ con windows es un parto, en osx o en gnu/linux tienes herramientas especializadas y nativas a muy alto y bajo nivel para hacer lo que tu mente se imagine, pero en windows con mucha suerte y algo de dinero podrás hacer una aplicación con una ventana y un boton que diga hola mundo. Se que cada desarrollo depende del desarrollador mas que de la plataforma donde lo haga, pero de todas maneras no es lo mismo comer en una mesa a intentar comer en el suelo, al final cocinarás y comerás igual, pero la diferencia entre windows y osx para desarrollar es mucha y windows está muy atrasado en ese sentido.
A Linux no lo meto, linux es un entorno ideal para desarrollar a no ser que trates aplicaciones nativas del ecosistema de Apple (Spring) o Windows (.NET). Pero el desarollo en MacOS es muy triste cuando te sales de su ecosistema. Yo uso de daily driver Manjaro, en el trabajo usamos Mac (me he quedado en Catalina por temas de compatibilidad de software) y Windows lo tiro para juegos y chorradas varias, pero si me dan a elegir entre MacOS y Windows, prefiero mil veces Windows.
¿Has probado docker? 30 veces más lento que nativo de linux y 15 veces más lento que WSL en Windows. La lectura es una risa... y lo se por experiencia propia pues trabajamos con contenedores docker y estamos hasta los cojones en Mac.. hemos probado de todo, correr docker en vagrant, correr con fs en modo cache, usar docker-sync etc.. el perfomance es muy triste. Hasta una raspberry PI (arm) tira más rapido...
Y que decir del POSIX... hoy en dia decir que MacOS sale de Unix es pegarse un tiro en el pie. Tienen un Posix que es cada vez menos Posix, nisiquiera a nivel de rutas cumplen, en cada script que crees tienes que cambiar cosas para que funcione para Mac... Tiene sentido cuando ves que la certificación Posix de MacOS es UNIX 3, una versión de hace 20 años...
Pero ya no solo hablemos de desarrollo, hablemos a nivel de usuario... has probado usar un bundle usb que no sea de Apple? Tienen tropecientos problemas, se apagan, cortan señal, tienen problemas con resoluciones... un teclado que no sea de Apple en Mac? ja, con suerte puedes usar A-Z - 0-9 sin tener que recurrir a Karabiner. Para activar la repeticion de teclas tienes que andar modificando valores con terminal..y que decir de instalar applicaciones tocadas... tienes que saltarte el SIP y cada vez es más dificil.. y ahora con los M1 en la empresa estamos teniendo infididad de problemas con tropecientas mil aplicaciones.. Hasta hemos estado apunto de tirar Mac a la ***** y pasar a Linux....
¿Control de hardware en Mac? Eso es un chiste. Viene con lo que viene y te deja tocar un poquito. De hecho toda la filosofia de Apple es restringir el usuario a que no haga nada raro, por eso es tan estable. Casi nadie en Mac desarrolla a bajo nivel... pocos vas a ver usando herramientas especificas, todo quisqui hoy en dia tira de VMware o Virtualbox... porque hasta para hacer dualboot en un Macbook tienes que hacer tropecientas chorradas y con suerte la ultima distro de Ubuntu o algo muy popular te tire medianamente bien.
Por lo menos en Microsoft ahora estan dando pasos hacia el lado correcto. WSL2 ha sido un exito en todos los aspectos, estan desarrollando una terminal (Windows Terminal) que vale la pena usar, y estan sacando codigo de proyectos muy gordos (.NET por ejemplo). Apple esta haciendo todo lo contrario, quiere cerrar su ecosistema más de lo que esta cerrado.
Saludos