Channels ▼

Mike Riley

Dr. Dobb's Bloggers

Great Go Screencast Review

February 27, 2010

Google's Go language has many similarities to C, Java and Python as well as a number of peculiarities (ex: semicolons ending some statements and not others).  Presenter Brett McLaughlin has recorded a screencast series to help programmers quickly get acquainted with Go.  Does he succeed with this objective?  Read on to find out.

Presented by Brett McLaughlin, the Great Go O'Reilly video series steps viewers through a very basic introduction to Google's new Go programming language.  In the first level of this video series, Brett walks viewers through two programming examples.  The first outputs the 12 Days of Christmas via arrays, string compilations and loops.  The sessions conclude with a walkthrough of segmenting and counting a slice of Tim O'Reilly's twitter posts.  Throughout the videos, Brett effortlessly builds simple Go statements while calling attention to peculiarities of the language syntax and the variety of functions available in the existing Go libraries.

Regarding the video material itself, I appreciated the useful captions appear in the lower sixth of the screen to help reinforce key concepts.  Instructor is very comfortable with the screencasting medium and casually walks through the instructions.  Unlike other screencasts I have watched, Brett also records his entire screen.  This makes it very easy to follow the presentation context and flow since there are no hidden windows outside of the recording frame.  Brett also does a good job at keying in on Go's peculiarities like using a Pascal-style ':=' initialization syntax, using semicolons for function statements only and the first letter capitalization of Go functions (as in the case of the fmt.Printf() function), the compile/link/execute process and more.  There are also spots that Brett elevates the presentation from a passive to active experience by encouraging viewers to try their hand at Go code first, then review the results to see if the syntax and logic follow that of the presenter's designs.

Unfortunately, not everything about the video series is noteworthy.  For instance, nearly a third of the video segments walk through Go installation, including the Mercurial install and configuration necessary to pull the Go source code from the Google code repository.  This procedure was demonstrated on the Mac OSX, since Go is not yet available on Windows and probably won't be for some time, if ever.  Thankfully, the presenter reminds his audience after the lengthy installation and environment configuration procedures that the video series will focus on translating known programming idioms like C, Java and Python into Go syntax versus teaching programming from the ground up.  Another annoyance is the fact that while videos can be downloaded from O'Reilly's store site, each segment must be downloaded individually versus one or two larger concatenated video files.  Each segment is plagued by the intro and outro O'Reilly bumpers that suck up more unnecessary time and bandwidth.  As Dobbs Codetalk readers know from my previous screencast reviews, my tolerance on these bumpers is pretty low.  After the fifth time, I was seriously considering whipping together a media playback container that would auto-advance the video 5 seconds for each Great Go segment so I didn't have to be irritated further.  Considering most video segments are less than 2 minutes long, these bumpers consume a noticeable amount of time.  Alas, with roughly 30+ video segments, I opted instead to manually advance the playback cursor for the balance of the videos.  Lastly, while Brett did a great job providing a very rudimentary introduction to the language, he only briefly touched on why Go is so 'Great'.  Slices, the need to actually use declared variables, and utilizing dynamic vectors were called out as the top coolness factors of Go, but I would have also preferred to know Brett's opinion on whether or not these advantages are worth the time and effort required to learn yet another language.  Based on what I've read online, runtime performance of Go-compiled applications is not one of its advantages.  There are a number of benchmarks comparing various initializations, loops and object manipulations that illustrate how Go in its current state simply doesn't stack up to C and, in several cases, Java and even Python.  Google's Go engineers advocate that it is a language for the web era, but Great Go fails to show why the language's creators feel so strongly why this is the case.

Overall, I liked the cadence, clarity and calmness that Brett and O'Reilly have conveyed in the first level of this Great Go video series.  I hope that O'Reilly is committed to these screencasts and delve deeper into the advanced topics that were eluded to in Great Go's final video segment, with more focus on leveraging these technologies in exciting and highly productive ways.  There is a good formula for the screen capture audio and video quality… now they have to match this technical polish with richer content worthy of the prices they are charging for their brief (compared to other paid screencast suppliers) audiovisual content.




Title: Great Go: Level 1
Author: Brett McLaughlin
Run time: 1 hour 32 minutes
Price: $34.99 US

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.