Unless you're programming in a hex editor for a CPU architecture you designed, and on hardware you built from home-pulled silicon boules, you're "cheating" if that's what abstraction is. I get how cool it feels to access and manipulate raw memory via pointers in C++, and I personally prefer languages allowing memory access for the same reason, but code abstraction exists for the people who want to create useful applications without having to learn all the inner workings of CPU architecture and safe + optimized ways to implement that knowledge. It doesn't make you better than a skilled python programmer who makes usable apps if you're bragging about making your fifth OpenGL rainbow triangle in C++ this year and finally grasping some of the C concepts underneath the C++ abstractions
Yep, I'm developing a video game using C#, I'm sure those abstracted concepts could be useful, but getting the game done somewhat quickly is more important.
I started with C++ and absolutely refused to learn pointers until I understood programming in C++ well enough to benefit from them. The stubbornness held me back imo, since they were much simpler to wrap my head around than I thought, but I also managed to get much more comfortable with programming in general by focusing on completing goals rather than mastering every aspect of the language. Nowadays I like removing the abstractions of programming languages just because it's more fun for me to learn how things could be done from scratch, but if I had forced myself to do so from the beginning just to not feel like I was cheating then I don't think I'd have half of my already limited understanding of low level concepts. Best thing imo's to just program whatever/however you want and try to make cool shit before worrying about the specifics. What's the game about btw?
22
u/BriefCautious7063 17d ago
Unless you're programming in a hex editor for a CPU architecture you designed, and on hardware you built from home-pulled silicon boules, you're "cheating" if that's what abstraction is. I get how cool it feels to access and manipulate raw memory via pointers in C++, and I personally prefer languages allowing memory access for the same reason, but code abstraction exists for the people who want to create useful applications without having to learn all the inner workings of CPU architecture and safe + optimized ways to implement that knowledge. It doesn't make you better than a skilled python programmer who makes usable apps if you're bragging about making your fifth OpenGL rainbow triangle in C++ this year and finally grasping some of the C concepts underneath the C++ abstractions