[-] kamstrup@programming.dev 4 points 3 weeks ago

The context package is such a big mistake. But at this point we just have to live with it and accept our fate because it's used everywhere

It adds boilerplate everywhere, is easily misused, can cause resource leaks, has highly ambiguous conotations for methods that take a ctx: Does the function do IO? Is it cancellable? What transactional semantics are there if you cancel the context during method execution.

Almost all devs just blindly throw it around without thinking about these things

And dont get me startet on all the ctx.Value() calls that traverse a linked list

[-] kamstrup@programming.dev 1 points 3 weeks ago* (last edited 3 weeks ago)

Depending on your needs you can also break it into a columnar format with some standard compression on top. This allows you to search individual fields without looking at the rest.

It also compress exceptionally well, and "rare" fields will be null in most records, so run length encoding will compress them to near zero

See fx parquet

[-] kamstrup@programming.dev 2 points 7 months ago* (last edited 7 months ago)

Postgres and MySQL/mariadb are all primarily written in C.

Contrary to what other posters here claim, most programming languages are not written in C, but are self hosted. Ie. written using themselves. This usually involves a small bootstrapping component written in C or something similar, but that is a minor part of a whole

[-] kamstrup@programming.dev 29 points 7 months ago

That we stop fawning over tech CEOs

[-] kamstrup@programming.dev 5 points 7 months ago

Thank you for saying this. Sometimes I feel like I sm the only one thinking like this 🙇♥️

1

Go 1.22 will ship with "range over int" and experimental support for "range over func" 🥳

kamstrup

joined 1 year ago