Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Go was introduced as a system programming language, but I've noticed many start-ups use it as a web development language. My confusion is:

  • What kind of software is meant to be written in Go?

  • What new features does Go bring that other programming languages do not have?

share|improve this question
    
OR.... maybe you've got the right idea about Go and it's the start-ups that are confused.... ;) –  FrustratedWithFormsDesigner Aug 13 '12 at 14:26
2  
In my opinion the question should be more about why is there a need for a new programming language. what are the problems in other languages that go solves. or is go more about influence/control/politics/conspiracy that about technical reasons. –  k3b Aug 14 '12 at 4:24
add comment

closed as not constructive by Bill the Lizard, Tom Squires, Matthieu, Walter, Jalayn Aug 16 '12 at 6:39

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

1 Answer

up vote 12 down vote accepted

What kind of software is meant written in Go?

Go is used in many ways. Google uses it for many purposes even within the company. It is also supported by the Google App Engine which means you can write web apps in it. Just by looking at these two examples, you know that Go has a infinite uses, so you can't really say that Go is suited for project X.

For example, look at a language like Python. It has been used billions of times by millions of people, but that doesn't mean they were all doing the same type of thing. Some were processing text, some were building web apps, some were generating Stack Overflow spam. When a language is as general purpose as Python and Go, you can't limit the language and say "This is a web development language!".

Now look at a language like Javascript. When you think Javascript you should automatically think web development. Why? Because that's all that JS can do! You're not going to be developing an app for a desktop using Javascript (unless you use special software)!

So, seeing as Go is a general-purpose language, we're not going to limit it here.

Is Go comparable to C/C++, Javascript or Java/C#?

  • Yes, Go is comparable to C and C++.
  • Yes, Go is comparable to Javascript.
  • Yes, Go is comparable to Java/C#.

But the 3 bullets above are useless. Why? Because:

  • Yes, Go is comparable to Python.
  • Yes, Go is comparable to Objective-C.
  • Yes, Go is comparable to Ruby.
  • Yes, Go is comparable to Prolog.
  • Yes, Go is comparable to PHP.

I can go on and on, and find similarities between every single programming language known to man. I'm sure you can find the language that is most similar to Go, but does it really help you in any way?

So, to conclude my answer:

  • Go is a general purpose programming language that can be used in an infinite amount of situations in many fields of work.
  • You cannot limit this language to one area, as it can do many things.
  • It would be pointless to try to compare a general purpose language to another one, unless you want to get technical about it (e.g. does it have a garbage collection).

Addendum

It seems I may have misunderstood the question a bit. Google Go is general purpose, and is mainly comparable to C/C++, although some people think the latter is much better.

According to Google Engineer Robert Pike, Go is meant for "big software". It is meant for quick, maintainable software. It is a systems programming language, meaning, well, it's good at programming your system.

Basically, Go can be used for many things, but it's not mainstream. There are not enough people using it for one thing to say that it is a web development language or otherwise.

share|improve this answer
    
I wouldn't really compare imperative to declerative language (Prolog). Though you can achieve the same results with both of them, the programming style is vastly different. –  usoban Aug 13 '12 at 14:51
    
@usoban I was actually going for the fact that I can find similarities in all of them. –  Dynamic Aug 13 '12 at 14:52
6  
However, despite being general-purpose, there are times you'd prefer C over Python (hardware manipulation), Java over Python (Android, excluding Jython), Javascript over any of the others (in-browser interactivity), and so on. I think the OP is asking, is there any context where Go is preferable over the others? –  Izkata Aug 13 '12 at 21:54
    
@Izkata I see what you mean. I'll add that. –  Dynamic Aug 13 '12 at 22:18
    
It is also interesting that it is actually becoming more and more popular: google.com/trends/explore#q=golang –  Michael Apr 10 at 8:48
show 1 more comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.