4 ms·
It's all about the libraries, Python and C for example have libraries/bindings for most things, e.g. Postgresql, ZMQ, Json etc. Google could invent the best pro
by markmm 14y ago
It's all about the libraries, Python and C for example have libraries/bindings for most things, e.g. Postgresql, ZMQ, Json etc. Google could invent the best programming language ever but without _mature_ _robust_ libraries it is pretty much useless.
- tptacek 14y agoGo has a pretty decent standard library. http://golang.org/pkg/ http://golang.org/pkg/
- markmm 14y agoYes it looks good, but what about mature 3rd party libraries?
- reactor 14y agoIts a good opportunity to contribute!
- Jabbles 14y agoGood software takes time. Asking a new programming language to have "mature 3rd party libraries" is a bit harsh. You are, of course, correct in that the variety of libraries available in Go is more limited than older languages, but I have hope that it will change rapidly. http://www.joelonsoftware.com/articles/fog0000000017.html http://www.joelonsoftware.com/articles/fog0000000017.html
- markmm 14y agoI am not asking it to have anything, the article is insulating that GO is the new go to language, it is not because it doesn't have mature and comprehensive libraries. When I make a decision to use a particular language I don't wan't to handicap myself, you need as much edge as possible. In 10 years maybe Go will have a vast array of mature libs but until then I shall be choosing Python and C.
- Jabbles 14y agoI hesitate to contradict you, but the title and content of the article is steeped in the future tense.
- emu 14y agoUnfortunately, it seems to be lacking many useful data structures. This bites you hard once you hit the limitations of the built-ins.
- ori_b 14y agoWhich data structures have you personally been bitten by that lack of? I ask this because I often find myself thinking I would want such-and-such a feature in a tool, library, etc, but unless it was implemented in response to an immediate need, when I actually add it I realize it ends up unused.
- emu 14y agoI mostly wanted some better set and map container implementations (hashtables, binary search trees, tries); the built-in map can't be applied to all types, and is quite limited in how configurable it is. Given that we were going to be using these data structures everywhere, we decided Go was a bad choice for our project. My guess is that better containers aren't in the library because of the lack of generics. I really hope the Go folks get around to adding generics soon; it's a beautiful language in most other respects. It would definitely be one of my first choices for a more systems-y project.
- freehunter 14y agoGo does have quite a few bindings that exist already for many commonly-used libraries (and some not-so-commonly-used). I'm pretty glad there are Lua bindings, for example. When Go makes more sense than C but Lua makes more sense than Go, I was kind of stuck until I discovered this. Here is a listing I know of, this probably isn't comprehensive: http://go-lang.cat-v.org/library-bindings http://go-lang.cat-v.org/library-bindings
- markmm 14y agoNice, im worried that due to Go's young age the libraries might be a bit flaky or lacking, I could be wrong though.
- luriel 14y agoThat is a list of wrappers for C libraries, there are even more pure-Go libraries: http://go-lang.cat-v.org/pure-go-libs http://go-lang.cat-v.org/pure-go-libs And I maintain both pages, and I have to confess they are badly outdated because is hard to keep up with all the libraries that are being written.
- mseepgood 14y agoThe "Talks and Videos" page (http://go-lang.cat-v.org/talks/ http://go-lang.cat-v.org/talks/) is outdated as well. Here's my personal list: Why Learn Go? http://www.youtube.com/watch?v=FTl0tl9BGdc http://www.youtube.com/watch?v=FTl0tl9BGdc Short interview with Rob Pike, OSCON 2012 Get Started with Go http://www.youtube.com/watch?v=2KmHtgtEZ1s http://www.youtube.com/watch?v=2KmHtgtEZ1s Andrew Gerrand A Tour of Go http://www.youtube.com/watch?v=ytEkHepK08c http://www.youtube.com/watch?v=ytEkHepK08c Russ Cox Go Concurrency Patterns http://www.youtube.com/watch?v=f6kdp27TYZs http://www.youtube.com/watch?v=f6kdp27TYZs Rob Pike, Google I/O 2012 Goroutines, Channels Meet the Go Team http://www.youtube.com/watch?v=sln-gJaURzk http://www.youtube.com/watch?v=sln-gJaURzk Panel (Pike, Thompson, Griesemer, Gerrand, Fitzpatrick, Simons), Google I/O 2012 Computing Map Tiles with Go on App Engine http://www.youtube.com/watch?v=sPagpg0b7no http://www.youtube.com/watch?v=sPagpg0b7no Chris Broadfoot, Andrew Gerrand, Google I/O 2012 Go in Production http://www.youtube.com/watch?v=kKQLhGZVN4A http://www.youtube.com/watch?v=kKQLhGZVN4A Gustavo Niemeyer, Google I/O 2012 Go: Code that grows with grace http://vimeo.com/42146678 http://vimeo.com/42146678 (Contains some audio glitches) Andrew Gerrand Interview with Rob Pike http://www.infoq.com/interviews/pike-google-go/ http://www.infoq.com/interviews/pike-google-go/ Rob Pike, GOTO Conference Lexical Scanning in Go http://www.youtube.com/watch?v=HxaD_trXwRE http://www.youtube.com/watch?v=HxaD_trXwRE Rob Pike Cuddle, A Go AppEngine Demo http://www.youtube.com/watch?v=HQtLRqqB-Kk http://www.youtube.com/watch?v=HQtLRqqB-Kk Andrew Gerrand Building Integrated Apps on Google's Cloud Platform http://www.youtube.com/watch?v=Mo1YKpIF1PQ http://www.youtube.com/watch?v=Mo1YKpIF1PQ Andrew Gerrand, Google Developer Day Japan 2011 Real World Go http://www.youtube.com/watch?v=7QDVRowyUQA http://www.youtube.com/watch?v=7QDVRowyUQA Andrew Gerrand, I/O BootCamp 2011 Go: it's that simple?! http://www.youtube.com/watch?v=LWpm1qpWRwA http://www.youtube.com/watch?v=LWpm1qpWRwA Andrew Gerrand, OSDC 2011 Practical Go Programming http://www.youtube.com/watch?v=2-pPAvqyluI http://www.youtube.com/watch?v=2-pPAvqyluI Andrew Gerrand, FOSDEM 2011 Writing Web Apps in Go http://www.youtube.com/watch?v=-i0hat7pdpk http://www.youtube.com/watch?v=-i0hat7pdpk Andrew Gerrand, Rob Pike, Google I/O 2011 Go Programming http://www.youtube.com/watch?v=jgVhBThJdXc http://www.youtube.com/watch?v=jgVhBThJdXc Rob Pike, Google I/O 2010 Another Go at Language Design http://www.youtube.com/watch?v=7VcArS4Wpqk http://www.youtube.com/watch?v=7VcArS4Wpqk Rob Pike, Stanford University Public Static Void http://www.youtube.com/watch?v=5kj5ApnhPAE http://www.youtube.com/watch?v=5kj5ApnhPAE Rob Pike, OSCON 2010 The Go Programming Language http://www.youtube.com/watch?v=rKnDgT73v8s http://www.youtube.com/watch?v=rKnDgT73v8s Rob Pike, Google Tech Talk
- tav 14y agoThis is one of the main reasons that I use Go. Its libraries are of significantly higher quality than most other languages. And since most libraries are native, it's much easier to expand on their capabilities without having to resort to forking some C extension like with Python.
- genwin 14y agoIt's a chicken/egg thing. People will use Go for projects that its existing libraries can handle. That will be more people as the libraries expand. Given the extent of today's libraries I'd say that Go is useful for plenty of projects.
- elteto 14y agoThis can be said about pretty much any language in their infancy, it is not a setback, just a matter of time and getting attention from the community (and Go is getting a lot).