In this talk we will first discuss traditional software-based side-channel attacks and then look at different transient execution attacks and defenses. We will discuss the differences between all the Spectre variants in terms of microarchitectural (prediction) elements, the attacker model, and the attack strategy. We will discuss blank spots that we should look at in the future. With this knowledge we are prepared to discuss which defenses against transient execution attacks are effective. We will see that there are good defenses, but most are neither effective nor efficient. Finally, we will discuss open problems for defenses.