Fair points, though many of these aren&#x27;t as bad as they seem.<p>&gt; Violation of &quot;explicit over implicit&quot; rule in methods declarations: argument self&#x2F;&amp;self is implicitly omitted in call, but exist in signature. Because of this, for example, you can&#x27;t use method of class as request handler in Iron, you need closure wrapper with same order and count of arguments. Pure ugliness;<p>You can call methods with explicit self too.<p><a href="http:&#x2F;&#x2F;is.gd&#x2F;dcLAZq" rel="nofollow">http:&#x2F;&#x2F;is.gd&#x2F;dcLAZq</a><p>In this case you would pass `Foo::bar` down to iron. Assuming the arguments are in the right order.<p>&gt; and you can&#x27;t catch them<p>You&#x27;re not supposed to. Panics are to be used as less as possible; only for irrecoverable things or for application-level panicking.<p>&gt; Nested structures is pain;<p>Could you expand on this point?<p>&gt; Usage of safe code can lead to out-of-bounds errors, with thread panic (hello to vec macros).<p>It&#x27;s idiomatic to use iterators as much as possible, or use the monadic indexing methods (which return Option).