I think the general consensus is that c++ is usually not the best place to start with programming. This is due to a few reasons but it mostly boils down to the fact that c++ allows a lot more room for user error (and can create some poor habits in a beginning programmer). However, it's by no means impossible to learn it first.
As far as personal experiences go here, I probably fall pretty close to warning example While it wasn't my first language, it was pretty close. I had only been programming for a few months when I started learning c++. That said, I fell into probably most if not all of the pitfalls warned about by those more experienced and am still working my way through a lot of things and spend a lot of time fixing problems in my code As far as your concerns about performance and garbage collection, Especially if you're making a 2D game, I think that shouldn't be much of a concern for a long while. c++ can be faster, in the hands of a good programmer (definitely not myself yet), but by the same token, it can be a lot slower if done poorly. While c++ might be the preferred language of large development companies, I'm fairly certain it isn't among independent and small developing groups, and there's a reason for that.
Personally, I don't think it's ugly. It might look a bit confusing, as It does give the programmer a lot of room to do exactly what they want with it, which is a double edged sword.
I don't think you ever "have" to learn it, unless you're planning on programming for a living, and even then I'm certain there are those who never really learned it.
To your point about opengl. There are bindings for other languages such as java and others, so if you'd like to learn it, c++ is not your only choice..
If you're just starting out, my only advice is that programming is a long road and you're likely going to learn many languages. While it might feel at this point like you're going to be stuck with the first language you learn forever, it's not the case. If you haven't read it, the FAQ addresses this question and gives some good advice. Anyhow, I think c++ is great, but I also think you may want to consider learning something else first. You'll probably have an easier time of picking up c++ later down the line anyhow.
Edit*
If you're the stubborn type, and are going to ignore the warnings to to learn something else first (no judgment here, just acknowledging that the personality exists ), the advice I would give is to invest in some good resources for modern c++ (11 and onward). There's a lot of functionality I missed out on originally by using old tutorials. Additionally, If you're relying on online tutorials, there are a lot of poor ones out there that will do you more harm than good. Make sure you get some good advice on which ones are helpful.
Also, welcome :)