I am not an engineer. I'm not even good at math, and my spatial reasoning skills are nonexistent. With that in mind, here are the CAD programs I've tried.
Blender, Pros: Free, surprisingly comprehensive. Cons: Not parametric, can't precisely measure or constrain models, all the extra stuff you get like rendering has no use in 3D printing.
Onshape: Pros: Easy to use, convenient (I've successfully edited a model on my phone), free*. Cons: Runs ~~on someone else's computer~~ in the cloud, not private, enshittification is sure to come shortly if history is any indication.
Fusion360: Pros: seems to be what everyone else is using. Cons: enshittification is already happening, runs locally with limited saves in the cloud so you don't own your files but also don't get the run anywhere convenience of the cloud.
Plasticity: Pros: buttery smooth workflow, pay once run forever, runs and saves locally. Cons: Not peremetric so hard to go back and adjust things later.
FreeCAD: Pros: free, open source. Cons: workflow as rough as sandpaper, constantly crashes.
Plasticity and Onshape have proven to be the most productive choices for me. If only Plasticity were parametric it would be the perfect software for me personally.
I want to like FreeCAD, I really do, but it's so hard to use. I love Plasticity, but it's meant for making 3D assets for games etc. using hard surface modelling, not so much for manufacturing.
If I may digress for a moment, I work as a network admin. I'm familiar mostly with Cisco at work, but use Ubiquiti at home. Cisco equipment is monstrously expensive from a consumer or prosumer perspective, and the only way to get true hands-on experience is to buy used equipment from ebay which may still be pricey.
Ubiquiti's market strategy seems to be to make the kind of gear that a network admin would want in their home. It's inexpensive relative to the big fish like Cisco, but has a fairly comprehensive feature set. The idea is to entice Joe IT guy to buy Ubiquiti gear for his house, fall in love with it, then push for the company to switch to Ubiquiti the next time they upgrade.
What I want is the Ubiquiti of CAD programs. Easy to use, low barrier to entry but comprehensive enough to use professionally.
Suggestions/comments?
Yes! This so much.
I am entirely convinced that one of the more underserved niches in software is domain-specific languages for doing traditionally-mousey/clicky/GUI things. I'm so convinced of that that I've written just such a DSL and am actively working on a second one.
About the only really good examples of that that I know of are OpenSCAD and Graphviz. (And I guess the one I wrote.) I've love to know about more. (And, no, libraries that make GUI-sort-of use cases easier in some general purpose language don't count. There's really something about having syntax/builtins/standard library custom made specifically for the use case that I'm quite convinced has major benefits to overall usability.)
About OpenSCAD specifically, I also have some nit-picks about the language. There are cases where I've written code in other languages that outputs OpenSCAD code specifically to get around some limitations. (There's one project I'm working on and haven't Open Sourced yet that just begs so hard for maps/dicts/string-keyed-composite-types. And the ability to use modules as values. (Like, making it more of a "functional" language... or rather a "moduleal" language.)) But like you, none of that detracts enough to make me not love OpenSCAD.
Like, things that take in a text file with programming capabilities describing what to generate? I can think of a couple off the top of my head.
POV-Ray, raytracer
LaTeX, typesetting
Asymptote, MetaPost, vector graphics
abc, music composition
I’ll have to check out both OpenSCAD and Code Comic. Some completely non-CAD DSLs that you might be interested in, since you mentioned GraphViz:
Mermaid.js does something very similar to Graphviz. There are a couple other similar tools like that out there, but Mermaid is supported in a lot of places natively or as an easy to use plugin, like GitHub Markdown (and other git forges like Forgejo), Hedgedoc, Obsidian, SilverBullet, etc..
I’d also argue that LaTeX counts, and to a lesser extent, Markdown - compare using them to using Word.
And reveal.js is an equivalent for slide deck creation that would normally be done with PowerPoint.