Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
At a crossroad: Start using Go language now?
3 points by jaredev on July 19, 2015 | hide | past | favorite | 11 comments
I have used a mixture of PHP/Perl/Python/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.

Would Go language be a good choice now?

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's considered stable?



> [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.


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.


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 [2] https://github.com/golang/go/wiki/GoUsers


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.


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...


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.


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.


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


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.


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.


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).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: