Crosscut

Daily Thought - 2025-04-20

Hey, I'm Hanno! These are my daily thoughts on Crosscut, the programming language I'm creating. If you have any questions, comments, or feedback, please get in touch!

Abandoning linear types opens up multiple options for error handling. A Rust-like approach, based on variant types and early returns, becomes possible. And enriched with structural variant types that can be generated ad-hoc by the compiler, it loses some of its disadvantages.

Checked exceptions also work now, and they too meet the design goals that I laid out. And note that exceptions are just a subset of algebraic effects. Those could come back and, by the way, are an alternative to linear types for tracking side effects.

Maybe linear types can still make their way into the language at some point. They certainly have uses. But, as of right now, I believe they would only be a specialized tool, if that. No longer something that's used pervasively throughout, to make core parts of the language work.

Hey, you! Want to subscribe to my daily thoughts? Just let me know (maybe include a nice message, if you're up for it), and I'll send you an email every time I post a new one.