6 ms·
Zig is still rather new, but it would be a good alternative to C, C++, Rust and Go.
by srgpqt 3y ago
Zig is still rather new, but it would be a good alternative to C, C++, Rust and Go.
- dontlaugh 3y agoThe first three, but not Go.
- IggleSniggle 3y agoWhy not Go? Not very comparable due to GC and goroutines?
- dontlaugh 3y agoRight. The others are system languages you could write a kernel or a game engine in.
- TwentyPosts 3y agoI'm going to be pedantic here, but this merely means that Go can't fill Zig's niche. Zig can (in a lot of situations) presumably easily fill Go's role. Both languages have a focus on simplicity and explicit syntax. In other words, Zig is in fact a decent alternative to Go. Go just isn't a good alternative to Zig.
- littlestymaar 3y agoZig isn't memory-safe, and you're not going to pay for the development overhead of manual memory management if you're doing regular back-end stuff.
- memefrog 3y agoPeople did for decades and a lot of that "regular back-end stuff" is in C++ at the moment. If you wanted to move it to a different language, you might currently choose to move it bit-by-bit to Go. But you could also move it bit-by-bit to Zig, and it wouldn't be an unreasonable choice. Zig is in that sense an alternative to Go, IMO.
- littlestymaar 3y ago> People did for decades Yes, but it was before the invention of mobile phone… Since Java came out, the majority of back-end has been written in memory-safe language, for good reasons. > you might currently choose to move it bit-by-bit to Go Not even Google, the home of Go, has been doing a C++ to Go conversion. Backend services that are still in C++ in 2023 are probably so for good reasons, most likely because they either have: 1. really high performance requirements, hence no Go. 2. low budget, and are mostly maintained as it is, hence no rewrite. In any case, those are only a fraction of the total backend code, which is mostly PHP, Java, and Nodejs.
- deleted 3y ago[deleted]
- deleted 3y ago[deleted]
- silisili 3y agoAFAICT you could technically use a GC'd language for either, perhaps just not best suited for it. On the other hand, Zig can fill the niche Go does, but again, probably not best suited for it. I guess I'm just being pedantic here :).
- IggleSniggle 3y agoIf you really want to be pedantic, Zig could maybe be considered a GC’d lang, if you count selecting a GC for as it’s allocator (presumably with some ugly(?) comptime assurances) ;-)
- pjmlp 3y agoThere are production examples of both, written in Go. Besides, is writing compilers and linkers, systems programming?
- jedisct1 3y agoDepends on your use cases. The reason I love Go are: - Simplicity and readability - Batteries included: projects don't have to depend on too many 3rd party dependencies - Same code can be easily compiled to many different architectures - Fast compile time - Large ecosystem With the exception of the large ecosystem, Zig offers a similar experience.
- bsder 3y agoZig is mostly a good alternative to C. If Rust or C++ are possible options, Zig probably isn't what you really want. Rust is especially good if you can keep everything in Rust and make the most of the ecosystem. I like Zig, but it is a much smaller language that C++ or Rust with more than a few very, very sharp edges. That having been said, I reach for Zig in a lot more instances than I thought I would. I write a lot of relatively small programs that I want to work on Linux/Windows/macOS, and Zig is pretty good at that. Of course, I miss Rust terribly every time I run a Zig program and get a segfault.
- Oreb 3y agoCan Zig also be used to compile static libraries for iOS and Android?
- bsder 3y agoThere's no good reason why not. Zig is, after all, a full C compiler so it can certainly create C libraries. You can create a full Zig program to run on Android: https://archive.fosdem.org/2021/schedule/event/zig_android/ https://archive.fosdem.org/2021/schedule/event/zig_android/ iOS: https://www.jakubkonka.com/2022/04/30/ios-dx-with-zig-milan-meetup.html https://www.jakubkonka.com/2022/04/30/ios-dx-with-zig-milan-...