What's the difference? 'Will' and 'be going to'

Will + infinitive Be going to + infinitive
A decision at the moment of speaking:

Julie: There's no milk.
John: Really? In that case, I'll go and get some.
A decision before the moment of speaking:

Julie: There's no milk.
John: I know. I'm going to go and get some when this TV programme finishes.
A prediction based on opinion:

I think the Conservatives will win the next election.
A prediction based on something we can see (or hear) now:

The Conservatives are going to win the election. They already have most of the votes.
A future fact:

The sun will rise tomorrow.
For promises / requests / refusals / offers:

I'll help you tomorrow, if you like.


More examples:

  • (The phone rings)
    Julie: I'll get it!
    ('I'm going to get it' is very strange, because it makes us think that Julie knew the phone was going to ring before it did).

  • I'm going to go on holiday next week.
    ('I'll go on holiday next week' makes it sound like you've only just decided at that minute. Of course, this is possible, but normally we plan our holidays more in advance!).
Other points about the future:

We use the present continuous tense for definite future arrangements. Often, it doesn't really matter if we choose 'be going to' or the present continuous. In the following example, there is really very little difference in meaning:
  • I'm going to the cinema tonight.
  • I'm going to go to the cinema tonight.
We use the present simple tense in two cases. First, we use it for a timetabled event in the future, like public transport or the start of a class:
  • My train leaves at six tonight.
  • His class starts at 9am tomorrow.
Second, we use it after certain words, when the sentence has a future meaning. These words are: before / after / as soon as / until / when:
  • I'll call you when I get home.
  • She's going to study after she finishes dinner.
  • Please drink some water as soon as you complete the race.