| I want to stress the point that there's no tool that suits every problem; there are just different tools for different problems. If you only know how to use a hammer, then everything will look like a nail. That been said: I've developed in .net for a long time and, even if I totally respect what they've been doing lately with open-sourcing the framework and more recently msbuild, I honestly think their approach isn't up to date for most scenarios you'd want to address nowadays. If I'd have to choose specific languages for specific scenarios, I'd say that today, IMHO, a reasonable approach would be: Web/desktop consumer-facing apps: MEAN stack is probably the smartest choice because it favors development speed and UX iteration. I can't stress how beneficial is for teams to be able to write any part of the app using the same language. Especially for startups where teams are usually small: having everyone being able to develop any aspect of the application (frontend, backend, DB acces, etc.) is a pro I'd favor above many others. On top of that, the community is thriving and most stuff you'd need has probably already been developed or there's a framework for that. Backend-only/APIs/devops: Go seems to be picking up quite the hype in this space. Even if I haven't tried it a lot myself, the fact that something as powerful and solid as Docker relies entirely on Go can say a lot about its benefits. Other possible choices would definetely be among Ruby or Scala+Play. I feel Java and .Net have become a bit cumbersome for this. Micro-controllers/drivers/hardware-specific: so if you're doing drone-related software or stuff for IoT or robotics (Arduino, Beacon, Raspberry Pi, etc.) a very valid choice will be plain C. Of course we're talking about a universe of problems that come with unmanaged code, but when you go deep down to perfomance needs, it's pretty hard to beat well-developed C software. I do know stuff has been made with Javascript and Node on the robotics front, but I don't know a lot about it. |
When I look at jobs boards though, .net is everywhere!
Thanks for the feedback - upvoted