Live data from Hacker News

Zig – io_uring and Grand Central Dispatch std.Io implementations landed

ziglang.org

291–300 of 315 posts

Re: Zig – io_uring and Grand Central Dispatch std.Io implementations landed

#291
post #199
post #190

Earlier quoted context omitted.

Only because Rust is a source only language for distribution. One business domain that Rust currently doesn't have an answer for, is selling commercial SDKs with binary libraries, which is exactly the kind of customers that get pissed off when C and C++ compilers break ABIs. Microsoft mentions this in the adoption issues they are having with Rust, see talks from Victor Ciura, and while they can work around this with…

I'm not expecting to convince you of this position, but I find it to be a feature, not a bug, that Rust is inherently hostile to companies whose business models rely on tossing closed-source proprietary blobs over the wall. I'm fairly certain that Andrew Kelley would say the same thing about Zig. Give me the source or GTFO.

100% agreed.

Re: Zig – io_uring and Grand Central Dispatch std.Io implementations landed

#292
post #288
post #264

Earlier quoted context omitted.

> C came out in 1972 and didn't gain its current dominance until approximately the release of the ANSI C spec in 1989/1990 While it kept growing in popularity later, by 1983-5 C was already one of the top programming langugages in the world. > C++ came out in 1985 and didn't become the dominant language for gamedev until the late 90s Major parts of Windows and Office were being written in C++ in the early-mid 90s, be…

> Major parts of Windows and Office were being written in C++ in the early-mid 90s, before C++ turned 10. Major parts of Windows, Android, and Linux were being written in Rust before it turned 10. Major parts of AWS were being written in Rust before it turned 4. Major parts of Dropbox were being written in Rust before it turned 1. So you agree by your own criteria that Rust is a major language? > While it kept growin…

> So you agree by your own criteria that Rust is a major language?

No, because I was merely responding to your specific points and the extent is nowhere near the same. C++ had a huge market share before it turned 10. In the late nineties I was working on a critical air traffic control system, first used in 1995, written half in Ada half in C++. Around 1995-6 C++ was already ubiquitous in serious software.

> In the mid-80s, C still had plenty of major and healthy competitors, as pjmlp will imminently arrive to remind you.

He doesn't need to remind me because I was there. Yes, there were major competitors, yet C was already very near the top.

> Javascript was an also-ran everywhere except the web

That's pretty much where it is today, yet it's still #1 (if we count TS as part of JS).

> There are infinitely more people choosing to use Rust at the age of 11 than were choosing to use Javascript at the age of 11

