4 ms·
Does it have to be one or the other? They are suitable for different things. You will find it hard to write an enterprise level application with complex domain
by sly010 10y ago
Does it have to be one or the other? They are suitable for different things.
You will find it hard to write an enterprise level application with complex domain logic in Go. Go is low level. Scalas type system on the other hand is very well suited for that.
Go's standard library around networking and crypto makes it the best language of choice for pretty much anything network related. Scala doesn't even come close.
My opinion in 2017 is Scala and Go (or Go and Scala) _are_ the two best programming languages out there. Learning both is worthwhile and _together_ they cover a very large set of use-cases.
- pjmlp 10y agoI doubt that Go network libraries and crypto libraries are so well battle tested as Java ones, which Scala can take advantage of, specially taking into account the amount of JVM and library vendors.
- sly010 10y agoScala not having a single well defined networking library and having to revert to using Java is exactly why I prefer Go for networking. Gotta call a http endpoint in Go? https://golang.org/pkg/net/http/ Gotta call a http endpoint in Scala? https://www.google.com/search?q=best+http+client+library+in+scala Perhaps I just don't have enough experience with Scala and I don't know the best practices (maybe everyone just uses akka and apache commons for everything?) yet.
- pjmlp 10y agoMany of us love the polyglot nature of JVM and .NET, and don't mind using the best library, even if written in system language of the platform.
- saryant 10y agoThe java.net package already exists. And there's Netty, which is more battle-tested than likely any networking library save BSD's.