The book

It’s in French ! But we want other language versions

This may be the most obvious thing about it : although the book complements on this site are available in English too, the first edition of this book is currently available in French.

The publisher and myself would like other publishers to cover the world outside Francophonie: by all means reach me if you feel we should talk about a non-french version.

Now, about the book itself…

Go positioning

The syntax of Go is popular for being simple, almost minimal, remaining as close as reasonable to the underlying hardware, and targeting a professional developer audience.

This makes the langage different from both the usual web-oriented languages like ECMAScript / JavaScript, PHP, Python or Ruby ; and those used to code enterprise applications, like C, C++, Java, C#, or even modern BASIC versions : although the language is very easy to start with, mastering it in larger code bases requires significant competences.

Book positioning

I designed the approach for the book based on this analysis of the needs of actual pro developers : rather than a small-ish introductory manual to help fledgling developers on their first steps — there are enough blog posts, and the language documentation itself is quite good — I set out to write a book for more experienced developers, eager to start writing efficient code fast after discovering the language, by drawing on the existing experience they have with other languages they use daily.

This is why, instead of describing the language ex nihilo, and ignoring decades of programming and software engineering experience accumulated like most books do, this book introduces each concept by comparing it with its closest counterparts in other programming languages, or even by showing how it fits in the evolution of languages since Cobol, Fortran, and Lisp ; not to forget the less famous language on which Go is actually based, like Algol, BCPL, Erlang, Modula, Oberon, Pascal, Simula or Smalltalk.

Following the same accuracy trend, the book spends a whole chapter on Go support for concurrent programming, and its origins in CSP. The chapter describes the best known features of the language, channels and goroutines, but it also covers contexts, as well as the complete set of types and functions included in runtime packages sync, sync/atomic, and even the extra packages in golang.org/x/sync/*. Finally, the chapter also covers the race detector, used to debug concurrent code.

In order for the explanations to be most helpful and avoid interpretation issues, the book includes at least one code example for each concept, and sometimes it provides equivalent code in another language to help relating concepts, or links to the actual Go 1.14 runtime source code.

This is the reason why a book about such a simple language as Go is almost 400 pages long and includes over 150 code examples: because it best serves the professional readership for which it was written, and which is the core readership of the Dunod InfoPro collection in which it has been published.

Available editions / buying the book

The book is published by Éditions Dunod (Hachette group), which means it is available to preorder by most large bookstores carrying french books, as well as online retailers, including:

This first edition is available in 4 formats :

  • Print
  • PDF
  • Kindle, in “Print replica” mode
  • ePub 3 with DRM (ACSM) in page mode