I love the annotated source code, but I wouldn't necessarily recommend the Underscore library code itself as learning material to budding developers - it's optimised for size and performance, not legibility and idiomatic style. I remember being a budding JS dev once upon a time, and being quite perplexed by it :)
I quite agree that it's grown a bit gnarled and tangled with optimizations over the years.
It's interesting to compare the current version to the earliest available copy of the annotated source code, from version 1.1.1, seven years ago, in a simpler JavaScript age:
Then I had an easier time following the annotated version after understanding how the other functions were built on top of each other in the simpler syntax.
For beginners annotated code of highly optimized library might become confusing. Try reading Mary Rose Cook's annotated code of 2 JS games and a Git clone
http://annotated-code.maryrosecook.com/
16 comments
[ 2.8 ms ] story [ 41.6 ms ] threadhttp://ashkenas.com/docco/
And the tool to make these: http://ashkenas.com/docco/
It's interesting to compare the current version to the earliest available copy of the annotated source code, from version 1.1.1, seven years ago, in a simpler JavaScript age:
https://cdn.rawgit.com/jashkenas/underscore/1.1.1/docs/under...
For me, I started by reading and understanding the raw commented source code from the first release (without the initialization wrapper and initially confusing module setup): http://cdn.rawgit.com/jashkenas/underscore/f4299d7427abc59bc...
Then I had an easier time following the annotated version after understanding how the other functions were built on top of each other in the simpler syntax.
TIL Ctor is short for constructor (?)
http://robflaherty.github.io/jquery-annotated-source/