News for hackers. Stuff that matters.
Re:Why I Program in Go by zaphar on Saturday January 05, 2013 @09:02PM (#5014942)
My day job involves working with Java and C++ on 10+ year old systems. All of my hobby or side projects are in Go these days with occasional diversions into haskell, ML or various Lisps.

So I'll try to impart some understanding of why I would switch to Go from Java or C++.

First lets get some things out of the way. Go is fast enough and getting faster very quickly and it definitely has a smaller memory footprint. So when compared to java and C++ in those dimensions it holds up just fine but that might not be enough to sway someone over to the Go camp.

It's about what else Go has:

* Go is a batteries included language. The stdlib has almost everything you need to get started much like python does.

* Go is fast for development. I mean really fast. I mean like using Lisp in a REPL fast (almost). I really can't express how fast it's development speed is adequately just trust me its really really fast. This is not just about how fast it compiles although that's part of it. (I've literally been able to write, compile, and run a go "script" faster than an equivalent python script.)

* Go makes concurrency easy to get right. I haven't seen any other language get this so right since Erlang.

* Go is concise. There is no wasted typing. It's easy to read and it's easy to write. Every feature of the language is orthoganal. And it tells you quickly when you've done it wrong.

* Go does OO right. Code reuse through composition not inheritance. Polymorphism through interfaces not inheritance. I never have to worry about it with Go. C++ or java? yeah I've got some inheritance related war stories there.

All of these things exist in other languages but Go is the only language where they all exist together. This is reason enough to switch to Go but there's more.

Go's future is bright. I don't say this because it has celebrity tech people behind it. I say this because the foundation they are laying demonstrates the core team knows what they are doing. Here's some examples.

* Go comes with all the tools you need to programmatically understand Go code. Parser, Type checking, Static analysis is all available via the stdlib. As a result GoCode which adds IDE functionality to the EDITOR of your choice came on the scene very quickly. Java doesn't have this. C++ doesn't have this. Go made it possible to create an IDE as a service with minimal effort. Besides Gocode you also have gofmt. Never worry about code formatting again. gofmt will reformat it for you and it will never break your code. It's 100% safe. I am aware of no other language excepting lisp with this functionality.

Lastly I want to address your "a lot less powerful" comment. I think it's false. In now way is Go less powerful than Java. It's fast enough to be in the same league as java. It has a lower memory footprint than java. It compiles faster than java. And the language itself is if anything more powerful and expressive than java. It has closures, It has interfaces that are just as typesafe and yet easier to use than java.

In fact I'll sum it up in one word: Go is relaxing.

Re:Why I Program in Go by pron on Saturday January 05, 2013 @09:31PM (#5015013)
Oh, I don't doubt many things can be done much better in other languages than Java, only why stop at Go? Clojure pretty much hits every single one of your requirements, it's more modern and expressive than Go, gets concurrency better, and it's about as slower than Go as Go is slower than Java -- and getting faster. Also, you don't have to give up the monitoring and instrumentation the JVM gives you, as well as the vast Java ecosystem.

I'm not saying Go isn't better than Java -- I'm sure it is. My main point is this: if I want to relax, there are more relaxing languages than Go; if I really need JVM-like performance, I'd rather go with Java and not relax as much; and if I need both -- there's Clojure, Scala, Kotlin (soon).

This leaves one point: RAM footprint, which I'll concede. But stacking that against the JVM's monitoring and large ecosystem, I'll take the JVM any day. So, Go is nice. Really nice. But not nearly nice enough to even consider abandoning the JVM (unless you're memory-constrained, in which case the JVM was never an option).

Also:

> Go makes concurrency easy to get right. I haven't seen any other language get this so right since Erlang.

I'm not so sure about that. If I'm not mistaken, most Go objects are mutable and can still be passed as messages.

> Go comes with all the tools you need to programmatically understand Go code... Java doesn't have this.

It does since Java 6: http://docs.oracle.com/javase/6/docs/jdk/api/javac/tree/inde...

