News for hackers. Stuff that matters.
Re:6 Months with C# by spo81rty on Sunday March 10, 2013 @09:17AM (#5351745)
I don't understand why everyone on HN hates Windows server so much. From an administration standpoint they are much easier to setup and use thanks to their GUIs. Windows is very standardized and has very good management tools and interfaces.

C#, ASP MVC, and Visual Studio are extremely good tools. I've programmed in C# for 10 years and never had a project I could not do quickly with it. It has very good support of 3rd party controls like Telerik, and there are lots of open source projects on codeplex, github, etc.

The most expensive part of software development is paying developers. Spending a few dollars on good dev tools or 3rd party controls is a very good investment and can save a lot of time.

Re:6 Months with C# by nkohari on Sunday March 10, 2013 @09:46AM (#5351873)
> From an administration standpoint they are much easier to setup and use thanks to their GUIs. Windows is very standardized and has very good management tools and interfaces.

Having managed both, I have to disagree very strongly. A GUI works fine when you want to manage one machine (although it's kind of a pain in comparison to SSH), but when you want to manage dozens, you need sharper knives. The tools available for automating devops (chef, puppet, etc.) are very oriented towards UNIX-based OSes. We have around 70 Linux machines in our production system today, and if I had to manage them through RDP and GUIs, I'd probably quit and become an alpaca farmer.

Re:6 Months with C# by Supermighty on Sunday March 10, 2013 @10:08AM (#5351966)
Disclaimer: my personal experience is managing Linux machines.

I think it's easier to manager a service on Linux that has one, or maybe two, text files for configuration. They often ship with every option available, even is commented out, and a little note detailing exactly what the option is for.

My only real experience with Windows Server was having to add a new mime type for .fla files for IIS. The .fla were downloading instead of playing. The option was buried deep in in multiple configuration windows and dialogue boxes. It took forever compared to what a simple AddType would have taken in an Apache text file.

Re:6 Months with C# by Supermighty on Sunday March 10, 2013 @10:12AM (#5351982)
Actually, I really love the annotated text configs. It's like I'm talking directly to the developers.
Re:6 Months with C# by NateDad on Sunday March 10, 2013 @09:42AM (#5351861)
Windows isn't free, so if you need to spin up 10 new servers to meet demand, you can't just DO it. You have to pay Microsoft for the licenses first. It means that all your test and dev servers need non-free licenses.... it's a non-free hassle.

Honestly, admin on Linux is not that hard, and server most tools out there were designed for linux first, and Windows instructions are often of poor quality or lacking entirely.

Re:6 Months with C# by nkohari on Sunday March 10, 2013 @12:20PM (#5352417)
That's not really true -- in practice, most companies have a volume license for production machines, and a single MSDN subscription includes as many licenses for development and test as you want.

I'm not advocating that anyone use Windows, just saying that in practice licensure isn't as hard of an operational problem as it might seem. The price still hurts, though.

Re:6 Months with C# by katbyte on Sunday March 10, 2013 @09:29AM (#5351789)
I've done both (win and linux) and they each have their disadvantages and advantages, it would be hard for me to pick a clear winner because it really depends on your skillset and the task at hand.

If i were to do a big enterprisey project with a big budget i would definitely be more likely to go with windows while if i were to do a web/online start-up i would more likely pick Linux.

Re:6 Months with C# by spo81rty on Sunday March 10, 2013 @09:47AM (#5351876)
I think you nailed it. Large enterprises want support. Although some also see potential cost savings of Linux.
Re:6 Months with C# by martinced on Sunday March 10, 2013 @02:59PM (#5353008)
Medium enterprisey project with a medium budget, I see people picking C#/CLR>

But really big enterprisey stuff with really big budget? It's all Oracle DB + Java on Unix there.

Just as all the really big infrastructures (Google, FedEx, Amazon, etc.) are all Unix.

Re:6 Months with C# by psremote7 on Sunday March 10, 2013 @10:06AM (#5351953)
Why are all people assuming Windows is gui only?

You can script practically anything using powershell and multi server management using powershell remoting.

System center + ad group policy is light years ahead anything else.

Re:6 Months with C# by nkohari on Sunday March 10, 2013 @12:10PM (#5352382)
I think PowerShell was a great idea with weak execution. The real issue is that the OS and many Windows services (like IIS) weren't built to be managed via the command line. They're gradually adding support for it, but not in a standardized way.

Configuration and management on Linux is anything but standardized, but it's almost always as simple as changing the right line in the right file in /etc. Also, the ecosystem is so large and mature that tools have been built to make things simpler.

You can manage Windows machines via PowerShell, but that doesn't mean it's easier in practice than SSH and Linux -- particularly given the toolsets (Chef/Puppet/etc) that have been created around it.

Re:6 Months with C# by MatthewPhillips on Sunday March 10, 2013 @10:21AM (#5352015)
Because almost no one actually does that, despite it existing, and tools and documentation for it on the net are very sparse.
Re:6 Months with C# by yread on Sunday March 10, 2013 @11:13AM (#5352197)
In my experience all the windows sysadmins I've met were doing EVERYTHING by commandline. Either through netsh and so on or they memorized .MSC commands for opening a particular GUI and then use a keyshortcut to flip a switch or so. You can hardly see what's going on
Re:6 Months with C# by brass9 on Sunday March 10, 2013 @10:02AM (#5351937)
Having to manage both Windows (IIS) and Linux servers (mostly Debian and a few CentOS'), I much prefer tinkering with Linux CLI rather than clickety-clicking on pretty GUIs.
Re:6 Months with C# by tucaz on Sunday March 10, 2013 @09:33AM (#5351807)
If I had to, I would bet with no fear that web development today can be made with any tech stack (.net, ruby, python, etc) without signficant differences in schedule or effort put on it. Choosing stacks todays is pretty much a matter of taste and skill availability.
Re:6 Months with C# by stevenelliottjr on Sunday March 10, 2013 @09:38AM (#5351833)
Because it's too easy! Nerds would rather spend countless hours at the command line figuring things out than having a nice interface to get stuff configured and running. As a developer, I don't want to spend my life also configuring servers - sometimes it's just nice to get things working without a ton of hassle. Of course nowadays we use Azure or AppHarbor for everything but we still have some services running on IIS internally. There is this counter culture against anything MS on HN - I don't get why.
Re:6 Months with C# by nkohari on Sunday March 10, 2013 @09:53AM (#5351903)
No one wants to spend their life configuring servers. That's why tools like Chef and Puppet exist -- so you can write code that will do it for you. They just don't work as well for Windows as they do for Linux.

After a significant amount of experience in the .NET ecosystem, I believe the majority of the anti-Microsoft sentiment is well-deserved. At one point, there was a lot of innovation in .NET OSS, but it seems to have ground to a halt within the last few years. It's possible I'm just projecting because of my own experience, but it seems like many of the more influential members of the .NET ecosystem have gone on to do other things.

It's not that Microsoft or .NET is bad -- it's just that there are better options.

Re:6 Months with C# by thatfloatingguy on Sunday March 10, 2013 @10:14AM (#5351997)
I keep hearing that there are better options... but I haven't found one which is personally better for me. I'd love to hear suggestions if you have the time.

I think the biggest problem for me isn't some attachment to Windows Server (I much prefer working on a Linux server), or some misplaced love for WebForms (ick!), but the C# language in general.

There are a lot of great dynamic language setups on Linux (Rails, various Python stacks, etc) which aren't bad or anything... but I always find working in a dynamic language to be a bit of a hindrance. I've been writing a multiplayer game server in Go, and I can't even begin to list the hours of work compile-time type tests have saved me during early development as I constantly refactor. But on the other hand, I wouldn't want to write a large "business" style web-app in Go (my day job), which really doesn't have a standards library tailored for it.

I also get the feeling that the dynamic language web-stacks suffer from relatively poor performance compared to the CLR, and for some of the clients I work with who need to do some fairly complex non-database processing, this wouldn't be a great thing. Maybe this concern is unfounded though.

Perhaps Java is the closest match to .NET, both in style and in spirit. But having done a fair amount of Java development for Android, Java just feels so clumsy and clunky... The language isn't as nice, the tools aren't as nice, and the standard library just doesn't compare in terms of letting my express myself quickly and easily.

When one of my clients needs a web-app, I always go .NET. These projects won't ever be scaling to millions of users, so server licensing really isn't an issue. On the other hand, there will be lots of direction changes no matter the amount of planning, so static typing can be a God-send with the safety blanket it provides. And C# really lets me write clean code more quickly than in anything else I've worked with.

If I we're creating a product for a start-up, I probably wouldn't go with it... licensing costs would be an issue. But then again, if I was running a start-up, hopefully it wouldn't be a relatively boring business-app that was best suited to something like .NET. And if I were creating a product for a huge number of users, it'd be worth pouring in the development time to have a super high performance back-end in a language separate from the quick-to-add-features-to Ruby front-end.

But for my use case, I just haven't found a better option yet. I'd love some suggestions though, because I'm not a big fan of Microsoft these days and wouldn't mind being less at-mercy of their platform. Maybe my concerns are unfounded though, and I'm just stuck in what I know, but I do branch out a lot for personal projects.

Re:6 Months with C# by nkohari on Sunday March 10, 2013 @12:03PM (#5352350)
I don't think there is another great option if you want something like C# and you don't want to go down the Java road.

I adore C# as a language, and the CLR as a platform. If not for the Windows requirement, I would write quite a bit more C# than I do now. (See my other comments on why Mono isn't good enough as a platform-independent option.)

Let's be honest, JavaScript is a goofy language with all sorts of ugly parts, but it's surging in popularity because of the power of the platforms on which it's used (browsers and Node.js).

Lua is another language which I've taken a liking to recently. It has a beautiful, clean, simple syntax -- it's basically like dynamic C -- but its standard library is horribly weak. That's why I think it's relegated to embedding.

The .NET standard library is amazingly powerful, but the only "real" implementation of it requires Windows. My point is: it's not enough to be a good language, you need strong platform support.

Re:6 Months with C# by brass9 on Sunday March 10, 2013 @10:13AM (#5351988)
> After a significant amount of experience in the .NET ecosystem, I believe the majority of the anti-Microsoft sentiment is well-deserved. At one point, there was a lot of innovation in .NET OSS, but it seems to have ground to a halt within the last few years. It's possible I'm just projecting because of my own experience, but it seems like many of the more influential members of the .NET ecosystem have gone on to do other things.

That's not entirely true. Pretty much the entire ASP.net MVC stack has now been open-source. Entity Framework is also open-source.

I agree, 3rd party OSS ecosystem is much smaller than Java.

Re:6 Months with C# by nkohari on Sunday March 10, 2013 @10:20AM (#5352012)
I don't mean this to be derogatory, but ASP.NET MVC, as great as it is, was not particularly innovative when it was originally written. Entity Framework is an ORM, and by definition not particularly innovative.

Why isn't something like Cassandra or Hadoop written using .NET? It's the Windows requirement that makes ideas like that die on the vine.

Shit, there are more interesting systems built using Erlang/OTP than there are for .NET.

Edit: RavenDB is probably the closest thing to new tech that's currently happening on .NET, and it's because Oren Eini is one of the few innovators left in the ecosystem.

Re:6 Months with C# by sultezdukes on Sunday March 10, 2013 @02:07PM (#5352784)
I don't mean this to be derogatory, but ASP.NET MVC, as great as it is, was not particularly innovative when it was originally written. Entity Framework is an ORM, and by definition not particularly innovative.

Where did the parent say anything about innovation?

Re:6 Months with C# by nkohari on Monday March 11, 2013 @11:14AM (#5357188)
> After a significant amount of experience in the .NET ecosystem, I believe the majority of the anti-Microsoft sentiment is well-deserved. At one point, there was a lot of innovation in .NET OSS, but it seems to have ground to a halt within the last few years.

I said it.

Re:6 Months with C# by sultezdukes on Sunday March 10, 2013 @02:06PM (#5352777)
It's not that Microsoft or .NET is bad -- it's just that there are better options.

No, there are better options for you.

Re:6 Months with C# by nkohari on Monday March 11, 2013 @11:15AM (#5357195)
Touché, you out-lawyered me there. I was talking about my opinion on the topic, so yeah. For me.
Re:6 Months with C# by stonemetal on Sunday March 10, 2013 @10:16AM (#5352002)
It seems to me to depend on what side of the world you land Dev or Ops. Ops is much easier on the OSS side. RDPing in to a hundred boxes to click a button is the height tediousness, the oss alternative is running a script(and the tools that can make that target all one hundred at once). On the Dev side there is nothing that matches C# on CLR. Java isn't conceptually different but it is missing so many niceties as to make it distasteful. Scala or Clojure maybe, but they don't have the richer environment that C# does (certainly not a reason to dimiss them out of hand.)
Re:6 Months with C# by corresation on Sunday March 10, 2013 @09:51AM (#5351895)
Because it's too easy!

I have to disagree. Windows Server has the illusion of ease, but the same mechanisms that guide your hand in the early days turn into a major hindrance later on. There isn't a Windows server running anywhere that doesn't have event logs jammed full of potentially deadly warnings and errors, and most "easily" setup Windows servers are setup insecurely and wrong.

In my personal experience (and I have a lot of experience with both) I've always found Linux build outs much more predictable and easy.

As to the "counter culture", that goes back to when Microsoft really were the pricks of the technology world. They've gotten much better, but it's hard to shake that.

Re:6 Months with C# by rjh29 on Sunday March 10, 2013 @09:50AM (#5351889)
At our shop we prefer scripting, automation and automatically deployed/centrally configured config over GUIs. The learning curve may be a little higher, but once you've got a taste for how quickly you can do things with scripts, Puppet etc. and how fast you can scale out, you'll find that you actually _save_ countless hours.

We can also use virtualisation everywhere, for testing, quick deployment, offsite deployment, cloud... without worrying about licenses.

The fact that EC2 Linux is significantly cheaper than Azure is just a bonus.