▲ | juliend2 4 hours ago | |||||||||||||||||||||||||||||||
> there's this trend of purego implementations which usually aim towards zero dependencies besides the stdlib and golang.org/x. I'm interested in knowing whether there's something intrinsic to Go that encourages such a culture. IMO, it might be due to the fact that Go mod came rather late in the game, while NPM was introduced near the beginning of NodeJS. But it might be more related to Go's target audience being more low-level, where such tools are less ubiquitous? | ||||||||||||||||||||||||||||||||
▲ | christophilus 4 hours ago | parent | next [-] | |||||||||||||||||||||||||||||||
"A little duplication is better than a little dependency," -- Rob Pike I think the culture was set from the top. Also, the fairly comprehensive standard library helps a lot. C# was in a similar boat back when I used it. | ||||||||||||||||||||||||||||||||
▲ | cesarb 3 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||
> I'm interested in knowing whether there's something intrinsic to Go that encourages such a culture. I've also seen something similar with Java, with its culture of "pure Java" code which reimplements everything in Java instead of calling into preexisting native libraries. What's common between Java and Go is that they don't play well with native code; they really want to have full control of the process, which is made harder by code running outside their runtime environment. | ||||||||||||||||||||||||||||||||
▲ | Icathian 2 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||
Go sits at about the same level of abstraction as Python or Java, just with less OO baked in. I'm not sure where go's reputation as "low-level" comes from. I'd be curious to hear why that's the category you think of it in? | ||||||||||||||||||||||||||||||||
▲ | Ajedi32 3 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||
> I'm interested in knowing whether there's something intrinsic to Go that encourages such a culture. I think it's because the final deliverable of Go projects is usually a single self-contained binary executable with no dependencies, whereas with Node the final deliverable is usually an NPM package which pulls its dependencies automatically. | ||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||
▲ | johnisgood 4 hours ago | parent | prev [-] | |||||||||||||||||||||||||||||||
C encourages such culture, too, FWIW. |