While popular with game developers (as clear in this talk), the "automatic abstraction transpose" to struct of arrays (SOA) from array of structs (AOS) of ECS or "data-oriented" programming has more broadly interesting qualities.<p>As any row/column database devs will tell you, performance-wise, it is often a matter of "scales & commonality". If you <i>always</i> want two fields at the same time, one cache miss or IO is better than two. Ultimate performance in a scale/context general sense and purity/simplicity are ever at odds. Ah well.