{"id":666,"date":"2011-05-22T14:18:13","date_gmt":"2011-05-22T18:18:13","guid":{"rendered":"http:\/\/www.timelordz.com\/blog\/?p=666"},"modified":"2011-05-22T14:18:13","modified_gmt":"2011-05-22T18:18:13","slug":"go-programming-language","status":"publish","type":"post","link":"https:\/\/www.timelordz.com\/blog\/2011\/05\/go-programming-language\/","title":{"rendered":"Go Programming Language"},"content":{"rendered":"<p><a href=\"http:\/\/www.timelordz.com\/blog\/.\/wp-content\/uploads\/2011\/05\/Golang.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-667 alignleft\" title=\"Golang\" src=\"http:\/\/www.timelordz.com\/blog\/.\/wp-content\/uploads\/2011\/05\/Golang.png\" alt=\"\" width=\"153\" height=\"55\" srcset=\"https:\/\/www.timelordz.com\/blog\/.\/wp-content\/uploads\/2011\/05\/Golang.png 153w, https:\/\/www.timelordz.com\/blog\/.\/wp-content\/uploads\/2011\/05\/Golang-150x55.png 150w\" sizes=\"auto, (max-width: 153px) 100vw, 153px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>The Google <a title=\"Go Language Official Site\" href=\"http:\/\/golang.org\/\" target=\"_blank\">Go Programming Language<\/a>, currently under development by Robert Griesemer, Rob Pike, and a fellow by the name of Ken Thompson looks to be quite interesting.<\/p>\n<p>Some of the merits include:<\/p>\n<ul> Fast compile times. Wicked fast.<br \/>\nFamiliar C like syntax.<br \/>\nEase of programming &#8211; a pseudo marriage of C and Python.<br \/>\nBuilt in concurrent process execution and messaging.<br \/>\n(MPI clustering and CUDA are under discussion.)<br \/>\nSupport for AMD64, x86 and ARM<\/ul>\n<p>New languages come along all the time. So why should this one be any different?<\/p>\n<p>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 &#8211; 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 &#8211; it could very well fill a perfect niche. This just might be the start of something grand.<\/p>\n<p><iframe loading=\"lazy\" title=\"The Go Programming Language Promo\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/wwoWei-GAPo?start=50&#038;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p><span style=\"color: #3366ff;\">Official Sites<\/span><\/p>\n<p><a title=\"http:\/\/golang.org\/\" href=\"http:\/\/golang.org\/\" target=\"_blank\">http:\/\/golang.org\/<\/a><\/p>\n<p>Install instructions, beginning tutorials, etc.<\/p>\n<p>This site also provides a cool browser based write-compile-run environment where you can achieve instant gratification with Go.<\/p>\n<p><a title=\"http:\/\/code.google.com\/p\/go\/\" href=\"http:\/\/code.google.com\/p\/go\/\" target=\"_blank\">http:\/\/code.google.com\/p\/go\/<\/a><\/p>\n<p>The actual Google code site.<\/p>\n<p><span style=\"color: #3366ff;\">Getting Started<\/span><\/p>\n<p>To get a feel for the language and start using it immediately, you might want to read the sample hello world in the <em>writing programs<\/em> section of the <a title=\"Go Language Install Instructions\" href=\"http:\/\/golang.org\/doc\/install.html#writing\">install instructions<\/a>.<\/p>\n<p>You can execute Go programs using the above mentioned browser based compiler and run time tool.<\/p>\n<p>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.<\/p>\n<p>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.<\/p>\n<p>Nifty Cool Bonus: Note the following comment from the install instructions on how the Go linker works:<\/p>\n<p><em>There is no need to list <code>hello.6<\/code>&#8216;s package dependencies (in this case, package <code>fmt<\/code>) on the <code>6l<\/code> command line. The linker learns about them by reading <code>hello.6<\/code>.<\/em><\/p>\n<p><span style=\"color: #3366ff;\">Other References to the language:<\/span><\/p>\n<p>http:\/\/en.wikipedia.org\/wiki\/Go_%28programming_language%29<\/p>\n<p>A reference for GO language bindings can be found at:<\/p>\n<p>http:\/\/go-lang.cat-v.org\/library-bindings<\/p>\n<p><span style=\"color: #3366ff;\">Scientific Computing<\/span><\/p>\n<p>The suitability of Go for scientific computing is discussed in an interesting Google Groups thread <a title=\"Go and Scientific Computing\" href=\"http:\/\/groups.google.com\/group\/golang-nuts\/browse_thread\/thread\/fd5a197e78814d91\/97bf58fea00d2297?q=cuda&amp;lnk=ol&amp;\" target=\"_blank\">here<\/a>.<\/p>\n<p><span style=\"color: #3366ff;\">Syntax Highlighting<\/span><\/p>\n<p>Exploring the misc\/ sub directory shows the source includes syntax highlight files for Vim, Kate and other editors as well as some other goodies.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; &nbsp; 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 &#8211; a pseudo marriage of C and Python. Built [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,6],"tags":[80,81],"class_list":["post-666","post","type-post","status-publish","format-standard","hentry","category-it-adventures","category-linux","tag-go-language","tag-scientifc-computing"],"_links":{"self":[{"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/posts\/666","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/comments?post=666"}],"version-history":[{"count":5,"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/posts\/666\/revisions"}],"predecessor-version":[{"id":675,"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/posts\/666\/revisions\/675"}],"wp:attachment":[{"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/media?parent=666"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/categories?post=666"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/tags?post=666"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}