Hacker News new | ask | show | jobs
by AndyKelley 377 days ago
For comptime perf improvements, I know what needs to be done - I even started working on a branch a long time ago. Unfortunately, it is going to require reworking a lot of the semantic analysis code. Something that absolutely can, should, and will be done, but is competing with other priorities.
3 comments

Thank you for working so hard on Zig. Really looking forward to Zig 1.0 taking the system programming language throne.
I am not sure, but why can't C,Rust and Zig with others (like Ada,Odin etc.) and of course C++ (how did I forget it?) just coexist.

Not sure why but I was definitely getting some game of thrones vibes from your comment and I would love to see some competition but I don't know, Just code in whatever is productive to you while being systems programming language I guess.

But I don't know low level languages so please, take my words at 2 cents.

I am just watching the Game of Throne series right now, so this comment sounds funnier than it should to me :D.

The fight for the Iron Throne, lots of self-proclaimed kings trying to take it... C is like King Joffrey, Rust is maybe Robb Stark?! And Zig... probably princess Daenerys with her dragons.

The industry has the resources to sustain maybe two and a half proper IDEs with debuggers, profilers etc.. So much as we might wish otherwise, language popularity matters. The likes of LSP mitigate this to a certain extent, but at the moment they only go so far.
All system programming languages mentioned by GP share the same set of debuggers and profilers, though. It's not very language specific.
That's where extensible IDEs like VSCode (and with it the Language Server Protocol and Debug Adapter Protocol) come in.

It's not perfect yet, but I can do C/C++/ObjC, Zig, Odin, C3, Nim, Rust, JS/TS, Python, etc... development and debugging all in the same IDE, and even within the same project.

For Virgil I went through three different compile-time interpreters. The first walked a tree-like IR that predated SSA. Then, after SSA, I designed a linked-list-like representation specifically for interpretation speed. After dozens of little discrepancies between this custom interpreter and compile output, I finally got rid of it and wrote an interpreter that works directly on the SSA intermediate representation. In the worst case, the SSA interpreter is only 2X slower than the custom interpreter. In the best case, it's faster, and saves a translation step. I feel it is worth it because of the maintenance burden and bugs.
Have you considered hiring people to help you with these tasks so you can work in parallel and get more done quicker?
It's a funny question because, as far as I'm aware, Zig Software Foundation is the only organization among its peers that spends the bulk of its revenue directly paying contributors for their time - something I'm quite proud of.
Oh so then you're already doing that. Well then that's fine, the tasks will get done when they get done then.
>>spends the bulk of its revenue directly paying contributors

Same with the FreeBSD Foundation (P: OS Improvements):

https://freebsdfoundation.org/wp-content/uploads/2024/03/Bud...

FWIW here's what that looks like for Zig: https://ziglang.org/news/2024-financials/
Super happy about those two :)

Other Foundations are more like the "Penguin Foundation".....