
At a crossroad: Start using Go language now? - jaredev
I have used a mixture of PHP&#x2F;Perl&#x2F;Python&#x2F;Bash for my system admin scripts in the past.  I would like to change directions and start to standardize on one language that seems more modern and would continue to enjoy high popularity going forward.<p>Would Go language be a good choice now?<p>I have limited time in becoming proficient in another language and would like to get the general pulse on if Go is currently considered to be in a state where I could start using it today in production or is Go still in a state of high flux where internal stuff still need to be more fully fleshed out before it&#x27;s considered stable?
======
0942v8653
> [is Go] currently considered to be in a state where I could start using it
> today in production

Yes.

> Would Go language be a good choice now?

No.

You've been reading way too much HN if Python isn't modern enough for you. The
only way in which Go feels more modern than Python is in its concurrency model
(which you are unlikely to need). Unless you are running into roadblocks due
to execution speed then you should really just stick with Python. If you take
the time to learn a little more Python, it should replace PHP and bash at the
very least.

If you're worried about "popularity going forward", you really shouldn't be.
Those languages you listed are going nowhere. Python seems to me a surer get
for the future than Go.

Really, Go shines when collaboratively building large systems that use
concurrency. And it puts things in your way to make sure beginner programmers
won't make mistakes, or to make sure everything is clear to read (really, list
comprehensions aren't that bad!). It goes out of its way to not be powerful.
These are not things you probably want.

Stick with Python. It's great. I use it all the time for scripting and
couldn't be happier.

~~~
jaredev
Greatly appreciate your input here. I've been digging more into Go to get a
better feeling for it and I'm arriving at the same conclusion. It's more
targeted towards programmers and remote network services, not for systems
administration.

With Python, I'm able to quickly review the script and modify it as needed
then run again right away. The complied nature of Go takes away this
advantage. I don't need screaming performance nor low-level access for vast
majority of systems admin scripts.

Looks more like Python is the better path to stick with.

------
T-A
According to Rob Pike at Gophercon 2014, and reiterated this year [1], "the
language is done". It's stable, works as advertised, has plenty of libraries,
and is used in production for many things [2].

[1] [http://blog.golang.org/open-source](http://blog.golang.org/open-source)
[2]
[https://github.com/golang/go/wiki/GoUsers](https://github.com/golang/go/wiki/GoUsers)

------
angersock
If you're just doing sysadmin scripts, Python or Ruby is pretty much exactly
the sweet spot you need. Go isn't really designed for that type of work (as
far as I know), and you won't have the go infrastructure on those machines,
whereas you probably will with either Ruby or Python.

~~~
jaredev
This was why I was interested in knowing if Go language is ready for system
admin stuff:

[http://radar.oreilly.com/2013/07/go-programming-language-
for...](http://radar.oreilly.com/2013/07/go-programming-language-for-system-
administration.html)

~~~
GFK_of_xmaspast
I haven't done sysadmin work in years and years, but I don't see why that
article makes any case at all for it.

------
lastofus
It sounds like you have "new hotness" syndrome. Port your PHP/Perl/Bash
scripts to Python. Fabric is fantastic for system admin scripts. Use Ansible
if you need something more heavy weight.

Go is a great language, but shines most for writing network services, not sys
admin scripts.

~~~
jaredev
Thanks, I've come to the same conclusion after more research into Go. Will be
moving everything to Python.

------
mattbillenstein
I think you should be thinking about tools more than a language for most ops
work.

Tools like Ansible, Saltstack, Chef, Puppet, and each one's supporting
libraries and plugins. These provide good patterns and primitives for
automating most ops-ish things.

~~~
jaredev
of course, those software packages you mentioned have their place in the world
of system administration, especially at scale. Using Go language isn't the be-
all and end-all. What I'm asking if the language is now worth shifting towards
for the long-term and to start supplanting existing scripts.

~~~
tedyoung
It depends on how low-level/from-scratch your scripts are going to be. Ruby
would be useful as its used by other config management tools, if that's
something you need, but for command-line-tool scripts, Golang would be very
useful. I'm currently converting some Python scripts into Go so that they're
smaller and don't have prerequisites (e.g., version X of Python).

