daru.se

Use a debugger

Way better programmers than1 I will ever be says that a debugger is a crucial tool for them. Therefore I should start using one as a first class citizen in my development arsenal.
Problem was that I have been pretty much exclusively on Linux since forever (2004). And the debugger story on Linux is for whatever reason bad. But arguably much better on Windows!

If it is true that a good debugger is key to understand programs it may very well be that it also is the best way to understand how a computer actuallt works2.
So the claim that Linux is good because it is a way to "learn how a computer works" is actually false? Because debuggers on Linux sucks.

Windows improvements since 2004

Winget package installer. Did not know they had this now. Another thing they've learned from Linux.

Select text to copy seems to have come to Windows.

Virtual desktops is available.

Windows Subsystem for Linux enables one to basically have the best from both worlds. As good as it currently gets desktop experience (Windows) and as good as it currently gets terminal experience (Linux) on the same screen.

But lets be clear here. I believe both Windows and Linux could be so much better for desktop usage. But is not.

Programming languages

Python

Rust

Zig not ready for production.

Odin niche lang small community and few libs.

Modern C++ comlicated and big.

Golang is sorta OK I guess. Only issue I see now is that Google may have weird ideas (like the Telemetry drama).

C is just the least bad and it runs everywhere. Learn Arena allocator for simple and therefore much more secure memort handling. And use a String struct instead of null terminated strings.

Wrap up

So I have switched to Windows with Debian as WSL distro. I Am learning C with Arena allocators for memory handling. And I use RemedyBG debugger.
Oh, I also switched from Dvorak back to Qwerty after 10 years or so! Because why not when I Am already do big changes. To be honest, Dvorak fucks up a lot of key bindings which tend to spread all over in chain reactions whenever one tries to just fix a small annoyence in Vim or whatever.

Servers

For servers. Just use OpenBSD! Small, simple, coherent, secure with good docs.

Footnotes

1. Casey Muratori, Jonathan Blow, Ryan Fleury, John Carmack.
2. And the way to learn how a computer works is by running a debugger (disassambly + registers) on some C code. Not higher level languages because they put to much crap between the code I write and the assambly that gets generated.