Forces do not exist
Most people first hear about forces in high school, with Newton. But the reality is that forces do not exist. Instead, what we have is something similar to particle physics tennis: two particles exchange another one and get either closer and closer or further and further apart.
Imagine you’re in outer space with a friend. You take a tennis ball and you throw it at your friend: now, you are thrown backwards because of recoil. In more physical terms, this is an example of momentum conservation: the momentum the tennis ball carries has to be equal to your momentum going the other way. When your friend catches the ball, they will also be pushed, in this case in the direction of the ball. If they now return the ball to you, the process will happen again and you and your friend will be moving further and further apart from each other. It’s as if there was a force pushing you apart: however, there is no force. You are just passing a tennis ball around.
With particles, something very similar happens. An electron will give off a photon, a type of boson, which will be caught by another electron. The momentum of that photon will propel both particles in opposite directions, causing what looks as a repulsive force.
The force between opposite charges
The situation for opposite charges is a bit more complex. My explanation may strike as unorthodox to some particle physicists, but it is the only intuitive one I could find. The trick is to consider opposite charges as if they were moving back in time.
Back when Quantum Mechanics was starting, Paul Dirac made a startling discovery: the electron had to have an evil twin with positive charge, which he called the positron. Later on, Richard Feynman suggested you could view these positrons as electrons travelling back in time: a positron will do exactly the opposite of an electron, which means you can’t tell between a video of a positron and a video of an electron being played backwards.
When dealing with the effects of photons, this becomes important. Imagine an electron gives off a photon, which then hits the positron. An electron would be pushed forward, so the positron will do the exact opposite: it will move towards the electron! Then the positron will also give off photons, but those photons will also do the opposite of what the electron’s photons would do: this means that, instead of pushing the electron away, they will pull it closer together! This means that oppositely charged particles will attract, whereas same-charge particles will repel. We can explain all of this using only particles: forces do not exist.
Virtual and real particles
The story above is understandable and quite close to reality, but far from a complete description. For example, if electrons are giving off photons in all directions, there shouldn’t feel pushed in any direction more than any other. The trick here is that only the photon that ends up being absorbed by a nearby particle “counts”: the other ones have energies that are too small to have an effect. In fact, all of those photons, including the one that gets absorbed, are undetectable and live only in our calculations: we call them virtual photons. Only the photons we get to detect are real photons.
Virtual photons live within the uncertainty principle. They are allowed to exist for a brief time, as long as their energy does not exceed a certain threshold. The less energy they have, the longer they can survive. This is why forces that are transmitted by massive particles, like the weak nuclear force, have such a short range: the virtual particles are not allowed to exist for long enough to get far!
However you consider this, one thing is still clear: forces do not exist. They are a side-effect of particle exchange, but have no existence of their own.