Low-level doesn’t mean more information, it means more explicit.
In Zig, that means being able to use the language itself to express type level computations. Instead of Rust’s an angle brackets and trait constraints and derive syntax. Or C++ templates.
Sure, it won’t beat a language with sugar for the exact thing you’re doing, but the whole point is that you’re a layer below the sugar and can do more.
Option<T> is trivial. But Tuple<N>? Parameterizing a struct by layout, AoS vs SoA? Compile time state machines? Parser generators? Serialization? These are likely where Zig would shine compared to the others.
I don't think there is a standardized meaning of 'low-level'. I think a useful definition is that a low-level language controls more/is explicit about more properties of execution.
So zig/c/c++/rust all have ways to specify when and where should allocations happen, as well as memory layout of objects.
Expressivity is a completely different axis on which these low-level languages separate. C has ultra-low expressivity, you can barely create any meaningful abstraction there. Zig is much better at the price of remarkably small amount of extra language complexity. And c++ and rust have a huge amount of extra language complexity for the high expressivity they provide (given that they have to be expressive even on the low-level details makes e.g. rust more complex as a language than a similar, GC-d language would be, but this is a necessity).
As for this particular case, I don't really see a level difference here, both languages can express the same memory layout here.
> Option<T> is trivial. But Tuple<N>? Parameterizing a struct by layout, AoS vs SoA? Compile time state machines? Parser generators? Serialization? These are likely where Zig would shine compared to the others.
I don't see how any of that becomes easier in the Zig case. It's just extra syntactic ceremony. The Rust version conveys the exact same information.
It’s precisely not syntactic ceremony. It’s normal Zig running at compile time in which you can program types as values. In Rust (and most other languages) all you get is a highly abstract DSL:
Foo<T> where for<‘a> T: Bar<‘a, baz(): Send>
Information dense, but every new feature needs language design work. Zig lets you express arbitrary logic, loops, conditionals, etc. It’s lower level of abstraction than a type constraints DSL.
For example, adding “the method in this trait is Send” to Rust’s DSL took a whole RFC and new syntax. The Zig equivalent could be implemented with an if statement on a type at comptime.
Or how about the transformation of an async function into a state machine. Years of work, deep compiler integration, no way to write such transforms yourself. Same with generators, which still aren’t stable. I’d really like to be able to write these things like any other program.
If you don’t want or need to express things at this lower level of abstraction, fair, same reason most people stick to scripting languages and don’t think about memory layout. But “extra ceremony” is really underselling it.
But there's literally none of that in the example we're talking about. It's just an inert datatype declaration. And if anything the Zig version is more abstract - for the Rust version I have to understand <T>, whereas for the Zig version I have to understand comptime, Self, and @.
You're missing the point. They're just lamenting the contrast between what their friends say (fuck tech, no kings) and what they spend their workweek in service of.
It's not complicated: if these friends would take a non-society-destroying job at equal pay (who wouldn't?) then their values aren't driving the decision, money is. Fine, that's a choice adults get to make. But then own it and actually justify it on its merits, don't just retreat to "who are you to judge."
Didn’t say that. The friends in question clearly think it is. My point more generally was about people who publicly talk about $X being society-destroying while materially enabling $X for a paycheck.
It’s really not clear to me that they think that. OP was clearly saying that if you’re progressive, the intellectually honest position is to be anti-AI. I don’t think that necessarily follows.
All the superficial filler leaves a linkedin flavored taste in my mouth. I’d prefer to hear the author’s own voice and thoughts without noise injected to give the illusion of polish.
I thought it was actually quite funny, but I read it as a sarcastic parody of that writing style. I mean there’s no way:
> This is the founder story: what I built, why I chose it, and what a month of hardware taught me. The engineering writeup will come later, once I've talked to someone who actually understands IP strategy.
Oh this is very real. As someone who lives in Ottawa, Shopify employees are a unique brand of people who think they are tuned into the SV trends but are just huffing their own farts. They're all acting out a small-scale replica of taking peptides and trying to found Uber for Polycules but in a sleepy capital city full of government employees.
Wild how many people take “care about your craft” as a condescending personal insult. Maybe it’s hard to hear once the job’s beaten it out of you. And it’s about to get a lot worse.
The professor is obviously not advising naive absolutism. He’s saying care deeply about your craft, and good judgement will follow from that.
Actually caring is what gives someone the itch to go back and improve things, versus happily calling it a day once minimum acceptable value has been delivered. The rampant enshittification of basically everything should make it clear which disposition is in short supply.
> Have the courage to go slowly, especially when everyone else is telling you that you need to go fast and cut corners.
The advice is aimed at students who haven’t yet decided which type they want to be. In fact it’s directly telling them to think for themselves and not blindly listen to you or anyone else here making the same case.
I don't know about anyone else you might possibly be referring to, but I can say in my case I said it's worthless and stupid, I did not say I hate it or that it makes me angry.
"It's interesting" how some people can only interpret that as anger, or are willing to put their own words into someone else's mouth and then hold against them something they never said, while in the very act of critiquing them for lack of civilized behavior. I mean dude... chef's kiss.
A thing can simply be recognized and dumb and nothing more to it than that.
The only reason it's even worth saying is not actually just because a dumb thing exists, but because the dumb thing does not do what it purports to do that's all. This is not in fact an alternative to PCBs, nor even a path to eventually being one. We have had electronics on all manner of substrates including ceramics since forever, so I'm not merely saying that you can't put traces on ceramics. I'm saying this project as presented makes no sense. It's just a silly idea that doesn't actually provide enough function or value to be worth the materials.
It doesn't hurt anyone, and so there is nothing there to hate, merely dismiss.
"It's interesting" how angry pointing this out makes some people.
Let me guess the next question if I may be so bold: "Why go out of your way to say anything instead of just ignoring?"
Glad you asked ;) Why didn't the authors of this web page simply do their project without saying anything? They actively published their idea. I didn't go put a spy camera in their back yard and and then tell the world "hey look how dumb this is." They, of their own volition, went out of their way to actively tell the world "Hey look at what I did." I didn't even post it to HN here. It just turned up and was presented to me. Well I did look as they asked. And then I said what my asessment of what they showed. I didn't have to reply, but the authors diodn't have to publish either.
And still even this reaction to your comment (which is it's own seperate thing from the reaction to the original post) isn't anger. It is critique, bordering on ridicule by pointing out just how many different ways the remark doesn't hold water, but I didn't make the argument or the holes in it. As with the original post, it does not require anger to observe that something is dumb, nor even to say that you observe that it's dumb.
reply