Go at Heroku - build your own Chubby
theregister.co.uk
theregister.co.uk
"I like a lot of the design decisions they made in the language.. Basically I like all of them."
Considering how (at least, to my eye) the design principles of Scala seem very different than Go, I find that surprising. I guess it makes sense if you consider that there are multiple valid design paths that one can take.Scala is a bit of a kitchen-sink language; there are things in there from all over the place. It makes sense that he can find things to like in many disparate languages. (fwiw: I like Scala, and I like that Martin Odersky can find good things to say about other programming languages :))
"Previously, these operations people would write these in Python, but they're finding that Go is much faster in terms of performance and time to actually write the code."
Go beating Python in time to code?
"[Node.js is] a single thread. In a very similar amount of code, you could write a goroutine-heavy server that could handle tens of thousands of requests and use all the cores on your machine, so that if the requests were expensive – if they were CPU-intensive – you'd have a chance of keeping up," Pike says.
"Node.js shows great numbers for heavy numbers of clients, and they've done a really good job. But if those clients are CPU-intensive, they've got no place to go. You can't get the parallelism you need. With Go, you get the best of both worlds: You get many clients easily handled, and if they're CPU intensive, you can imagine scaling to a much larger number of requests."
What's more, Gerrand argues, Go doesn't force developers to embrace the asynchronous ways of event-driven programming. ... "That lets you write asynchronous code in a synchronous style. As people, we're much better suited to writing about things in a synchronous style."
Not quite true about CPU-intensive tasks. Node can use webworkers and leave the main thread for handling small requests. Obviously JavaScript is slower, webworkers open up heavy OS level threads (at least in browsers, not sure about node), but there is somewhere to go.
I like the competitiveness either way. Go deserves more popularity.
I wonder, is it possible to do some syntax rewrite to make it look like a weak/dynamic typed language and only use static types when you need the performance? That would give them a popularity boost from superficial Ruby/Python devs traumatized by systems programming.
Go already in practice feels very much as light as a weak/dynamic-typed language thanks to (implicit) interfaces, type inference and the plain simplicity of the type system and syntax.
Yes, that's what they tell me. Among other reasons, static typing means catching programmer errors faster.
> Grasping the concurrency may take a little longer, even if you're experience with something like Erlang – "the concept's a bit difficult to grasp if you've never been exposed to message-passing inside of a program before,"
There are many interesting differences between erlang and go (eg single mailbox vs channels, process separation vs shared heap) but the above is misleading at best. Goroutines are very much like erlang processes and both languages make heavy use of message-passing inside programs.
Journalists: get your interviewees (ie the people who know what they are talking about) to proof-read articles!
Of course you can get the same effect with Node.js/Boost.asio, but I find it a bit clumsy.