Future dreams

I’ve never posted to this category before. I’m not sure if this is the right place; feel free to move it.

I’m curious about this community’s long-view, pie-in-the-sky, or dream-hobby interests. Of course, I think it’s important for the ecosystem to prove out a heavy balance of well-worn territory, and I like the variety of Showcase shares in that vein. My first project is (will be) typical web-ish, too (but I’m slow and zero-AI and evening-hobby-only, so it’ll take me a few more weeks to try my first Showcase).

But I’m curious to know if any would share farther-future hopes and dreams, or interests in special domains. I’m sure responses could be a little boring, like “robotics”, “embedded”, or… “AI”?! But I’m hoping for more specific reveals. E.g…. freenet/hyphanet? … favorite FUTO project? … axial flux control systems? … wayland jigits? … livestock LoRa gijits? … telescope tech? drone tech? food tech? smart home tech? solar tech?

Yes, I guess “open”/”free” is my interest backdrop. Or “hobby”, at least, which might mean “future industry”, but hopefully with the idea of “creative”. I can appreciate that many might not want to reveal their dark secrets… fine. Maybe this is a non-starter. But I’m just curious. This seems like a trend-setting group of creatives with a real knack for brilliance, and I’m curious about the future they might envision. So, that includes the possibility of offensive comments. One might say, “Freenet? Are you kidding? That’s a total farce technologically and here’s why…” and perhaps another might confess to working on zig alternatives to their rusty parts; it’d be nice to see some opinions pitted. (But I don’t hope for a degenerate political conversation or boxing match.)

Obviously, I mean… with the hopes of zig being an especially good fit to the problem space; bonus points for answering “why”.

5 Likes

Here’s my hopes and dreams. First that the zig self hosted backend becomes pretty robust in terms of quality and architectural choices.

Then that the arocc project continues and gets to the point of being a usable compiler. Currently zigs latest iteration of translate-c functionality came this compiler project. And it looks like they’re planning to share the same backend as zig.

With this in mind I think we also need a pure zig implementation of binutils to go with arocc. As gcc process of building a compiler per target which includes binutils is abhorrent.

The reason I want this is to make bootstraping LFS and other mini distros easier. The moment you go off the LFS beat path everything just breaks. Don’t want to use glibc? Being forced to build gcc to bootstrap c++ support because clang+llvm choose to be written in a language that isn’t easy to bootstrap, etc.

So how does this relate to zig?

Well the zig compiler is ship as a static binary. I was able to build the Linux kernel and copy it’s bzimage over to a fresh ext4 partition. Install busybox for a posix shell, coreutils and vi. Then I copied an enacted zig and my projects.

In such a minimal environment the zig compiler worked just fine and was able to build all of my std only projects. Andrew the other day announced a –fork option and going forward by default to cache to src to dependence in the project. This means I could build larger and more complex software in even this minimal environment.

Then using the master branch I was able to clone the zig repo and run zig build and in less than 10 minutes had a fully functional zig compiler. It was even faster, but I never timed it. The debug build was about 400mb and stripped it came in at 15mb (no clang) and that worked flawless for building pure zig projects in the minimal setup as well.

3 Likes

I wish the language will power billions of machines in the future, including your microwaves, car manufacturers robot arms, medical devices, flight management computers, webservers, supercomputers, etc., everything, just like the current one you all know… but don’t shoot 10 million times more powerful x-rays to your chest; don’t push the aircraft nose down; don’t derail the train; don’t crash the car and trap 3 girls inside and burn them alive…

6 Likes

The dream is that in our lifetime, we look back and laugh at this period of slow, buggy, broken software. That not-so-distant future generations will learn about it in disbelief, in the same category as Civil War medicine and early 1900s Industrial working conditions, wondering how anyone ever put up with it.

11 Likes

I’m working on a database storage engine with some architectural improvements to compaction/vacuum, which was the area I worked on for almost 20 years before I retired. I started working on it after retirement and my dream is just to complete it while my brain is still working well enough.

I want to take advantage of what I was lucky enough to learn about database internals from some really great software engineers and from my own experiences, and contribute my small part to the evolution of database design.

Implementing in Zig has made this easier, compared to the alternatives I’ve tried. I see Zig as a big step forward in the evolution of true systems languages.

11 Likes

I wouldn’t call it a dream, but one project that I really want to get into once I get the time, is to implement in Zig a btop in Zig, but with key features that would be really helpful.

The way I want to make it is as a 2 part system, a daemon/server and a client. Basically the daemon would be something that you can install everywhere. A headless Raspberry pi, your AI training system, your computer obviously, on every machine of your data center. basically everywhere it can go.

Basically each daemon would implement a protocol, and through some secure means you would be able to stream your systems info like btop/nvtop to that client. The client could permanently add some systems (kind of like how you add a ssh key), and you could monitor multiple heterogeneous systems simultaneously and remotely.

Ideally it would even embed a tiny scripting language or something, it’s still a thought in progress, I haven’t even started implementing it. But last week-end I’ve implemented something for a work project imuviz which is a remote imu debugger that reads into shm and streams through tcp the 9axis of the imu to be rendered with raylib which looks something like this

And over the last 6 months, I would have loved to use a more general purpose tool to stream data from some place to interpret or monitor it on another device. And I haven’t found something optimized and minimal enough that can serve that purpose.

