Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You’re probably thinking of C/C++ unions, and they do indeed have quite tricky semantics and are difficult to use correctly. What the article and the other commentators are talking about is more properly called a “sum type”, like Rust’s enums, for instance. Those are different things from C unions. In languages with first class support for sum types, they are used everywhere, it’s an incredibly useful concept.


Gotcha, ta. That becomes a tricky problem when we're talking about something that's primarily a storage engine though, right?


Well, sum types are not magic - they must be stored in the memory somehow. Rust's enums tend to use a simple approach: there's a large enough integer tag (usually an 8-bit integer), followed by enough space to store any of the variants. The same exact encoding could be used with a database storage engine too.


Not sure - because in the end, a programming language also has to store this concept in memory. I don't think there is a fundamental difference.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: