Found myself trying to debug an issue with memory not being garbage collected in a program. It turns out go comes with a tool that shows you the different memory allocations and resource hogs between different goroutines. Super useful so far from what I’ve found on some basic debugging, but still trying to understand how the flamegraph, the visualizations when writing to a png, and some other utilities in there work.
Overall was happy to learn that there was included tooling for that purpose within go itself.
I agree. Ruby has waaaay too much magic which makes it impossible to follow (dynamic typing makes it even worse).
And convention over configuration definitely has huge advantages in terms of consistency and terseness, but it is also way less discoverable because instead of a config file say “the stuff is in
foo
” you have to already know that everything infoo
is automatically treated as stuff.I often wonder if it would be crazy to have both: you have a configuration file that says where things go, but the values must be set to constant well-known values. Sounds kind of crazy so I’ve never done it but you would get consistency and discoverability. I expect people would complain about the redundancy though.