3 ms·
"Go is the assembly language of cloud infrastructure" People say this about JavaScript because to run code in a browser, it has to execute as JavaScript. As a
by hyperpape 11y ago
"Go is the assembly language of cloud infrastructure"
People say this about JavaScript because to run code in a browser, it has to execute as JavaScript. As a result, there are lots of actual libraries or webapps that are written in other languages and compiled to JavaScript.
In contrast, you can do cloud computing in Java, C++, or various other languages. Go may have advantages, but compiling to Go would just be a choice.
In short, I really don't know what you meant or why you'd say it.
- bipin_nag 11y agoJavascript would be the assembly language of web i.e. what runs on your browser. Although that won't be true with the advent of Webassembly. Go is language of choice on cloud. If you ask me following is the checklist it passes: 1. Low memory footprint/good GC 2. Concurrency (goroutines) builtin 3. Great dependency (package) management 4. Compiled/closer to bare metal 5. Fast compilation If you check other languages against the list they lack at least one of the above. If you feel any other language is better suited please tell.
- thinkpad20 11y ago> Go is language of choice on cloud. I don't think this makes any sense. Javascript is the assembly language of the web because it's the only choice for the web (or more specifically, the browser). At best, any other legitimate choice will just compile to JavaScript, which is why it's thusly named. Go has no such privileged position; it's not even clear what it would mean to be the "language of choice on the cloud." You can write cloud software in any language you want, provided that the language has libraries for networking. All of the features you list are great, but none of them are exclusive to Go, nor are they required for cloud computing.
- bipin_nag 11y agoI agree that that the statements cannot be analogues. But then I never implied it. My answer was only to counter the statement that JavaScript is the assembly language, in future WebAssembly will likely take that role. Then I continued on my intended answer of why Go is the preferred language.
- codygman 11y ago> 3. Great dependency (package) management Eh... Then why are people experimenting with vendoring? > If you check other languages against the list they lack at least one of the above. If you feel any other language is better suited please tell. Ocaml checks all of them. So does Haskell (with stack package manager), with only the low memory requirement being challengeable since many aren't used to optimizing lazy evaluation.
- bipin_nag 11y agoBoth languages you suggest require more learning (both have origins in academia) and are less popular compared to Go in usage. Regarding the package management comment. If it is an experiment let results get in. Some people consider vendoring bad yet others find some use in it. If vendoring happens like it or not it wont make dependency management bad as a whole.
- themartorana 11y agoI don't think (s)he meant Assembly, but rather the language used to "assemble" an awful lot of the modern cloud infrastructure. If you use Docker or CloudFlare, which I would think covers a sizable portion of new projects, your code is passing through something written in Go. Google did a pretty amazing job of walking back the "replacement for C" talk and positioning Go as the language for web/micro/cluster/distribution/cloud/interconnected services. But maybe I misinterpreted and (s)he meant Assembly.
- mantasm 11y agoGo made choices that makes it a good language to be compiled to. Compilation-wise: it's incredibly fast and compiles to static machine binaries. Runtime-wise: it has great concurrency and communication primitives.
- technomancy 11y agoInteresting. What I've heard about Google Go is that the design choices make it very difficult to implement a repl in. So I would expect any other language that compiles to it to be subject to the same limitation, making it a rather poor fit for a Lisp... but maybe I'm missing something?