Live data from Hacker News

Why is there so much hate for .NET?

news.ycombinator.com

21–30 of 44 posts

Re: Why is there so much hate for .NET?

#21
Postback creating a stateful web. The web is STATELESS. Event-driven, I'm MAYBE ok with. But the web is stateless and postback attempts to provide pages with state. So what happens is you end up with shitty programmers who write big loops for handling page submission back to itself.

ClientID's making javascript an absolute pain or a mess of inline asp code.

MasterPages with forms on the child. It makes things very...strange.

Finally, most developers I've met are just...subpar. I can't really explain it, they just are good at .net stuff but they lack understanding below the surface. And I should add I don't just hate webforms (I really hate webforms actually), but even the new MVC stuff is just not implemented well in real life, probably because of the developers using web forms before using MVC stuff. I think MVC is the right way to go, but developers are so completely behind its sad. You shouldn't bill yourself as ten years experience if you have spent those ten years doing nothing but falling behind on development practices. Its not physical time that matters in this profession, its all about your knowledge-base, which needs to be worked on continuously. As I said, most .net developers, are just behind (or even scared) of newer development techniques; and when I say new I don't mean bleeding edge, I mean 4-5 year old techniques. If it wasn't 2004 - 2006, it doesn't really get another look by some of the 10+ year experience people I have worked with.

Re: Why is there so much hate for .NET?

#22

Postback creating a stateful web. The web is STATELESS. Event-driven, I'm MAYBE ok with. But the web is stateless and postback attempts to provide pages with state. So what happens is you end up with shitty programmers who write big loops for handling page submission back to itself. ClientID's making javascript an absolute pain or a mess of inline asp code. MasterPages with forms on the child. It makes things very...…

ASP.net is fairly old tech so yeah it has problems. It's gotten better since and there's a difference between the .NET runtime and the .NET ecosystem. Saying .NET sucks because ASP.net sucks is like saying Ruby sucks because RoR sucks. C# is a great language and you can pick and choose which parts of the ecosystem you want to use.

Re: Why is there so much hate for .NET?

#23
post #20

Earlier quoted context omitted.

But you do realise that .NET is not only C#? And that F# had many (maybe even most, but I didn't research enough to say this) features that Swift has? (And, on the related note, that Swift has not even one (or maybe? as I said, I didn't do enough research yet) novel, unique feature which wouldn't be already explored and implemented in other languages.) What you're saying is an equivalent of "there's many things wrong…

This is addressed to. Not all languages compile cleanly to the CLR. Running in the VM has serious tradeoffs as well. Garbage collection is a serious problem for soft/hard real time apps. Understanding performance is difficult too because the VM may be doing stupid things behind your back and you can't directly control things like CPU cache locality with this many layers. Porting the VM is also difficult. It is a real…

I'm not sure these are actually problems with the Microsoft stack, though. Most mainstream languages run in VMs these days — JavaScript, Ruby, Python, Lua, PHP, all JVM languages. Off the top of my head, the ones that don't are pretty much the three C's and Go.

Re: Why is there so much hate for .NET?

#24
Our current codebase has had iterations in ASP, C#, ColdFusion, Ruby, and others. At different times, we chose the best platform and language for the job. I was actually a technical reviewer for some of Wrox's first .NET books back around 2001-2002.

I don't think there's a lot of value using terms like "haters". I think that implies uneducated opinions.

You CAN run .NET in a non-MS ecosystem, the same way that I can run Ruby on Rails on Windows Server. My Rails app needs Redis, which really doesn't run on Windows; most (almost all) of the .NET tooling and resources out there are built on the Windows ecosystem.

The .NET "hate" is Windows hate. Everytime I try to eject a USB drive from a Windows machine and it tells me some randome unidentified process still has a file open, it reminds me why I no longer use Windows. Add on licensing costs, etc, and you have the basis for wanting to avoid the Windows platform.

So again, "but you can run .NET on Linux". Sure, but if you're building a solution and the use case calls for open source, is that really the best choice at that time? I personally think the push for Mono isn't because C# is the best language (it's pretty good though) but to preserve investment in existing code and resources.

When people think .NET, they think heavy tooling, configuration screens, and GUIs. They think tooling sold by "sales engineers" with glossy brochures filled with bullets points. "Consultants" with perfect teeth and perfect belts, as opposed to the guy in the hoodie hacking on code. We know this may not be a reflection of reality (look at tools like Powershell and the increased open-sourcing of Redmond), but culture is often as important as technology.

