DEV Community

Discussion on: Pitch me on Go

Collapse
 
cpustejovsky profile image
Charles Clinton Pustejovsky III • Edited

Most if not all languages can be used to be build distributed microservices. With it's focus on package oriented design and concurrency primitives, Go was actually made to build distributed systems. Given how much companies need to scale, it makes Go an excellent tool in their arsenal.

Go also has made the brave decision to remove powerful abstractions like inheritance, function overloading, etc. These may be nice, but they can often bite us in the ass later, and I don't think any developer is trustworthy enough to not to abuse them, especially when they're on a deadline and it's a Friday afternoon.

I think Go is amazing for problems dealing with I/O and where a long term solution is needed.

It may not be the best option for something where you need to be as memory efficient as possible.

Also, as much as I dislike NodeJS, I'd use it over Go for prototyping. An opinionated, statically typed language isn't great for throwing together a disposable prototype.