It was initially built for writing concurrent network services and they called it a systems language for that reason.<p>Now they just call it a general purpose language.<p>It's not a web language per se but it's great for building web applications:<p>- Compiled, performant<p>- Elegant concurrency model<p>- Bridges the gap between dynamic and static typing (it's statically typed but with ideas borrowed from dynamic languages)<p>Unlike Java, it's pleasant to work with.<p>Unlike Ruby/Python, it's very fast.<p>I've seen some python setups where you have 3 separate servers: one for serving static media (usually written in C), one for serving the main app (python), and one for providing websockets (node.js).<p>With Go, you don't need this convoluted setup. You can do all of these things from within Go.<p>Here's an example chat app that uses websockets:<p><a href="http://theplant.jp/en/blogs/10-techforce-building-a-web-chat-with-the-go-programming-language-and-html5-websockets" rel="nofollow">http://theplant.jp/en/blogs/10-techforce-building-a-web-chat...</a>
Go is a web language in the sense that its a great "networking" language. Its not gonna replace JS in the browser any time soon, but it does handle concurrency and everything large scale server side really (and I do mean really) well. Personally, from my limited (only been using / testing for couple months or so) experimentation with it, I think its a great lang for networking, building distributed services, and its concurrency primitives are clean and just fun.
The goals of Go, as stated in the 2011 I/O slides (<a href="http://golang.org/doc/talks/io2011/Writing_Web_Apps_in_Go.pdf" rel="nofollow">http://golang.org/doc/talks/io2011/Writing_Web_Apps_in_Go.pd...</a>):<p>- fun to work in.<p>- efficient - performance approaching C for CPU-intensive tasks,<p>- designed for modern hardware (multicore, networks),<p>- aimed at software such as web servers,<p>- ... but turned out to be a great general-purpose language.
From my best understanding Go has its roots in the Plan9 project and it is very capable as a systems language. When it comes to the web it is very well suited to writing services. Bit like what you'd use NodeJS for - but with different trade-offs. Presently Go is not used on the client / browser side code. For that JavaScript is still the main game.