Linux Mint 12 KDE
Over the course of 3 hours spent trying to figure out why my Linux Mint 12 KDE installation would to go to a permanent black screen on boot, I managed to overheat part of my computer (at least that is the only thing that could explain this) to the point where it'd lock up on the POST and had to give up until this morning, where I managed to figure out that I could delete the xorg.conf file in Mint to force it to go to default settings. This finally got Mint 12 to show up, and I later confirmed that the nvidia drivers were broken. I then discovered that the nvidia drivers in the distribution for apt-get sources are almost 120 versions behind the current release (295), but the installer for that kept failing despite my attempts to fix it and having to add source repositories to apt-get because apparently these are disabled by default, which confused me greatly for a short period whilst trying to install the Linux source. This ultimately proved futile since Nvidia can't be bothered to make anything remotely easy for Linux, so I'm stuck with a half-broken default driver that can't use my second monitor with a mouse cursor that repeatedly blinks out of existence in a very aggravating manner.
Of course, the only reason I even have Linux installed is to compile things on Linux and make sure they work, so as long as my development IDE works, I should be fine! Naturally, it doesn't. Kdevelop4 is the least insultingly bad coding IDE available for Linux that isn't VIM or Emacs, which both follow in the tradition of being so amazingly configurable you'll spent half your development cycle trying to get them to work work and then learning all the arcane commands they use in order to have some semblance of productivity. Like most bizarre, functionality-oriented Linux tools, after about 6 months of torturing yourself with them, you'll probably be significantly more productive than someone on Visual Studio. Sadly, the majority of my time is not spent coding, it's spent sitting in front of a computer screen for hours trying to figure out how to get 50 lines of code to work properly. Saying that your text editor lets you be super productive assumes you are typing something all the time, and if you are doing that you are a codemonkey, not a programmer. Hence, I really don't give a fuck about how efficient a given text editor is so long as it has a couple commands I find useful in it. What's more important is that it works. KDevelop4 looked like it might actually do this, but sadly it can't find any include files. It also can't compile anything that isn't C++ because it builds everything with CMake and refuses to properly compile a C file. It has a bunch of hilariously bad user interface design choices, and basically just sucks.
So now i'm back to the command line, editing my code in Kate, the default text editor for Mint 12, forced to compile my code with GCC from the terminal. This, of course, only works when I have a single source file. Now I need to learn how to write makefiles, which are notoriously confusing and ugly and require me to do all sorts of weird things and hope GCC's -M option actually generates the right rule because the compiler itself is too stupid to figure out dependencies, but I have no IDE to tell it what to do. Then I have to link everything, and then I have to debug my program from the terminal using command line gdb, which is one of the most incredibly painful experiences I have ever had. Meanwhile, every single user experience in Linux is still terribly designed, optimized for everything except what I want to do, difficult to configure because they let you configure too much stuff and are eager to tell you in 15000 lines of manual pages about every single esoteric command no one will ever use that makes it almost impossible to find anything until you find the exact sequence of letters that will actually let you find the command your looking for and not another one that looks almost like it but does something completely different. That, of course, is if you have a web browser. I don't know what the fuck you'd even do with man. I assume you'd have to just pipe the thing into grep just to find anything.
This is not elegant. It's a bit sad, but mostly it's just painful. I hate Linux. I don't hate the kernal. I don't hate all the functionality. It's just that the people who use Linux do not think about user experience. They think in terms of translating command line functions into GUIs and trying desperately to hang on to whatever pretty graphics are cool and when something doesn't work they tell you to stop using proprietary drivers from Nvidia, except the non-proprietary drivers can't actually do 3D yet but that's ok, no one needs that stuff. Never mind that Linux mint 12 doesn't actually come with any diagnostic or repair tools whatsoever. Never mind that every single distro I've tried so far has been absolutely terrible one way or another. The more I am forced to use Linux, the more I crave for Windows and the fact that things tend to just work in Windows. Things don't work very well in Windows, but at this point that seems better than Linux's apparent preference of “either it works really well or it doesn't work at all”.
We could try to point fingers, but that usually doesn't solve anything. It's part nvidia's fault, it's part software vendors fault, its partly using a 40 year old window rendering engine that's so out of touch with reality it is truly painful, and it's partly the users either being too dumb to care about the broken things or too smart to use the broken things. It's a lot of people's fault. It's a lot of crap. I don't know how to fix it. I do know that it is crap, and it is broken, and it makes me want to punch the next person who says Linux is better than everything in the face, repeatedly, until he is a bloody mess on the ground begging for death to relieve his pain, because there are no words for expressing how much I hate this, and if you think I'm not being fair, good for you, I don't give a fuck. But then I can never reason with people who are incapable of listening to alternative ideas, so its usually useless to bring the topic up anyway. I suggest hundreds of tweaks to things that need to do [x] or do [x] and people are like NO THAT ISN'T NECESSARY GO AWAY YOU KNOW NOTHING. Fine. Fuck you. I'm done with this shit.
Oh wait, I still have to do my Linux homework.
EDIT: Upon further inspection, Linux Mint 12 is melting my graphics card. The graphics card fan is on, all the time, and if I run mint for too long either installed or livecd or really anything, the fan will be on the whole time and upon restart the POST check locks up. However after turning off the computer for 10 minutes and going into windows, the temperature is at 46°C, which is far below dangerous levels, so either it has a very good heatsink or the card isn't actually melting, it's just being run improperly, which doesn't really make me feel any better. Either way, I am now in an even more serious situation, because I have homework to do but Linux Mint is literally breaking my computer. I'd try to fix it by switching graphics drivers but at this point every single driver available is broken. ALL OF THEM. I don't even know what to do anymore.
IMHO, you should use Ubuntu instead of Mint. It's more polished and has a much larger user community, thus you're likely to find someone who's run up against the same problem and posted it on the Ubuntu community forums.
Additionally, in Linux, it's better to use the traditional tools (e.g.: Emacs) and it's actually far more productive to read the manual (or a good tutorial) _before_ one starts using the software. This guarantees a much smoother experience.
I'd be more willing to use ubuntu if I didn't hate its design choices with a passion. I also absolutely despise emacs and vim and have little desire to attempt to set up an entire development chain for something I rarely use.
If you want KDE, there's kubuntu.
You can also diable Unity in ubuntu and go back to Gnome 2, or install Gnome 3.
You can move the window buttons back to their normal positions too.
As for IDEs, Code::Blocks is probably the closest thing to Visual Studio.
Code::Blocks sucks. That's an entire blog post on its own. Ubuntu doesn't actually fix the problem because ubuntu has the same driver issues.
Part of the required hardware for Linux should be "Linux nerd who operates it for you."
Of course it didn't work for you! You didn't use the ABC program and spent days configuring it to do XYZ! Don't say Linux is bad, you just don't know how to use it!