I'm an active member on Programming Reddit, but I'm one of the few C# advocates there.

I could write up a 3 paragraph explanation of how to do something there, just to have it voted into the negatives because I used C# as an example.

As a developer using the "Microsoft Stack", how do you handle the trolls and bigots in the online world? These are the kind of people who say things like "M$", or that Vista sucks without ever booting up.

Do you just ignore the trolls?


Let's restate your question ...

I visit the bear caves and keep getting eaten by bears. How can I get the bears to not eat me?

If a community doesn't want to discuss C#, find another community. If you don't see the community you want to participate in out there, start your own.

As to the stated question of why .NET (and technologies associated with it) aren't a popular topic in communities like Reddit; It is, (with apologies to Mono), controlled by a single vendor.

Single vendor technologies

  1. Attract a certain kind of troll that doesn't see the pros of single vendor technologies
  2. Draw fewer users in general, so there's less people interested in defending the technology

Both of which have nothing to do with the worthiness of the platform in question, but more with the dynamic of sites like Reddit.

Finally, a quick, unscientific google survey of language/platform/tool-chain suck.

EDIT: I snipped out the C# bashing as this post wasn't about the languages.


alt text

"Who cares. If you code for fun, code using the technology that gives you the most enjoyment. If you code for money, use the technology that makes you money. If you code for praise on social sites, get a life. - Reddit Response"

63 accepted

Trying to get trolls to reason about their ideology is like trying to get my dog to not chase squirrels. It's in his blood to chase squirrels and there is nothing I can do to convince him otherwise. Reason, logic, bribes, discipline have no effect.

Do what I do with my dog. Put a muzzle on them.

Note: I don't actually muzzle my dog. I just let him jump excitedly at the window.


Switch sites. There are plenty of microsoft centered social sites. If you don't want to switch sites then ignore the trolls.


do not cast your pearls before swine...


I think language favouritism is often overlooked from a technical perspective. I've seen quite a few good articles on choice languages, language popularity etc.