I hope this isn’t off topic, but I think this would be a fantastic tool, and once I get a bit more confident with the idea, and experiment a few designs than I’ll probably dedicate a good chunk of time into it, and zig would be the perfect fit for that project.

5 Likes

Oh and If i had a dream for computing in general, it would be for Microslop to burn down and fade out of existence and never have to deal with Windows at work ever again. Posix all the way baby !!!, because that’s all we need. Because it’s one thing to ship sloppy code, and garbage filthy products but, it really starts to tickle my pickle when I’m on the receiving end and I have to waste hours of my life on things that wouldn’t even be a concern on linux because of how easy it would be.

5 Likes

I dream that Plan 9 had succeeded. True granular distributed processing.

7 Likes

The theory of Plan 9 is great, in practice you have to remember that Microslop engineers walk this earth with one mission Making things slow

3 Likes

This is great. So, a quick oversimplification: Plan10, destruction of the One Ring (and a non-nostalgic, fading memory of everything blue-screen-of-death-ish and time-wasting), thin/efficient server/client networking with beautiful cli frontends, zig self-sufficiency and the joy of working within (and on) ultra-light LFS/mini OS with diminishing kruft, mature database done right … and maybe just a hint of benevolent world domination.

Don’t mistake my levity; this is really great - like fav superheros revealing their noble aims. I honestly look forward to test-driving @jumpnbrownweasel’s database some day and maybe reaping benefits from its advantages over my old go-tos, or taking my first-ever stab at an LFS experience under the inspiration of @HolyFenrir … I know we’re all aware of successes like @matklad’s TigerBeetle, and I look forward to future zig spotlights. Maybe more than benefiting from solutions developed in zig, I’ll enjoy benefiting from the patterns I’ll simply be able to employ in my own solutions… to solve specific problems well.

I’ll share one of mine - someday I’d like to help my daughter with a little SBC with sensors and maybe LoRa to get gyro-kinetic data on lambing sheep, to which such such gidgets are mounted, to glean intel on how likely a mama is to give birth that night. (She goes out at midnight and 3AM during lambing season.) Lotta parts. Yeah, I could probably piece together stuff, write some python code, etc… but it could be fun to employ zig on the metal and do this as “right” as I can, to save power and size, for instance, even by pulsing only minimal intel that is likely to be useful, so the thing can run through the night without a big battery. Maybe I’ll get to it; it’d be fun. It’d be funner in zig, I think, than any other language I know.

Keep ‘em comin’, if you’re inspired. Thanks for humoring the idea. I like the ethos.

4 Likes

The safety issues you mentioned (like the Therac-25 or flight software bugs) are exactly why we need better tools. While Rust provides a strong safety model for this, I hope Zig can achieve similar reliability by making edge cases more visible and the code easier to audit, ensuring ‘Future Dreams’ don’t turn into safety nightmares.

lol, interesting question.

My 2c unpopular opinion is that programming languages are, and always have been, caught up in the eternal struggle about rights and personal autonomy.

On the one hand, there is a school of thought that people can’t be trusted, and so systems and tools need to be provided to keep the people in line, and make sure they conform to rules and standards defined by their superiors. There are good arguments for this - like having speed limits on roads, safety standards for food production etc.

But then they take it a step too far sometimes, and think it’s ok to also dictate what sort of books, art, music, or even programming languages are approved for use.

Then there is an opposing school of thought that systems themselves can’t be trusted, so tools need to be available that allow individuals to make their own best decisions for local conditions. You should be able to grow your own food, create your own artwork, write your own operating system if you feel like it.

With software development, we are in weird days again where the big collective (including government) want us to hand over all responsibility to approved tools only, and even outsource our critical thinking to the LLMs they provide. Then you have the handmade side of things, where the human is free to make mistakes and take responsibility for every little detail.

As you can tell from my tone, I’m firmly in the latter camp.

I think the safe and heavy handed control path leads to safe, ugly and mediocre outcomes. Let a person take full responsibility for what they build - and beautiful things can be built.

(So there, I managed to get through that, without even mentioning Zig explicitly)

8 Likes

Just a friendly reminder, I didn’t mention even a single programming language on my reply above though. My reply above includes cases which I saw many people are trying in this community. This is why I have this wish in these community. Even if they are learning something here using one language, but work in the future with another language to achieve this dream, it is appreciated.

2 Likes

getting chessnix in the top 25 :slight_smile:

2 Likes

I would love to be able to formally prove properties of zig code using some proof system.

3 Likes

Zig is a very geeky, high-tech language.

On the other hand, Rust is a trustworthy and reliable language!

I’m not saying any particular language is right or wrong, and I’m just saying that the application scenarios you mentioned have extremely high requirements for security and reliability, and that’s precisely where Rust’s strengths lie.

1 Like

A Zig-based library-OS. If every dependency is a liability, why not get rid of the biggest one?

2 Likes

Tiny programs that do one thing, are comfy from shell scripts and cli, and compose well with the rest of unix.

5 Likes

This is not ground which the Zig community is willing to cede to Rust.

I’ve been saying for ages: Zig would greatly benefit from a bit of language support for this kind of thing. A way to annotate (static) properties of code in an open-ended and extensible fashion, and a hook into the build system and compiler internals which facilitates checking those properties. zig validate, in short.

9 Likes

I talked about building a symbolic interpreter for ZIR with @Techatrix last week. It would be really cool, but we need to wait for ZIR to stabilize first. This could also be handy for building a seed corpus when doing mutation-based fuzzing.

6 Likes