Re: Why is there so much hate for .NET?

#25

Postback creating a stateful web. The web is STATELESS. Event-driven, I'm MAYBE ok with. But the web is stateless and postback attempts to provide pages with state. So what happens is you end up with shitty programmers who write big loops for handling page submission back to itself. ClientID's making javascript an absolute pain or a mess of inline asp code. MasterPages with forms on the child. It makes things very...…

Postback creating a stateful web. The web is STATELESS.

Doesn't every language attempt to create state? WebForms puts pretty much the entire state in the client, but other platforms pass some sort of session ID at the very least.

ClientID's making javascript an absolute pain

I don't think approaches like the asset pipeline in Rails are much better, IMO

Re: Why is there so much hate for .NET?

#26
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.

Re: Why is there so much hate for .NET?

#27

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 ro…

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.

Re: Why is there so much hate for .NET?

#28
I'm not sure if .NET has a bad rap at all, rather I believe the onus is on the .NET developer to show it was a better choice than the alternatives that are more mature and flexible from a licensing standpoint.

I consult as a software engineer on various projects, frequently C# and Scala. C# is a fine language, and Monodevelop is continuing to improve, but I don't see any advantage over choosing a more 'open' language with a much more mature runtime (JVM) and an overall more advanced language (Scala).

Re: Why is there so much hate for .NET?

#29
>But do haters realize that you can run .NET on a fully free/OSS stack, in the cloud, AWS, Linux, the works? That question is not rhetorical. Do haters realize that?

Yeah. They just don't care for the sub-par experience of using Mono. (MS opensourcing large parts of .NET / CLR etc is quite recent, so it doesn't have changed the climate yet).

>Comment below on why .NET has such a bad rap.

Well, not that much bad rap. People just don't use it. From what I read on most forums, hackers using other languages tend to like C# (lots of people, even in Unix land), and respect F#.

But they either want a mature system with longer open source presense and better support than Mono (e.g Java) or they don't work with such managed runtimes at all and they opt for something else.

Note that Java, which has been open sourced and has had a huge hacker community for many more years than .NET, still gets a bad rap because of Oracle's actions and behavior.

Re: Why is there so much hate for .NET?

#30

Postback creating a stateful web. The web is STATELESS. Event-driven, I'm MAYBE ok with. But the web is stateless and postback attempts to provide pages with state. So what happens is you end up with shitty programmers who write big loops for handling page submission back to itself. ClientID's making javascript an absolute pain or a mess of inline asp code. MasterPages with forms on the child. It makes things very...…

Postback creating a stateful web. The web is STATELESS. Doesn't every language attempt to create state? WebForms puts pretty much the entire state in the client, but other platforms pass some sort of session ID at the very least. ClientID's making javascript an absolute pain I don't think approaches like the asset pipeline in Rails are much better, IMO

Not having RoR experience, I can't comment on their approach to doing things.

Yes sessions are prevalent in other languages, and that is typically the 'default' method for maintaining state. In .net however, you also have the following methods: http://msdn.microsoft.com/en-us/library/vstudio/75x4ha6s(v=v...

Most of which are commonly abused because developers don't know what they are doing with what, when. For instance I've never seen profiles used, and as much as I'd like to at-least try the idea, any attempt to move even non-critical information into profiles is met with heavy resistance as it's something 'we just haven't used before'.

One place I was hired at (thankfully to clean up some of the mess), insisted on using query-strings and hidden fields for just about everything-they had no idea of the proper way to handle things. When they did use session variables they would attempt some increment magic and mess it up so it was possible to get everything out of sync and be returning the wrong data. They made no use of Application Settings and instead used a physical control file to hard-code global variables to be used across the site.

Part of my experience and hate for .net is specific to instances I've seen-I will agree to that point, but so much just has to do with developers who use 'whatever works' instead of thinking about the underlying design implications of their application. I really just believe its because they don't take the time to learn what is happening 'underneath the hood'. The thing is, the more I work within the .net environment, it really is apparent at just how EASY it is to forget the fundamentals, to throw some tool or easy solution at something, rather then having to think it out. It's great that development time feels quick but can also feel a bit dumbing-down as-well.

I'm rambling so I'm going to shut up. :)

Post reply on HN