Ivan Ivanov's blog

notes, thoughts, and opinions on programming

Why I stopped learning C++  

About a year ago I decided to give C++ another shot, mainly because I am interested in graphics programming and gamedev and it is still the most widely used language for these purposes.

I used C++ to write a ray tracer (see previous post) and then started going through the Effective C++ series by S. Meyers. It didn’t take me too long to realise that I didn’t want to continue. Below is a screenshot from the notes I made while studying:


The reasons I decided to stop are:

  • C++ is a tool that you can use to make amazing stuff, but it’s a tool with so many footguns attached that you need to read a few books dedicated entirely to avoiding the language’s pitfalls to be able to use it.

  • C++ is huge. To reach a level where I’d be comfortable I’d need to spend a ton of time learning and programming in it, which is a very significant investment.

  • I highly doubt the language has a future, given the direction the C++ committee has chosen for it.

  • Many programmers feel miserable when using C++ and want to drop it but keep using it because of inertia

So, I reckoned that the investment was not worth my time, and checked out Go and Rust instead. I liked all the ideas behind Go, but decided to start seriously learning Rust because it better aligns with my personal interests.

Silly coding mistakes  

Recently I’ve been following the Ray Tracing In One Weekend book series by P. Shirley. Everything went smoothly until I got to the BVH part…


Read more →

Single-Cycle MIPS CPU in Verilog  

For those who want to know how the CPU works, there’s an excellent set of lectures available on YouTube courtesy of the Bilkent University (Turkey). Sure, not every course or book clicks with everyone, but personally I find that one extremely clear and well explained, so highly recommend to go and check it out if you’re interested.


Read more →

Hosted on GitHub Pages — Theme by mattgraham