An update on the Internet overlord's new programming language: Google Go
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!













Comments
24
Subscribe to commentsMichaelMar 3rd 2010 2:42PM
"There's a grand total of zero popular programming languages that have concurrency as a primary feature."
Erlang?
http://en.wikipedia.org/wiki/Erlang_(programming_language)
May not be popular but definitely has concurrency as the primary feature.
Sebastian AnthonyMar 3rd 2010 7:25PM
How could I forget Erlang? That thing has changed the WORLD!
*grin*
JeremyMar 3rd 2010 2:42PM
Some seem to be missing Sebastian's point here...
He didn't say that there are no languages that support concurrency. He said there there are no "popular programming languages that have concurrency as a primary feature." Which is, at it's basis, true. Yes, popular programming languages have been updated to function with concurrency, but there have been few (if any) written specifically with this function in mind.
There is a vast difference between updating a language to utilize multiple threads and building a new language with multithreading as one if it's foundations. This is what Google is doing with Go. They're not doing something that hasn't been done before; they're doing it "better."
Sebastian AnthonyMar 3rd 2010 7:27PM
*tips hat*
A friendly face, in the faceless, bloodthirsty crowd!