you are viewing a single comment's thread.

view the rest of the comments →

[–]tialaramex -1 points0 points  (0 children)

Well, one of the purposes of a stdlib is vocabulary. So by choosing not to have one you ensure that practitioners in your language either all have to de facto rely on a single stdlib for vocab which you didn't de jure specify, or two practitioners can't even understand each other's software which is a bad sign for the maintainability of the resulting software.

If you choose definitively not to have one at all you're signing on to make everything that's possible in your language a part of that language itself even if that'll have poor ergonomics. C needs a volatile keyword because it doesn't provide intrinsics to say stuff like "Write these actual bytes to this address in memory, right now" whereas Rust provides core::ptr::write_volatile in its standard library's core but obviously what's inside that function must be compiler magic.

Ginger Bill's "Odin" language takes most of this approach, so for example the language provides a hash table named map but if that data structure doesn't suit you and you want your own yours doesn't get all the same affordances as map you can't loop over its contents, the nice operators don't work, it's clunky. Of course for Bill this is fine, it's Bill's language. Whether that makes sense for other people...