Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Kubernetes was transpiled to Go from Java, so I wouldn’t use it as an example in support of your point. (Read the source code; it’s pretty obvious — and it’s been confirmed elsewhere.). Some components such as etcd, however, are pure Go.


And is etcd significantly better than Zookeeper ? Not really. So not a great example for Go's supremacy.

Also with GraalVM you can equally support low memory, fast startup use cases.


Etcd may not be, but Consul is in my experience substantially easier() to run in production than ZK, and is also written in Go. I’d say this is nothing to do with implementation language and much more to do with a more understandable consensus model.

( based on having spoken to hundreds of operators of both over the last few years, while (disclaimer) working for HashiCorp and other distributed system vendors, but also having personally run both at serious scale)


I’m not sure that people are arguing about “supremacy” as much as they are arguing that Go was an attractive choice for the authors vis-a-vis other languages.

Getting into language or tool superiority arguments without deeply analyzing the environmental factors and use cases seems like a pointless exercise to me, and ought to be discouraged here IMO.


> And is etcd significantly better than Zookeeper ? Not really. So not a great example for Go's supremacy.

ZK is using Paxos and Etcd is using Raft. It's difficult to compare languages in this case as you will compare consensus algorithms mostly.

> Also with GraalVM you can equally support low memory, fast startup use cases.

How is GraalVM performance this days? Last time I've checked[1] it was a lot slower than JIT.

1. https://benchmarksgame-team.pages.debian.net/benchmarksgame/...


ZooKeeper uses a custom atomic broadcast protocol, Zab, not Paxos: https://cwiki.apache.org/confluence/display/ZOOKEEPER/Zab+vs...

(Atomic broadcast can be reduced to consensus, but frames the problem differently.)


Sure, Go didn't turn out to be well suited for distributed systems either. But neither are JVM languages.


Sandboxed network classloaders were a big win for Hadoop and Spark.


Is the JVM's sandboxing still supported, patched and believed to be secure? I had assumed they gave up on it when they removed applet and webstart support.


Thought it over and you're right, Spark has some SecurityManager glue I've vaguely glanced at, but HDFS relies more on Kerberos than anything in-proc with the workers. IPC into an opaque worker binary would be a lot more painful but can be made to work.




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

Search: