new language alignment chart: semantic static types, mechanical static types, dynamic types vs. designed for strong types, weak types, accidentally strongly typed
Rust is semantic/designed, C is mechanical/weak, Python is dynamic/designed, and Lua is dynamic/accidental
@tindall ]stares at the ceiling] i love this but also im too tired to figure out how to place euphoria
i'll figure it out later...
@dialupdoll ooo yeah that's a hard one
@tindall i would argue semantic for sure, but idk where it lies on strength
it's both strongly typed, when you choose it to be.... and loosely typed, when you don't want it to be strongly typed?
'flexile' i guess,
@tindall (side note i really love how you define the equivalent of typed structs by just handling nested arrays)
@tindall I love that I understand this joke
@tindall my favorite type system to compare in systems like these is VB.NET, since it kind of has a sliding scale based on project/file settings
with Strict Off/Infer On it's kinda like C or javascript, but when flipped around it more resembles a kind of semantic/designed system (but not 100% since it still needs to interact with the old VB-style base lib as well as .NET as a whole - i forget which setting makes everything Objects if you're not careful)
@refi64 yeah! Although bash does have numerical types, they just can't be stored
@tindall Can you explain what you mean about the designed part? Especially how C is designed for weak types?
By semantic and mechanical, I mean, are the types there primarily to let humans communicate to the compiler about the structure of the program and its constraints, or to let the compiler know how much space to allocate on the stack?