3 ms·
My open source NoSQL database, Aerospike, has made a strong commitment to Go. I first posted to golang-nuts in 2009, and our native Go client has been out for a
by bbulkow 11y ago
My open source NoSQL database, Aerospike, has made a strong commitment to Go. I first posted to golang-nuts in 2009, and our native Go client has been out for a while ( https://github.com/aerospike/aerospike-client-go https://github.com/aerospike/aerospike-client-go ). We've supported the GothamGo meetup, which was a great session if anyone was in NYC that saturday.
Shameless plug over, please forgive me, but you did ask about Go and NoSQL.
"non-blocking" is kind of a funny concept in go, because since they have green threads, even what might seem blocking isn't "really" blocking. Not sure quite what you mean - do you really mean "using channels and goroutines as the interface" ?
The comment about Go's typing system not working well with NoSQL is certainly true. I find it's annoying working with JSON - similar problem - but the JSON tools have these nice ways of tagging your fields with the JSON fields for easy conversion. We might have to look at this with Aerospike.
I spent time with one company, LiquidM in Berlin, who rewrote a PHP production system ( that's not "muscular C developers" :-) and had a very, very positive experience. They told me their switchover to GoLang was incredible, with line counts reduced massively (like 3x) and performance up 10x and programmer productivity way up. I was trying to find a blog post about their experience, but nothing's coming up.
The most annoying problem with Go is its lack of performance compared to JVM (including probably Scala), where common operations are usually 2x ~ 3x faster runtime, in production. In my opinion, the GoLang people need to stop blaming their garbage collector, because even with GC off Go is far slower.
The GoLang argument is code is easier and funner to write, which is certainly true, and Go is still an evolving implementation.
Go's big thrust this year is solid support for ARM, likely so they can support Android well. I'm running Go on my Raspberry Pi2 (and my original Pis, but they only have one core so it seems a little dumb). It is a fun language.