Open abargnesi opened 8 years ago
This is a nice idea. I've heard the idea before on the [Code Newbie Podcast}(http://www.codenewbie.org/) too.
The difficulty comes in finding something that a group is at least somewhat familiar with. If I recall correctly, on Code Newbies it was mentioned that they picked a small gem that some/most of the group had worked before and looked at the internals.
Familiarity may not be a requirement though. Code reading is code reading. You will certainly know more having done it.
It could be goal-oriented as well. Something like:
Should familiarity with the language in question be required?
:+1: on those goals
Not if the goal is to learn a new language. What better way to learn a new language then pick apart existing code.
For the others goals you should be familiar with the language.
This is a great idea, in general. I tend to make a habit of digging into my project's dependencies, for both debugging and curiosity-quenching purposes.
For instance, I do a ton of programming in C# and was ecstatic when I discovered that the majority of the .NET framework's source is open and available at http://referencesource.microsoft.com/ Want to know what Console.WriteLine() actually does? Just look here: http://referencesource.microsoft.com/#mscorlib/system/console.cs,5ac7c4fda643413b
There is much to be gained from this exercise.
I just got through listening to Software Archaeology with Dave Thomas (SE Radio episode 148).
The episode was on reading and exploring code as a hobby. We spend much time writing code, but arguably less time reading (especially other framework, tool, code). Doing so may give you a deeper understanding of the design and trade-offs made at the time the project was created.
My suggestion would be to: