Live data from Hacker News

Game Jam 2 Results

wasm4.org

121–130 of 193 posts

Re: Game Jam 2 Results

#121
post #117

Earlier quoted context omitted.

Rust is serving billions of users right now. It's far past the "experiment" stage and has proven itself.

C/C++ have been used to implement the backbone of computing for 50 years. That is a proven technology. I'm not diminishing the success of Rust. It's been proven it can be used for serious projects. It's a bit of a reach to argue it's proven to be the best choice for all system programming use-cases going forward.

You make my brain hurt. You have these extremely long circuitous set of comments that hopstoch between insisting we're talking about Rust and that it's literally impossible to do the things you do in Zig in a memory safe language.

It's especially frustrating because you've received a ton of charity and time from strangers, we understand 110% what you're thinking (I wish it was true! I've had an inordinate amount of work for 18 months now because it isn't) but you can't seem to wrap your mind around the idea that there isn't some niche where Zig is perfect and unassailable or the only alternative is rust. I don't think you have much experience in multiple languages, it's actually fairly easy to get something as fast in JS _as in C_.

Re: Game Jam 2 Results

#122
post #77

Earlier quoted context omitted.

Wow sounds like you really need to clean up your codebase. Seriously, I have never had this problem while coding in Go, and I'm a very very sloppy coder.

I am seriously mind-blown that you've never encountered this problem in Go. You're trying something, and you see an error, you comment out a function and replace it with a print statement. And now suddenly you have to comment out a bunch of things up to the import statement just to fucking test out a simple hypothesis.

Possibly because the IDE helps with that. Including adding and removing import statements. I feel like this complaint is more theoretical than something felt by people using Go day to day.

Re: Game Jam 2 Results

#123
post #31

From the perspective that development time is a big constraint in a game jam it's no wonder zig is more popular than rust

Jams can be very fad-driven. I'm not familiar with this jam, but Rust's latest game jam was dominated by Bevy, which is a very bad choice for quickly writing a game.

It was a Bevy jam, organised by the Bevy developers to celebrate the new release of Bevy.

It’s still early days for Bevy but they’re making steady progress.

Re: Game Jam 2 Results

#124
post #110

Earlier quoted context omitted.

> Zig doesn't have mechanisms that soundly guarantee some kinds of memory safety. It does. > It's not spacially memory safe: extern unions, sentinel-terminated pointers, and multi-element pointers break it. We've been through that. Those are syntactically delineated unsafe features for C/hardware interop. Rust has them, too. > This isn't a particularly interesting property because it's trivially true for any language…

