this post was submitted on 19 Jun 2025
46 points (85.9% liked)

Programmer Humor

36575 readers
303 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 

Made with KolourPaint and screenshots from Kate (with the GitHub theme).

you are viewing a single comment's thread
view the rest of the comments
[–] sph@lemmy.world 1 points 11 hours ago* (last edited 11 hours ago) (1 children)

Go's syntax is vastly superior once you have more complicated signatures, then the left-to-right truly matters. For example a variable that contains a pointer to a function that takes a function and an int and returns another function (like a decorator).

In C the order becomes very hard to understand and you really have to read the thing several times to understand the type of fp:

int (*(*fp)(int (*)(int, int), int))(int, int)

In Go, you can just read from left to right and you can easily understand what f's type is:

f func(func(int,int) int, int) func(int, int) int

It's just much more readable.

See: https://go.dev/blog/declaration-syntax

[–] phlegmy@sh.itjust.works 1 points 3 hours ago (1 children)

If you actually use code like this you're insane.

[–] sph@lemmy.world 1 points 11 minutes ago* (last edited 11 minutes ago)

This obviously just illustrates a point, but callbacks and decorators are not uncommon. And iterators are exactly like that:

type (
	Seq[V any]     func(yield func(V) bool)
	Seq2[K, V any] func(yield func(K, V) bool)
)

Which is very readable.