‘…do not use semicolons. They are transvestite hermaphrodites representing absolutely nothing. All they do is show you’ve been to college.’
Now, I’m not one to contradict a literary luminary like Vonnegut, but I think I have to take issue with this. And this is why.
Here comes the science
Semicolons have two uses: for complicated lists, and to link two separate sentences that are closely related. It’s the second one I’ll be concentrating on today. Here’s an example:
‘Dean was fed up with working; he’d rather be in the pub.’
A comma would be wrong here and would cause a comma splice (don’t get me started on comma splices; I hate them). That’s because grammar rules say you can’t link two independent clauses – i.e. two clauses that are sentences on their own but are closely linked – with a comma. It has to be a semicolon, or a dash. On the other hand, comma splices are fine in some languages, and in fact some well-known quotes in English are comma splices. ‘I came, I saw, I conquered’ is one.
In real terms, a semicolon offers more of a pause than a comma, but not as much as a full stop. Read the sentence above out loud and you’ll hear it.
You could, of course, use a dash here (‘Dean was fed up with working – he’d rather be in the pub’). Speaking of which…
Dashed good grammar
Another issue with semicolons is that they can be hard to see online. If you’re reading text on a phone screen for example, a semicolon and a comma can look pretty similar (unless you’re a massive pedant like me). So the en dash (not the hyphen – I’ll have a rant about this in a later post) is rapidly stealing the semicolon’s job. Grammar books generally say you should use an en dash to mark off information that isn’t essential to the rest of the sentence, so they’re not technically interchangeable. And the OED says that you should avoid dashes in formal writing, although I definitely disagree with that.
All of this brings me to the conclusion that there definitely needs to be something in between a comma and a full stop. But whether that’s a dash or a semicolon is up to you.