Daily Thought - 2024-07-23
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!
This thought was published before Crosscut was called Crosscut! If it refers to "Caterpillar", that is the old name, just so you know.
Besides types and effects, there's more about Caterpillar code that the tooling could infer. Let's look at Rust for a moment: It has a distinction between supposedly cheap (and hence implicit) copies, and potentially expensive (and hence explicit) clones. (This doesn't work perfectly and might get changed, but we can ignore that here.)
This distinction makes sense, and we might or might not end up having something like that in Caterpillar. If we end up not having it, we could get the same effect (or maybe even do better) by inferring and displaying information about performance characteristics of your code.
Imagine looking at a function, and having each expression color-coded, based on their relative cost. This could be based on heuristics, or actual measurements. Either way, it's another example of the principle I've been talking about: Designing the language with tooling in mind allows us to make certain things explicit, without requiring the developer to actually write them out.
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 whenever I post a new one.