Let's take for example the Java world. Most programmers - and I mean most in the literal sense - often see Java as "slow" because it's a virtual machine built on top of the operating system, thus Java programmers are scorned by the programming society as using a "crappy and slow" system (I'll say system because it is not purely a language-driven comment when referred to as "slow"). The fact of the matter is that .NET is essentially a run-time environment built upon Windows, but it's integration is most probably more thorough. This integration ties it to what? Yes, MS-based operating systems. Java, on the other hand, is free of this allowing freedom in its environment.

There's no such thing as a "bad language", if I were to base that statement on modern, and popularised languages. You should choose a language based on your needs, you should never choose a language based on your preference. Familiarity of language can be a key factor, so let's separate familiarity, comfortableness, and preference for a moment. If your project scale allows for a long development time, lots of speed, and high OS-integration then sure, pick a lower-level language. If a project needs to be completed sooner, rather than later, and speed isn't an important factor, you need not worry and can instead pick something like VB.NET, or C#.

If you've got five years experience in a language such as C#, and the project could do with using it, then so be it. What happens, however, if you are designated to a real-time project, let's say the production of a physics engine to mimic the outcome of a safety structure for something like a vehicle? Speed is of the utmost importance, throwing preferential treatment to language out of the "comfortable zone" window.

When those "trolls" throw abuse your way, don't just ignore them and sit on a high horse, instead soak up any serious comment and weigh it against your professional opinion as a programmer. Never deny criticism based on your preference. If you've come here to accept applauds of language-loving individuals who don't weigh up programming projects on a professional level then you're not learning anything.


There is a theory I once heard that the .NET programmer is the American tourist of programmers. Meaning that there is a perception in the market that the .NET programmer does not care about solutions that did not come from Microsoft. That if a solution is not the official M$ way, then it isn't any good. I know personally many devs that work in .NET who struggle to see the light beyond datatables and sql queries. Sure these are good solutions in some places but in other places an ORM framework or other tool that might come from the community may be a better fit...

But while the American Tourist idea of a .NET programmer might fit some individuals, it certainly doesn't speak for everyone. What is now being called 'Alt.NET' is full of fresh ideas and innovations that are not directly from M$. I think you should like C#; it is a very good application language. In the past it was a mix of Helsberg's experiences with Delphi and Java, but going forward I think you can see with Java 7, some influence from C# on Java.

I don't like the stereotyping and name calling that is so common place. I think if you're dedicated to learning and furthering the craft of being a software professional the tools are less important. That is to say, if my favorite language is Groovy and your favorite language is C#, our similarities are much greater than our differences overall. Unfortunately, this kind of "let's all sing kumbaya" thinking does not describe the reality of social sites.

I'm not sure how to address the negative mindset that is so pervasive across such sites, but I can definitely say that if your talented, dedicated to learning and the craft of building great software then that is all that should really matter in the free exchange of thoughts and ideas about software.


I'm a C# developer, and I love the language. It's powerful, it's clean, and Visual Studio is a wonderful IDE when given proper hardware (call that a bad thing if you want... I have proper hardware). I'm planning on building an online polling site soon, pure C#. My personal website is entirely C#. I'm gonna build an eCommerce website for my parents' pottery business with all C#. I could go on and on about the things I have done or are going to do with the language, and I love it. To the people who don't like C# simply because it's a Microsoft platform: you're worse than us. I've tried Linux, I've tried C, and both have their place. I'm a .NET developer, so it's just impractical for me to have a primary computer not running Windows. If you love C, wonderful. It's a powerful language, and cross-platform compatability is a nice thing. But I'm a web developer. I don't give a flying f*ck what platform you're on, as long as I have Windows Server. C# is an awesome language, and .NET is a remarkably powerful platform. If you disagree, you haven't used it enough.


I've just started to develop for the iPhone, and therefore I'm browsing a lot of Mac/Apple forums. The fun thing is they flame about Microsoft too, but they forget about how protective Apple is.

Just wanted to share what it means to start developping for the iPhone when you are not a Mac user:

  • Buy a Mac
  • Sign up for a Developer program just to get the SDK
  • Pay $99,- to get you App in the AppStore, the only way to distribute your program, which also means you have to go through a long procedure of checking you identity, sending your C.o.C. by fax(!), etc.
  • Program in Objective-C, which is quite different from most mainstream languages.

Just my 2 cents


Use F#. They like F#.


If a posting is tagged C++, don't answer with a C# example.

Don't tag articles with C++, if it is really about C++/CLI or C#.


I think most of us who use open-source stacks object to "pay-to-play".

Of course, a good counter to our negativity is to point out that C# is standardized and Mono makes it available to all of us.


You stop a troll by ignoring them. Easy and efficient.


I too was a guy writing M$. It was a long time ago. I learned everything I know on an Apple IIe and Macs. I still write for Macs. I think what bugged me about M$ was that it seems like a juggernaut that threatens to kill creativity that isn't in the M$ line of thinking. No one likes an over-lord. For me, that went away when MS began using the W3C standards.

Don't forget that a lot of good developers were put out of business when MS decided to develop similar technologies to what those devs were doing. That anger doesn't go away easily, even if it didn't happen to them directly, they see the writing on the wall. Great developers fear that their ideas will be squashed by a company that seems faceless.

Hopfully Ray Ozzie will be a less ruthless, more community oriented persona for MS than Bill was.


Just call them trolls. This will help.


The blog post Are .NET Developers the American Tourists of the Software Industry? back in February muses on this same question after the author also received harsh feedback on reddit.

In summary, the author concluded:

The same segment of the software industry that dislikes Microsoft also views developers who use Microsoft tools and languages as inherently less skilled and less capable.

Developers who don?t earn their living from Redmond-based technologies dislike Microsoft developers for some of the same reasons that people from other countries dislike Americans.

Americans are inherently annoying because we rarely invest any effort into learning anything about the external world.

Note: the author was both an American and a .NET developer. These conclusions were not intended to offend .NET developers or Americans.


You stop the anti-mircosoft-pro-linux trolls in the same way the other side stop the anti-linux-pro-microsoft trolls.

If you work that out, please let us know. But I'm sure that whinging that people suck will be, as usual, amazingly effective at persuading them to not suck.


I grew up on C64, then after a decade to MS-DOS and a bit later, Windows. My hatred towards the company is mainly technical (although I admit in my youth there was some leftist idealism in there too). I grew to hate Microsoft because their products were horribly bad, and because they managed to force themselves by contracts into 99,9% of all home computers.

Now that their products are not so horrible anymore and there's some healthy competition around giving me options, my hatred has been dissipating every year and I've almost reached a point where I can completely ignore them.

They'll have to work rather hard for me to touch their products again, though. Bad karma is hard to get rid of.


I work with C# and ASP.NET for a living, but ruby, and recently erlang, at home. My personal take on the stigma is that if you've used something like Rails for web development, ASP.NET and it's implementation of the event driven model is like pulling teeth. Which begs the question why are you using it for your webdev? Some people push this a little farther where the question becomes "Why is this person so stupid as to use that clunky tool when this is really much better?" That's not necessarily a great way to approach the issue but it's an explanation.

That said, C# is hard to beat for building desktop apps, and its very easy to find information on. Take it for what you like, but I won't be using C# for web development any time soon, at least not until MVC comes out.



Reddit isn't moderated. However, Stackoverflow is. hint


well, i'm a redditer, i don't write m$, but i run a linux box and i mostly use open source programming languages.

i had this little project for a windows environment and i was like "ok, try it out in c#".

it was a pretty simple task: connect to a remote machine via ssh, collect some data, parse and analyze it.

so, you try it out: google "[programming language] + ssh" i tried "c# ssh". the first entry is from a forum. they talk about various libraries, mostly not free, and expensive. i then came to a link to site where there is a comparison chart (http://www.eldos.com/sbb/sftpcompare.php). The second row on the table (where the first is the name of the product) is "Price". The row reads like:

1. $315 with source code
2. $799 for .NET desktop, $1199 for .NET CF
3. $209 without source code, $399 with source code
4. $599     $800 (per project)
5. $349 without source code, $1399 with source code

great, if i go for the cheap one, my 2 day simple project costs me $209.

guess what? i ended up typing "python ssh" instead. this offered me a selection of free, open source libraries (pussh, pssh, pyssh, distribulator, sshcontroller, pexpect, twisted matrix, twisted conch, paramiko). i went for paramiko. four hours later the project was up and running. for free. almost, because i donated $10 to the paramiko project for helping me rediscover why i love so much the opensource community.

footnote: i then ran the program in my linux box because python is portable, c# is not.


There are two problems. First of all, how do you know that you're voted down because of platform? It is hard to evaluate the quality of one's own comments. Most of the cries of bigotry that I see (including racism and sexism) are not actually bigotry, but rather the person blaming their treatment on bigotry.

Second of all, to a first order, you can tell the quality of a programmer by the tools they use. Virtually everyone who uses free software tools, or more esoteric languages, does so because they program as a hobby (possibly in addition to as a job). They tend to be passionate, which leads to, on average, high quality people.

In contrast, the vast majority of programmers on more standard, corporate platforms (Oracle, Java, VB, C#, etc.) do so because their job requires them to do so. Most are 9-5 programmers without any real passion.

This isn't universal. One of the best programmers I know spend virtually his whole life on Microsoft platforms (although he eventually switched to GNU/Linux). I know several dumb people who code in Scheme.

Nevertheless, there are things that give a pretty good indicator of the quality of a comment without reading it. Proper spelling is one. Proper grammar is another. Choice of platforms, for better or worse, is a third. The vast majority of e.g. Lisp programmers are smarter than the vast majority of e.g. VB programmers. When bias is merited (there is an actual statistical difference between two groups), as is the case here, it is very hard to fight it.


I agree with the guy who said you keep visiting the bear caves and expecting the bears to act different, and that you should start your own community. And in my opinion, here it is. C# and .NET have dramatically high acceptance on Stack Overflow. Strange to me, as I'm not a C# programmer. ;) But it's very popular here and seems to be a great place for a programmer of any language. Why go anywhere else?

Meanwhile, my subdivision is the only part of my company that programs in Java instead of .NET. If and when I ever move to another part of the company, I'll know to come here for help.


I'm pretty sure this is an application of Parkinson's law. It's easy for people to have an anti-Microsoft opinion. It's difficult for people to have a realistic technical opinion on the subject. This is along the lines of "python doesn't have a switch statement/has significant whitespace" or "C is simpler than C++" arguments. Simply put, you won't win because of the sheer number of people who disagree with you. So don't try.

Allowing everyone to participate in constructing software has downsides in addition to the upsides.


It's really their loss imo. I guess many of us have worked with different languages, different os platforms, different databases and so on. There's little point in holding on to just one thing and reclaiming that's it is the only valid options. In many cases other factors end up being the deciding factors for what we as developers have to work with anyway, so in order to survive in this business, it pays to know more than a single tool/platform/whatever.


I ignore trolls.

In my opinion, the cost of .NET development is very high. This may work for you if the payback is greater than the investment. As good as Microsoft's development tools may be, these high prices keep me from using Microsoft's products. And, having to continue to pay a subscription fee every year is not very enticing. Other platforms provide development tools for little to no cost, but as the tag on this question indicates, this is very "subjective."


Trolls troll. It's what they do.

With that said, of course people are going to be trolling Microsoft users more than any other platform. Can you blame them? Given the idea of MS being "M$", and the popular opinion on the quality of a lot of their products, I can't imagine that anybody would be shocked that a lot of people like to rail on Microsoft.

Whether the trolls are right are wrong, there is more ammunition to use against Microsoft than any other company. Perhaps that is just a byproduct of their success, but it's something that's there and that people will use against them.


You just got reddited.


Stop reading /.



There are a lot of reasons, some with moderate justification and some of them just based on FUD. I don't favor Microsoft products by I respect them for everything they do. I try really hard not to pre-judge, but I know that I still do it. Given two developers of otherwise equal experience and skill, if one favors C# and one favors Haskell, is it not a little understandable if I assume which one is at least more likely to have really made the decision based on the merits of the language, not for the ease of finding a job, books, and the general acceptance that comes from using a language that isn't "weird".

That being said, if you like what you do and you do it for a love of software, more power to you.


I believe it was Winston Churchill who said "Democracy is the worst form of government, except for all the others." There's also a spiel about how republican government (lower case "r") is opposed to democratic (the US, in theory, being the former) to avoid the "tyranny of the masses." Final cite - "Democracy is two wolves and a sheep deciding what to have for dinner." Kind of hard to follow in General George Thomas's example and let history judge you rather then upvotes, hm?


Remind them that C# is not a Microsoft product. It is moderated by a board (MS is a member of it though) and supported in both Linux and Apple PCs


Trolls are easy to deal with - just don't feed them, they will die eventually.


Well I used to be a Microsoft platform developer for a long time.

But once I got it to the Open Source arena things has changed. The amount freedom Open Source platform gives is enough reason for me to not to go back to Microsoft.

For the people annoyed with Anti-Microsoft sentiments. I used to be extremely annoyed too. But now when I look back I can just think that Microsoft platform deserve this :P

Deal with it or move to a superior platforms.