frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

An incoherent Rust

https://www.boxyuwu.blog/posts/an-incoherent-rust/
53•emschwartz•6h ago

Comments

dathinab•58m ago
This isn't a new discussion it was there around the early rust days too.

And IMHO coherence and orphan rules have majorly contributed to the quality of the eco system.

MeetingsBrowser•40m ago
can you elaborate on how have they contributed to the quality of the ecosystem?
ekidd•40m ago
There's a well-known (and frequently encouraged) workaround for the orphan rule: Create a wrapper type.

Let's say you have one library with:

    pub struct TypeWithSomeSerialization { /* public fields here */ }
And you want to define a custom serialization. In this case, you can write:

    pub struct TypeWithDifferentSerialization(TypeWithSomeSerialization)
Then you just implement Serialize and Deserialize for TypeWithDifferentSerialization.

This cover most occasional cases where you need to work around the orphan rule. And semantically, it's pretty reasonable: If a type behaves differently, then it really isn't the same type.

The alternative is to have a situation where you have library A define a data type, library B define an interface, and library C implement the interface from B for the type from A. Very few languages actually allow this, because you run into the problem where library D tries to do the same thing library C did, but does it differently. There are workarounds, but they add complexity and confusion, which may not be worth it.

dhosek•26m ago
The gotcha is what happens when TypeWithSomeSerialization is not something you’re using directly but is contained within SomeOtherTypeWithSomeSerialization which you are using directly. Then things get messy.
nmilo•40m ago
I will never stop hating on the orphan rule, a perfect summary of what’s behind a lot of rust decisions. Purism and perfectionism at the cost of making a useful language, no better way to torpedo your ecosystem and make adding dependencies really annoying for no reason. Like not even a —dangerously-disable-the-orphan-rule, just no concessions here.
grougnax•38m ago
If you think Rust has problems, it is that you've have not understood well Rust.
nmilo•34m ago
Brilliant
nixpulvis•34m ago
I don't think explicit naming of impls is wise. They will regularly be TraitImpl or similar and add no real value. If you want to distinguish traits, perhaps force them to be within separate modules and use mod_a::mod_b::<Trait for Type> syntax.

> An interesting outcome of removing coherence and having trait bound parameters is that there becomes a meaningful difference between having a trait bound on an impl or on a struct:

This seems unfortunate to me.

Animats•19m ago
Note the use case - someone wants to have the ability to replace a base-level crate such as serde.

When something near the bottom needs work, should there be a process for fixing it, which is a people problem? Or should there be a mechanism for bypassing it, which is a technical solution to a people problem? This is one of the curses of open source. The first approach means that there will be confrontations which must be resolved. The second means a proliferation of very similar packages.

This is part of the life cycle of an open source language. Early on, you don't have enough packages to get anything done, and are grateful that someone took the time to code something. Then it becomes clear that the early packages lacked something, and additional packages appear. Over time, you're drowning in cruft. In a previous posting, I mentioned ten years of getting a single standard ISO 8601 date parser adopted, instead of six packages with different bugs. Someone else went through the same exercise with Javascript.

Go tends to take the first approach, while Python takes the second. One of Go's strengths is that most of the core packages are maintained and used internally by Google. So you know they've been well-exercised.

Between Github and AI, it's all too easy to create minor variants of packages. Plus we now have package supply chain attacks. Curation has thus become more important. At this point in history, it's probably good to push towards the first approach.

Autoresearch on an old research idea

https://ykumar.me/blog/eclip-autoresearch/
172•ykumards•2h ago•54 comments

The Minimalist Entrepreneur – Claude Code Skills

https://github.com/slavingia/skills
24•jger15•29m ago•2 comments

How I'm Productive with Claude Code

https://neilkakkar.com/productive-with-claude-code.html
32•neilkakkar•51m ago•13 comments

iPhone 17 Pro Demonstrated Running a 400B LLM

https://twitter.com/anemll/status/2035901335984611412
384•anemll•7h ago•210 comments

Finding all regex matches has always been O(n²)

https://iev.ee/blog/the-quadratic-problem-nobody-fixed/
101•lalitmaganti•4d ago•26 comments

