![](/static/253f0d9/assets/icons/icon-96x96.png)
![](https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png)
Imgui, because it makes dev/debug guis ridiculously straightforward and easy to create.
Imgui, because it makes dev/debug guis ridiculously straightforward and easy to create.
It’s honestly not that hard, the language was made to be simple. The complexity associated with the language largely has to do with the legacy applications the language supports. If you look at a greenfield project (eg CHADstack (it’s a joke project, but pretty fun to get exposure to some esoteric stuff for a couple hours)) you’ll actually pick the language features up pretty quickly.
C++, I am a library developer with some embedded experience. I can easily interface with c libs and expose my lib with a c interface. With clang, static analysis catches most bugs before runtime. Everything I write can be compiled nearly anywhere with very little dependencies required. Excellent IDE and LSP support with a ton of documentation on the language features available (admittedly, there are a lot). The standard library is gigantic, useful, and well documented. It is used everywhere, so resources and example source code in C++ are very easy to come by. Project configuration (via CMake) is extremely powerful and expressive (though not technically C++).
Some languages have some of the elements I listed, but no other language has them all.
If you’re supporting windows anyway you should use their tooling. This isn’t controversial, MSVC is a good compiler supported by good developers. I find MSVC more reliable than MinGW on windows as well. I recommend maintaining a single CMake project so that you can switch between compilers and build tools.
I believe algorithm focused technical tests are useful. However, if the interviewing team hasn’t taken the time to understand both the problem and the answer, then they are completely pointless. So you’re exactly right here to challenge their bullshit.
One of my two only used commands. The other being yay.
A lot of the criticisms at specific languages are really directed at people. Especially those that have “{language} brain”. These people are of the opinion that everything looks solvable by said language even if it isn’t the best tool for the job.
If you pick the best tool for the job, no one has standing to rightly criticize you. What’s the right tool? One that you know (or have the ability to learn) and has proven itself in its ability to solve problems you’re seeking to solve.
The rust310 community. Blue hairs and crabby pants all welcomed.
deleted by creator
Switch to an IDE that has clang-tidy. Enable as many warnings as you can stomach here https://clang.llvm.org/extra/clang-tidy/checks/list.html
You don’t have to be reading the standards doc to keep up with the new constructs. As long as you keep up with tooling, you should be getting warnings and recommendations that teach you about the new constructs.
Sometimes it’s easier to DIY than try to figure out the mess of a build system of a dependency! :P
I don’t know what you mean by WASM being a subset of javascript (maybe you mean AssemblyScript?) You can still program in higher level languages like C and have it compile into WASM as one would compile C to assembly.
Hi OP, pointers are very powerful. You’ve already seen some responses to your question about why/when to use it, but there’s another cool trick I like to do with pointers. Namely, data hiding with opaque pointers (an application of type erasure). Especially in library code where I don’t want to introduce too many includes in the consuming application, I will hide data and implementation using the pimpl idiom. Another great use case for pointers.
I majored in math and have so far a great career in software. I don’t think knowing math separates me out from CS grads generally. However, math majors largely chose to major in Math because we like problem solving. Plenty of CS grads major in CS because they are expected to. Being a passionate problem solver gets you pretty far.