I have been running Ubuntu inside Parallels on an M1 MacBook for several years now, and am in general quite happy with it. What makes it less than ideal is e.g. that only OpenGL 3.3 is supported in Linux guests (Windows guests get 4.1), but for some reason the Vulkan support is actually quite good, and allows me to run the graphics tools I need. Having most AppImages out there unavailable on ARM64 is also sometimes a problem, but that's not Parallels' fault.
Parallels has some glitches (graphical flicker when it runs low on guest memory, less than stellar trackpad scrolling) but is otherwise very stable. I like that I have access to Linux and macOS at the same time, the other side is just a 3 finger swipe away, and cut-n-paste and shared folders work. Sound and video all work, though for things like zoom calls I tend to use the macOS side. All runs happily together with 16GB RAM for each side (and I often have both xcode and android studio open on the macOS side while compiling large projects on the Linux side).
It allows me to stick to shotwell for the actual collection management, while still letting me share events or the entire collection to friends and family.
Cadabra author here. The choice for C++ was intentional and is part of the design to separate the maths language (LaTeX), programming language (python) and implementation language (C++). This has advantages (eg. notation looks natural for mathematicians/physicists, programming the system uses a language already familiar to many, and it can still run algorithms at C++ speeds) and disadvantages (eg. some things become much more involved to implement). As always, it depends a lot on what you do with the system whether this is good or bad. Cadabra is not for everyone, but it does some things much nicer (IMHO) than other CAS systems.
its an intriguing combination of languages and maybe one that would serve well other projects. Combining python and C++ is clearly common, but expressing algorithms / expressions as latex hits another sweet spot.
Makes sense to have a performant "backend". My experience with macsyma is, ahem, quite a bit dated, but I still remember it would choke on large calculations and needed careful massaging of intermediate steps.