Hacker News new | ask | show | jobs
by keypusher 4401 days ago
I actually think C# is quite a nice language, I just don't like any of the rest of what comes along with it (Windows, ASP, VS, etc). I am fully aware that you can technically run .NET on an open source stack, and I am also quite wary of the shortcomings inherent in that approach. I can theoretically run my Python webserver on a Windows box, but I'm not going to. If I work hard enough, I can put a square peg into a round hole, but I prefer not to. Because I need a bunch of packages that aren't available on another operating system. Because there were assumptions made about certain system commands and the presence of certain an init system when I implemented feature Z. Because the application was built from the ground up to run on the operating system it was written for, and that operating system will never be Windows.

It is my belief that .NET on Linux will forever be a project like Cygwin or Wine, a mediocre substitute for pretending one thing is another. I don't hate .NET, I just consider it irrelevant. A non-option. A second-class citizen. If I had a whole bunch of C# code sitting around I really needed to run on a Linux box for some reason, it might interest me, but I don't. I am never going to use Windows as a server, and .NET seems inextricably linked to Windows. Modern Java does the things I would want out of a compiled language like C#, so I'm not clear on why I should care or be interested in something that looks like an equivalent platform. Perhaps you can educate me. You seem to readily admit that Microsoft has made many mistakes across the technology stack, why is .NET so different?

I am curious about how many production .NET applications you have running right now on hosted Linux boxes, and if you would care to share your experiences. Perhaps I am completely wrong about .NET on Linux, and there exists a great and vibrant ecosystem of .NET devs on Linux and all the third party libraries just work great out of the box. If you want to convince people about how great .NET on Linux is, write a blog post about your experience running a large scale project on such a platform. Elaborate on the great packages and features present in the .NET ecosystem which I can't find in Node or Ruby or in the JVM. Don't just vaguely allude to there being a bunch of great open source .NET developers out there making great projects, because the only example you gave (ServiceStack) is not open source or free. Give us some great examples and tell us why we can't find that stuff anywhere else. Convince me that I should care about .NET even when I want nothing to do with Microsoft.

1 comments

That's a fair argument. I'd love to show you some large-scale solutions I've done and deployed on Linux, but I can't. I really can't do the same for Windows either. All my large-scale projects are on Windows, like you'd expect, and they all happened on big-budget companies where server fees were nominal, so Windows was the easy choice for those Windows-based companies.

The only projects I've deployed on Linux are SS-based and are small scale and they're all API-driven web apps. The server-side implementation doesn't get all that complicated.

You make a lot of very valid points here. I'm still happy with .NET overall and I hope that you're wrong about .NET on Linux forever being a project. I'd love to see it gain traction and have more of a community backing. I want to scale out on Linux and make scaling based on hardware and not complicated license structures. But as it stands, I think you nailed your argument. I'll ask around to see if anyone else can add large-scale production experience on linux to the conversation.