TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Docker and Go: why did we decide to write Docker in Go?

129 pointsby sylvainkalacheover 11 years ago

13 comments

rdtscover 11 years ago
For me it is Go vs Erlang. I see both solving similar set of problems (for me!).<p>The slides said Go is easier than Erlang. That is true in some aspects, namely syntax (Elixir to the rescue here!). Go is also easier because of static typing. Speed of compilation is awesome. Building to an executable that only depends on libc -- yes please! love that about Go.<p>I am scared about safety and fault tolerance. Ability to share memory is good for performance but a shared heap in a large concurrent application is scary to me. Not sure what I think about multiple channels and running select over them. Then it pseudo-randomly choosing one channel among those that can receive. Erlang&#x27;s focus on processes&#x2F;actors vs channel and each actor having a single mailbox somehow makes more sense to me. Having a shared heap mean faster data processing but GC cannot be fully concurrent.<p>Now passing channels inside other channels is cool, but also kind of scary to me. You can pass channels, inside channels, inside channels, can make some kind of a lazy computation chain.<p>Also I have been wondering, but couldn&#x27;t find it by doing a quick search, is it possible to build supervision trees out of goroutines like one builds supervision trees in Erlang&#x27;s OTP. Say I want to have a chat client goroutine to keep the chat up. But I want to monitor it in case it crashes (panics?) then then spawn another one perhaps. Is that possible?
评论 #6710014 未加载
评论 #6709880 未加载
leokunover 11 years ago
I love Go and want to see it succeed, but as long as &quot;why I wrote X in Go&quot; is a novel thing, Go maybe hasn&#x27;t made it yet. There are probably thousands of wonderful Python libraries and sure sometimes people decide to talk about why those chose Python, but all of these &quot;Why Go?&quot; posts feel a bit like a forced explanation to the question &quot;Why did you write X in some new language that almost nobody else is using?&quot;<p>But that isn&#x27;t true anymore. Lots of people and teams are using Go. You don&#x27;t need to explain yourself. Just write stuff in Go. Maybe even write about the process of how you wrote your app in Go, but stop making it about the language. It&#x27;s there, it works. No need to apologize, evangelize or explain yourself.
评论 #6709803 未加载
评论 #6712973 未加载
评论 #6709955 未加载
stretchwithmeover 11 years ago
Wouldn&#x27;t it be great if audio of a presentation were also available and the slides were played in sync with it?<p>Imagine if presentation software generated a coded tone for each transition that could be used later on to merge the recorded audio of the speaker and the slides into an audio slideshow.<p>Then having a video of your presentation would just be a side effect of your presentation. And it would focus on the material you wanted to present, not your image.<p>Although videos of speakers are nice, often the material the speaker is referring to isn&#x27;t visible. It really should be the visual focus.
评论 #6709849 未加载
评论 #6710898 未加载
评论 #6710425 未加载
评论 #6709750 未加载
评论 #6709867 未加载
评论 #6709699 未加载
评论 #6710057 未加载
评论 #6709749 未加载
shurcooLover 11 years ago
Comments on slide 28:<p>&quot;go get, can&#x27;t pin a particular revision&quot;<p>- There&#x27;s an elegant solution by now, see <a href="https://github.com/kr/godep" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;kr&#x2F;godep</a><p>&quot;must deal with private repos manually&quot;<p>- go get can get them via ssh using key auth, just do <a href="https://gist.github.com/shurcooL/6927554" rel="nofollow">https:&#x2F;&#x2F;gist.github.com&#x2F;shurcooL&#x2F;6927554</a>
评论 #6711850 未加载
sandGorgonover 11 years ago
if you are running latest versions of Ubuntu or Linux kernels, it is a PITA to get Docker running because of its dependence on AUFS - which is deprecated on the kernel side.<p>The better (but unknown) way of running it is to install Docker 0.7-RC4 through <i>curl <a href="http://test.docker.io" rel="nofollow">http:&#x2F;&#x2F;test.docker.io</a> | sudo sh</i>.<p>Just FYI.
评论 #6711231 未加载
viraptorover 11 years ago
Devs not aware of where and how is their software running, while ops are not aware what they&#x27;re running? That sound like a recipe for a disaster. You don&#x27;t need to know everything, that&#x27;s why there are separate teams... but the way it&#x27;s described in the slides is slightly scary to me. I&#x27;ve seen people caring only about their own area and lobbing things over the wall for other teams to take out over. It never ended well.
评论 #6709978 未加载
JulianMorrisonover 11 years ago
The solution I&#x27;ve found to the &quot;package main&quot; problem is to put the &quot;main&quot; as a <i>sub</i> package.<p><pre><code> -src-myapp-main1 \shared_code \main2 </code></pre> That way main can import &quot;myapp&#x2F;shared_code&quot;. Yes, the packaging standard is being broken for the main programs, but that&#x27;s ok, nothing needs to import them.
评论 #6710244 未加载
yeukhonover 11 years ago
What do they mean by Go is neutral?
评论 #6709911 未加载
millstoneover 11 years ago
Slide 24 says &quot;Why Go? Multi-arch build without preprocessors.&quot;<p>My understanding is that Docker is strongly tied to Linux by virtue of using Linux containers. So how does Docker benefit from the multi-arch build facilities of Go, if it only runs on Linux?
评论 #6710277 未加载
评论 #6710268 未加载
rwmjover 11 years ago
I notice that &quot;security&quot; doesn&#x27;t figure in the devops slide at all. Bundling a whole load of untracked, old libraries together and then exposing it on the web might not be the best idea in the world.
ksecover 11 years ago
I am more leaning on OSv rather then Docker at the moment. Although OSv still isn;t ready yet.
a8da6b0c91dover 11 years ago
I don&#x27;t really know anything about docker. Do you actually have to write Go to use it effectively?
评论 #6709829 未加载
jsoo4over 11 years ago
It&#x27;s painfully obvious these guys have never created a proper distro package in earnest.
评论 #6710259 未加载