Get the latest tech news
Synchronous Core, Asynchronous Shell
Weak Opinions, Strongly Held
This makes it easier to understand, test, and change the logic without imposing the difficulties of entirely functional programs. More recently there has been a lot of discussion about the ergonomics of Rust's async functionality, with many participants expression frustration about the boundary between synchronous and asynchronous parts of the language. Furthermore, I would argue that function colouring is actually a positive aspect, as it provides a guardrail against carelessly introduced side effects in the core.
Or read this on Hacker News