

Why We Think GoLang Is Ready For Early Stage Startups - cosminro
http://www.jellolabs.com/blog/why-golang-is-ready-for-early-stage-startups.html

======
andreisavu
Did you also consider Java or any JVM-based language?

Modern Java is a lot less verbose than it used to be and it knows a lot of
tricks (e.g. akka, play framework, dropwizard, Rx, dependency management, good
IDEs, advanced profiling and instrumentation etc.)

Netflix is an excellent example of how you can leverage the JVM to build one
of the most advanced system architectures hosted on AWS.

------
latentvar
We've been using Go for our startup as well and love it. Having programmed in
a variety of languages, including Java, Scala, and Python, I have to say that
Go has been as easy to work with if not easier than my previous experiences
with other languages. Particularly awesome is the tooling they've built around
the language. Dependency management is a cakewalk compared to other systems
(say goodbye to Spring/Maven/etc. headaches) and compile time is extremely
fast. Plus you get all the benefits of static type checking without much
verbosity.

------
lmm
What on earth were you comparing with to come up with go as having stricter
code checking?

I'd say early stage startups are probably the least likely place for go to be
a good choice - it sacrifices a lot for the sake of performance, which only
matters once you've made it. As they say, scaling is a nice problem to have.

(Edit: and like Java it makes other sacrifices in the interests of being
maintainable by less talented engineers. Again, that's something big companies
need, not early stage startups)

~~~
Okvivi
What we are discovering is that actually it doesn't sacrifice as much as you'd
think - and I think that's the point we are trying to make with our article.

You get both the performance, and you get a very lightweight language - I'd
say almost as easy to write as Ruby or Python - with great open source support
and growing and with a great community around it.

~~~
lmm
Many modern languages in any field are almost as easy to write as Ruby or
Python, have great open source support and a great community.

If you use Ruby or Python, you get extreme dynamism that makes things like
ActiveRecord or dealing with external semi-structured data very easy (though
you pay a performance cost).

If you use OCaml or Scala you get a lot of control over effects, making the
code very safe and easy to reason about. And the type systems let you pull out
high-level patterns in your code without going crazy, even when those patterns
are very abstract, resulting in more concise and maintainable code.

From here go looks like the worst of both worlds.

------
cygwin98
I would like to know the reasons why they rules out Java and the gangs on the
JVM such as Scala, Clojure.

~~~
Okvivi
We haven't really ruled out any of the common stack tech choices. They are all
good in their own ways, and have their own tradeoffs - and the intention here
was not to spark wars about which tool is the best.

I think the choice was much more of a proactive choice - we liked Go, we like
the way it fitted us - good for fast iterative development upfront, good for
the long term, fun to write code in and with a lot of advantages that come
with the fact that it's a language designed today - with a lot of lessons
learned from the past.

~~~
cygwin98
_> We haven't really ruled out any of the common stack tech choices. They are
all good in their own ways, and have their own tradeoffs - and the intention
here was not to spark wars about which tool is the best._

This is way diplomatic. Though for me your article has no beef, the Pros and
Cons of Go has been repeated here for so many times. I was expecting to see
the v.s. stuffs, why this, why that, your thought process and experiments.
Right, those are the beefs I wanted from your article but didn't find.

 _> I think the choice was much more of a proactive choice - we liked Go, we
like the way it fitted us - good for fast iterative development upfront, good
for the long term, fun to write code in and with a lot of advantages that come
with the fact that it's a language designed today - with a lot of lessons
learned from the past._

This is not convincing though. As much as I admire Ken Thompson and Rob Pike,
I tend to agree with the perspective that Go to C is like Plan9 to Unix. Of
course, I could be wrong and am glad to be corrected by insightful comparisons
and opinions.

~~~
Okvivi
I understand what you are saying, and indeed I am trying to be diplomatic.

Picking on Rails/Node was not my goal and I feared that a stronger comparison
between these choices would have been seen as such by the current startup
community.

At the end of the day most of these choices are tools and I truly believe that
while they have their trade-offs, they are all good from one point or another.
The point I was trying to make is that Go is a tool worth looking into as an
alternative to Rails/Node for early stage.

Unless you build the exact same product in Rails/Node/Go it's hard to make
meaningful broad comparisons - and you end up comparing lab experiments around
speed in specific toy examples, or end up comparing only certain isolated
parts of the toolset.

We are planning on writing more blog posts about our experience using it, more
into performance internals and how it all plays out - but I do feel that we'll
stay away from comparisons.

------
JulianMiller520
Love this. We made the same choice for our startup.

