Whole-known-network
<p>`unsafe` is a marketing lie invented by big rust to convice "industry programmers" that they have an escape hatch from "the borrow checker"</p><p>there's no escape hatch you just disengage the autopilot and manage everything yourself while following the same rules. but if you don't write rust you don't need to know that...</p>
<p><span class="h-card" translate="no"><a href="https://hachyderm.io/@c0dec0dec0de" class="u-url mention">@<span>c0dec0dec0de</span></a></span> <span class="h-card" translate="no"><a href="https://adhd.irenes.space/@ireneista" class="u-url mention">@<span>ireneista</span></a></span> <span class="h-card" translate="no"><a href="https://mastodon.social/@mcc" class="u-url mention">@<span>mcc</span></a></span> <span class="h-card" translate="no"><a href="https://mastodon.transneptune.net/@owen" class="u-url mention">@<span>owen</span></a></span> I found FreeCAD so bad that I sunk 5 years and several tens of thousands of dollars of my own cash in maintaining a different CAD, SolveSpace; I feel the same way about Inkscape but never wanted a good vector editor enough</p>
<p><span class="h-card" translate="no"><a href="https://mastodon.social/@whitequark" class="u-url mention">@<span>whitequark</span></a></span> <span class="h-card" translate="no"><a href="https://mastodon.social/@tef" class="u-url mention">@<span>tef</span></a></span> if it's truly 10x why would they pay more than 8 hours to get 80 hours per week</p>
<p><span class="h-card" translate="no"><a href="https://unstable.systems/@demize" class="u-url mention">@<span>demize</span></a></span> <span class="h-card" translate="no"><a href="https://mastodon.social/@tef" class="u-url mention">@<span>tef</span></a></span> oh, yeah, if you're relying on the borrow checker because it's fun to explore you're probably going to have the experience you're having yeah</p>
<p><span class="h-card" translate="no"><a href="https://chaos.social/@SDRHoernchen" class="u-url mention">@<span>SDRHoernchen</span></a></span> oh wow that's awful then, I do not want to design in the LGA</p>
<p><span class="h-card" translate="no"><a href="https://mastodon.social/@tef" class="u-url mention">@<span>tef</span></a></span> <span class="h-card" translate="no"><a href="https://unstable.systems/@demize" class="u-url mention">@<span>demize</span></a></span> this is strictly speaking true but a more accurate description of the argument I'm making is that using those things allows you to relegate your interaction with the borrow checker to a simplistic and formulaic way that doesn't have a habit of making you pause while you're in the middle of something else</p><p>re "Python experience", I meant that as in "the Python experience of managing object lifetimes", not that Rust would be literally similar to Python in most aspects</p>
<p><span class="h-card" translate="no"><a href="https://unstable.systems/@demize" class="u-url mention">@<span>demize</span></a></span> <span class="h-card" translate="no"><a href="https://mastodon.social/@tef" class="u-url mention">@<span>tef</span></a></span> I think a lot of people use Rust in a flawed way that boils down to "the compiler provides this beautiful and complicated interface, so I should rely on it". this applies to the borrow checker, trait system, higher kinded types, macros, some other things</p><p>you can, in fact, completely ignore all of that and write impactful and high-quality Rust code. the TCP/IP stack I wrote, smoltcp, is like that; it has like one or two places where it does something nontrivial</p>
<p><span class="h-card" translate="no"><a href="https://unstable.systems/@demize" class="u-url mention">@<span>demize</span></a></span> <span class="h-card" translate="no"><a href="https://mastodon.social/@tef" class="u-url mention">@<span>tef</span></a></span> well it sounds like the rust things you work on do not require or benefit much from using long-lived (more than one block or even statement) borrowed pointers</p><p>in this case I would simply not use them</p><p>it's a slight performance hit but in many cases nobody cares, and it almost completely frees you from the "oh, the compiler says I can't have nice things" problem you're referring to here</p>
<p><span class="h-card" translate="no"><a href="https://unstable.systems/@demize" class="u-url mention">@<span>demize</span></a></span> <span class="h-card" translate="no"><a href="https://mastodon.social/@whitequark" class="u-url mention">@<span>whitequark</span></a></span> </p><p>i think you still need some base level of understanding of the borrow checker in order to consistently ignore it through judicious use of clone(), Arc<Mutex<>>, Rc<RefCell<>></p><p>like, even things like "print every element in the hash" involves using a pretty unique api</p><p>it's not really the python experience, even before you get to things like reflection, or dynamic invocation</p>