Sort of related from yesterday - https://news.ycombinator.com/item?id=50247203
(about zig's reimplementation of the libc, and some rough edges)
Sort of related from yesterday - https://news.ycombinator.com/item?id=50247203
(about zig's reimplementation of the libc, and some rough edges)
Zig's reimplementation of all of the standard libraries even though it's possible to use the existing ones is both baffling to me and kills usage of the implementation in my eyes.
Redoing critical parts such as crypto and compression is crazy in this day and age, hell they even have issues and merge requests open for issues that'd be headliners if found in any major language
Not just that, but on Windows, they're bypassing the actually guaranteed stable Win32 API in favor of linking directly to the lower-level components. Completely destroying any forward compatibility!
https://codeberg.org/ziglang/zig/issues/31131
It's the kind of change that makes me read Zig as not trying to be a serious language. Not that there's anything wrong with that, but the way Zig positions itself is at odds with the completely bizarre takes they do.
If you spend some time working on cross platform code you will quickly realize that that choice is actually the right one. The NT API is actually very close in abstraction to Unix and allows for much less ad hoc code to handle windows specifics than using Win32 API (which is an abomination).
The zig windows NT implementations are very well done and I actually use them as reference when dealing with windows IO.
> Completely destroying any forward compatibility!
Microsoft breaking the ntdll.dll function interface is extremely unlikely, there's too much popular software in the wild depending on it.
From the link:
> > Won't this get flagged by anti-virus scanners as suspicious?
> Unfortunately, yes. We consider this a problem for the anti-virus scanners to solve.
I am suddenly less interested in relying on Zig.
Why should you design your software around what a different piece of software could claim of your program?
Because you want someone who trusts that different piece of software to use yours.
Zig's decision here means the problem is _yours_ to convince this third party to trust you.
The next choice will be dynamically resolving syscall IDs from NTDLL? Surely that has no issues that could possibly happen.
zig users hate rust so much they found a way to make it 12,000x slower! incredible determination
(joking in case not obvious)