tef

bad poster & mediocre photographer

  • they/them

i hate to announce it but i am slowly forming a grudging respect for go

i mean, yep, go has it's warts, big ones, but after working professionally in it without really making much effort to learn about it, i've come to realise that go is actually realising one of it's intents: you should be able to write go without really knowing what you are doing precisely

here i am, i barely know the internals, i haven't read the spec, or done much in the way of turorials, but i can slap go together pretty proficiently, and i'm picking up most of the idioms quickly, as i use more and more library code

sure enough in rust i have to kinda reimplement a borrow checker in my head to get things done (and i did), and i have to learn to repackage every idiom into a more linear and or affine form to appease said checker

but in like go i'm all "here's a struct with some string annotations you can reflect on, that'll do". it really is an achievement to be working with json in a static language without having to rely on code generation to do it

it's still a warty awful language, but i am finding new ways not to fight it every day, which is something i really can't say about rust. rust still feels like a puzzle language, go feels more like a chore.


You must log in to comment.

in reply to @tef's post:

“Puzzle language” vs “chore language” is an incredibly exciting axis or pair of axes to think about.

Haskell: puzzle
Python: chore
Java: chore
Perl: puzzle
Ruby: both?

Yes! It feels like a local maximum to me: easy to get working, difficult to get fully right; in particular, the “every type has a default value” thing makes it very difficult to build abstractions, like Java’s “everything can be null” on steroids; still good enough for many purposes.