Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I know I sound salty here, but 10 years ago I got ridiculed on go-nuts, with dismissive comments from Rob Pike, because I dared to suggest that the way go get and module imports over the wire 1. worked, 2. were advertised in all their docs for beginners, and 3. how they were subsequently used throughout the community was ultimately harmful / shortsighted.


The way Go's package system works, especially before modules, really feels like it was a hack over an earlier and even more limited system that was designed to be used entirely inside the Google monorepo that was made to work outside. The weird global namespace tree makes sense there, and the emphasis on checked-in codegen also make sense there when you consider that Google also includes build artifacts in their monorepo.


This was exactly what happened. Rob Pike mentioned in another talk that they overfitted the pre-module system to how Google deals with packages. So I think he/they have conceded this was a mistake


If one used Plan9, it becomes quite clear how the module system happened (it also matches nicely with google monorepo).


It's interesting that what they came up with is better than what's out there for other languages.

Yeah, you have the "v2" / forever v0 problem. But it's still better than what I need to deal with when using npm or (doing sign of the cross) anything with python.


Russ Cox's "minimum version selection" was a complete reinvention of Apache Ivy's "Latest" version resolver.

They basically reinvented maven, if you examine the version resolution plumbing of both tools.


Looking at https://ant.apache.org/ivy/history/latest-milestone/ivyfile/... I don't see how this is the same as minimal version selection.



Just Rob Pike expressing to the world how ignorant he is of programming language theory that was discovered after 2000.


He is ignorant of it even before 2000, see their for loop fck up.


I wish everyone were.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: