It really depends on the 'time-to-market' requirements. If it's a complex enterprise play, the .NET ecosystem with C# is hard to beat for developer ergonomics and long-term maintenance. However, for a high-performance AI-native startup, I’d likely lean towards a more heterogeneous stack (Python/Rust/Go). The 'Microsoft tax' isn't just about money anymore; it's about the cognitive load of being locked into the Azure-first architectural mindset.
You can build a .NET application without being locked in the usual MS ecosystem. I am building a greenfield SAAS product in .NET with VueJS and Postgres. Will deploy on AWS, Cloudflare etc.
Fair point, and using VueJS with Postgres is a great way to decouple the frontend and data layers from the MS ecosystem. My concern was more about the 'default' path many teams take when they go full-stack .NET, but your approach proves that the runtime itself is now truly cross-platform and flexible. Glad to see more people breaking the traditional vendor-lock patterns.