Higher order functions often seems to be a way to complicate otherwise easy to read code. Kotlin manages to do it reasonably well, in Javascript I has beem behind some of my absolutely worst debugging experiences.
The problem with Go, as far as I have seen is not about functional programming, but rather about things like making a point out of not supporting generics for years.
For anyone who has experienced the Java 1.4 to Java 5 transition, and all the cruft it removed I cannot see how any of them can willingly accept a language that made a point out of being clumsy so one had to do it the old clumsy way agaim.
Or how a language that us supposedly a good fit for web backends had (don't know if it have now, I've given up) no simple way in the standard library or any popular templating solution to say in a template that it should be included in a bigger template, thereby forcing the code to know about things that belong in the design world.
I.e. to have
- a common header with dynamic title
- a dynamic part between
- and common footer
the correct way last I checked seemed to be to string them together like a php script from the late nineties.
Is it the foundation because it was built a long time ago, and is "good enough" .. or because it's just really good? "Worse is better" comes to mind.
There was another post on hn today about "pipelines getting stuck" that was really just about poor interaction between pipelines and programs changing their buffering behavior based on `istty()`. bash has been around a long time, and will stay around for a long time still, but that doesn't mean its design leaves nothing to be desired. It just means the benefits of changing it haven't crossed the 10x threshold of the costs (partially because it's foundational).
Had UNIX been a commercial product from the get go, and most likely C wouldn't have taken off as it did.
Those geniuses fought against implementing generics for almost 10 years.
It's lists, and maps.
> The generics in Go have turned out dogshite
Pick one.
This is dogshite because I have to fork a bunch of stuff to actually use it!
The creators of Go have also built the foundation of everything you take for granted. The real "harsh truth" here, of course, is that the Go team exhibits engineering genius, taste, and particularity that is rare to find in our industry, such that the likes of Rust "death by committee" people may only dream of. The long-lasting obsession that Rust people have with Go and the Go team has become a meme.
Borgo is the recognition of that: a handout to Rust people that they will never appreciate.