The problematic syntax is this line (which requires periodic manual updating of robots.txt):
Disallow: /2009/
This year directory needs to be blocked because it contains duplicated posts, and its not useful for the search engines to index it. Such indexing only consumes a lot of bandwidth and can result in duplicate content issues.
However, what if the year is already 2010, or 2011 or even later? The webmaster needs to edit the robots.txt file periodically, which might be inconvenient. It's much worse if he or she forgets to edit the file.
Unfortunately, you cannot block them easily using the wildcards technique in robots.txt, because using wild cards can be dangerous if your website is big. A single wild card mistake can be disastrous.
You can block indexing by using something like /20*, but if the year is 2100, it would still require manual editing. Using /2* can be risky because it might affect future URLs containing this pattern.
To make this process as efficient and safe as possible, you will use PHP to automatically update the robots.txt file.