When you learn a new language, tradition says your first app is “Hello World”. So what is your second app? Turns out that is language specific. In Perl, much to the chagrin of the community, application #2 is a template language, which is why a CPAN search for ‘template’ turns up 2217 results, and a new template module hits CPAN every few weeks to months. Even though you’ve got Template Toolkit and HTML::Template well established.
In PHP rather then building something so mundane as a template library, many people’s #2 app is a CMS. Which is why “PHP” is synonymous with “bad CMS” in many people’s minds, as novices tackle again and again the complex CMS problem.
During the time I was learning Java, the traditional #2 app was a chat server, as everyone reveled in the new found joy of a rationale socket library and built-in threading. The cool kids added whiteboarding using AWT. I imagine this has changed some.
Each language produces an iconic application that gets implemented over and over, based on the tools strengths, weaknesses and culture.
Which is apropos of saying it appears that Ruby’s, or at least Ruby on Rails’ iconic app is the todo list. From Vince’s tutorial, to Tracks, a GTD webapp, 43 Things, a social software todo list, to Tada List the todo list app from 37Sigs/Basecamp. (btw, whats with that Tada List page title?)