Perl, Ruby, Java, and Python. OSX has gcc and you can do bash scripts until you are blue in the face.
Check out the Widgets in Dashboard.
BTW, I am not a programmer, I can't help you there. I can make AppleScript dialogs and launchers and simple bash scripts. What I know is from learning enough to know what code snippets I can "borrow" to use here at home. I learned HTML by reading page sources. I'd rather play in Photoshop than some IDE.
Games, we love games.
http://www.idevgames.com/BTW, AppleScript is in /Applications/AppleScript.
Take this script and open up the Script Editor in the Applescript folder. Paste it in.
Hit run.
If you like, go to file/save as. You have choices, you can save as text, script, or application. (I think that is the choices)
repeat
set todaydate to current date
set todayday to day of todaydate
set todaytime to time of todaydate
set todayyear to year of todaydate
set launchdate to date "Tuesday, January 20, 2009 12:00:00 PM"
set launchday to day of launchdate
set launchtime to time of launchdate
set launchyear to year of launchdate
set yearsleft to launchyear - todayyear
set daysleft to launchday - todayday
set timeleft to 86400 - todaytime
set totaltimeleft to timeleft + {86400 * daysleft}
set totaltotaltimeleft to totaltimeleft + {yearsleft * 31536000}
set unroundedminutesleft to totaltotaltimeleft / 60
set totalminutesleft to {round unroundedminutesleft}
set unroundedhoursleft to totalminutesleft / 60
set totalhoursleft to {round unroundedhoursleft}
set unroundeddaysleft to totalhoursleft / 24
set totaldaysleft to {round unroundeddaysleft}
set unroundedyearsleft to totaldaysleft / 365
set totalyearsleft to {round unroundedyearsleft}
if totaltotaltimeleft is less than or equal to 0 then
display dialog "The wait is finally over!"
exit repeat
else
display dialog "There are...
" & totalyearsleft & " years,
" & totaldaysleft & " days,
" & totalhoursleft & " hours,
" & totalminutesleft & " minutes, or
" & totaltotaltimeleft & " seconds left until the bush nightmare is over.
This dialog will auto-refresh every 10 seconds, or you can manually refresh it by clicking OK." giving up after 10
end if
end repeat