Shared publicly  - 
David Andersen originally shared:
Teaching Distributed Systems using Go:

My Google friends might be (amused? scared? delighted?) to know that we're re-doing the assignments for the ugrad Distributed Systems course (15-440) in Go.

The good:
* Eliminates a lot of boilerplate cruft compared to Java;
* Less grungy crap compared to doing the assignments in C++ (students used to spend a lot of time debugging data structures or learning the STL, which is not what I wanted them to be learning -- I wanted their brains to hurt thinking about consistency protocols, not hash tables).
* Easily switches between lower-level system calls (UDP sends, etc.) and really high-level functionality (they marshal / unmmarshal using JSON, which is one function call away).

The bad:
* Weird new language to learn...
* Potentially less industrially useful than C++
* The language is new (one bug report filed thus far), and it and its tools are still evolving rapidly.

From my view so far, it's awesome, but I'll know more on Thursday when the first project checkpoint is due. I'll let you know if I turned out to be completely insane.
Thomas Raschbacher's profile photoYarko Tymciurak's profile photomatt wartell's profile photo
keep us updated :) I'Ve been wondering if I should learn it or not after attending a Talk at this years FOSDEM in February
Go is certainly the natural expression for distributed computing. I'm sure you know this, but you'll never be able to teach the specific language that they'll encounter in industry, better that they should think in the problem space. I've seen too many wonks who believe micro-knowledge about about their favorite language is useful exclusive of the ability to think or learn a new language or understand the differences and applicability of languages.

VB is for trade school.
Thomas, I was trying to reserve judgement about the expressive power of Java, C++, and Algol69.
Add a comment...