According to my opinion, a programming language should let a developer use his or her style.
gofmt is the best part of Go. Everybody's code looks the same.
Broken Package Management
This is a solved problem with dep. Switch your Go projects to dep today.
In the documentation there is no mentioning of those missing things, you expect from a modern HTTP library.
Go's philosophy is "less is more." This is the journey of every Go programmer:
What?! Go doesn't have X??? This is an outrage!
* figures out how to do it without X *
I guess I didn't need X after all. I just had to write a bit of code.
This is a solved problem with dep. Switch your Go projects to dep today.
This never works correctly for me and I have no idea why. I haven't written enough Go lately to get this sorted – but it's definitely not quite so obvious.
This is the journey of every Go programmer:*
There are steps after that though:
Oh, I guess I have to copy that code from before. No big deal.
Oh, right. I have to copy it again, with some changes? I guess that's okay.
Wait, did I fix this bug in the other copies too?
fire and burning pain.
No offense intended, but in those steps, I'd have probably lifted some of that work into a closure or other higher-level function. Go behaves a lot like a hybrid of functional and objective programming.
> I guess I didn't need X after all. I just had to write a bit of code.
I guess I don't need functions and variables after all. I just have to write a bit of assembly code (for some definition of "a bit"). When the complaint is that a language is insufficiently expressive, noting that anything is possible at the cost of being more verbose isn't really a refutation.
Hopefully someday they build a monument to K&R with "less is more" written on it. As someone currently stuck in a Scala project, I'd donate a sizeable sum towards that goal.
> This is a solved problem with dep. Switch your Go projects to dep today.
From a quick glance, `dep` seems to still be using source/repository URLs as dependency identifiers, which is a terrible idea. Other languages use a registry for a reason.