append behaviour is fairly reasonable, it doesn't just grow the slice by one each time you append. list.List also uses reflection, so there's a performance hit from that.

http://play.golang.org/p/SybwNAQOQ9

```
PASS
BenchmarkSlice1000	   10000	    125335 ns/op
BenchmarkSlice10000	    1000	   2363422 ns/op
BenchmarkSlice100000	      50	  28006284 ns/op
BenchmarkSlice1000000	       5	 273778224 ns/op
BenchmarkSlice10000000	       1	3812814581 ns/op
BenchmarkList1000	    5000	    468516 ns/op
BenchmarkList10000	     500	   5936557 ns/op
BenchmarkList100000	      20	  70525959 ns/op
BenchmarkList1000000	       5	 737343756 ns/op
BenchmarkList10000000	       1	8153616298 ns/op
ok  	bench	31.456s
```