9 ms·
Modern C++ for C Programmers
- ncmncm 8y agoNot a bad list.
- 29athrowaway 8y agoIf you are not already using C++, learn Rust instead.
- setr 8y agoCoincidentally, the author already has a response for you: https://ds9a.nl/articles/posts/cpp-rust-go/ https://ds9a.nl/articles/posts/cpp-rust-go/
- pcwalton 8y agoThis post makes the mistake of assuming that anybody in industry writes secure C or C++ code.
- deleted 8y ago[deleted]
- 29athrowaway 8y ago- Rust doesn't have to keep 30+ years of backwards compatibility. You can learn it. - C++ has hundreds of dialects to pick from. You'll spend time bikeshedding with coding standards, you'll spend time in meetings trying to get people to agree to a standard, you'll spend time trying to enforce the standard... - Rust makes reasonable decisions by default, and mutable/unsafe code is opt-in.
- enthd 8y agoWhy learn Rust over C++?
- dbcurtis 8y agoWell, my answer is this: Coming from the perspective on a Pythonista, C++ seems tedious and error-prone. Rust, on the other hand, is merely tedious -- which is progress of a sort, one has to admit.
- bhargav_ 8y agoCoincidentally, I personally started learning Rust as C++ was a lot more difficult to learn by myself. The Rust book[1] is a great resource as it makes learning pretty complex topics fairly easy to approach. Personally the thing that really sold me over was the "Building a guessing game" section, as it showed how to use the build system to pull in external libraries. I found these aspects specifically difficult to learn when learning C++. Plus, after learning Rust, I was able to go back to C++ and better understand it. Still have no clue about build systems though. [1]: https://doc.rust-lang.org/book/ https://doc.rust-lang.org/book/
- lone_haxx0r 8y agoAnd be treated badly by the Rust community for not agreeing with their political opinions.
- bhargav_ 8y agoI really like this list as it seems to cover the core aspects of what makes C++ a good language. But the one issue I have with resource such as these, is the lack of covering how to build real work projects. The list itself seems really good and after giving the topics a light skim, I really want to dive right into it and read everything. But the biggest thing that I struggled with (and still have no idea about) when learning C++ was trying to learn how to build real projects. This includes things like, how do you use an external library? How do you set up a build system? Which build system to use in the first place? The last time I was trying to learn C++ (about two years ago I think?) I couldn't find answers to these questions, which was pretty discouraging as I thought C++ was a really useful language to learn. I wish this article covered some of these topics for beginners looking to build something more than a simple program.
- aninteger 8y agoCMake is the modern build tool everyone seems to love, but regular old GNU/BSD Makefile is fine too. As for a package manager it seems like people are converging on Conan or vcpkg (I have no real metrics, just basing that statement on the posts I see on Reddit over at /r/cpp).
- cozzyd 8y agoIf you're on a Linux system, learn how to use Makefiles for building since they're generally useful for lots of things. Cmake is becoming more common and does some good things, but I find it very hard to use/debug (and you might find yourself debugging the Makefiles it generates anyway). It helps if you already know how to compile/link C programs... How to incorporate external libraries depends on if they're header-only, shared libraries, or static libraries (do people still use static libraries?). pkg-config is your friend!
- pjmlp 8y agoMost embedded systems do not support dynamic linking. Plus unless you are doing plugins, dynamic linking is an attack vector.
- ausjke 8y agothe code snippets used have c++17 and c++20 features, my clion only supports up to c++14 with very limited c++17 support, not to mention c++20. clang++ does have good c++17 support but g++ only supports full set of c++14