Top all-time · #12248
Dmitrii Aleksandrov
Personal blog · home.expurple.me/posts · on HN as Expurpleprogramming
Dmitrii Aleksandrov's personal blog at home.expurple.me covers programming. Since 2024, 6 different Hacker News readers have linked it 29 times, most often “Non-Profit FOSS Solves the Conflict of Interest”. It is still writing: the last post was on 2026-10-15, and you can follow it by feed.
Too few sampled comments (2) to say how often HN recommends it.?
Why HN links it
HN readers link this blog for posts on Rust error handling, including a rebuttal to 'exceptions suck' arguments, and on trust and dependency choices in the Rust crate ecosystem.
Summarised by Claude from a sample of 2 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Dmitrii Aleksandrov's personal website
Most-linked posts?
- Non-Profit FOSS Solves the Conflict of Interest2 people · 3 mentions · first linked 2025-07-16
- A Big Standard Library Is Overkill2 people · 2 mentions · first linked 2026-07-01
What Hacker News says?
This is a very good description of the modern issues with slop "content" and advertising plaguing everything they touch. (including human-made slop, as the author correctly identifies) But I disagree on LLMs being "worse than useless". Sure, "vibe coding" an entire app from a short prompt will always give you fragile, subtly broken nonsense. *Code is the spec*. In most cases, you can't meaningfully "compress" your r…
Comment linking /posts/my-take-on-llms-for-coding/
on “The Rise of Whatever”Submitted Why Use Structured Errors in Rust Applications? as a story · 77 points
HN discussionI've even decided to turn my parent comment into a blog post [1]. It also fixes numerous typos, so qoute the blog version. [1] https://home.expurple.me/posts/go-did-not-get-error-handling...
Comment linking /posts/go-did-not-get-error-handling-right/
on “Error handling in Rust”Submitted Rust Solves the Issues with Exceptions as a story · 23 points
HN discussionIt's kinda similar, but Rust also solves the problems of checked exceptions: https://home.expurple.me/posts/rust-solves-the-issues-with-e...
Comment linking /posts/rust-solves-the-issues-with-exceptions/
on “Error handling in Rust”Submitted Destructure as a Reminder as a story · 4 points
HN discussionThe boilerplate is more meaningful than it seems: https://home.expurple.me/posts/why-use-structured-errors-in-...
Comment linking /posts/why-use-structured-errors-in-rust-applications/
on “Error handling in Rust”Submitted How to Make an Open-Source Project Suit Your Needs as a story · 3 points
HN discussion> Stronly disagree: https://home.expurple.me/posts/rust-solves-the-issues-with-e ... 50% at least of these tiresome "here's why exceptions suck" articles begin by talking about how "try" is un-ergonomic. The people writing these things misunderstand exceptions, probably never having actually used them in a real program. These writers think of exceptions as verbose error codes, and think (or pretend to think) that us…
Comment linking /posts/rust-solves-the-issues-with-e
on “Error handling in Rust”Submitted Non-Profit FOSS Solves the Conflict of Interest as a story · 3 points
HN discussion> Overuse of macros is a symptom of missing language capabilities. Agree. > I think non-local flow control (i.e. exceptions) with automated causal chaining (like Python) is a good language design point Stronly disagree: https://home.expurple.me/posts/rust-solves-the-issues-with-e... > There should also have been an enforced "does not panic" annotation like noexcept in C++. noexcept DOES NOT mean that the function ca…
Comment linking /posts/rust-solves-the-issues-with-exceptions/
on “Error handling in Rust”Submitted Agents Make Rebase a No-Brainer as a story · 2 points
HN discussionFair enough. That's what they seem to be saying. But then I want to chime in and argue that the repetitive syntax isn't even close to being the main problem with Go: https://home.expurple.me/posts/go-did-not-get-error-handling...
Comment linking /posts/go-did-not-get-error-handling-right/
on “A Rust shaped hole”Submitted Dear Null as a story · 2 points
HN discussionHi, I'm the author of the article. As I've learned when discussing my older article about exceptions, the real problem is that methods can't have an unknown, generic, composable set of checked exceptions! https://home.expurple.me/posts/rust-solves-the-issues-with-e...
Comment linking /posts/rust-solves-the-issues-with-exceptions/
on “Why Use Structured Errors in Rust Applications?”Submitted A Big Standard Library Is Overkill as a story · 1 points
HN discussionIndeed, that's a very important thing to foster! In fact, I published a post about this just two days ago: https://home.expurple.me/posts/non-profit-foss-solves-the-co...
Comment linking /posts/non-profit-foss-solves-the-conflict-of-interest/
on “In the long run, GPL code becomes irrelevant (2015)”Submitted Flat Error Codes Are Not Enough as a story · 1 points
HN discussionMy personal opinion on each of those: JSON: there are a ton of different ways to do serialization and deserialization, each with their own tradeoffs, and serde (the most popular) is far from universally agreed upon. The same goes for JSON specifically, there are many different serialization formats with different tradeoffs. regex: Owned by the rust-lang organization already. You get the benefits of trust (if you tru…
Comment linking /posts/a-big-standard-library-is-overkill/
on “Malicious Rust Crate Arrayref Runs a Build-Time Payload”Submitted Designing Error Types in Rust Applications as a story · 1 points
HN discussionSure. Thanks for the conversation. If you're interested in the follow up, I have an RSS feed: https://home.expurple.me/posts/index.xml
Comment linking /posts/index.xml
on “Rust Solves the Issues with Exceptions”Submitted Fearless Website Updates with Hugo as a story · 1 points
HN discussion> Sometimes it's better to call throwing functions and get needed data before modifying the private data Haha! Here we go back to the topic of unchecked exceptions and "the lesser evil". With unchecked exceptions, every function is throwing ! Even if it shouldn't throw today according to the docs: 1. The docs could be simply wrong. 2. It isn't a semver breaking change to start throwing in a future version. The compi…
Comment linking /posts/rust-solves-the-issues-with-exceptions/
on “Rust Solves the Issues with Exceptions”Submitted Non-Profit FOSS Solves the Conflict of Interest as a story · 1 points
HN discussionIt's equivalent to having to "catch or specify" [1]. IMO, it's a lesser evil than unchecked exceptions [2]. Explicit and mandatory handling is desirable for most errors. The caller has the responsibility to decide whether it needs to handle the error. If it simply wants to propagate it, there's the `?` operator. If it doesn't care about defining a wrapper type and/or preserving the error details, there's `Box<dyn Er…
Comment linking /posts/rust-solves-the-issues-with-exceptions/
on “Rust Solves the Issues with Exceptions”> isn't 'the error' just a case of valid data that shouldn't be thrown as exception at all? That's the thing! Errors are just a case of return data! To me, it just makes more sense to model them like that rather than like checked exceptions. Checked exceptions are simply unnecessary if the language has sum types, Result and some syntax like Rust's `?` for propagating errors easily like exceptions. Checked exceptions…
Comment linking /posts/rust-solves-the-issues-with-exceptions/
on “Rust Solves the Issues with Exceptions”> have a single Exception type at the root of the Exception type hierarchy and make your library only throw sub-types of that. Then you may handle specializations of that, but you need to also handle the root type in case an unknown variant comes along. Hm, I haven't considered this solution. It works exactly like a #[non-exhaustive] enum. It's a wrapper type that provides type info about specific known variants (su…
Comment linking /posts/rust-solves-the-issues-with-exceptions/
on “Rust Solves the Issues with Exceptions”You should compare exceptions to Result-style tagged unions in a language with exhaustiveness checks, like Rust. Not to return codes in C, lmao. Everyone (except Go devs) knows that those are the worst. Exceptions are better, but still less reliable than Result. https://home.expurple.me/posts/rust-solves-the-issues-with-e...
Comment linking /posts/rust-solves-the-issues-with-exceptions/
on “Banned C++ Features in Chromium”You don't need a test suite. Your website is the test suite. You can build it with an old version of Hugo, build it with a new version of Hugo, and then diff the output folders: https://home.expurple.me/posts/fearless-website-updates-with...
Comment linking /posts/fearless-website-updates-with-hugo/
on “Jeffgeerling.com has been Migrated to Hugo”