Comment

Comment by pie_flavor

Odin seems like a bunch of features copied from a bunch of different languages without making sure they're (a) good and (b) consistent. Things like ranges being `1..5` in one context but `1:5` in another, or having range-based iteration but still having classic for loops which ranges almost completely obsolete, or functions that may or may not allocate without having automatic deallocation. `or_return` is a significant improvement on Go's error system, but why not add an actual error system while you're adding other higher-level-than-C function properties like `context`? `cast(type)value` is a significant improvement on C's `type(value)`, but why add the latter syntax to the language anyway, then tell people not to use it? Allocator-aware new/free functions are great, so why use the different functions make/delete for some language-defined data structures? Etc. There's a lot to like here, but it's a patchwork with bad seams.
parent pie_flavor 4 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton