loading...

re: What is Golang? Why use the Go? Pros & Cons VIEW POST

FULL DISCUSSION
 

This one drawback of not having its own library has been keeping people, from using Go on a larger scale.

Sorry but this is absolutely wrong. Go's standard library is one of the strongest out there. It supports database connection and http handling out of the box for example. Two things you will 100% have to add via third party library if you use any other language.

Go's library is one of the main attraction points.

Now when we talk about third party libraries, then one can say, go has not as many packages as python or JavaScript.

 

I’d tend to agree here, though in my experience Golang libs tend to be a lot lower level primitives, as opposed to python which is very much batteries included. I think that beauty of GoLang though, lower level constructs mean you can build only what you need.

 

No, that's the point, python is not batteries included. When python was created, nobody thought of all the types of problems we have to deal with today. The web wasn't even a thing back then. No one had a multi core machine. Python is missing a lot of what we need today, therefore you have to rely on third party libraries, no way around.

Go on the other hand was invented with exactly those modern problems in mind. It is truly batteries included, in that sense.

I can see the validity of you statement. I think it also pertains to the functionality you’re asking for and what you mean by batteries included. Python in a lot of ways has allowed for conflation of the standard lib by bloating the language with a lot of libraries and functionality. Just look at how bloated and unpythonic the unittest module is. It contains mocking and patching modules and shares a lot of similarities with junit. Go in direct contrast has a very simplistic testing module, requiring a lot of thought around design and testing. Even the way logging works in python, just import logging module and debug logs from the request module show up like magic. Go is certainly a lot more careful and explicit with primitives and what goes into the standard lib as part of its core philosophy. In agreement with you, Python wasn’t designed for the current problems or scale we face, as you pointed out, especially around concurrency as it doesn’t handle memory in a concurrent safe manner and relies on the GIL or process forking. I should clarify my meaning of batteries included, Python favors high level abstractions and hiding complexity (most times), Go forces you to think more about your own implementations, especially with design.

 

Go package system is most centralized and maintained.

 

Can you share more on your comment how is more centralized and maintained? So that the future readers will learn from it.

code of conduct - report abuse