Regarding HTTP in Zig, it might be removed in 1.0, if I am reading this correctly. Though Zig std does have both an HTTP client and an HTTP server.
https://github.com/ziglang/zig/issues/910#issuecomment-39548...
Fork it if you want or just create your own language. This is what zig creator did.
The idea is that C++ can’t move because of its own weight. Too much history, too much responsibility.
Just freeze it, let new languages create new ways.
It’s not that software written in it will become unmantainable. A frozen, feature complete language can still work. Libraries can implement new protocols.
Leave the name, do something new! Fork it, call it nib, or peeb or zag or even ziggy. Create a new language, call it go, bo, or just pi.
Given enough time Zig will become what C++ is today: its creator long gone, its responsibilities too much, its backward compatibility a weight too heavy.
That would go against everything the language has stood for over the years: we have a problem, here is a solution
(... which creates twice the problems, but there's always next year!)
This is a fairly normal practice and is supported by the major compilers.
I don't see why C++ should stop seeing development.
They did. It's called C++14.
> Fork it if you want or just create your own language.
They did. It's called C++17, etc.
> Raise the Bar for Inclusion
The bar for inclusion in c++ is more political than it is technical. You have to write a paper that outlines all the details of your proposal, then go to some meeting, defend your paper and then the committee votes on it. Unless you're special you're required to have a reference implementation. If the bar for c++ inclusion was technical, we wouldn't have gotten the response we did from Sutter regarding Baxter's safe c++ proposal. The bar for inclusion in Zig is whether Andrew likes it or not, which is fine, but it isn't possible for c++ to revert to that model.
Zig's standard library is not that small to be honest. It has lots of useful tools that do not exist in other languages. The compiler uses the std.
> HTTP clients, for example, are considered inappropriate for a general-purpose systems language’s standard library.
The std has both HTTP client, server, TLS and in development branch even a DNS resolver.
> C++ cannot replicate Zig’s approach exactly—ABI stability and decades of deployed code make removal far more complex.
Wild to hear C++ and ABI stability in same sentence.
Though the article seems LLM generated and even website title is "My Very Best AI Slop", I'm not sure what to expect or why this is even on HN front page.
[1] https://github.com/brson/stdx?tab=readme-ov-file#stdx---the-...
Regarding HTTP in Zig std library, might some of the API not be removed in the future?
https://github.com/ziglang/zig/issues/910#issuecomment-39548...
Why caring about ABI stability? It's easier just to link anything statically. Benefits of dynamic linking are negligible or even negative and thus it doesn't have any sense to have headache maintaining ABI stability. That's exactly what Rust does.
Edit:
Redox OS might be a better example, though its dynamic linking is for its Rust implementation of the C standard library.
https://www.redox-os.org/news/release-0.9.0/
> Relibc is also now key to our “stable ABI” strategy. The plan is for files to dynamically link against Relibc, which will provide a stable ABI for the dynamic linker. New POSIX functions will be added to Relibc, but none will be removed. That will leave us free to change the implementation of the services as Redox evolves, but still be able to run binaries compiled for older Redox versions.
I'm missing the significance of this callout. Is Andrew Kelley synonymous with/well known as a representative of a particular approach to language or software design?
I like C because it's a bare-bones language providing only the necessities and nothing more. It's independent from libraries and build environment. Let people who have experience in those things work on that. Remeber the do only one thing and do it well? I think the urge to still add extra features is the reason why there's no real successor to C.
But the conspiracy brained part of me can't help to think that part of this is sour grapes. Vinnie contributed a lot to the failed proposal to add networking (loosely based on ASIO) to the C++ standard. That proposal eventually lost out to the sender/receiver library[0] which is getting added in C++26. That still doesn't have actual networking, but lays the groundwork.
It remains to be seen how well sender/receiver turns out. Given ranges (another Niebler addition), I'm not super optimistic.
[0] https://en.cppreference.com/w/cpp/experimental/execution.htm...