Re:Why I Program in Go by zaphar on Saturday January 05, 2013 @10:15PM (#5015102)
> I'm not so sure about that. If I'm not mistaken, most Go objects are mutable and can still be passed as messages.

This is actually a complex subject. Go has mutable objects yes. But it also doesn't treat everything like an reference type. You have to send a pointer as the message if you want the receiver to be able to modify the object you sent. (slices and maps are the exception to this) I actually don't think immutability is as key to concurrency as it gets hyped to be. Clojure which I've used and enjoyed does tend to get in your way with the immutability by default.

This to me makes Clojure less relaxing. In fact Clojure is not relaxing it's challenging which can be enjoyable but I wouldn't say it's what I want to do everyday for my job. Go I could easily see myself doing it everyday.

As I said Go has a lot of good qualities all in one package. Clojure has some of those qualities but not all of them.

The pointer to the compiler api is interesting. I hadn't seen it before. I don't see any way to serialize a source tree in there but that might be just for lack of searching. I wonder why things like gofmt and company don't exist in the java toolchain already. I mean outside of third party IDE's.

Re:Why I Program in Go by dizzystar on Sunday January 06, 2013 @12:14AM (#5015392)
>> * I actually don't think immutability is as key to concurrency as it gets hyped to be. Clojure which I've used and enjoyed does tend to get in your way with the immutability by default.*

I don't want to join into a language war, but I wanted to point out two things with this statement:

1- I can show you video lectures from 1985 that discuss mutability -vs- immutability in concurrent systems. Immutability won this war, at least in the research realm, 30 years ago.

2- Rich Hickey worked on massive telephone systems and created Clojure, at least in (large) part, out of frustration of dealing with mutation.

So there's a long line of research backed by "real world" experience showing mutation not holding up well for concurrency. Erlang is another example.

Regardless, I do agree that immutability may not be what it is hyped up to be, especially if you are looking for the mythical silver bullet, but it most certainly isn't over-hyped if you compare it to mutation, and the ideas are still quite young and being tested. Give it 20 years and I suspect there will be another paradigm shift at some point.

Re:Why I Program in Go by zaphar on Sunday January 06, 2013 @12:43AM (#5015468)
My point is that Go gives you the option of immutability. Not immutability or something in between. I frequently send messages using non reference types which incurs a copy but means that I don't have to worry about who owns this code. It's easy since Go has pointer and non pointer types. Java has reference types and you have to design the object to be immutable by hiding fields behind methods and using annotations. Clojure goes to the other extreme. Go sits in the middle. Which is relaxing.
Re:Why I Program in Go by jasonjackson on Sunday January 06, 2013 @07:06AM (#5016108)
Go can't do immutable updates efficiently (yet) because it doesn't have a persistent data structure implementation for vectors, maps, sets, etc.
Re:Why I Program in Go by Evbn on Sunday January 06, 2013 @11:31PM (#5019350)
Java has a keyword 'final' for immutable objects.
Re:Why I Program in Go by laureny on Sunday January 06, 2013 @12:39PM (#5016939)
> 1- I can show you video lectures from 1985 that discuss mutability -vs- immutability in concurrent systems. Immutability won this war, at least in the research realm, 30 years ago.

Maybe, but concurrency based on mutability seems to have won this war in the real world these past thirty years.

Immutable systems might be easier to design in theory but we haven't seen this proven in the battle field yet, and the fact that most of the concurrent code today runs on mutable structures shows that it can be done.

Re:Why I Program in Go by DennisP on Sunday January 06, 2013 @01:31PM (#5017132)
Immutability has worked out really well for a lot of real-world systems built with Erlang.
Re:Why I Program in Go by laureny on Sunday January 06, 2013 @05:03PM (#5017944)
The main (and close to only) user of Erlang was Ericsson, and here is what the Wikipedia has to say about it [1]:

"Shortly thereafter, Erlang was banned within Ericsson Radio Systems for new products, citing a preference for non-proprietary languages. The ban caused Armstrong and others to leave Ericsson"

Not exactly a strong endorsement for Erlang.

[1] http://en.wikipedia.org/wiki/Erlang_(programming_language)

Re:Why I Program in Go by Evbn on Sunday January 06, 2013 @11:34PM (#5019364)
"The ban caused Armstrong and others to leave Ericsson.[6] The implementation was open sourced at the end of the year (1998).[3] The ban at Ericsson was eventually lifted, and Armstrong was re-hired by Ericsson in 2004.[6]"

It is really hard to imagine that you made that excerpt in good faith. Read the very next sentence in the article.

Re:Why I Program in Go by pron on Saturday January 05, 2013 @10:35PM (#5015162)
Alright, I'm sure some people find Go's particular combination of features appealing. For me, a language has got to be so unbelievably awesome to consider leaving the JVM, and seeing that some of the most awesome languages target the JVM, that language better do something that would truly impress a veteran like me. There's only one non-JVM language that I'll use for some very specific applications, that I think is all that: Erlang.
Re:Why I Program in Go by cgag on Saturday January 05, 2013 @10:49PM (#5015201)
I'm not sure if it's just a mindset thing or the stuff I've used it for, but I've never felt the immutability got in the way, it's one of the things I miss most when using other language.
Re:Why I Program in Go by jlgreco on Saturday January 05, 2013 @09:57PM (#5015070)
> most Go objects are mutable and can still be passed as messages.

Go makes it easy to get right. It doesn't make you get it right.

Re:Why I Program in Go by ericbb on Saturday January 05, 2013 @11:13PM (#5015254)
You claim (as I understand):

    (Java + Clojure) > Go && (Java + Scala) > Go
That stance seems to require a low weight on the cost of conceptual and tool-chain overhead. I haven't measured, but I'd guess that the language spec of Go is shorter than the specs of each of those other languages.

Edit: Fix spelling of "Clojure".

Re:Why I Program in Go by pron on Saturday January 05, 2013 @11:23PM (#5015278)
My claim is that Go's advantages are far, far too small to outweigh not running on the JVM. (also, I think Clojure > Go -- no need for Java in the equation -- but that's not my main point)
Re:Why I Program in Go by ericbb on Sunday January 06, 2013 @12:20AM (#5015405)
You see the JVM as an asset. Many consider it a liability.

And programmers in the New Jersey school (see Worse is Better) are unlikely to ever stomach Clojure.

These differences are more in the realm of deep allegiances and HN comments will probably be limited to revealing allegiances--they have little chance to sway the reader one way or the other.

Might as well say, "MIT type with love for the JVM? Choose Clojure. New Jersey type with love for native code? Choose Go".

Re:Why I Program in Go by pron on Sunday January 06, 2013 @05:03AM (#5015918)
I realize I've started a pretty ridiculous language war; that was not my intent. But I still cannot understand why anyone would want to use a language that is mostly meant for non-constrained environments, does not provide some major productivity advantages over JVM languages while being slower than JVM languages. I would totally consider using use Go if it targeted the JVM.

You say some people consider the JVM a liability. Can you please explain why? As far as I can see, the JVM has two disadvantages: a high RAM footprint and a slow startup time. But on server-class hardware (and I believe that's probably the main environment for Go), it's hard to beat the JVM's performance, and nothing even comes close in providing similar monitoring. So -- and I'm asking this completely seriously -- why would anyone consider the JVM a liability in such an environment?

Re:Why I Program in Go by jasonjackson on Sunday January 06, 2013 @07:09AM (#5016110)
I don't understand either. Let history decide, we use Clojure & Java for server-side stuff it saves us countless hours/problems.
Re:Why I Program in Go by jacquesm on Sunday January 06, 2013 @10:35AM (#5016538)
I have another problem with the JVM and it's oracle.
Re:Why I Program in Go by pretoriusB on Sunday January 06, 2013 @08:32AM (#5016262)
>I haven't measured, but I'd guess that the language spec of Go is shorter than the specs of each of those other languages.

Doesn't matter, since you'll find huge large holes in libraries, tooling, ecosystem and maturity in Go which can be easily filled in Java+Scala/Clojure, and which nullify any "smaller spec" advantage.

For example there is not one mature and complete web framework in Go. Several for all of Java/Scala/Clojure. There is no good RBDMS support in Go. As good as it gets for the JVM languages. Etc...

Re:Why I Program in Go by Evbn on Sunday January 06, 2013 @11:38PM (#5019382)
Naturally, Go users do not believe that complete web frameworks or RDBMS support is a desirable feature.
Re:Why I Program in Go by stock_toaster on Monday January 07, 2013 @12:42AM (#5019582)
That is a bit disingenuous. There is an SQL interface driver in the stdlib here[1]. There are several[2] implementations available which build apon it.

There are several[3] (scroll down to the relevant section) web frameworks too.

I personally tend to prefer using the gorilla toolkit[4], in combination with the stdlib http and templating stuff. It should be noted that my current usages for Go include an API service, command line tools, and a proxy. Certainly not much html generation going on there by any means.

[1]: http://golang.org/pkg/database/sql/ [2]: http://code.google.com/p/go-wiki/wiki/SQLDrivers [3]: http://go-lang.cat-v.org/pure-go-libs [4]: http://www.gorillatoolkit.org/

Re:Why I Program in Go by zimbatm on Sunday January 06, 2013 @09:41AM (#5016407)
It depends what you want to build I guess. Go has a much smaller surface or things to learn if you know POSIX already. It's fast startup times makes it also a good contender for command-line tools.
Re:Why I Program in Go by mark_l_watson on Sunday January 06, 2013 @01:02PM (#5017022)
+1 for alternative languages like Clojure and Scala.

I recently (more or less) shut down my consulting business to do other things and since I no longer need (so much) to fit in with customer's tool chains, I decided on Clojure as a great general purpose language that is also a lot of fun to develop with. I could make the same comment about Scala or JRuby if I had chosen either of those fine languages.

Really, the JVM ecosystem rocks.

Re:Why I Program in Go by pkulak on Sunday January 06, 2013 @12:17AM (#5015398)
I have a hard time believing anything can beat or even match the garbage collection performance of the JVM. Not that there is something special about the JVM, just that there have been _so_ many smart people working on the problem for so long now. And for good performance doing server tasks (ie, not computational tasks) exceptional GC is a must. Can a GO program handle a workload that creates tens/hundreds of thousands of objects per second for weeks or months without leaking memory? That's why I use Java. If I don't need that kind of performance, I use Ruby. I'm still just not sure where GO would fit into my workflow, though it looks really promising. Especially the concurrency model that you currently have to awkwardly bolt on to Java with something like Akka or JetLang.
Re:Why I Program in Go by fusiongyro on Sunday January 06, 2013 @01:53AM (#5015633)
I have to raise the eyebrow to that. I have had more GC problems with Java than any other language. Geniuses fuck up too, and when they do it's pronounced "OutOfMemoryError: PermGen space."
Re:Why I Program in Go by pjmlp on Monday January 07, 2013 @12:14PM (#5021972)
That error is specific for Sun/Oracle's JVM.
Re:Why I Program in Go by codygman on Sunday January 06, 2013 @07:01AM (#5016099)
Remember Go doesn't have objects, it only has structs which are most likely (and should be, but I haven't verified) much lighter weight than the objects you might be used to in Java.

As far as the creating tens/hundreds of thousands of structs per second for weeks or months without leaking memory, I'll get back to you on that once my code has been active that long ;)

Re:Why I Program in Go by jlouis on Sunday January 06, 2013 @07:26AM (#5016148)
Usually the in-memory representation is the same for objects and structs, given a garbage collected language.
Re:Why I Program in Go by codygman on Sunday January 06, 2013 @07:40AM (#5016178)
Ok, I'll have to test it sometime. (if anyone has tested it, let me know)
Re:Why I Program in Go by pkulak on Sunday January 06, 2013 @01:01PM (#5017017)
If you have something really intensive running GO, I genuinely would love to hear how it's going after some uptime. Thank you.
Re:Why I Program in Go by Evbn on Sunday January 06, 2013 @11:41PM (#5019392)
Go has optional stack allocation, which means the GC doesn't need to handle short lived objects.
Re:Why I Program in Go by estavaro on Saturday January 05, 2013 @11:04PM (#5015232)
You need to be commended for defending Go.

I don't think the Go developers hide the fact that they mean go as a Systems level programming language. It has higher level features, but the developers don't really mind the fact that Go isn't going to be delivering a whole lot of high level features. Maybe if they come in the form of libraries...

Funny thing about Go is that as a compiled language, folks often need to send the source-code to the deployment servers to compile on them too. I seem to recall that deployment servers shouldn't need to have development tools which were themselves exposing the servers to bad intention by bad folks. It's just hard to keep the separation I guess.

Go error handling is not to be taken lightly just because you can ignore error codes or just print the error and be done with it. I seem to recall that the core developers of Go demanding that Go users try harder to handle errors. Something the compiler doesn't really "enforce".

I prefer Dart to Go because Dart starts from a higher level of abstraction already. Also Dart has been the result of two years of development even if many of the Dart developers also had plenty of experience with developing past languages and tools.

OOP already gives us a lot of bondage and discipline. No need for more incentive by the compiler. Sometimes a couple of extra tools can help our hands without it being forced by the compiler with every run. Say a tool that helps to tell us which methods or variables aren't being used. Go forces us to deal with that on every compiler run. (Even if it can be disabled, but the Go developers prefer to avoid proliferation of config options.)

It's good to have Go and Dart around. So it's not just legacy (Java) and Microsoft (C#) dictating the standards.

Re:Why I Program in Go by tptacek on Sunday January 06, 2013 @12:20AM (#5015403)
Funny thing about Go is that as a compiled language, folks often need to send the source-code to the deployment servers to compile on them too. I seem to recall that deployment servers shouldn't need to have development tools which were themselves exposing the servers to bad intention by bad folks. It's just hard to keep the separation I guess.

This is what systems administrators with grey beards thought in the 1990s. A moment's thought about what an attacker who can run a compiler can do instead of running a compiler should be enough to inform you about how silly the idea is in practice.

Re:Why I Program in Go by jlouis on Sunday January 06, 2013 @07:29AM (#5016153)
It may have slowed down the occasional attacker who had no access to a HP-PA RISC cross compiler for his platform. But in todays world there is no reason.
Re:Why I Program in Go by meaty on Sunday January 06, 2013 @12:12PM (#5016821)
Well back in the 90s we kept the machines lean more because disk space was fucking expensive.
Re:Why I Program in Go by tptacek on Sunday January 06, 2013 @02:57PM (#5017487)
I'm not saying that minimal builds are silly, just that the idea of keeping compilers off systems as a security feature is.
Re:Why I Program in Go by wglb on Sunday January 06, 2013 @02:48PM (#5017456)
Did they have /bin/sh or /bin/bash or /bin/csh?
Re:Why I Program in Go by meaty on Sunday January 06, 2013 @04:01PM (#5017709)
Yes but they were only available to one user and that could only log in via the console server.

Joy to ACLs, custom Solaris builds and proper kit (ultra enterprise units the size of a full 42u rack).

I miss those days.

Re:Why I Program in Go by stock_toaster on Saturday January 05, 2013 @11:45PM (#5015327)

  > Funny thing about Go is that as a compiled language, folks often need
  > to send the source-code to the deployment servers to compile on them too.
They do? Why not build as part of a CI run? Or via cross compile?

It is generally much easier to deploy a versioned statically compiled binary, compared to rolling out code to production in some languages (ruby, python, etc).

Re:Why I Program in Go by zaphar on Sunday January 06, 2013 @12:46AM (#5015474)
I don't know that I was defending Go so much as describing why someone would want to use it. It's fine for someone to say they really like the jvm. I like it to. Clojure and Scala are fun languages. The JVM has a lot of really cool technology behind it.

But when someone says they don't understand why someone else would want to do things differently I just naturally want to help them understand :-)

Re:Why I Program in Go by djhworld on Sunday January 06, 2013 @06:14AM (#5016023)
From my experience if you're running Linux on your local machine and Linux on your server then you can distribute a Go binary to your server and it will run fine. Even if they are different distros.

If you have differing operating systems then you have problems, but that's be a build process problem rather than a problem with Go.

Re:Why I Program in Go by laureny on Sunday January 06, 2013 @12:47PM (#5016962)
> Go error handling is not to be taken lightly

The fact that Go relies on return codes instead of exceptions to express errors is what will fundamentally limit the language's adoption, in my opinion.

Anyone who was writing code in the 80's and 90's remembers how fragile and buggy software written this way is (Windows' HRESULT, anyone?). Exceptions have considerably increased the robustness and reliability of millions of lines of code, the software community is not going back to error codes.

Re:Why I Program in Go by Evbn on Sunday January 06, 2013 @11:45PM (#5019410)
Go doesn't rely on return codes. Go has multiple return, and has error objects.

Microsoft and Google eschew exceptions, because they cause huge invisible problems in large systems.

Re:Why I Program in Go by code_martial on Sunday January 06, 2013 @01:15AM (#5015547)
> Funny thing about Go is that as a compiled language, folks often need to send the source-code to the deployment servers to compile on them too.

Doesn't seem like a situation precipitated by something in Go. I've found cross-compilation to be very easy and effective. Having your build setup on the deployment servers would negate the advantage of the dependency free single-binary deployment.

Re:Why I Program in Go by enneff on Sunday January 06, 2013 @01:32AM (#5015584)
> Funny thing about Go is that as a compiled language, folks often need to send the source-code to the deployment servers to compile on them too.

Not in my experience. Nearly everyone I know who deploys Go code does it by shipping a binary. One of the benefits of static linking.

Re:Why I Program in Go by jlouis on Sunday January 06, 2013 @07:31AM (#5016160)
Go is far more innovative than Dart. Dart is, roughly, "We want to have a Java-clone in the browser". Go actually makes an effort at cleaning up C while adding a structural OO model and building in concurrency.
Re:Why I Program in Go by spankalee on Sunday January 06, 2013 @03:06PM (#5017516)
I'm sorry, but calling Dart a Java-clone is a ridiculous assertion. Care to back it up?
Re:Why I Program in Go by patrickg on Sunday January 06, 2013 @08:15AM (#5016234)
+1. For me a killer feature is that I easily create executables for lin/mac/win on my machine and don't have any dependencies at all (JVM for example).
Re:Why I Program in Go by pron on Sunday January 06, 2013 @09:48AM (#5016426)
Oh, absolutely! Small executables would be a good fit for Go (provided you don't need a GUI, since AFAIK Go doesn't have a UI toolkit). Only, in that case, isn't a whole new language ecosystem a bit of an overkill to avoid some of the inconveniences you'll have using C/C++?

Sorry, I've yet to be shown a large enough class of problems where Go would give a significant enough an advantage to abandon rich and well-established ecosystems.

Look, there's no doubt Go is nice, and, as such, some people would use it for some tasks, just because it's there. But if I run a company building large software, why would I switch to an entirely new ecosystem that's incompatible with just about everything unless there is something spectacular that Go can do that no other solution can? Or, at the very least, something extremely hard that Go does very easily. Erlang, which is also incompatible with just about everything (though it might even be more compatible with C than Go is) does some spectacular things. If Go's killer feature is small console programs that don't require dependencies, then, well, it will see very little serious adoption.

Re:Why I Program in Go by patrickg on Sunday January 06, 2013 @10:15AM (#5016482)
> Only, in that case, isn't a whole new language ecosystem a bit of an overkill to avoid some of the inconveniences you'll have using C/C++?

Sure. I've started from scratch and Go seemed to me like the perfect match (not that there aren't any other choices, but it came right into my front door and I said: why not?)

Re:Why I Program in Go by pjmlp on Monday January 07, 2013 @12:15PM (#5021977)
There are native compilers for Java as well, although not for free.
Re:Why I Program in Go by Peaker on Sunday January 06, 2013 @07:47AM (#5016192)
> Go makes concurrency easy to get right. I haven't seen any other language get this so right since Erlang.

I don't understand this: You claim you've used Haskell? Haskell beats Go's concurrency out of the water.

Not to mention conciseness...

Re:Why I Program in Go by Evbn on Sunday January 06, 2013 @11:49PM (#5019425)
And space leakiness...
Re:Why I Program in Go by Peaker on Sunday January 13, 2013 @07:24AM (#5050626)
None of my Haskell programs have any space leaks.

While go makes a lot of correctness bugs really easy to accidentally make, Haskell does make a certain class of leak easier to maker. I'd personally take a correct program that leaks in some scenario over an incorrect one that does the wrong thing.

Re:Why I Program in Go by Raphael_Amiard on Sunday January 06, 2013 @10:45AM (#5016562)
Just one point :

> C++ doesn't have this [Tools for writing IDEs quickly]

Well indeed it does, libclang does exactly that, and quite well. As a result, you have plugins for Vim, Sublime Text and others providing autocompletion and in editor compiltation and error reporting.

Re:Why I Program in Go by MichaelSalib on Sunday January 06, 2013 @12:19PM (#5016844)
And it only took 25 years since the language was born for the those tools to become available!

In all seriousness, C++ is extremely difficult for automated tools to work with, including C++ compilers.

Re:Why I Program in Go by tocomment on Saturday January 05, 2013 @09:06PM (#5014950)
How did you write a go script faster than a python script? That sounds intriguing.
Re:Why I Program in Go by jlgreco on Saturday January 05, 2013 @09:56PM (#5015067)
The time it takes to 'go run' a go program is about the same as the time it takes to run a python program. If you are able to write Go code faster than Python code (that is the important "if". I can, some cannot. It's a personal thing.), then Go will be faster than python.
Re:Why I Program in Go by zaphar on Saturday January 05, 2013 @09:09PM (#5014956)
edit script in vim.

use :!go run %

It will compile and run the script so fast you will swear it was an interpreted language except it runs way faster than an interpreted language.

Re:Why I Program in Go by oinksoft on Sunday January 06, 2013 @05:24AM (#5015941)
You have to write it first for the Go example (:w | !go run %). For Python and most interpreted languages you can simply do :w !python.