4 ms·
This is not a confusion but a fundamental difference in viewpoint. Not everything can be, nor should it be, solved at compile time. "anything solved in the typ
by gingerBill 6y ago
This is not a confusion but a fundamental difference in viewpoint. Not everything can be, nor should it be, solved at compile time.
"anything solved in the type system drops off the list of what needs to be solved" AT A HUGE COST. Everything has a cost to it and even if you could hypothetically most solve things at compile time (you cannot), it might take a damn long time to compile it.
- ncmncm 6y agoTrue, a difference in viewpoint: your HUGE COST is to me PRACTICALLY FREE. Some things can be solved before compile time, some during compile time, some during startup, and some only by running as long as needed. The earlier the better. If you like, you can think of compile-time as its own runtime.
- gingerBill 6y agoFor me, performance is much more critical, and the languages with ownership semantics do not easily allow me to get those performance benefits unless I ignore/bypass the ownership semantics of the language. It's one of the reasons I started my own language, the Odin programming language. I wanted the ability to have control over memory layout and memory allocations, and be tied to a specific model of how structure and design my program determined by the programming language itself, especially ideas which have yet to prove themselves as being "good" (by whatever metric).
- ncmncm 6y ago"Odin"? The truth comes out. I confess I am also not very impressed by the idea of organizing a whole language around ownership. But that doesn't make move semantics a problem. It is a problem that Rust doesn't let you code your own move. It is another problem that C++ allows it to fail, or to decay to an ordinary copy.