I’ve written software for a living in JS, C, Pascal, and Go, and I’ve tried many, many more languages. After working on a project in Zig for a year, I’m convinced that Zig is the best-designed language I’ve tried so far. Haskell comes close. At least, it’s the best-designed language for humans.
It’s not for everyone yet. It’s still unstable, and its ecosystem is small. However, both are improving.
I'd like to learn more about the connection between Zig and Haskell as they seem almost opposite in design and philosophy. I'm pretty sure you just meant they're both "good languages" but if there are parallels I'm missing I'd love to know!
I'm not the person you asked, but I see them both as languages that try to get a lot of mileage out of a few features. Both of them try to have small cores, instead of taking a "maximalist" approach like C++.
> It’s not for everyone yet. It’s still unstable, and its ecosystem is small. However, both are improving.
To be fair, I've heard this for years now, yet the hype keeps mounting. I wasted half an hour this morning debugging a broken Zig project, all because I used a release a few months too new that removed some options used in build.zig
Releasing stable software and caring about backward compatibility is a skill many open-source maintainers don't ever want to engage with. It's so easy saying "our code is not stable, if it breaks good luck to you", but at some point it starts to smell like fear of commitment to running a serious project that people depend on.
Why such high expectations from a 0.x project? They explicitly break backwards compatibility now so they don't have to do it once 1.0 comes. There's nothing wrong with waiting a few years before trying Zig.
My point is that at some point one needs to recognize their project is used for production stuff and make stability the focus, rather than hiding behind the 0.x excuse for years. Call it the Peter Pan syndrome of open source.
For comparison, Elixir started in 2012, and got its 1.0 in 2014, two years later. Zig stable has been ‘a few years’ for literally a decade.
> My point is that at some point one needs to recognize their project is used for production stuff and make stability the focus, rather than hiding behind the 0.x excuse for years. Call it the Peter Pan syndrome of open source.
We have a roadmap to 1.0.0 -- it's literally right there in the release notes -- and we're going to execute on that and then tag it. Ignoring that (and SemVer) and declaring that we should actually stabilize right now is a bit unreasonable.
> For comparison, Elixir started in 2012, and got its 1.0 in 2014, two years later. Zig stable has been ‘a few years’ for literally a decade.
This is a wild comparison to me, and I say this as someone who actually used Elixir for a time fairly early in its development (and still like it!). Zig has a vastly larger and more difficult problem space to deal with than Elixir.
From my experience, WASM is great for easily porting existing codebases to the browser. It took me less than a day to download Emscripten, learn a little about WASM, make one toy project, and then port a 20-year-old, 40-KLOC C++ project to the browser [1]. The last part only took me half an hour, and I don't even write C++.
So .. if you want to keep it simple and reduce the chance of scaring away interested people for good because of failure, don't offer dual boot, unless you know all the tricks. Too many ways this can go wrong in my experience and if it goes right, it likely means they just continue using what they know - windows.
For a risk free just trying out, have linux live usb sticks prepared.
I have never been to one of these "fests" but wouldn't be easier to just bring a small PXE server with an SSD and 10G NIC with an 8-port switch for net booting/install? Are the machines so old they can't boot off the network? The PXE server could easily handle 5-6 install clients via the 10G NIC.
A 10G NIC is unnecessary. I've used iVentoy with a dozen laptops installing Linux simultaneously with no obvious slowdowns hosted from a Dell Optiplex Micro 7050 (7th gen i5, 1G NIC, SSD).
Yes, I have used iVentoy very much in the past as well. However, running a dozen (+12) simultaneous installs of Linux seems a stretch for 1G NICs. Using a small PC with a 2.5G NIC could probably do just as well as the 10G one - just slightly less expensive. The 2.5G NIC hardware has really come down in price; you can get an 8-port 2.5G switch for $45, and many mini-PCs have 2.5G built-in.
Yeah the USB stick enables the participants to replicate it more easily at home or with friends etc.
Encouraging that the participants are in the driver seat also helps with this.
Texinfo ultimately gets the @ convention from Brian Reid's Scribe[1], as developed at Carnegie Mellon during the late 70s and commercialized by Unilogic[2,3] in the 80s. Coincidentally, there was a close derivative of Scribe called Mint[4], also developed at Carnegie Mellon in the early 80s for the PERQ (an early personal workstation competing in the category of things like the Sun-1 or Lisp Machines).
I am reverse-engineering a PKCS#11 module for Gemalto smart cards and re-implementing it in Zig (https://github.com/ubavic/srb-id-pkcs11). The original module is published only for Windows, and my implementation targets *nix platforms. This is my first project in Zig, and I am very happy with the language.
I am currently working on a custom markup language called atex. It's syntax reminds of latex syntax, but with @ instead \ as a special character (very similar to the Lout language, if anyone remembers it). Also, the atex language hasn't any predefined commands. Instead, all commands are defined via schema specified in a separate YAML file. Schema defines commands that can be used and means of "rendering" those commands to different targets (HTML, Tex, Typst, whatever...)
Just today, I finished first working version of the new compiler (https://github.com/ubavic/mint). It is written in Go, and there are lot of things on the TODO list, but it works :)
This is actually the second compiler for the atex. The first one was written in Haskell and compiled fixed document schema. I used it for writing a book on Haskell (https://github.com/ubavic/programming-in-haskell).
This year marks 40 years of Galaksija, and the magazine PC Press with the author of the Galaksija Voja Antonic released a reprint of the original special issue which introduced Galaksija. Building kit is also available. More information is available on: https://racunari.com/
It’s not for everyone yet. It’s still unstable, and its ecosystem is small. However, both are improving.
reply