Sets and Bitsets, from Python to Zig
(eno-writer.com)
It's been over a year since I switched from programming in high level languages (python and javascript) to programming in a low level language (zig). Supposedly, high level languages are much easier to work with than low level languages, but I've been surprised by how infrequently I've felt myself longing for the expressiveness of python. In fact, last week was the first time I actually found myself having to switch to python to figure something out.
It's been over a year since I switched from programming in high level languages (python and javascript) to programming in a low level language (zig). Supposedly, high level languages are much easier to work with than low level languages, but I've been surprised by how infrequently I've felt myself longing for the expressiveness of python. In fact, last week was the first time I actually found myself having to switch to python to figure something out.
Zig; what I think after months of using it
(strongly-typed-thoughts.net)
Ah, Zig. I have a love-hate relationship with this one. A “new” (reading: appeared a couple years ago, already — yes, already), language with high ambitions. Zig was made to run at low-level, with a simple design to solve many problems C has (macros, allocators, error handling, more powerful types like baked-in tagged unions and bitsets, a better build system, no hidden control flow, etc.).
Ah, Zig. I have a love-hate relationship with this one. A “new” (reading: appeared a couple years ago, already — yes, already), language with high ambitions. Zig was made to run at low-level, with a simple design to solve many problems C has (macros, allocators, error handling, more powerful types like baked-in tagged unions and bitsets, a better build system, no hidden control flow, etc.).
Roc rewrites the compiler in Zig
(github.com)
Roc's compiler has always been written in Rust, and we do not plan to self-host.
Roc's compiler has always been written in Rust, and we do not plan to self-host.
In Zig, what's a writer?
(openmymind.net)
I find Zig's idea of a "writer" confusing. This is probably because there are three different types, each trying to compensate for compromises made by the others. Let's try to understand what each is and how it fits into a bigger whole.
I find Zig's idea of a "writer" confusing. This is probably because there are three different types, each trying to compensate for compromises made by the others. Let's try to understand what each is and how it fits into a bigger whole.
Show HN: Lightpanda, an open-source headless browser in Zig
(github.com/lightpanda-io)
Lightpanda is the open-source browser made for headless usage:
Lightpanda is the open-source browser made for headless usage:
Zig's comptime is bonkers good
(scottredig.com)
Programming has obvious abilities to increase productivity through automated manipulation of data. Metaprogramming allows code to be treated as data, turning programming’s power back onto itself. Programming close to the metal has perhaps the most to gain from metaprogramming as high level concepts need to be mapped precisely to low level operations. Yet outside of functional languages I’ve always found the metaprogramming story to be a disappointment.
Programming has obvious abilities to increase productivity through automated manipulation of data. Metaprogramming allows code to be treated as data, turning programming’s power back onto itself. Programming close to the metal has perhaps the most to gain from metaprogramming as high level concepts need to be mapped precisely to low level operations. Yet outside of functional languages I’ve always found the metaprogramming story to be a disappointment.
I wrote a Game Boy Advance game in Zig
(jonot.me)
The Game Boy Advance is an interesting game console. It has a modern-style CPU (32-bit ARM, lots of registers), but uses an old-fashioned tile based renderer like how the NES did it in the 80s.
The Game Boy Advance is an interesting game console. It has a modern-style CPU (32-bit ARM, lots of registers), but uses an old-fashioned tile based renderer like how the NES did it in the 80s.
When Zig Is Safer and Faster Than Rust
(zackoverflow.dev)
There are endless debates online about Rust vs. Zig, this post explores a side of the argument I don't think is mentioned enough.
There are endless debates online about Rust vs. Zig, this post explores a side of the argument I don't think is mentioned enough.
Show HN: My terminal learned a new trick (Colors in Zig)
(github.com/NishantJoshi00)
Color Show is a Zig utility that renders solid-color rectangles directly in the terminal using the Kitty graphics protocol. Simply pass hexadecimal color codes as command-line arguments to display vibrant color blocks.
Color Show is a Zig utility that renders solid-color rectangles directly in the terminal using the Kitty graphics protocol. Simply pass hexadecimal color codes as command-line arguments to display vibrant color blocks.
Why am I writing a JavaScript toolchain in Zig?
(injuly.in)
Few things keep me up at night more than the untapped potential in current developer tooling.
Few things keep me up at night more than the untapped potential in current developer tooling.
Zig Reproduced Without Binaries
(jakstys.lt)
I decided to bootstrap Zig without using binaries that are checked in the repository and answer if the resulting zig1.wasm in the latest Zig release (0.13.0) is the same the one bootstrapped without using those binaries.
I decided to bootstrap Zig without using binaries that are checked in the repository and answer if the resulting zig1.wasm in the latest Zig release (0.13.0) is the same the one bootstrapped without using those binaries.
The Unreasonable Effectiveness of Naming Integers
(ziglang.org)
Lately my Zig code has started to look like this in all my projects:
Lately my Zig code has started to look like this in all my projects:
Zig's (.{}){} Syntax
(openmymind.net)
One of the first pieces of Zig code that you're likely to see, and write, is this beginner-unfriendly line:
One of the first pieces of Zig code that you're likely to see, and write, is this beginner-unfriendly line:
Zigler: Zig NIFs in Elixir
(github.com/E-xyza)
Zigler is available in Hex, and the package can be installed by adding zigler to your list of dependencies in mix.exs:
Zigler is available in Hex, and the package can be installed by adding zigler to your list of dependencies in mix.exs:
Zig is everything I want C to be
(mrcat.au)
Zig is an in-development systems programming language that markets itself as “a general-purpose programming language and toolchain for maintaining robust, optimal and reusable software”. In my opinion, it covers the same problem space as C, and does so while massively improving on its usability and safety. It has a website at https://ziglang.org if you want to learn more, but here are a few of its features that I’ve found useful in my short time coding in it.
Zig is an in-development systems programming language that markets itself as “a general-purpose programming language and toolchain for maintaining robust, optimal and reusable software”. In my opinion, it covers the same problem space as C, and does so while massively improving on its usability and safety. It has a website at https://ziglang.org if you want to learn more, but here are a few of its features that I’ve found useful in my short time coding in it.
Introduction to Zig (a project-based book)
(pedropark99.github.io)
Welcome! This is the initial page for the “Open Access” HTML version of the book “Introduction to Zig: a project-based book”, written by Pedro Duarte Faria. This is an open book that provides an introduction to the Zig programming language, which is a new general-purpose, and low-level language for building robust and optimal software.
Welcome! This is the initial page for the “Open Access” HTML version of the book “Introduction to Zig: a project-based book”, written by Pedro Duarte Faria. This is an open book that provides an introduction to the Zig programming language, which is a new general-purpose, and low-level language for building robust and optimal software.
All-in-one multiplatform Zig binary
(github.com/jcbhmr)
📦 All-in-one multiplatform Zig binary 🔀 Forked from ziglang/releases-cutter
📦 All-in-one multiplatform Zig binary 🔀 Forked from ziglang/releases-cutter
Mitchell Hashimoto: Zig Writings
(mitchellh.com)
This page collects my writing about the 🦎 Zig programming language.
This page collects my writing about the 🦎 Zig programming language.
Zdotenv – Dotenv Loader for Zig
(github.com/BitlyTwiser)
Zdotenv is a simple .env parser and a port of godotenv and ruby dotenv, but with a smidge more simplicity.
Zdotenv is a simple .env parser and a port of godotenv and ruby dotenv, but with a smidge more simplicity.
Zine: A Static Site Generator Written in Zig
(kristoff.it)
Over the last year I worked on a static site generator written from scratch in Zig. It's called Zine, like in fanzine (wiki) and in this blog post I'll briefly present the reasons why I decided to create my own, and describe what's innovative about it.
Over the last year I worked on a static site generator written from scratch in Zig. It's called Zine, like in fanzine (wiki) and in this blog post I'll briefly present the reasons why I decided to create my own, and describe what's innovative about it.
Packed structs in Zig make bit/flag sets trivial
(hexops.com)
As we’ve been building Mach engine, we’ve been using a neat little pattern in Zig that enables writing flag sets more nicely in Zig than in other languages.
As we’ve been building Mach engine, we’ve been using a neat little pattern in Zig that enables writing flag sets more nicely in Zig than in other languages.
Show HN: HypergraphZ – A Hypergraph Implementation in Zig
(github.com/yamafaktory)
HypergraphZ is a directed hypergraph implementation in Zig (https://en.wikipedia.org/wiki/Hypergraph):
HypergraphZ is a directed hypergraph implementation in Zig (https://en.wikipedia.org/wiki/Hypergraph):