The number of people using Rust professionally is a fraction of that of any of the languages we mentioned, plus many more (C#, PHP, Ruby, Go, Kotlin) at the same age. It's more similar to Ada's adoption at that age in size (of course, there wasn't much small OSS projects then at all, let alone written in Ada, but there were many more big, mission- and even safety-critical systems being written in Ada at that age than in Rust). Is it a serious language? Absolutely! But so far its trajectory doesn't resemble that of any language that's achieved wide popularity.

Re: Zig – io_uring and Grand Central Dispatch std.Io implementations landed

#293

It's interesting to see this land while Rust support of io_uring in a mainstream library is lagging. And not for lack of trying, its just difficult to design a safe (zero-cost) idiomatic Rust abstraction over io_uring's completion based IO.

Doesn't look like this is done either,

> They are now available to tinker with, by constructing one’s application using std.Io.Evented. They should be considered experimental because there is important followup work to be done before they can be used reliably and robustly:

Re: Zig – io_uring and Grand Central Dispatch std.Io implementations landed

#294
post #208
post #191

Earlier quoted context omitted.

Using async in low level languages goes all the way back to the 1960's, became common in systems languages like Solo Pascal, Modula-2, with Dr.Dobbs and The C/C++ User's Journal having plenty of articles regarding C extensions for similar purposes. Hardly anything radical.

When I look at historical cases, it seems different from a case today. If I’m a programmer in the 60s wanting async in my “low level language,” what I actually want is to make some of the highest level languages available at the time even more high level in their IO abstractions. As I understand it, C was a high-level language when it was invented, as opposed to assembly with macros. People wanting to add async were…

People are putting C++20 co-routines to good use in embedded systems, in scenarios where the language runtime with some additional glue layers, is the OS for all practical purposes.

And GPGPUs as well, like senders/receivers whose main sponsor is NVidia.

Re: Zig – io_uring and Grand Central Dispatch std.Io implementations landed

#295

Earlier quoted context omitted.

IME Zig's breaking changes are quite manageable for a lot of application types since most of the breakage these days happens in the stdlib and not in the language. And if you just want do read and write files, the highlevel file-io interfaces are nearly identical, they just moved to a different namespace and now require a std.Io pointer to be passed in. And tbh, I take a 'living' language any day over a language that…

Sure, but considering that Zig is a modern C alternative, one should not and cannot afford to forget that C has been successful also because it stayed small and consistent for so long. The entire C, C ABI and standard lib specs, combined, are probably less words than the Promise spec from ECMAScript 262. A small language that stays consistent and predictable lets developers evolve it in best practices, patterns, desi…

> The entire C, C ABI and standard lib specs, combined, are probably less words than the Promise spec from ECMAScript 262.

Not if you look into C23, include all the compiler extensions devs keep thinking are part of ISO C, and the "C ABI" is one per each existing OS written in C.

Re: Zig – io_uring and Grand Central Dispatch std.Io implementations landed

#296
post #239
post #224

Earlier quoted context omitted.

Coming from Go, I'm really disappointed in Rust compiler times. I realize they're comparable to C++, and you can structure your crates to minimize compile times, but I don't care. I want instant compilation. Zig is trying to get me instant compilation and I see that as a huge advantage for Zig (even past the first 2 weeks). I'll probably stick with Rust as my "low level language" due to its safety, type system, matur…

The key with c++ is to keep coding while compiling. Otherwise..yeah you're blocked.

The key with C++ is to learn how to use the build system, make use of binary libraries, and if one can afford to use the very latest compiler versions, modules.

And avoid header libraries, C++ isn't a scripting language.

Re: Zig – io_uring and Grand Central Dispatch std.Io implementations landed

#297

Earlier quoted context omitted.

Depends how you compile it. If you’re compiling ReleaseFast/ReleaseSmall, it’s not very different from C (modulo as you said it has some language features to make it less likely you do it): * Double free * Out of bounds array access * Dereferencing null pointers * Misaligned pointer dereference * Accessing uninitialized memory * Signed integer overflow * Accessing a union field for which the active tag is something e…

wow, what a list! all of these are statically analyzable using a slightly hacked zig compiler and a library! https://github.com/ityonemo/clr (Btw: you can't null pointer dereference in zig without using the navigation operator which will panic on null; you can't misalign a pointer unless you use @alignCast which will also create a panic)

I can also analyse C and C++ code for such issues, while keeping using a mature languages ecosystem.

Re: Zig – io_uring and Grand Central Dispatch std.Io implementations landed

#298
post #242

Earlier quoted context omitted.

This is pretty close to saying Rust is not very different than C because it has the unsafe keyword. That is, either an ignorant (of Zig) or disingenuous statement.

To me the zig position is akin to saying that because Asan, TSAn and ubsan exist, c++ is safe because you’re just running optimized for performance. If you believe I mischaracterized zig, please enlighten me what I got wrong specifically rather than attacking my ad hominem

It is worse, because Asan, TSAn and ubsan already have several years of production experience, in a mature ecosystem.

There is no point throwing it all away to get back to the starting line.

Re: Zig – io_uring and Grand Central Dispatch std.Io implementations landed

#299
post #289
post #247

Earlier quoted context omitted.

Is it? rust has to ditch llvm to be able to replace c++ - or rewrite llvm in rust.

https://github.com/rust-lang/rustc_codegen_cranelift

So far I have seen no plans to replace the reference implementation with Cranelift.

Re: Zig – io_uring and Grand Central Dispatch std.Io implementations landed

#300
post #237

Earlier quoted context omitted.

> Very much so once you compare it to how quickly C++ (and, in fact, any language that's ever been in the top 5 or so) achieved similar milestones. No, this completely overestimates how quickly languages gain prominence. C came out in 1972 and didn't gain its current dominance until approximately the release of the ANSI C spec in 1989/1990, after 17 years. C++ came out in 1985 and didn't become the dominant language…

These languages have origin in a different era, without Reddit, Twitter or HN to spam about them, do we cannot really compare adoption rates.

You can go into Usenet archives, and ads on digital copies from Byte, Computer Shopper, Dr. Dobbs, PC Techniques, The C Users Journal, The C/C++ Users Journal, Your Sinclair, Amiga Format, MicroHobby, Micromania, SoloProgamadores, Spooler,...

And see which compiler toolchains had more ads, articles submissions, or source code listings.

Post reply on HN