

DigitalOcean droplet console rewritten in Go - raiyu
https://www.digitalocean.com/company/blog/new-super-fast-droplet-console-thanks-golang/

======
nodesocket
We ([https://commando.io](https://commando.io)) are seriously considering
switching to Go for all of our SSH connections. The built in concurrency,
bundled with great websocket support, and SSH officially supported as a
library
([https://godoc.org/code.google.com/p/go.crypto/ssh](https://godoc.org/code.google.com/p/go.crypto/ssh))
all make it a perfect candidate.

------
cliveowen
"Go’s built in net/http package means we are able to do live deploys and keep
on-going development invisible to users."

Why is that?

~~~
_ak
The only thing I can think of: net/http doesn't hide details but instead
allows you to supply your own socket from which to accept connections, which
in turns makes it possible to implement zero-downtime restarts with the help
of packages such as goagain.

~~~
flaie
Thank you, I've just checked go again, that's really cool. I'm going to use
it.

------
ecnahc515
Wish it was open source...could use a better VNC console for what we do at my
work.

~~~
regecks
I posted on reddit about how you could build this using open-source
components:
[http://www.reddit.com/r/golang/comments/23zjxr/new_super_fas...](http://www.reddit.com/r/golang/comments/23zjxr/new_super_fast_droplet_console_thanks_golang/)

tl;dr use noVNC in the frontend and the websocket proxy bit is easy.

~~~
devicenull
noVNC is pretty wonderful. It's weird they reimplemented it in another
language.

------
ajkumar25
Why is that every large company at-last rewrites their codebase in statically
typed language. This makes the newcomers confuse which language one should
learn seeing their inspiration change their official language. Is the fate of
scripting languages are same in every aspect of programming? Are they really
only suitable for rapid prototyping?

~~~
gnur
Because performance matters. And it matters more when trying to scale.

~~~
ajkumar25
Then why not write in static typed languages from the very beginning itself?

~~~
huxley
Performance is only one of many factors in deciding on a language.

Here are some other reasons that occur to me (YMMV):

* A language that is great for performance might not lend itself equally well to experimentation or initial implementation (not saying this is the case for Golang, but in my opinion it probably is for other performance-focused languages like C++).

* You as a developer might have more expertise in a dynamic language.

* The initial development language might have superior OSS libraries which allow you to get to a working application quicker (later you can replace them with your own implementations when you do the rewrite)

* Things change. Golang might have been a terrible choice when Digital Ocean was starting up. Golang is definitely reaching a tipping point as a language, but it might have become a dead-end like many other promising languages and where would you be then?

~~~
ajkumar25
Dead-end? You mean like perl?

------
WoodenChair
Are there any recent Go books that HN would recommend? Everything I see is
from 2012 but I'd really like something from 2014 simply because I presume as
an uninitiate that the platform is moving quickly.

~~~
jshen
The documentation on the Go site is really good. You don't need much more than
that. The early access book from Manning is really good so far
([http://www.manning.com/ketelsen/](http://www.manning.com/ketelsen/)) but
it's only a few chapters finished. After that I find myself reading the source
for the code in the standard lib which is well written and relatively easy to
follow.

~~~
WoodenChair
Thanks for the link - Go in Action looks like exactly what I was thinking of!

------
kintamanimatt
What was it formerly written in?

~~~
NateDad
I'd heard they were a heavy perl shop, but that might have been more backend
stuff than frontend stuff.

~~~
kbar13
vnc was previously an annoying java applet iirc

~~~
ajkumar25
Previously it was written in Perl.

------
Edmond
for anyone who might need a cloud IDE for their DO droplets, I did a short
blog post for installing HiveMind(crudzilla.com, I am the dev.):

[http://blog.crudzilla.com/2014/04/hivemind-on-digital-
ocean-...](http://blog.crudzilla.com/2014/04/hivemind-on-digital-ocean-
droplet.html)