Local Stack Archived their GitHub repo and requires an account to run

https://github.com/localstack/localstack
94•ecshafer•2h ago•43 comments

Trivy under attack again: Widespread GitHub Actions tag compromise secrets

https://socket.dev/blog/trivy-under-attack-again-github-actions-compromise
121•jicea•1d ago•44 comments

Dune3d: A parametric 3D CAD application

https://github.com/dune3d/dune3d
39•luu•1d ago•8 comments

Bets on US-Iran ceasefire show signs of insider knowledge, say experts

https://www.theguardian.com/us-news/2026/mar/23/bets-us-iran-ceasefire-show-signs-of-insider-know...
60•trocado•1h ago•36 comments

BIO: The Bao I/O Coprocessor

https://www.bunniestudios.com/blog/2026/bio-the-bao-i-o-coprocessor/
91•zdw•3d ago•23 comments

AI Risks "Hypernormal" Science

https://www.asimov.press/p/ai-science
33•mailyk•3h ago•20 comments

Two pilots dead after plane and ground vehicle collide at LaGuardia

https://www.bbc.com/news/articles/cy01g522ww4o
256•mememememememo•14h ago•410 comments

An incoherent Rust

https://www.boxyuwu.blog/posts/an-incoherent-rust/
53•emschwartz•6h ago•9 comments

I built an AI receptionist for a mechanic shop

https://www.itsthatlady.dev/blog/building-an-ai-receptionist-for-my-brother/
165•mooreds•11h ago•187 comments

An unsolicited guide to being a researcher [pdf]

https://emerge-lab.github.io/papers/an-unsolicited-guide-to-good-research.pdf
143•sebg•4d ago•20 comments

Bombadil: Property-based testing for web UIs

https://github.com/antithesishq/bombadil
207•Klaster_1•4d ago•84 comments

Walmart: ChatGPT checkout converted 3x worse than website

https://searchengineland.com/walmart-chatgpt-checkout-converted-worse-472071
371•speckx•4d ago•240 comments

Digs: Offline-first iOS app to browse your Discogs vinyl collection

https://lustin.fr/blog/building-digs/
31•rlustin•12h ago•14 comments

Conway's Game of Life, in real life

https://lcamtuf.coredump.cx/blog/conway/
4•ahlCVA•4d ago•1 comments

Cyber.mil serving file downloads using TLS certificate which expired 3 days ago

https://www.cyber.mil/stigs/downloads
147•Eduard•6h ago•144 comments

The Treasury just declared the U.S. insolvent

https://fortune.com/2026/03/23/us-government-insolvent-fiscal-crisis-fix/
33•cols•52m ago•11 comments

Is it a pint?

https://isitapint.com/
157•cainxinth•5h ago•130 comments

US and TotalEnergies reach 'nearly $1B' deal to end offshore wind projects

https://www.lemonde.fr/en/international/article/2026/03/23/us-and-totalenergies-reach-nearly-1-bi...
246•lode•4h ago•175 comments

Migrating to the EU

https://rz01.org/eu-migration/
778•exitnode•11h ago•613 comments

“Collaboration” is bullshit

https://www.joanwestenberg.com/collaboration-is-bullshit/
243•mitchbob•19h ago•127 comments

Show HN: Threadprocs – executables sharing one address space (0-copy pointers)

https://github.com/jer-irl/threadprocs
59•jer-irl•5h ago•36 comments

GitHub appears to be struggling with measly three nines availability

https://www.theregister.com/2026/02/10/github_outages/
409•richtr•11h ago•209 comments

General Motors is assisting with the restoration of a rare EV1

https://evinfo.net/2026/03/general-motors-is-assisting-with-the-restoration-of-an-1996-ev1/
80•betacollector64•3d ago•96 comments

Side-Effectful Expressions in C (2023)

https://blog.xoria.org/expr-stmt-c/
27•surprisetalk•5d ago•4 comments

Tin Can, a 'landline' for kids

https://www.businessinsider.com/tin-can-landline-kids-cellphone-cell-alternative-how-2025-9
296•tejohnso•3d ago•238 comments