Ask a simple question, get a simple answer: it’s because that’s how we speak it in English:


  Today is Thursday, May 24th, 2012.


Now convert the month name to a natural number, and there you have your answer. What’s today’s date?  It’s May 24th.  Instead of writing May-24, we simply change the “May” to “5” and write 5-24 or ⁵⁄₂₄.  

That way it follows the natural language order and so requires no mental gymnastics to switch things around when speaking the date aloud.  Similarly “September 11th” gets written ⁹⁄₁₁, etc.   

The full spoken form with the year, “May 24th, 2012”, then becomes the written shorthand “5/24/2012”, or often just “5/24/12”.  “Christmas of 2001” can be, and somewhat annoying often is, written “12/25/1”, while “January 25th, 2012” becomes “1/25/12”. 

This isn’t usually any sort of problem because of universal consensus on how to interpret such things in the United States.  If you write day/month/year in America, you will not be understood.  Although I myself prefer the ISO notation, normal people do not use it in their daily affairs. 

EDIT

I’ve deleted the rest of the material in case it was distracting the downvoters. 
I have no idea what the downvoters are disagreeing with, since they did not condescend to say why.  The standard and accepted answer as to why Americans write the month first is indeed because they say it first in speech.  A trivial Google comes up with this very same answer repeated dozens and dozens of times. 

I suggest that if you do not like this answer, you do me the courtesy to say why you think this one is wrong. Even better, provide your own answer if you think mine is wrong.  

Date format in UK vs US
Are there any alternatives to Golang's time package? I can't come to grips with its clunky interface and strange way of doing things. The language overall is great, but this part of it just never clicked with me.

Anyone? A really good, thorough tutorial would work too (I have not managed to find one yet)

What I'm trying to do right now is a goroutine that updates only 10 times per second (or any variable interval that I set it to). I've not yet implemented it, as the package is not playing nice. Here's the psuedo code.

function GoRoutine(updatesPerSecond int) {
    interval = 1000msec / updatesPerSecond

    for {
        if enoughTimeHasPassed {
            doThings()
        }
    }
}

