Google just released a new open source programming language called Go. Go is intended to offer built-in support for concurrent processes, make the most of modern hardware and deliver a super-fast coding experience. Google says in its announcement that "Go attempts to combine the development speed of working in a dynamic language like Python with the performance and safety of a compiled language like C or C++." Go was created by a five person team that includes UNIX co-creators Ken Thompson and Rob Pike.
It's not for everyone, but we talked to a variety of developers who are looking forward to kicking the tires. Below are opinions before launch from three developers we have a lot of respect for. Two are enthusiastic and one is skeptical.
Rob Pike also gave an hour-long talk about Go late last month.
GitHub Co-Founder Chris Wanstrath

I'm definitely on the lookout for C-like languages with good C integration and solid package support (for organization). Hopefully Go provides the former with its "syscall" package (or something similar) - building on existing libraries is a huge boon to young languages, as Scala and Clojure have shown with their Java integration.Organizing big C projects is always a challenge, and borrowing packaging ideas from higher level languages like Python could really help.
Can't wait to see the site and play with a few examples.
Alex Iskold, founder and CEO of Adaptive Blue

Go appears to be procedural language, based on C/C++ syntax, skewed heavily towards C. It has C memory manipulation model with addresses and pointers, which is complicated and not used in Java, PHP, Ruby, etc.There is nothing in this tutorial that attracts my eye, other than built-in parallel processing capability. C historically lacked threading (although current versions have it), but having it built in natively into the language is always great.
I am a fan of Java and Object-Orientation, so new procedural languages sound like a thing of the past to me.
If this is positioned as alternative to JavaScript, I do not see why this is necessary. Why not take JavaScript and make it better / add richer libraries like JQuery as part of the language. What Google has done with Gears for example, is built stuff using native C/C++ code and wrapped it into JavaScript calls - I think that is a better way to move forward and to make things faster.
Larry Price, Computer Systems Consultant

This is a very clean and powerful language. It's a direct descendant of C with elements of Haskell, OCaml, python and erlang visible as influences. It seems like yet another attempt to make a "better C than C", and from a first shallow glance it seems like a clear winner.Objective-C fans (mac programmers) will probably sniff that it's nothing new, and that clean message passing semantics have been available to programmers for decades, but there are some deep differences; Go is not an object oriented language although you can use it in an objected oriented manner. In many respeccts Go is not a new language, it will seem very familiar to anyone who has used C or C descended languages; and most of the advanced features that it adds to C are implemented in other languages.
Go strikes a good balance between legibility, low-level functionality and high-level functional programming features. It will have a strong appeal to programmers who are interested in the type safety and concurrency friendly features of Haskell or erlang, but want to access them in a more familiar C-like syntax.
It has a good chance to make type-safe concurrent programming a mainstream choice.
What do you think?
Comments
Subscribe to comments for this post OR Subscribe to comments for all ReadWriteWeb posts
If Ken Thompson and Rob Pike say it's good, I'm on board.
I'm happy to sit on the fence on this one and see if it turns from redundant circle-jerk language to a tractionable paradigm shift.
The fast compilation time would be welcome, and there's a number of interesting ideas in here. I'm right in the middle of trying to sort out a C program which is littered with assumptions that "size_t" is "int" (and getting that to work on a variety of platforms which have very different ideas of what size_t is...), so I'd be happy to see any systems-programming language which avoids that nonsense.
I've been meaning to try something with the D language, too, but I haven't had enough time to work with that to know how (or even 'if') Go would compare to 'D'.
A language which delivers on easier-programming for multi-processor environments could certainly be a big win. So I'm interested to see how this works out in practice, although I'm not ready to rush right in and start programming with it. My main problem there is just a general lack-of-time, though!
dam i have to learn how to code, but it seem as google once again did it..
One thing they don't comment on is endian-issues. They say they have compilers for i386, amd64, and ARM, but there is no mention of endian-ness so I suspect the ARM compiler is written for little-endian operation. It'd be nice to have a compiler for a big-endian hardware platform, just to make sure the language does not include anything which would cause problems on big-endian hardware.
(yes, I realize most chips can run little-endian or big-endian, but it would still be nice to know...)
I would like to see how this language grows in the next months.
The second guy, Alex Iskold, obviously didn't watch the presentation ("It has C memory manipulation model with addresses and pointers"). Go is fully garbage collected, with no manual memory management and no pointer arithmetic.
well, this is very insteresting!
i'll look at this GO when its not on experimental stage anymore...
Inconsiderate choice of language name. You'd expect something more uniquely searchable from Google.
Zafer, I thought that too.
In which case it could be a great beginning language. I don’t think there is anything better than Python for beginning. Simple syntax, minimal/no declarations or pointers, but the ability to learn object oriented design once the basics are down.
If they offer an interpreter with it (one of the things that makes learning Python so easy – instant trial and error) I think it could be a good tool.
I don’t see it replacing C/C++. C/C++ hauls ass because it doesn’t do much for you. By virtue of dumbing down syntax, they are implying that it does more of the work behind the scenes and therefore can’t really be fast.
May serve well as another scripting language though – not that we necessarily need one, but Java and Python both have their faults.
The pro gramme the provides their user with easy interface will certainly be a big cash cow.
.....So now we have a new development langauge to slow down and crush innovation......after all theese years development languages are still unreadable to many outside of the cult.....hopefull one day this will end
Mr. Iskold seems to be operating under the misapprehension that everything in the software world is attached to a web browser. Go is a systems programming language, not a replacement for Javascript.
I love it when "experts" shoot from the hip.
Evan, I asked him to shoot from the hip, I asked that of all these folks. These were reactions based on very early information. Also, Google themselves said to me on the phone that this could replace Javascript.
Could replace JavaScript is a bold statement. I'll be following this one for sure...
The more I've looked over the documentation at the golang site, the less enthusiastic I am about the design. There are some very interesting ideas in it, but also some aspects of the language that seem like bad choices to me. (usually things related to the syntax, and not the features of the language).
People who say that C never had any support for concurrency just never heard of "Concurrent C", which was a project back in the 80s.
Rob Pike is not a co-creator of UNIX. Perhaps you have him confused with Dennis Ritchie (who is)? Pike joined Bell Labs a few years after UNIX was created.
(I think Pike may be a co-creator of another OS from Bell Labs called Plan 9.)
Too bad this erroneous information was picked up by the NYT.