Waiting for zig1.0 to develop apps that i love

Faster compile time,well performance,ai police…I can’t wait anymore.
I guess 1.0 will be released when i learn enough cs knowledge.

2 Likes

No reason not to start now if you want to, the ports from version to version have for the most part been compiler whackamole and the process is often very well covered by the release notes, and when it’s not - you are always welcome to ask.

13 Likes

While Zig is not done yet, the experience that you accumulate over time will be almost entirely something that you can leverage going forward. It’s not like with LLM models where every 6 months a new model comes out and old tricks don’t work anymore. How your system works (OS, hardware) won’t change even if Zig does, and that’s 98% of what systems programming is.

28 Likes

I wouldn’t recommend learning a language and trying to create your dream app at the same time unless you have a lot of time . “Jonathan blow .. cough”. Create some small projects to learn the language and get goodish at it. Then work on your dream.

3 Likes

I personally think, without any irony, that it’s actually great to delusionally believe you’re capable of making something far more amazing than you’re actually capable of making, and to jump into learning a programming language (or similar skill) with the goal of making it.
This is because you have a clear idea in your head of things you want to get done, and so you’re trying to take the fastest possible path towards getting them done.

If you just learn a language through tutorials and documentation - which, with the best of intentions, is written to encourage generic best practices in that language - almost none of it will actually stick, because psychologically it’s not valuable to you.
Knowledge sticks when it provides instant gratification. You want to do something, you look up “how do I do this in X language” and you find a post that tells you how. Chances are, you’re not gonna just skim through that post; you’re gonna read very carefully, because you actually want the knowledge that it will impart.

37 Likes

for a different opinion:
i find the churn tiring. i like to understand and have a good model the entirety of an api, of the layers of it, before using it, and rapid changes with the lack of documentation (and zero exposition of the concepts and decisions underneath) makes this task heavier than it should be. i don’t think i would be returning to zig before all the io shenanigans settle.

(zig is in a unique position to educate a large number of programmers new and old, and i feel that it is wasting it with very low exposition efforts.)

4 Likes

Thanks everyone for the replies.
My background is actually in mathematics, and so far I’ve mostly done some Rust + Axum backend work, plus a few small C++ projects with ImGui and Qt.
Maybe actually building things is better than waiting until everything feels perfectly ready.

3 Likes

i don’t know that i want exposition of a tentative thing. “this is why we’re going with std.Io” is not as compelling as the “this is how we made it work that great” retrospective. that’s why i’m excited that the more exciting exposition is also more realistic to hope for :slight_smile:

I would generally agree with this statement and the notion that if you’re trying to learn something new it’s best to do so with an explicit goal and application for that knowledge in mind.

However, it’s also important to ask yourself whether your priority with any project is to amass knowledge and technical experience, or if it is about completing the project. Being good at finishing and shipping software is just as important of a skill as being good at developing it (if your livelihood depends on you releasing your software, it is arguably more important!).

In the indie game dev scene in particular, one almost universal piece of advice that you will hear from successful developers is that when you’re first starting off, it’s better to make lots of smaller games so that you actually improve your skill at finishing projects, instead of setting out on making your dream game from the get-go and complicating the process by also trying to learn dozens of completely new technical skills at the same time.

Derek Yu (Spelunky, UFO 50) has written many blog posts on this subject:

9 Likes

Love that first paragraph!

Great damage has been done by shooting down enthusiastic, naive, and borderline delusional beginners. Or the 2014-ish classic: “I want to make a game and a game engine”“just use Unity, they solved all the problems for you”.

There is more nuance to it, but as a rule of thumb, everyone benefits more from supporting a harder goal, in a way that cynical “pragmatism” can’t, a.k.a “don’t even try, smarter people done it”.


Learning without a far-project often feels like going through a meaningless checklist rather than critically engaging with what you learn and how it relates with what you want to achieve.

4 Likes

100% agree. I started developing my OS and systems programming at the same time (before, I only had experience with JavaScript).
It wasn’t the easiest path, but when things worked it was so fun and I learned sooo much.

3 Likes

I also have to agree. Why not aim high. If you got it working in the end, maybe even not with everything implemented you imagined at the beginning, it feels great.

I’m not a trained dev or software engineer and just jumped into programming for fun because Im a long-time Linux user. Now, my first fun TUI I have started in Rust some years ago is much more succeessful and widely used than I ever expected. For half a year I’ve changed to Zig (disliking Rust for multiple reasons e.g. named in the Bun to Rust thread). Now Im porting another project to Zig. And while its much work because I’ve to implement many things on my own, its also fun and gives me a great feeling every time I implemented another small feature. Its also much trial and error, but I learn a lot more than ever with Rust.

(Its not meant as Rust bashing, but Rusy has been the only major language I used before)

1 Like

You should start now, so in 2 years you’ll have 2 years experience with zig.

2 Likes

+1 for you should start now you will def learn a lot not only about zig but systems programming in general. Additionally I would say that by starting now you help zig to improve as a language and as community by showcasing your projects and giving your feedback about the language in the current state.

3 Likes