“David Chisnall looks at the concurrency models exposed by Go (a new language from Google) and Erlang (a more mature language, originally from Ericsson), considering the relative expressiveness of each…”
“Parallelism and concurrency are both very fashionable notions. Lots of languages and tools are advertised as good at these things – often at both things.
I believe that concurrency and parallelism call for very different tools, and each tool can be really good at either one or the other. To oversimplify:
- Erlang, Rust, Go and STM Haskell are good at concurrency
- Flow, Cilk, checkedthreads and parallel Haskell are good at parallelism…”
“Join us as we discuss Docker and linux containers…”
“As part of the Canonical Cloud Sprint taking place in San Francisco last week I attended Dave Cheney’s talk at the GoSF meetup on the porting and extension of juju. Juju is an open-source cloud management and service orchestration tool that if you haven’t heard of yet, you soon will have.
After the talk an audience member asked if Go was reliable. Having used Go in production for coming up to three years now, without incident, this came as a bit of a surprise to me. Prior to moving to Canonical I worked for one of the UK’s largest market makers. A market maker is basically a wholesaler for institutional share traders and stock brokers. During my time there I replaced several key systems components with Go…”
“Last week I was part of a rant with a couple of coworkers around the fact Go handles errors for expected scenarios by returning an error value instead of using exceptions or a similar mechanism. This is a rather controversial topic because people have grown used to having errors out of their way via exceptions, and Go brings back an improved version of a well known pattern previously adopted by a number of languages — including C — where errors are communicated via return values. This means that errors are in the programmer’s face and have to be dealt with all the time. In addition, the controversy extends towards the fact that, in languages with exceptions, every unadorned error comes with a full traceback of what happened and where, which in some cases is convenient…”
“This is a simple command-line-interface BitTorrent client coded in the go programming language…”
“The circuit reduces the human development and sustenance costs of complex massively-scaled systems nearly to the level of their single-process counterparts. It is a combination of proven ideas from the Erlang ecosystem of distributed embedded devices and Go’s ecosystem of Internet application development.
The circuit extends the reach of Go‘s linguistic environment to multi-host/multi-process applications. In simple terms, the Go Circuit was born from the desire to be able to write:…”
“Rob Pike explains how Google designed Go to address major development issues they encounter while using other languages: long build times, poor dependency management, lack of robustness, etc…”
“It’s easy to get excited about new technology like Go. The question is: how does it stand up to scrutiny after daily use?
I’ve written 3 web applications in Go, they’ve been running in production for over a month so I feel justified in publishing my opinion.
In the past I wrote web applications in Perl, PHP, Python (web.py, Tornado, App Engine) so those are the technologies I campare Go to.
Of the 3 websites, AppTranslator, is web service for crowd-sourcing translation for software and was written completely from scratch.
One reason to migrate from App Engine to my own server was to save money. At my levels of traffic (~3 requests per second) I was paying ~$80/month, mostly for the frontend instance hours.
Another reason was to do more complex processing (App Engine is great as long as you don’t have to do something that App Engine doesn’t support).
Finally, I wanted to see how Go will handle a real life project. The best way to test a new technology is on a project with a predictable (and relatively small) scope.
All websites run on the same Kimsufi 24 dedicated server (which is pretty beefy for its $60/month price). I’m using latest Ubuntu for the OS…”