by davismwfl on 8/4/2020, 6:14:23 PM
Just my 2 cents, there are not "wrong" answers IMO, just tradeoffs and opinions.
Go with a gcc/g++ based toolchain, it has a few warts as most do, but it is flexible, well known, documented online and most every library and system works with it. I use gcc/g++ on everything from micro-controllers to servers using C/C++ and it works and has good support. I personally still like makefiles over CMake, but that is personal and nothing is wrong with CMake and many new solutions pick CMake for their build process. Pick a decent IDE that makes your life easier, I use CLion for all server/desktop and on microcontrollers I use either CLion with makefiles or in some cases Atollic Studio since it is well integrated with STM toolchains.
Last point, in reference to C++ if you are learning/planning to use it, stick with modern C++ wherever possible, much of what people complain about C/C++ is really just their own lack of knowledge or bias to what the language was 30+ years ago.
I am a professional software engineer who has spent most of his 20-year, post-college career in interpreted languages. As much as I love never having to think about pointers or threads, more and more I bump up against the wall of what's possible in these environments - I only get to use low-level services like graphics and audio or cutting edge solutions like WebRTC if someone kindly wrote and maintained native bindings in my languages of choice.
Enough! It's time to take the plunge!
From my armchair, it looks like I'll need to pick:
* compiler * build system * linter and other tooling * standard libraries
I am all for standing on the shoulders of giants... I want to build non-crappy software that does meaningful things with the best tools.
What pieces should I put together?
FWIW, I'm seeing great threads on learning C++, but don't see a toolchain convo. Feel free to correct me!
- https://news.ycombinator.com/item?id=23380537 - https://news.ycombinator.com/item?id=20252926 - https://news.ycombinator.com/item?id=16535886