Mine the Harvest

Archive for May, 2011

Go Programming Language

by on May.22, 2011, under IT Adventures, Linux

 

 

The Google Go Programming Language, currently under development by Robert Griesemer, Rob Pike, and a fellow by the name of Ken Thompson looks to be quite interesting.

Some of the merits include:

    Fast compile times. Wicked fast.
    Familiar C like syntax.
    Ease of programming – a pseudo marriage of C and Python.
    Built in concurrent process execution and messaging.
    (MPI clustering and CUDA are under discussion.)
    Support for AMD64, x86 and ARM

New languages come along all the time. So why should this one be any different?

Ken Thompson, and his experience with systems programming and languages, is one good reason. For another I can foresee that, for scientific computing in particular, there could be a very good future for Go. By providing an easy to learn and use programing environment, with a C and Python-like style, with easy to use messaging and concurrency and which compiles extremely fast and runs at near C speeds – there is a very good potential. If the future added to this MPI capabilities, and especially bindings for existing libraries (e.g. Thrust and SciPy ) and for CUDA – it could very well fill a perfect niche. This just might be the start of something grand.

Official Sites

http://golang.org/

Install instructions, beginning tutorials, etc.

This site also provides a cool browser based write-compile-run environment where you can achieve instant gratification with Go.

http://code.google.com/p/go/

The actual Google code site.

Getting Started

To get a feel for the language and start using it immediately, you might want to read the sample hello world in the writing programs section of the install instructions.

You can execute Go programs using the above mentioned browser based compiler and run time tool.

Of course, you can also install the Go compiler and tools locally. You have two options for the compiler: the native Go compiler tool chain (6g, 6l, etc.) or gccgo, which uses gcc for the backed.

The official site has full instructions for setting up your environment. Requirements to build Go are minimal, and you can likely be up and running in minutes.

Nifty Cool Bonus: Note the following comment from the install instructions on how the Go linker works:

There is no need to list hello.6‘s package dependencies (in this case, package fmt) on the 6l command line. The linker learns about them by reading hello.6.

Other References to the language:

http://en.wikipedia.org/wiki/Go_%28programming_language%29

A reference for GO language bindings can be found at:

http://go-lang.cat-v.org/library-bindings

Scientific Computing

The suitability of Go for scientific computing is discussed in an interesting Google Groups thread here.

Syntax Highlighting

Exploring the misc/ sub directory shows the source includes syntax highlight files for Vim, Kate and other editors as well as some other goodies.

Leave a Comment :, more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...