What's been difficult is finding the dividing line between Python and Go. What I've been able to come up with so far is a trite analogy involving types of bicycles.
Python is a touring bicycle. It's approachable and easy for anyone to learn how to ride. It has features like a basket, fenders, lights, and a pump that make it practical for almost every situation. Its limited gears mean it's dependable, but slow unless you pedal hard.
![](http://3.bp.blogspot.com/-5xgTTKqeyAY/U-H8aK1d2OI/AAAAAAAAxCY/lkhr2X-YxhA/s800/shamrock-cycles-urban-bike-1.jpg)
C++ is a race bike. It's difficult to ride and easy to crash. It has multiple sets of handlebars and every other feature a bike could offer for maximum speed. Its fragility makes it impractical for simple riding, but it can get you there faster than anything else.
![](http://3.bp.blogspot.com/-Ebn-zVedAGs/U-H_IyjQpwI/AAAAAAAAxCk/lX_eheBFltU/s800/Leipheimer_USPro2010TimeTrial_bike.jpg)
Go is a modern cyclo-cross bike. It's simpler and safer than a race bike, but still fast. It has most of the features you want (light-weight, aerodynamic) and some that are uniquely surprising (durability, knobby tires). It's a whole new category of riding.
![](http://2.bp.blogspot.com/-lCQFQxXU5xI/U-HxqIam8qI/AAAAAAAAxCA/2Wrpph4BCnk/s800/ibis-hakkalugi-disc-2013-cyclocross-bike-don-myrah-img_9489-e_11.jpg)
Continuing with the bad joke, Java would be the bicycle factory factory. Okay — the analogy breaks down quickly. But it's not so awful.
For an unexpected adventure I'd choose the touring bike (Python): quickly building something new, handling all environments easily, everything I need built-in. For competing on a more well-defined course with treacherous obstacles I'd choose the modern cyclo-cross bike (Go): speed, versatility, safety. For a time trial on smooth roads with no obstacles I may even risk riding the race bike (C++).
That's the best assessment I've got for now. Where do you draw the line?