"braindamaged hipsterlangs" I'm stealing that one. C++ was this when it came out... I remember the hype, even read one of the "woo c++ is so much better than c" books back in the day.

For sure, a substantial number of users of languages wear their affiliation like a badge of tribal membership. I know I feel a little of that myself with Go, but it's because everything that went into Go is also interesting to me, Wirth's Modula and Oberon package model, Newsqueak's CSP concurrency, Plan 9 OS, indeed, and indirectly, that whole thing with Ed Wood's famous movie, and how cute Rob Pike's wife's artwork is (and kinda creepy though also). And I always hated objects, header files, and computers repeating tasks that don't need to be repeated, ie the go build system. Which Rust copied after Go implemented it, btw.

Reply to this note

Please Login to reply.

Discussion

I hate Rust with a burning passion, mainly because of the types it attracts in it's "community". Re: Golang, I don't totally hate it and have actually warmed up to it in past year or so. But every language gonna have it's quirks I suppose and hey - I can't get *everyone* to use lisp! :^)

haha, yeah, lisp is a cool language. I use a lot of functional constructions in my work. But I couldn't live without channels, goroutines and interfaces. Like, I looked at Rust's coroutine implementations. So clunky and unintuitive and difficult to use.

And interfaces are also very rare to find anywhere, the main other one is Java. But I've always thought that this kind of "fat pointer" dynamic type was the most efficient and semantically clean way of doing dynamic typing.

My quibbles with go are mostly quite superficial and unimportant. Like, I disagree with several rules in gofmt, especially one liners for for and if blocks.

But I also very strenuously disagree with the use of variants as return values. It poisons all the RPC APIs with these assumed constructs that omit handling partial error conditions that are not failures, like getting a result, but not being able to query for the latest version, this is a result, with a proviso, an error condition that is not critical. Variants as return values assumes that all error states are critical, which is ridiculous, ever heard of "warnings" lol. I mean, imagine a shell that doesn't print a prompt??

Also, generics, I simply don't see the point of them. I also don't really understand why more easy tools for building generators aren't out there. Well, maybe I just never looked because they were not around before. Scaffolding tools could do this kind of task quite well. I've written simple AST walking code to implement a code block sorter once, that properly associates doc comments in the tree and I think I even got it to retain relative position of unconnected comment blocks to appear above where they were originally found, though often these kinds of comments are grouping a list of things.