Hacker News new | ask | show | jobs
by gvilarino 4115 days ago
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.

1 comments

I'm the OP and I've built maybe 45 apps with Ruby on Rails. I've played with Angular and Nodes.Js.

When I look at jobs boards though, .net is everywhere!

Thanks for the feedback - upvoted

I've done some stuff in .net. One of the advantages is the learning curve is pretty fast. So it's not a huge investment.

The flip side is it seems a lot of .net jobs are sausage making. Not very much in the way of cutting edge or exciting stuff gets done in .net. Though too cutting edge often is crash and burn, where run of the mill projects can last years and years. (Don't knock a steady paycheck)

I know it's hard to say, but how fast is "the learning curve is pretty fast"? Would two months straight be enough to have a reasonable command (I get that it would be entry level at best)
I would say two months straight of serious study and practice would be more than enough to solidly know your way around the language, .net libraries and tools.

Buy a good book.

I don't actually do client side (or server side stuff) as primary work. However .net is very useful for kicking out simple GUI based tools. If you want to do that, .net has the fastest learning curve end of story.

Thanks "Gibbon1" for avoiding the usual "10,000 hours" response. Upvoted!

I know it's hard to quantify. I have a friend who has offered to do a "8 week internal training program with me" if I commit to working with his company for one year.

I just wanted to hear someone objectively tell me that they thought that's doable first.