4 ms·
As someone who studies physics and then went into a long IT career (but kept reading papers casually), my view is that this whole GA saga is very reminiscent of
by jiggawatts 4mo ago
As someone who studies physics and then went into a long IT career (but kept reading papers casually), my view is that this whole GA saga is very reminiscent of how after decades of experience, I still can't convince juniors of the benefits of what I now consider obvious best practices. No amount of demonstrations of the blindingly obvious improvement of some better technique seems to work on someone who "finally got the thing to work".[1]
Certain kinds of perfect correctness are like pure and shining crystallised bits of refined knowledge created by the greatest wizards. "Parse, don't validate" or "Make invalid states unrepresentable." ought to be familiar to the better programmers here, the ones with decades of experience built on iterative, collaborative foundations with real consequences for error.
Theoretical physics doesn't have those same consequences, because there is no real punishment for their equivalent of "spaghetti code". Perversely, there's cachet to be gained for gaining understanding of its unnecessarily esoteric knowledge, much like how biologists and lawyers spend half a decade or more studying... Latin.[2]
Introducing Geometric Algebra to physics is like that wizard coder who sweeps away reams of spaghetti code and replaces it all with a call to a single standard library function. It's that "cheff's kiss" of cleanup. Meanwhile the juniors are screaming about how the senior "deleted all their hard work!"
Meanwhile, I never understood where Pauli and Dirac matrices came from! It's like they were pulled from fat air.
You've seen this in code, I bet. Some junior worked really hard on solving a problem and wrote a solid screen-filling wall of "a && b || c || !d && e && (f || g)..." continuing up to "ba, bc, bd", etc.. as they ran out single letters until they're well into the alphabet in double-character symbols.[3]
That's what those matrices are. Someone's hacky attempt at "making things work".
The problem is that we gave those people Nobel prizes and told everyone they're geniuses.
They are, but they were like that brilliant junior. Brilliant.. but junior.
Geometric Algebra sweeps all of that into one beautiful, consistent, crystal clear abstraction that is widely applicable. The magic matrix constants vanish. Bugs in 100-year-old textbook formulas suddenly come to light. Dozens of formulas, one set for each of the 1D, 2D, 3D, and 4D cases collapse into a single formula valid for any number of dimensions.
It's like watching someone struggle with "catching every possible instance of JavaScript injection".
No son, no. Just no. Stop enumerating badness. Stop. Just stop. Escape everything at the boundary instead, enforced by the type system. You'll thank me later.
I know it might be obvious to you, and you always use properly parameterised SQL queries or whatever. This is not the norm everywhere! I still get arguments, long drawn out arguments from people convinced that this is unnecessary and just one more search & replace is all they need to be safe from the bad hackers.
Physicists (and mathematicians) are still making that argument against GA.
"It's isomorphic!"
"That isn't the point!"
[1] You can't convince someone to climb Everest if they struggled to hike up to the top of one of its foothills.
[2] Let me be crystal clear: They're spending their precious time on this Earth learning a dead language instead of learning about the law or bugs. No amount of arguments will sway me. The bugs don't care what you call them. Criminals are guilty or innocent whether or not you speak funny in court. You've just made a simple thing harder for no good reason, that is all. Please stop.
[3] Yes, I've seen this. Twice, from two different people whom have never met. Aliens are amongst us.
- jdw64 4mo agoWe run into these kinds of issues quite often. I also majored in physics, but unlike you, I dropped out of my master's program (I just didn't have the talent. Given my generally limited intelligence, it was probably an inevitable outcome). From what I've read, the article seems to be arguing against the claim that because so many anomalies have accumulated in the field of GA, it's now ready to become a general purpose tool. Your argument appears to be that GA has been nicely organized as a standard library, essentially defining invalid states. So it's a high level abstraction perspective, but on the other hand, I think it could also be framed as a case against excessive abstraction. Interesting
- deleted 4mo ago[deleted]
- skybrian 4mo agoAs a programmer I’m wondering how you get a decent graphics library out of it. If it’s conceptually better, shouldn’t it make writing code to do calculations easier?
- srean 4mo ago> shouldn’t it make writing code to do calculations easier? You need an optimizing compiler that would take the high level description (in GA) and compile it to add subtract multiply divide of reals (the assembly language). I don't think we have that yet. Till we have such a compiler it will be tempting to drop down to assembly. Assembly being a metaphor.
- itishappy 4mo agoIt can write some fascinating stuff, but you have to learn to think in it: https://enkimute.github.io/ganja.js/examples/coffeeshop.html https://enkimute.github.io/ganja.js/examples/coffeeshop.html A major problem is that its a very general theory. Most calculations turn into very large but very sparse matrix multiplications. To make them work fast requires code generation and an optimization pass. These types of optimization problems show up all over graphics programming though: * Representing rotations with matrices takes more space than quaternions. * Sacrificing a dimension to projective geometry actually makes representing things like projections (duh) but also translations more efficient.