Originally Posted by hajile
Google has a white paper comparing C++, java, scala, and go. Their final report was that java was simpler to implement and C++ was several times faster and used less memory. This has had me wonder why I should mess with go. It offers nothing new in syntax from what I can tell. If I'm worried about speed then I'll use Common Lisp/shen (or maybe a combination of Python and C).
I'm not normally one to argue that a professional organisation is talking out of their behind, but if that was even remotely true then I wouldn't have bothered to learn Go to begin with.
While it's true that C++ and Java will out perform Go in terms of raw execution speed of the compiled binary, Go is a million miles ahead of both of these in terms of code verbosity. This is the main reason why I warmed to Go. I can (and do) write applications in both C++ and Java. I even love C++ as a language. But C++ is over kill for most projects these days and Java is just needlessly verbose (I have a boat load of other complaints against Java, but none of them relevant to this comparison). Because of how much longer development time takes in those two languages, I've found myself increasingly using Perl; which I can bang code out in minutes. However after trying Go, it fits that gap perfectly as it has both the performance of a strictly typed compiled language but also the speed and ease of development of a scripting language (Perl, Python, etc).
I appreciate that not everyone has that niche that needs filling, and I'm not saying that's the only benefit Go has to offer. But it is what sold Go to me.
I'm also probably coming off as somewhat of a Go fanboy, and I'm really not. I was just curious to see if there are any other Go developers on here.
Originally Posted by hajile
If I were to learn a new language, I would choose one of: smalltalk, haskell or maybe D. These languages interest me because the first is often considered the purest object oriented language, the second is often considered the purest functional language, and the third offers a different take on C++ with features such as garbage collection.
With the greatest of respect, this thread isn't "what language is next on your 'to learn' list?
" This thread is specifically about Go. I've already started a thread for people who do want to natter on about their language TODO list so that comment is probably better off there
Originally Posted by Helrich
I've worked around with it for a bit, but I haven't found a use for learning it when the stuff I write could just as easily be done in C. (Not saying Go doesn't have its place, just the stuff I do doesn't really use it to full effect, i.e. tens of thousands of threads
I think you have that the wrong way round personally. If I were writing an daemon that needed tens of thousands of threads then I'd write that in C with POSIX threads. Go comes into it's own for stuff that are written in C because that's what they're always written in - even when performance wasn't an issue. So where I've been using it is when there's stuff that I would have written in C/C++ because that's what I knew, but it could have more
easily been written in another language.