I use a combination of both. Objects are declared const, all members are set in the constructor, all methods are const. It doesn't really work for some types of programs (e.g. GUIs) but for stuff like number crunching it's great.
My current and all-time favorite laptop is an older MacBook Air (Intel) running Arch Linux. The quality of Apple hardware combined with Linux is unbeatable. I can't wait until we get a reliable Linux distro that runs on Apple silicon.
First install was Ubuntu 9.04 on a very basic and mainstream Dell desktop at the time. Most recent was Arch on a 2013 MacBook Air. Honestly, the only thing that made this complicated was that the bootloader was so out of date that it didn't recognize the newer NVME drive I put in it. After installing Arch, I messed around for a while getting the Fn/shortcut keys set up perfectly. I would not have even thought of doing that back in 2009.
I use a combination of both. Objects are declared const, all members are set in the constructor, all methods are const. It doesn't really work for some types of programs (e.g. GUIs) but for stuff like number crunching it's great.