14 ms·
Go version 1 is released
- deleted 15y ago[deleted]
- peregrine 15y agoBeen playing with the weekly versions of Go for a couple weeks now. Highly enjoying it, my biggest pet peeve was that every library had a master and "weekly" branch which required me to manually pull down the weekly. Shouldn't be long and I can move to master!
- dchest 15y agoDoesn't go tool handles that automatically (i.e. checks out the most recent tag compatible with the current Go version)?
- peregrine 15y agoNot sure, I am very much new to the new "go" command and how it works. Everytime I did a go get on a repo it would get the wrong version. I'd just cd into the 3rdparty dir and then pull/checkout the weekly branch and be ok. I figured their had to be a better way but I was pretty focused on getting projects done. And to be specific this was on non-standard libraries the standard libraries provided by go worked out of the box.
- rsc 15y agoThe go command will use the right version but only if the person writing the library has bothered to tag the version to use. Many people don't. Part of the point of Go 1 is to stabilize the language. We're committing to slowing down the rate of churn and to not changing the APIs in backwards incompatible ways for the lifetime of Go 1 (1.1, 1.2, and so on), so now there should be much less problem with just using tip/HEAD/whatever in the repositories without tags.
- bgentry 15y agoCongrats to the Go team! I've been looking forward to this release for a while. Go makes it easy to do some very complex things, and much of this can be attributed to the wonderfully built standard library. For those interested, you can run Go apps on Heroku using this buildpack: https://github.com/kr/heroku-buildpack-go https://github.com/kr/heroku-buildpack-go Note: you may need to use the #rc branch until its changes are merged in master
- Meai 15y agoI'm still wishing that we could embed Go into a multithreaded c application, just like we can with the JVM and Mono. I would like to use Go as a "scripting" language. I have seen a thread in the mailing list that someone was working on it on a personal basis, but I can't find it anymore. It doesn't seem to be in high demand.
- wickedchicken 15y ago> I'm still wishing that we could embed Go into a multithreaded c application, just like we can with the JVM and Mono. I would like to use Go as a "scripting" language. What?
- kodablah 15y agoI believe the post is referring to something like http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/invocation.html http://docs.oracle.com/javase/7/docs/technotes/guides/jni/sp...
- wickedchicken 15y agoI was not aware that was possible... A little terrifying, actually.
- insertnickname 15y agoWhy not just write all of it in Go?
- Meai 15y agoI have working, tested, high performance software in C. Throwing all that away and taking the risk of having Go underperform or be buggier than my previous solution is just not acceptable.
- redbad 15y agoCongratulations to everyone involved.
- GorbaChavez 15y agoGogrammers, unite!
- zemo 15y ago"gopher" is the preferred demonym.
- fmstephe 15y agoThis is great news. The best part of it for me is that now my more conservative colleagues might dip their toes in the water. Combine that with the Vitess project and Go is not just a great language. It's viable.
- enneff 15y agoFor the curious, Vitess is an open source project to scale MySQL installations. It was written by the YouTube team in Go. http://code.google.com/p/vitess/ http://code.google.com/p/vitess/
- jasonlotito 15y agoIf anyone from the Go team reads this, http://golang.org/doc/go_tutorial.html http://golang.org/doc/go_tutorial.html linked to from the blog gives a file not found error.
- deleted 15y ago[deleted]
- ianlancetaylor 15y agoThanks, the tutorial is gone (replaced by the tour) and we just removed the link from the blog page.
- mace 15y agoThe Go tour (http://tour.golang.org/ http://tour.golang.org/) is a pretty good introduction to the language. It provides an interactive in-browser panel to try out the language while presenting its features.
- slug 15y agoThe "install go" link on the "Go offline" page gives "file not found: /go/install".
- deleted 15y ago[deleted]
- mace 15y agoAnyone care to share their experience writing something in go? I've toyed with it but not built anything in production. FWIW, the go dashboard (https://godashboard.appspot.com/ https://godashboard.appspot.com/) has a number of interesting projects.
- micro_cam 15y agoWe used it to write our own simple distributed computing software after realizing hadoop was too complicated (and thus bug prone) for our embarrassingly parallel needs. It took us less time to get the system written, stable and up and running then it had to get hadoop setup (different developers so not a fair comparison but still). It feels like python with the good parts of C on linux (most things are file like object) and I plan on using it more and more as the ecosystem of available libraries matures.
- fizx 15y agoSounds like a hell of a blog article. I hope you write it.
- Morcane 15y agoYea, I agree, blog needs to be written. I would love to see one, since we're in the same boat (deciding between Hadoop or a bit of homegrown stuff for our simple needs). And I'm really curious about Go in general. The vibe seems really positive, kind of Java-vibe like back in the 90ies.
- peregrine 15y agoI've been putting together a small blogging application with Go just for fun on the side to pick up the language and work on my web design. Its a great language, I'm not using it for half of its capabilities but it very much feels well thought out and the community is very helpful. Key pieces: -My code isn't much more complex than my ruby or python. -The stdlib is pretty fantastic. -Right now tutorials and 'blogs' are all over the place with compatibility for go, rule of thumb if it says "goinstall" in the guide probably a good sign its an older guide. -All network communications use epoll in the backend so you get lots of the fun things you would normally get from something like node.js without callback soup. Ideally go would probably work for a web service or building some backend networked code, or even a simple command line utility. Right now there is not much in the way of GUI code outside of websites which is unfortunate cause I'd like to use the goroutines with some graphics ideas I've had.
- SpoonMeiser 15y ago"We're announcing Go version 1, or Go 1 for short" I foresee the next version being considered harmful.
- why-el 15y agoThe New Go should do.
- stock_toaster 15y agoAs a bonus though, when they hit "Go version 4" they can say "Go 4" and it sounds like "gopher". for those unaware: the mascot of Go is a gopher.
- canop_fr 15y agoOr they can label versions like sun, so that nobody will know for sure if they're using Go 2 or Go 1.2 or Go Enterprise Edition or Go Standard...
- wickedchicken 15y agoGo 4.1.1 will now be rebranded 'Golaris 1.0'
- samstave 15y agoGolaris has a nice ring to it actually... Rolls of the tongue a bit - however sounds more like an ailment. "Oh, I got the golaris! better get an ointment for this"
- iamgopal 15y agoHow good is go compare to c/c++ ? ( in terms of speed especially ? ) Can we now say that Google Chrome can be written in Go and it will be faster and/or stable ? ( not saying it is not already. ). Congrats to the team, just started using go yesterday and loving it.
- blinks 15y agoThe language is interesting, at the very least -- concurrency primitives are nice, and the interface-based type system works for most cases (generic containers notwithstanding). The major speed problem right now is GC, but that should be improving quickly.
- ConstantineXVI 15y agoChrome will still be (mostly) C++ for a while. Even if they rewrote V8 and the UI; WebKit is still C++ and I doubt Google plans on ditching it without a very good reason.
- rsc 15y agoIn my experience Go is probably 5-10x faster than C or C++. I estimate that programs that take me half an hour to write in Go would take me about 2½ hours in C and 5 hours in C++. (If you meant CPU speed, http://blog.golang.org/2011/06/profiling-go-programs.html http://blog.golang.org/2011/06/profiling-go-programs.html :-)
- chmike 15y agoThe day Androïd will be written in go, we will see a significant performance boost and battery lifetime extension. I don't program for Androïd just because I can't bare eclipse. An IDE as simple and efficient as QtCreator would generate a conversion tsunami.
- jemeshsu 15y agoThe day when Google supports Android native app development in Golang, will be the day when Golang goes mainstream. But I don't bet on this thing happening.
- 15y ago
- deleted 15y ago[deleted]
- deleted 15y ago[deleted]
- melling 15y agoHitting 1.0 should convince more people to use it in production. However, getting any new language in an organization is always a struggle. Is there a list of organizations that currently use it in production? [Update] A few high-tech companies were listed. I was hoping more for big pharma or finance? There are some super convervative firms out there. Even Google, for example, will only allow a few languages in their firm.
- enneff 15y agoGoogle, Canonical, and Heroku to name a few.
- deleted 15y ago[deleted]
- rsc 15y agohttp://blog.golang.org/2011/04/go-at-heroku.html http://blog.golang.org/2011/04/go-at-heroku.html http://blog.golang.org/2011/12/building-stathat-with-go.html http://blog.golang.org/2011/12/building-stathat-with-go.html http://code.google.com/p/vitess/ http://code.google.com/p/vitess/ https://tinkercad.com/home/ https://tinkercad.com/home/ There are more that we know of, and as they say that publicly we'll try to highlight them on the blog. Thanks.
- luriel 15y agoHere is a (very incomplete) list of organizations using Go in production: http://go-lang.cat-v.org/organizations-using-go http://go-lang.cat-v.org/organizations-using-go Note that this was before Go even had a stable release, and while the language was still evolving very fast, I'd expect more companies outside the "hi-tech" to adopt it now that it is stable.
- rman666 15y agoMad Props! Propsed Theme Song: I got my Go, Go, Go, Go (gadget flow) ... Lupe Fiasco (http://www.youtube.com/watch?v=vCf-ffDzopc http://www.youtube.com/watch?v=vCf-ffDzopc)
- Melyan 15y agoSo is golang a semi-official name for this? I don't want it to be as hard to find as the board game!
- justauser 15y agoHas anyone had any experience with GO and Windows API/win32?
- luriel 15y agoI haven't tried it, but you might want to look into WALK(Windows Application Library Kit): https://github.com/lxn/walk https://github.com/lxn/walk Is designed to provide a Go-ish interface for win32.
- ComputerGuru 15y agoActually, that's mainly a UI toolkit interface. Not Win32 core . (Though a tiny bit of core stuff is included)
- luriel 15y agoSorry, I'm not familiar with Windows stuff. This library might be more what you have in mind then: https://github.com/AllenDang/w32 https://github.com/AllenDang/w32
- exch 15y agoI've been using Go for 2 years now. It's been a lot of fun. It certainly brought fun back into programming for me. Very happy to see the 1.0 release hitting the public. Congratulations to the Go team and contributors for a job very well done!
- fmstephe 15y agoMy god. Go is _so_ much fun to program. Apart from it's technical pedigree this is its most remarkable feature.
- olliesaunders 15y agoEssential question: what makes it fun?
- exch 15y agoGood question. And one I can't easily answer to be honest. In most respects I suppose this is very much a subjective matter. For me it's the language's simplicity. There are no hidden surprises in the spec. It's short, clean and easy to memorize. The syntax is clear and (for the most part) un-intrusive. Some of it's idioms really force you to think about what you have learned in other languages. And then either forget any of that ever happened, or at the very least become a critical thinker about the usefulness of these things. For example: the standard inheritance based OOP model. Go simply allows me to 'get shit done' fast and without having to jump through hoops. It's very much like a breath of fresh air in what was quickly becoming a stale and obnoxious development environment (for me at least). Edit: I would add that I do not particularly like evangelising about anything; that includes Go. It is beautiful for what it is. but by no means should it be considered a silver bullet. If your current tool chain(s) and language(s) work for you, by all means continue to use them. Go has its strengths and its weaknesses that should always be considered at the same time. The right tool for the right job and all that.
- krasin 15y agoI can answer just for myself. I don't like to spend time on irrelevant things like "why the binary does not link", "in which shared library this undefined symbol is located" or "how to parse XML", or even plain "why it does not work". With Go I _usually_ have a predictable process of writing a program, when simple things are simple and complex things are reachable. It makes me happy.
- huhtenberg 15y agoG#... any day now, any day.
- TylerE 15y agoWell, they got (at least) one thing exactly right: Doing away with the "toolchain". Having one command that can figure out how to build your code, including downloading external dependencies, is really nice. Pity about the whole "not having generics" thing though.
- johnpmayer 15y agoWith interfaces, it's pretty simple to replicate patterns like a Container<Comparable> or Channel<Reader>, to borrow common Java syntax. Personally, I like how it forces you to think about parametricity whenever you want polymorphism, like most functional languages.
- TylerE 15y agoBut, unless I'm missing something, it's missing the supporting bits you get in a nice functional language, like algebraic datatypes and pattern matching, which make that style much more pleasant. Of course, most of the functional language DO have generics, and full type inference to boot, also.
- EdiX 15y agoThe ML language family does, other functional languages (the LISP family, Erlang) don't.
- TylerE 15y agoArguably lisp doesn't NEED generics since unless you go around setting lots of type pragmas, the typing system generally doesn't intrude. So, in other words, Lisp doesn't have generics in the same way Python doesn't have generics.
- deleted 15y ago[deleted]
- ootachi 15y agoUp until the point you want to return an object from your container, sure. Then you have to return a Comparable and the user has to downcast it into the right object. Plus, you pay the overhead of boxing.
- deleted 15y ago[deleted]
- canop_fr 15y agoThere should be a lot of complementary answers. Here's one. Go is a fun language to make concise server programs that will run with no surprise (no exception hiding bugs), that you will compile without looking for something else to do during the waiting, that you'll be able to profile easily, that will include foreign libraries easily, and that will run reasonably fast (and they will feel astoundingly fast because you won't have to wait for them to start).
- rsc 15y agoThere are a handful of people answering this question (unprompted) on this very page.
- ericmoritz 15y agoanyone know what the time complexity of the append function is?
- rsc 15y agoIt is amortized O(1). When the append needs to grow the slice, it does so by a multiplicative factor.
- Osiris 15y agoDoes Go support Win32 development?
- stonemetal 15y agoIt does.
- 4ad 15y agoYes.
- krakensden 15y agoyes: http://code.google.com/p/go/downloads/list http://code.google.com/p/go/downloads/list
- deleted 15y ago[deleted]
- deleted 15y ago[deleted]
- golango 15y agonext version will be named Go Laprofonda
- frou_dh 15y agoThere's something intangibly nice about the main golang.org website. It feels more like a consistent self-contained unit than a lot of such sites do. Well done to whoever does the design and content.
- deleted 15y ago[deleted]
- enneff 15y agoThanks! :-)
- canop_fr 15y agoAnd it's self-contained in the sense that when you code you may simply launch it locally : godoc -http=:6060 Of course this will be less needed now that the API are stable but that what really useful those last months, when my go weekly was almost never exactly like the one described at golang.org nor tip.golang.org. I'll still use it in planes and trains though.
- impeachgod 15y agoWhat happened to the ebnf package?
- dsymonds 15y agoIt's still around as "exp/ebnf" (http://code.google.com/p/go/source/browse#hg%2Fsrc%2Fpkg%2Fexp%2Febnf http://code.google.com/p/go/source/browse#hg%2Fsrc%2Fpkg%2Fe...), but the exp/ tree is not considered part of the official Go 1 API, so it may change in backward-incompatible ways.
- deleted 15y ago[deleted]
- deleted 15y ago[deleted]
- makecheck 15y agoI'm disappointed that after starting from scratch they created a "modern" language that requires a module import just to print (and corresponding extra syntax for that namespace when making the call). How could this not have seemed incredibly clunky after using it for just a little while? It's the same frustration one feels when simple print-outs fail in C++ because you forgot to "#include <iostream>". Sometimes you just want to print stuff no matter what file you're in. Languages should make it almost impossible to fail at extremely common tasks. It's these little things that make Python and Perl enjoyable to program in, and these little things that every new language should begin with!
- enneff 15y agoOne of the design goals of Go is that the language is small. There's nothing so special about string formatting that it should be part of the language proper, and it would add a lot of complexity to the spec if it were. With that said, there are built-in print and println functions that write to stderr, which are useful for debugging. That would seem to address your complaint. The fmt package is a lot more fully-featured than the built-ins though. http://golang.org/pkg/fmt/ http://golang.org/pkg/fmt/
- makecheck 15y agoThanks for pointing it out. I wish they used that in their "hello, world" example because 'println("hello, world")' leaves a much better first impression of simplicity. I generally like to see things kept simple. But formatting is a common need and they've actually made things less simple by providing both fmt.Println() and println(). It means the same program will inevitably contain both, depending on who did the editing. There are times when a feature is so basic that it really should have exactly one way to do it, and I think printing is in that category.
- enneff 15y agoYour position is not very pragmatic, and taking such a hard line is rarely productive. The fmt package does a lot of stuff. Check out the link I provided above. To put all that stuff into the language spec - and then foist responsibility of writing and maintaining that code onto every implementation of the language - would be crazy. So it seems a good idea that the fmt package should exist and that it should be written in Go. On the other hand, it's nice to be able to print when working on low-level libraries where fmt is not available (syscall, os, etc). The print and println functions service this need, and that's really all they're used for apart from temporary debugging prints. It would be a mistake to use the built-in println in the hello world example because it would demonstrate precisely the wrong use of the built-in functions. Hello world should print to standard output and it should use the standard means of formatting strings. In Go, that is fmt. There are a few of such compromises in Go (not many, though). Sometimes you need to put your ideals to the side in the name of simplicity and pragmatism.
- elchief 15y agocountdown until: GO IS AWESOME GO IS A FUCKING WASTE OF TIME HOW DO I MAKE JAVASCRIPT TALK TO GO?
- remogatto 15y agoI used Go to write a concurrent ZX Spectrum emulator (https://github.com/remogatto/gospeccy https://github.com/remogatto/gospeccy). The language perfectly fits for this kind of task too.
- vibrunazo 15y agoIs there any SEO trick for googling about "go"? It's really hard to look for "go" related material; For example, I tried searching for how to use Go on Android. But "go android" returns all kinds of unrelated stuff.
- BernardGui 15y ago"Initial reactions to Go 1 have been overwhelmingly positive, particularly (and not surprisingly) on community sites like Hacker News, a Y Combinator-run reddit clone populated by self-acknowledged hipster hackers." Hah: http://webdev360.com/google-releases-go-1-to-rave-reviews-41730.html http://webdev360.com/google-releases-go-1-to-rave-reviews-41...
- ziggrat 15y agoits nice
- pippy 15y agoThey seem to have removed their page detailing ARM support. The debian ARM repo still has an older version, I wonder if they've stopped support?
- HeroNote 15y agoFree Go Language eBook: http://www.heronote.com/files/Go.htm http://www.heronote.com/files/Go.htm