No creo que sea esnobismo. Hay muchas razones por las cuales Microsoft es el hijastro pelirrojo del desarrollo de software.
Durante décadas, las API de Windows fueron terriblemente complejas y mal documentadas. Las llamadas tenían efectos secundarios indocumentados, había cosas inocuas que podrían obstaculizar el rendimiento … Y, a diferencia de Linux u OS X, realmente tiene que invertir algo de tiempo y dinero en las herramientas para comenzar. Las API POSIX utilizadas en entornos que no son de Windows están comprobadas y están cuidadosamente documentadas, y una gran cantidad de lenguajes de programación y herramientas de desarrollo de software están disponibles de forma gratuita (vienen con los sistemas operativos).
Microsoft hizo un largo camino hacia la limpieza de su acto al desarrollar la plataforma .Net y despreciar las API de WIN32. También comenzaron a hacer cosas como implementar compiladores C y C ++ que cumplen con los estándares. Los controladores de dispositivos siguen siendo estúpidamente tediosos y complejos de escribir en comparación con casi cualquier otra cosa, pero el software está llegando allí, incluso si todavía tiene que pagar para jugar.
- ¿Es razonablemente posible hacer una maestría en biología si su licenciatura estaba en ingeniería de software?
- ¿Cuáles son algunos trucos simples que todo ingeniero de software debería saber?
- ¿Cuál es la mejor manera de calcular el costo total de propiedad de los marcos web?
- ¿Qué herramientas se pueden hacer como parte del equipo de DevOps?
- ¿Qué lenguajes de programación se usan en Twitter?
Hay otras razones para: la plataforma principal de Microsoft para consumidores y empresas se encuentra en los sistemas de gama baja, por lo que esas personas están más o menos bloqueadas de la mayoría del desarrollo. Hay poco disponible en el soporte de secuencias de comandos nativas, lo que no fomenta la experimentación.
Agregue al hecho de que ha habido una evolución lejos del desarrollo para el escritorio y hacia servicios de back-end y en la nube, móviles e informática integrada. Microsoft es un jugador minoritario hoy en día en el mundo de la informática, que predomina en las tecnologías web y móviles basadas en sistemas UNIX (Linux en particular, y en menor medida BSD / iOS / OS X).
Microsoft todavía está en el juego por razones heredadas: una gran base instalada de usuarios comerciales y usuarios domésticos con hardware para ejecutar sus aplicaciones y juegos. Pero son un jugador de nicho en la evolución moderna de la informática.
Trabajo en biotecnología y todo lo que hago es en un entorno Linux, UNIX u OS / X. Hace 5 años, la mayoría de nuestra instrumentación tenía computadoras basadas en Windows que las controlaban, ahora no tenemos un solo proveedor que no haya migrado a Linux para controlar la instrumentación. Tenemos muy pocos sistemas Windows y están dedicados a AD, Exchange o trabajo de secretaría. En casa, todo lo que tengo funciona con algún tipo de UNIX: mi computadora Mac, las computadoras de una sola placa que uso para proyectos electrónicos; mi DVR ejecuta Linux, el kit de robótica Lego de mi hijo ejecuta Linux … Mi teléfono móvil también ejecuta una variante UNIX. Todos usan las mismas API centrales con diferencias principalmente en sus API.
TL; DR: Windows es tedioso y muy costoso de desarrollar en comparación con las alternativas; como plataforma, es el hombre extraño por la compatibilidad API con la infraestructura moderna y muchos desarrolladores lo consideran ampliamente como una plataforma heredada.