Discussion about Io and Zig

Erm, 106 pointers * 4 bytes may easily chew up 50% of my RAM on a microcontroller.

Leaving that aside, Io is exhibiting similar issues and problems to the Rust executors. The fact that it has “Net, Dir, File, etc.” abstractions is encasing your system in amber. What happens when I want to extend Io to communication with a memory mapped device or GPU? I need to add more entries and adjust a whole bunch of stuff for the new standards. This is just like I would have to blow apart the executor in Rust and rebuild it from atoms if I need to support external events from a GPU. Part of the reason why I prefer Zig to Rust is precisely this–I generally don’t have to blow things apart into atoms if my use case is slightly different from what the language developers envisioned.

“net” and “file” abstractions are like oil and water–you generally need a third ingredient to blend them together properly. Seeing the two of them in the same place is generally a code smell and you probably need to draw the boundaries differently.

8 Likes