What do I need to go back to C++ in 2021
Tags: cpp, webdeveloper, gamedev
Published: 2021-03-18 14:56:48

---
title: What do I need to go back to C++ in 2021
published: true
description: asking the community
tags: cpp,webdeveloper,gamedev
//cover_image: https://direct_url_to_image.jpg
---
Back in early 2000s, while I was in High Scool, straight after some Pascal, and some Visual Basic, I got introduced to a weird mix of C and C++ by a confused professor, and being taught that it was C++. I loved it anyway.

Skipping few years forward, I learned it properly at uni (where properly means being thought c++98 as if it was the modern c++), while on the side I was doing some php, ruby, python and Java, moving away from the lower level and up to an higher level of abstraction, who needs to play around with memory management in 2007-8-9 (can't remember the year exactly) right?

Still loved it.

Skipping ahead few more years, it is 2020, and I have been working professionally in webdev for the last 10 years, so I moved away from C++, moved away from Java, did some C#, did some PHP, then mostly Javascript and the likes.

Until 2020 hit, and I decided to learn to some some [game development](https://dev.to/vikkio88/gamedev-adventures-in-lockdown-part-1-4abe).

After a whole year and few interesting projects, I decided to go back to my roots, and re-learn again C++, after many years of working with higher abstraction/level programming languages, to try out some game engines eventually, and work on a possible C++ native version of some games ideas I have on a notebook since I was a kid.

Been reading how the language has evolved in the years, and yet still how divided the community is about tooling/build system/package management.

All of that make me want to learn rust (which I tried and I find a bag of wank syntactically speaking).

So that is why I want to ask you, beautiful people of Dev.to, if you have any suggestions on path to learn the most modern C++ patterns, to be precise I would do a small list things I would love to know. (Just to let you know I use mostly linux, but I do own a Mac for work and a Windows pc too, so would be nice if you can keep that in mind, I would love to have my tooling multiplatform)

1. I do not care about basic tutorials, as I said worked with many languages and I did spent few days to refresh what I knew. But would be nice if there was a list of new cool features and how to use them with code examples (lambdas and the likes), or even a podcast/blog/youtube channel with nice tutorials about a bit more advanced topics.

2. Would be nice to know how to setup a good dev env on Linux/Windows/Mac. clang g++ cpp? which and why? Cmake? plain makefile? bash scripts to build?

3. Best (Free/Cheap) IDE? been trying VSCode (as I use it for everything else) and it is a bit iffy at times. I do not like Eclipse and I cannot use Visual Studio on Linux :'(

4. Best way to scaffold a project? Seems like there are millions of different options/opinions, would be interested into your personal experiences on those, and why having all in `src/` and subfolders of that is better than having `/libs/` and `/src/` or whatever. Are there cli tools that generates projects structures for you that are standardish?

5. Package managers? I been looking into conan and some others I cannot even remember the name of. Are they necessary? I have seen around how cool the boost libs are and I wouldnt mind to have them installed on my pc and then link them while I build, but it sounds like a nightmare if I want to put my code up somewhere to have to add on the readme `Install this lib doing x and y before compiling` rather than just having to run something like `conan install && cmake build` or whatever.

6. Is it good to use straight away C++20 or are there like 99% of the libs that do not support it? How to use different version in different projects? is it just that flag on compilation or do you need to install something like virtualenv in python or nvm for node?

7. Unit Test Libs? I saw that loads of people use that GTest something, are there other ones, that maybe are easy to get via a package manager and set just for your local project rather than machine-wide?

8. Code Generations via IDE, I had forgotten the .hpp contains declaration and the .cpp contains the actual implementation of a class paradigma, god it sounds quite annoying, are there IDE tools where you can just generate the code on the .cpp file after declaring the signature on the .hpp file?

9. How are you doing still working on C++ on 2021? Are you happy or do you wish you had done something else?

10. Do you think it is stupid to try to catch up on C++ on 2021?


Thanks everyone for reading this.