6 ms·
Google Go: Good For What?
- melling 14y agoHow good is the Go optimizer? I would guess that there's still a lot of room for improvement because that's not something you'd spend a lot of time on early in the life of a language.
- theatrus2 14y agoBasically, not much (depending on which compiler chain you are using). The Plan9 based compilers (which compile at light speed) don't produce great code.
- aaronblohowiak 14y agoThey don't produce great code because they are optimized for compilation speed. IIRC, the plan is to have your quick to compile compiler and your fast execution time compiler..
- thirsteh 14y agoIt's not the plan; they already exist: gc is the default, fast suite of compilers; gccgo is a Go front-end for GCC.
- aaronblohowiak 14y agoI should have been clear: it is the plan to maintain this dichotomy
- thirsteh 14y agoYes.
- thirsteh 14y agoPeople interested in generating more optimized machine code (more slowly) should check out gccgo, which is a GCC frontend for Go, rather than the default (fast) gc compiler suite.
- tptacek 14y agoFrom a previous Go blog post by the same author: Go decided to use a foreign syntax to C++, C and Java programmers. They borrows forward declarations from BASIC (yep, you heard me right…BASIC), creating declarations that are backwards from what we’ve been using for close to 20 years "Yep, you heard me right... BASIC". Consider carefully how seriously you want to take this blog.
- wtetzner 14y agoI haven't written any Go, but the FAQ (http://golang.org/doc/go_faq.html#principles http://golang.org/doc/go_faq.html#principles) says: "There are no forward declarations and no header files; everything is declared exactly once." Is the author just wrong, or has the language changed since the FAQ was last updated?
- mseepgood 14y agoHe confuses forward declarations with "declaring the type before the variable name".
- nollidge 14y agoI think you mean "declaring the variable name before the type". So C is "int x" where Go is "x int". BASIC is typically more like "DIM x AS INTEGER".
- tptacek 14y agoFor the record: as someone who started in the early '90s in C, I hate hate hate the Go declaration syntax. But the designers make a very compelling case for why it's the right syntax: C function pointers are needlessly convoluted.
- erichocean 14y agoScala is the same way, and their rational is that it makes it easy (in the parser, I guess) to just omit the type. It is weird at first, but you get used to it, like everything syntactic.
- sidcool 14y agoA gross and incorrect generalization. It should have been: Go: Good here, bad there.
- hevyw8 14y agoIt's worth noting that this post is from December 2009.
- realrocker 14y agoExactly.
- nicolas42 14y agoThis is often the most important thing about an article and often overlooked. Second scruffy http://www.youtube.com/watch?v=ggRLVdOoNGI http://www.youtube.com/watch?v=ggRLVdOoNGI
- mpolun 14y agoThe argument here doesn't seem to be whether or not Go is a good programming language (what I would describe as what it's good for), but rather whether it will become popular. One has very little to do with the other.
- thirsteh 14y agoSomebody criticizing a language he freely admits to never having used. Nothing interesting to see here.
- JadeNB 14y agoDid the author change the title? It now reads "Google Go: Good for what?", although the article (or, for that matter, the link) still quite clearly suggests (and explicitly says at the end) that the answer is 'nothing'.
- thirsteh 14y agoThe conclusion is that "Go is good for absolutely nothing."
- jasonmoo 14y agoGo is a young language with a growing community that should only get better as more minds come to it. For me it's very accessible for rapidly developing heavy-lifting tools, in particular networking tools. It's not the only language but it's served me well when I've reached for it.
- davidpayne11 14y agoI'm genuinely curious - Scala is faster and better performant, what is there in GO that there isn't in Scala? I mean, if you were to build a highly scalable web app, why would you choose one over the other? Any thoughts??
- stock_toaster 14y agoGo does not require a JVM.
- 430gj9j 14y agoAsk what isn't in Go that is in Scala. The Go authors deliberately left out certain features to focus on what they call "clarity of design". I don't see them ever adding XML literals for instance!
- wonderzombie 14y agoIt's worth reading http://commandcenter.blogspot.com/2012/06/less-is-exponentially-more.html http://commandcenter.blogspot.com/2012/06/less-is-exponentia... to get some idea of the motivation behind including less. If you believe that our software systems are increasingly complex and that some aspect of the problems we're solving are essentially complex, then the strongest path towards simplicity lies in minimizing complexity incidental to the problems we're solving. One facet of programming which routinely introduces complexity is our tools, particularly our programming languages. I believe both Rob Pike (and the Go authors) and Rich Hickey are both motivated in part by this impulse or a variation on it. They chose very different ways of addressing the problem, but Clojure and Go are a lot more similar than you'd think.
- chc 14y ago> If you believe that our software systems are increasingly complex and that some aspect of the problems we're solving are essentially complex, then the strongest path towards simplicity lies in minimizing complexity incidental to the problems we're solving. One facet of programming which routinely introduces complexity is our tools, particularly our programming languages. That is true, but I'm not sure the correlation you seem to be suggesting here — that complex tools breed complex programs — is realistic. A lot of the time, complexity can either live in your tools or in your program. For example, garbage collection requires a more complicated toolset than manual memory management, but in return it removes the complexity of memory management from your code. Similarly, ASM is simpler than C, and Whitespace is simpler than Python, but most people will agree that a program written in the latter tends to be simpler than the same program written in the former.
- klrr 14y ago"I’d say there are plenty of non-starters to keep Go out of the application programming space." God, I've got tired of all desktop applications written in python, they're soo slow. I hope Go gets used both in the application space and system space, so not just our systems are fast, the applications too.
- wglb 14y agoOk, I will do this one more time. The authors of go come from my generation. Back in those days, the term "Systems Programming" meant something different than what wikipedia, and probably most everyone today thinks of it. Systems Programming in those days meant writing compilers, text processors, unix command line programs. It did not then mean programming an operating system, or anything near hard real-time. Not a very high quality article.
- thirsteh 14y agoGo also isn't described as a systems language anymore, but rather as a general-purpose language, although this article predates that change.