The Go programming language. Contribute to golang/go development by creating an account on GitHub.
![go/src/runtime/coro.go at master · golang/go](https://lemdro.id/pictrs/image/4a4dda85-eeee-4883-87d8-5597936fbd92.png?format=webp&thumbnail=256)
In the original proof of concept for ranging over functions, iter.Pull was implemented via goroutines and channels, which has a massive overhead.
When I dug in to see what the released code did I was delighted to see that the go devs implemented actual coroutines to power it. Which is one of the only ways to get sensible performance from this.
Will the coro package be exposed as public API in the future? Here's to hoping ♥️
CrowdSuse
Sorry dude
There is manual memory management, so it seems closer to Zig
There is a dangerously large population of devs and managers that look at themselves, unironically, as the gigachads pumping out ui "upgrades"
Many of these fail to realize how disruptive it is. UI change is like API breakage for the brain.
I have lost track of how many times I've tried to help an elderly family member with an app after some pointless, trivial, ui change. Only ending with them entirely giving up on using the app after the "upgrade" because the cognitive overhead of the change is beyond the skill that can fairly be expected for them 💔
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
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
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
That we stop fawning over tech CEOs
Thank you for saying this. Sometimes I feel like I sm the only one thinking like this 🙇♥️
Following discussion on #56413, I propose to add two new types that a for-range statement can range over: integers and functions. In the spec, the table that begins the section would have a few mor...
![spec: add range over int, range over func · Issue #61405 · golang/go](https://programming.dev/pictrs/image/8f4bb71c-6e02-44f6-b98b-e9a455b8b34f.png?format=webp&thumbnail=256)
Go 1.22 will ship with "range over int" and experimental support for "range over func" 🥳
Pet peeve: don't use string keys. It invites key collision errors. Use the fact Go supports structs as keys in maps. Safer and more efficient.
You should probably change page content entirely, server sizey, based on the user agent og request IP.
Using CSS to change layout based on the request has long since been "fixed" by smart crawlers. Even hacks that use JS to show/hide content is mostly handled by crawlers.