I'm a C# developer mainly, and recently did a bit of Java development in Eclipse (Android ADT) and did miss some features of C#, but the languages are still very, very similar.
I'm a C# developer mainly, and recently did a bit of Java development in Eclipse (Android ADT) and did miss some features of C#, but the languages are still very, very similar.
I think Windows is the major drawback to C#. No one with half a brain is going to write server software that only works on Windows. Desktop software? Sure... I wouldn't write desktop software in anything else (at least for mass market software). I admit to not having worked with mono, and I think it is kind of a catch-22 - if it's not a common framework, no one will write for it, and if no one will write for it, the framework won't get much love... which is a shame, because Java obviously is in dire need of some competition to spur innovation over there at Oracle. Using Java feels like going back in time to 2002.
It means that if you ever need to scale up, you'll have to buy more licenses. It prohibits unlimited, automatic scaling.
It's also the once a month embarassing ordeal with sites being down due to server reboots after another round of Windows Update.
I deploy lots of stuff to Windows-servers, but I can see why some people would avoid it if they can.
Also, AWS, Azure and AppHarbor have takem the license problem out of the way.
I hope that this is just the initial phase of the company (although not too initial since you need 70 instances) and that you will get to a better margin along the way. Otherwise ANY bump you hit road ahead will break you.
Competing on a market that relies entirely on price is a death sentence, unless of course this is your plan.
Sure. For some values of unlimited it's purely an academic question. But if you can scale automatically to handle double load (which is a more real concern) chances are you can scale further without any other changes.
And yes, AWS, Azure and AppHarbour all have some of the licensing issues handled for you, but that can also be clearly seen when faced with the costs.
Again, I' not saying that nobody should ever use a Windows server for anything. I use it myself. I just say that I can see several reasons why people would chose to avoid it.
If you don't look at the big picture costs than you lose out on a lot of options.
There's other ways of patching servers besides all-at-once...
This does not contribute to the discussion.
NuGet might really turn things around; here's to hoping...
And these days I include RestSharp pretty much straight away if I'm going to be doing any HTTP calls, the native HTTPClient API is horrible. But even that's not got the greatest API, there's absolutely no good reason to have to declare a `RestClient` before doing a `RestRequest`, it's just a waste of lines of code. You always end up just writing a wrapper round it.
Likewise, Python has ways for interacting directly with streams.
It's fine for a quick hack, it's useless for a reliable web client.
Once you step out of your little bubble, you'll realize what a stupid comment that is.
However, for cloud deployment, there are a lot of hassles with scaling on Windows, mostly due to licensing costs and hoops you have to jump through for that.
BTW, I write server software for Windows in my day job, so I'm not some Linux zealot who's bashing Windows for no reason. Windows is fine. Non-free licensing is not (when a good free alternative exists).