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.
Shared publiclyView activity