Hacker News new | ask | show | jobs
by pixiez 3960 days ago
I agree we should go with something we are already familiar with but I come from c++ background and I dont think it is the best language/ecosystem for a team that only have 1 developer. I am a senior developer (c++ as I mentioned) so I think it is not an issue for me to pick up a new language but it is more an issue with finding/training new developer when we need to - I agree senior experienced developer is generally more expensive (or too expensive for early stage startup), so hiring a couple of junior dev sound more efficient but I cannot afford spending months to train them to help them to be helpful, and I feel it is easier to be productive in a .Net environment as Visual Studio is just easy for anyone to pickup.

we have some cost efficient way to get license on Microsoft's software like Windows/SQL Server so the cost on software is not an issue, so is there any other concern with Windows-based solution? you mentioned scalability, why this can be an concern? (I assume windows should be able to do whatever linux is able to provide?)

1 comments

Given this, I'd go with the C#.NET route than, as your knowledge of C++ makes C# the natural choice and finding .NET devs is not usually too difficult.

My comment on scalability and Windows is mostly based upon cost as well as most distributed software solutions that are designed to scale are primarily done not on Windows Server but on Linux of some flavor. I am also biased here as I started my career in Unix, although I spent ~8 years doing primarily Microsoft development, and am dedicated to non-microsoft environments now. In some cases when clients have demanded we deploy on Windows some of the software vendors would tell us to significantly increase the number of nodes when running on Microsoft as they found their failure rates were higher, not to mention less resource efficient. Hence cost goes up more and maintenance increases as well. And no, I wouldn't necessarily say Windows is as capable as Linux, but that may just be some bias sneaking in.

That's because your running unix/Linux software ported to windows.

If you use windows first tools(IIS, MSSQL), windows is a high performer.

I agree some but not totally. For example, I only run IIS as a web server for Windows as so far nothing else does nearly as well as it does on Windows IMO (I use nginx on Linux). As well MSSQL is the goto database on Windows. MSSql is pretty damn nice too although scaling and licensing is very expensive not to mention the hardware you need to run it.

But when you get into distributed software solutions which is mainly what I am working on, it is hard to get the same scalability and functionality out of Windows and Windows native products. For example, a decent messaging system like RabbitMQ either has numerous Windows specific quirks or just won't scale the same requiring more servers to maintain throughput and reliability. Not that it can't be done though, just it really changes the cost factor and the architecture. I can even use SQL Server Broker which is pretty good but again, now the costs go up pretty significantly both in terms of hardware and licensing as you can't just run it on a bunch of commodity/virtual servers full or Ram.

I made a great living off Uncle Bill and the entire Microsoft ecosystem, and I am not a Windows hater (I really like C#), I just recognize for most solutions of scale it doesn't work out without significant cost and tradeoffs.

I actually run a distrubted website using NServiceBus. I don't really have a problem.