At its heart, Go is a multi-threading, concurrent multi-processor programming language.
That might not mean a lot to some of you, but it
should. For the longest time, the largest breakdown between real life and computers --
the killer paradigm shift -- is
how data is processed. We humans process data in parallel, while computers are classically linear or procedural in their execution: step one, step two, step three. But suddenly we have the power of parallelism and the ability to concurrently process wildly varied data -- just like humans!
It's all happened very quickly, with Intel and AMD finally bringing multiple processor cores to the mainstream consumer a few years back, but it IS here -- and it's time to face facts: the current arsenal of tools available to a developer just don't cut it when it comes to concurrency.
Most of the programming languages we use today are at least 10 years old, with some being much older. There's a grand total of zero popular programming languages that have concurrency as a primary feature. There have been revisions to old favourites to bring them up to date, but to really make the most of new technology we need a
new language.
Fortunately it's already here in the form of
Go, and it's being developed by a team at Google.
Since we
first covered it four months ago, a lot of development has transpired! It's not ready for mission-critical stuff yet, but in
an email to the Good Gear Guide, Rob Pike (one of the Go project leads) said it was more than ready for "simple Web servers, text processing and other such things". What I'm trying to say is that, if you're a developer, you should go and get stuck in right now.
Be part of the next big thing in Developer Land!