3 hours ago, Alberth said:
You get by far most of the performance by writing a good structured program that effectively covers all the cases. You can do that in any language, ...
Agreed. Most performance killers are language independent, and especially a beginner won't be able to utilize the possible speedups C++ offers. It is the same story for Vulkan and OpenGL. It is possible to write faster code in some situations with C++/Vulkan, but that does not mean that YOU CAN achieve that. You need to know a lot about the details.
However, the thing is, if you start with C++ (or any other language that gives you full control -> C , Fortran, and all the languages I don't know), you are more often confronted with issues that more or less force you to understand what you are doing and by understanding stuff, you are capable to optimize it to some degree. If you are forced to use a garbage collection memory system and there is no way around that, why bother with object lifetime issues? The only thing you might learn is how to utilize garbage collection for maximum efficiency, but not about more efficient memory systems. Doesn't mean that it is necessary. I just want to point out, that you probably MIGHT learn more, if you take the more challenging path. But as I said in my previous post, you should be certain about the things you want to achieve. If your goal is to "just" make a game, use as much language and tool support as you can get, which means, C++ won't be my first choice.
On the other hand, if you want the learn all the little details, C++ won't get in your way by forcing you to take a certain direction.
3 hours ago, Alberth said:
...where the languages "with roadblocks" help you steering in the right direction.
I would rather say "steering into a possible direction". Personally, I don't like being forced to take a certain direction. I really HATE that Python forces me to format the code in a specific way. But I also know people who like that a programming language takes decisions from you since it often comes with the benefit that there are fewer things you need to code yourself (fewer things you can mess up). In the end, it is just a tradeoff of how much control you are willing to sacrifice to speed up program development. The extreme cases are coding everything yourself with C/C++ or using a toolbox like Unity. Your choice
--- But keep in mind: More control is not equal to better/faster code. That depends totally on your capabilities and willingness to dig deeper.
12 hours ago, Gnollrunner said:
I just want to say C++ isn't so bad. I really don't understand the fear around it.
It's not about fear. It is more about that there might be easier ways to achieve your goals. Nothing wrong about choosing C++ as the first language.
12 hours ago, Gnollrunner said:
Some people will tell you to jump right into "modern" C++ but I think that's where a lot of the problems come up. While that may be OK for some, many people will end up not understanding the basics of the langues and that gets you into trouble.
Well, it depends. In my point of using the latest standards will make a lot of stuff easier. I mean, that's the whole point of the latest standards. Make things better. Template metaprogramming got so much easier and understandable since you can mix it with constant expressions. The biggest problem is probably this:
13 hours ago, Gnollrunner said:
I think the main problem is it's taught wrong.
Unfortunately, there is not the right way to teach stuff, since each person learns differently. Well, in the end, it is not impossible to learn C++ and everyone who goes that route has to find its own path. I mean, I was capable of learning it, so it can't be too hard
Greetings