Thanks, I really want to get serious with that language seeing all the praise from people around. I have began to do some small things with it and it feels like a great language ( I love the no makefile idea !)
My only regret is that this format makes it really hard to print in one motion. Could you provide a link for a PDF version?
The animal on the cover looks really hilarious too!
yes, please provide a pdf version (free or paid, doesn't matter for me) ... oftentimes authors will make a kindle version of the book for sale on Amazon and forget to put out a pdf.
I am an author (not of this book) and I very occasionally get an email asking for PDFs. Maybe one in a thousand sales are PDF. Since it doesn't come up that often I've never bothered with setting up a paid system; I just send them a link and ask nicely for a few bucks via PayPal.
Where do most people go to buy PDFs? Is it really a large-enough market to worry about?
Lulu? At least that's the only place I've specifically bought a PDF - then I found out that it's wrapped in some horrible Adobe DRM (if there are any ways to remove this, I'd love to know). I don't begrudge the money, I just wish I could read it in Preview.app rather than Adobe Digital Reader or what ever it's called - it doesn't scroll smoothly, only page wise which is a massive pain when there's lots of diagrams.
Other than that, all the ebooks I've bought from individual storefronts, often from having seen them on HN, have come as a PDF/epub/mobi bundle to work on any device.
Please don't password protect PDFs for books. It makes it a huge pain in the ass to actually read. I'd much rather you do what the Pragmatic Bookshelf does and just embed our name into the PDF.
Don't know, but I find it a great way to read on laptops & desktops. Of course, a nice html would work as well, but that's rare. (also, the pdf reader in KDE remembers what page you're on and lets you annotate etc..)
@cdoxsey - Nice work, but you might link to an installer that doesn't include a text editor. I'd be willing to bet that the majority of the target audience already has their preferred text editor installed.
Edit: After reading the first few chapters, I made a false assumption. It looks like the book is aimed at people new to computing (or, at least, it doesn't make the assumption that the reader has programmed before).
I guess the target audience is programming novices who have never written anything like source code before. Go seems like a strange choice for a first language, being neither foundational (C, Assembler, Scheme/Lisp) nor front-end scripty (JS, Logo, Scratch).
I don't know much about the US, but in Europe the majority of colleges is now teaching either java or C++ as the first language, and only a minority is teaching scripting languages as PHP. I guess it's easier for students to understand higher-level languages and to transport their knowledge to other languages (or, at least, it was easy for me).
More that it is easier for a classroom to teach an old stable language than invest in new things that might not last. It is rare to see an accomplished programmer who started writing any code in Java... most started with JS (younger folks) or educational environments like Logo/Scratch or super simple envs like Basic.
"It is rare to see an accomplished programmer who started writing any code in Java" are you serious? I know a lot [here in DC]. I personally started with Pascal->C->Java->(all the scripts)->C#
I'm kinda bummed that it doesn't cover installing to linux.
Not that installing Linux is difficult, just that A. I suspect we'll see a lot more people on Linux computers, especially in the developing world, and B. beginning programmers should be introduced to the concept of Linux as a programming environment
Go is dead simple to install to Linux via either binary or source. Even building it from scratch on non-standard Linux systems like embedded armv5 systems is easy. Basically if you have a non-broken gcc already, go will build just by invoking one single shell script they provide.
I have been really impressed with Go's portability. I recently cross compiled a binary from a Linux machine for an ARM target and had it running from scratch in less than 15 minutes. Go could become a serious option for embedded Linux targets.
I agree. My current spare-time project involves programming in Go for ARMv5-based boards (old chumby devices).
I write the code in Windows (Sublime Text 2), compile in Windows, but target GOOS=linux, GOARCH=ARM, GOARM=5 and end up with an executable that I can easily rsync and run over on the ARM device. The cross-compiling available in Go is much easier to setup initially than the usual situation of having to build an entire toolchain for your target.
Thanks for this. I scanned the document and the language seems pretty straight forward, should be easy to learn. I did a search for classes and object oriented in the document (pdf) and it returned no results.
I did a web search and came up with this https://sites.google.com/site/gopatterns/object-oriented/cla..., maybe the book should reference that somewhere early (maybe not because the intro seems to touch on computer programming in general so I would assume that it was for first-time programmers).
Go doesn't have classes. I agree that it'd make sense to talk about them in a book aimed at C# or Java programmers, but this book is written for people who are new to programming.
The TIOBE programming community index rates Go as not being in the top fifty languages used today. That seems strange since it was the "language of the year" in 2009.
I like Go, and it gets a lot of good press. Is TIOBE not accurately portraying Go's popularity?, or is there some other explanation as to why few people use it?
Sorry, not related to the book (which looks cool, btw).
TIOBE has always been a joke, and only even attempt to manage language chatter, not usage. It is based off job boards and internet search trends, and is highly susceptible to homonym confusion, which is especially harmul in the case of "go".
Unofficially, most people writing articles about Go would try to tag them with "golang" for search-ability ("golang" is also used for all the Go e-mail lists).
At least it's better than C. And Java is also a place, Python is an serpent.
The key to Googlability for everything is to put the right context keywords. Nobody just google's "go" (or "java" for that matter). They google stuff like "go string type", "go programming", "go install", etc.
That said, the bare "go" search term gives the go website as the fourth result in Google when I try it.
Of course you can work around it if you know how to google, but Java and Python are much easier to search. If you look up "java books" or "python books" you get links about programming language books, not about coffee/Indonesia/serpents.
That's because of adoption and less sites linking and discussing go topics at the moment.
I think if you could Google when Python was in it's infancy, you would get 100s results for pythons (the snakes) before you saw Python pages...
Google search algorithm is not so naive as to understand "go" as a generic token only. It can tell from context which pages are related to "go" the language and which merely use the verb "go". The reverse is how old engines used to work, Altavista and co, where you had tons of irrelevant exact matches.
The greatest value of Tiobe is the trending it captures over years, not the actual data point at a given moment in time. Except for spikes when they changed methodologies, the trends, especially for the most popular languages tend to be reliable. Who's in the top 50 or top 100 languages, I agree is not a useful or reliable data point.
A better index is http://LangPop.com, which I recently sold on to a new owner, who hopefully will be working hard to spruce it up some, and add some new languages like Go, although Go is always going to be problematic in search engines.
If more questions are asked about a particular language I don't think it would mean that language is being used more in the real world. Just more people are confused about it.
Not sure if stackoverflow tags are a great indicator.
TIOBE tries to use job listings and google trends.
Searching job listings/search engines for 'go' probably wouldn't return much results (because of the ambiguous name) which is why its a lot lower than it should be.
> I don't think it would mean that language is being used more in the real world. Just more people are confused about it.
The two are not mutually exclusive. Rather, I'd think they're directly proportional. A very straightforward and simple yet popular language should have very few questions, which doesn't seem to be the case; conversely, brainfuck is particularly cryptic and should have many questions, yet it does not.
StackOverflow is admittedly .NET heavy, but since SV is somewhat anti-Microsoft, perhaps this will balance things out.
I really like the structure of this, very readable and a great intro. I have some confusion on http://www.golang-book.com/6
It says:
Go also provides a shorter syntax for creating arrays:
x := [5]float64{ 98, 93, 77, 82, 83 }
We no longer need to specify the type because Go can figure it out. Sometimes arrays like this can get too long to fit on one line, so Go allows you to break it up like this:
It's nice, but I wish there was a summary page of the syntax. As an experienced coder, I don't really need to understand the concept of a map, only how it's done in go, and maybe restrictions.
The website says that the book will be for sale on Amazon soon. Anyone know if it will be Kindle friendly? The text looks like it would convert easily from the web pages, if not.
Building Go from source is trivial if you want to do that (two commands, one of which just grabs the Hg repo iirc. building only takes a few minutes on my underpowered eeepc.), but you may as well just use the binary distributions of it.
Go has a great built-in web server in net/http. Not as feature-rich as Rails, it's more akin to a micro framework like bottle.py. I ate my own dog food and the book's site is written in Go.
My only regret is that this format makes it really hard to print in one motion. Could you provide a link for a PDF version?
The animal on the cover looks really hilarious too!