> We've been through that. Those are syntactically delineated unsafe features for C interop. Rust has them, too. And again we're assuming that the ones we went over in the previous thread are all there is. I found some more: @intToPtr, @bitCast, @alignCast. Some of those @ functions are spatially-memory-safe, and some are not: the differences are not clearly called out. (I'm going to charitably assume that taking a p…

> And again we're assuming that the ones we went over in the previous thread are all there is.

No one is assuming that. Like Rust, Zig has a set of unsafe operations that are well known to Zig programmers.

> How are they clearly marked, when they're neither relegated to a separate section of the documentation nor behind a switch?

They are syntactically distinct from the safe features, and they might be hidden behind a switch when there's demand for such a feature.

> As far as I can tell, the person who has gone through the most effort to isolate the spatial memory safe subset of Zig is me, in these HN threads.

So not only is disagreeing with you a fringe opinion, you're now the most knowledgeable on Zig's safety, a subject that is of great interest to Zig programmers? Those who spend the two days required to learn Zig know which operations are unsafe.

> Again, "struggling to get 1% of the market" is a weird way to describe a language that's serving billions of users right now.

Haskell and Erlang are also "serving billions of users" in the same way. The fact is that at an age where almost all programming languages (Python might be the sole exception) were in the ballpark of their all-time peak popularity, only a tiny portion of developers choose Rust. Like Zig, Rust is a language whose future success is uncertain.

Look, not everyone would like Zig, not everyone would like Rust, and for all we know it's quite possible that the main difference between the two approaches is that they appeal to different people. But trying to make Rust's design appear inevitable or uniquely legitimate for low-level languages when that language is doing poorly, or claiming to speak on behalf of a consensus where there clearly isn't one and several other languages targeting the same domain prefer a very different approach, make you sound detached from reality.

I find it a questionable choice to design a new complex language when complex languages tend to do poorly in the market, or to attempt a language for low-level programming that tries to appear high level on the page after C++'s lacklustre success with that approach, but I recognise that not everyone has the same taste as me, and I wouldn't call my opinions a consensus.

Re: Game Jam 2 Results

#125

Earlier quoted context omitted.

Jams can be very fad-driven. I'm not familiar with this jam, but Rust's latest game jam was dominated by Bevy, which is a very bad choice for quickly writing a game.

It was a Bevy jam, organised by the Bevy developers to celebrate the new release of Bevy. It’s still early days for Bevy but they’re making steady progress.

No, it was the Rusty Jam.

Independently of Bevy's progress, a parallel ECS is not a good choice for a prototype-like game project.

Re: Game Jam 2 Results

#126
post #117

Earlier quoted context omitted.

C/C++ have been used to implement the backbone of computing for 50 years. That is a proven technology. I'm not diminishing the success of Rust. It's been proven it can be used for serious projects. It's a bit of a reach to argue it's proven to be the best choice for all system programming use-cases going forward.

You make my brain hurt. You have these extremely long circuitous set of comments that hopstoch between insisting we're talking about Rust and that it's literally impossible to do the things you do in Zig in a memory safe language. It's especially frustrating because you've received a ton of charity and time from strangers, we understand 110% what you're thinking (I wish it was true! I've had an inordinate amount of w…

With all due respect, your comments seem to imply a certain level of immaturity and it does not seem like you really know what you are talking about.

It's possible in some cases that you can implement something in JavaScript which is competitive with a systems programming language, thanks to all the incredible optimization work which has gone into JavaScript engines, but the performance ceiling of a language like JS is much much lower than that of system programming languages. For instance, if you are optimizing for memory cache performance C or Rust or Zig are going to have tools which just don't exist in JS. There's a reason that HPC - one of the computing fields where profitability literally depends on speed - is all implemented in C and C++.

And not that it matters but I've got plenty of experience with languages. I've been doing software engineering professionally for over a decade, and I've shipped professional projects in probably a half dozen languages or more including C, Rust, and Javascript. I've also done my fair share of programming in the systems domain, including computer graphics and games. I've also implemented programming languages of my own.

> you can't seem to wrap your mind around the idea that there isn't some niche where Zig is perfect and unassailable or the only alternative is rust.

I never said Zig fits a perfect niche. I said the theory of the language is valid, and it's a worthwhile contribution to the field. Zig, like all other languages, is an experiment. It's actually quite an interesting one with different goals than a lot of the other popular languages out there, and which is very appealing for the systems programming domain. I'm arguing against the idea that Zig is "irresponsible", which is an extreme position.

I keep bringing up rust because of you guys insistence that Rust is a counter-example to the idea that a new systems programming language not necessarily be memory safe. For instance this comment:

> We can't ignore the fact that Rust has shown that memory safety is not incompatible with low-level semantics.

Seems to imply that Rust's existence unto itself is proof that every new systems programming language must be memory safe.

C is the current standards bearer for systems programming. Everyone is trying to invent a "better C". Go and Nim are trying to do it with garbage collection. Rust is trying to do it with the borrow checker. Zim is trying to do it with ruthless simplicity and explicitness.

All of these are experiments, and all of them are valid. 20 years from now we'll know a lot more about what works and what doesn't from each of these experiments, but it's too early to conclude that now.

Re: Game Jam 2 Results

#127
post #113

Earlier quoted context omitted.

There is no "jump" to Zig, just a rejection of the claim that all low-level languages "in 2022" must be memory safe -- not just Zig, but also Odin and JAI aren't (I think). If you need to do low level programming, the fact is that in 2022 there is no consensus over whether you should do it in a memory safe language. If you think it's your responsibility to use only memory-safe languages, then if you had to do low-lev…

> That's just the reality of low level programming in 2022 -- it can often only be done in non-memory-safe languages. That isn't true. You want to use a language that is more "explicit and simple". That's your prerogative, even if I disagree with it. But you do have a choice, and you are explicitly choosing to reject memory safety.

No, you don't always have a choice, because C is the only language available (not counting Assembly) on some platforms, and even where Rust is available it is not always a reasonable option for a host of other reasons.

Re: Game Jam 2 Results

#128
post #86

Earlier quoted context omitted.

It's funny you say that when a rustacean just posted below that it is irresponsible to use unsafe languages. Instead of focusing on tradeoffs they chose to call others irresponsible.

It's perfectly reasonable to take the position that it's deeply problematic for a language aiming for wide use in 2022 to not be memory safe. There's no requirement that you "focus on tradeoffs", especially since real people get hurt by memory safety problems.

I think you're actively hurting the project that you care about in your ineffective crusade, but hey, don't let me stop you.

Re: Game Jam 2 Results

#129
post #110

Earlier quoted context omitted.

> Zig doesn't have mechanisms that soundly guarantee some kinds of memory safety. It does. > It's not spacially memory safe: extern unions, sentinel-terminated pointers, and multi-element pointers break it. We've been through that. Those are syntactically delineated unsafe features for C/hardware interop. Rust has them, too. > This isn't a particularly interesting property because it's trivially true for any language…

> We've been through that. Those are syntactically delineated unsafe features for C interop. Rust has them, too. And again we're assuming that the ones we went over in the previous thread are all there is. I found some more: @intToPtr, @bitCast, @alignCast. Some of those @ functions are spatially-memory-safe, and some are not: the differences are not clearly called out. (I'm going to charitably assume that taking a p…

> Again, "struggling to get 1% of the market" is a weird way to describe a language that's serving billions of users right now.

Which language and which project is this referring to?

Re: Game Jam 2 Results

#130

Earlier quoted context omitted.

I've noticed people that like writing code in Zig are fans the language and the people that like writing code in Rust center their identity around the language. The former leads to people saying they enjoy writing code in Zig, the later leads to religious zealotry and moral condemnation for using anything other than Rust.

Not sure which lens you are using for coming to this conclusion. In my experience, most people writing Rust code have no "moral superiority" and treat Rust as a "better tool", not as a religion per se. However, what I've seen in the discourse of several programmers that claim to prefer Zig is the assumption that Rust is "not really that big of a deal". There's a constant minimization of the advancements both the owne…

> However, what I've seen in the discourse of several programmers that claim to prefer Zig is the assumption that Rust is "not really that big of a deal". There's a constant minimization of the advancements both the ownership system and the safety approach provide, and a lack of recognition for the fact that the language is a "game changer" in the industry.

I think you have inadvertently worded this in a way that silently confirms what the parent poster was saying. But more generally, while I can't speak for the entirety of the Zig community, the people involved with Zig directly tend to be aware of Rust's strengths. The problem is that one of the reasons why Zig exists (and is having some level of success) is because some people just don't want to deal with abstraction-heavy code. Some people value simplicity over a complex language with a memory-safe subset.

And the value of simplicity is not just a matter of aesthetics. Simplicity is a defense against bugs, because memory safety is not the end goal, correctness is.

https://twitter.com/croloris/status/1568342336580755456

Post reply on HN