I'm actually rather fond of OpenSCAD --- it has the advantage of being completely safe in terms of security/execution, so no worries about downloading a random .scad file and wondering what it might do.
If one wants a full-fledge programming language for this, I found Python a lot more comfortable:
Roughly similar capabilities, but you get to use javascript or typescript instead of the linguistic abomination that is OpenSCAD.