&gt; This is getting to be a big problem with Rust.<p>I haven&#x27;t seen any examples of this happening in actual code. Sure, you have lots of toy things but that&#x27;s just stuff people do for fun.<p>And as was adequately explained in that thread, ORM is an existing pattern from other languages that people like using. It&#x27;s got some nifty benefits to it; so while it&#x27;s not what you&#x27;d usually do it&#x27;s not an overcomplication. Like Patrick said, its only &quot;problem&quot; is that it&#x27;s an ORM.<p>&gt; Overly elaborate templates damaged C++; nobody could figure out what was going on. Use of C++ for new work declined.<p>This happens because C++ templates aren&#x27;t typechecked, so working with them requires you to understand their internals to some degree (&quot;what kind of type does this expect?&quot;). Rust generics are typesafe. Rust macros aren&#x27;t, but they&#x27;re not encouraged as much as generics&#x2F;templates are so you don&#x27;t see much convoluted things except as fun experiments (who doesn&#x27;t want to write a brainfuck interpreter in rust macros?). People understand that macros will give substandard error traces and mostly only use them for quick and straightforward deduping of code.