The question of the differentiation between science fiction and fantasy is a common, even contentious topic, especially when the two genres (along with horror) are lumped into more generic "speculative fiction". Not claiming to be an expert on the fine distinctions, I look at how the fantastic elements are used in a particular plot to tell whether it belongs to the fantasy or the sci-fi camp.
- Science fiction is a genre of fiction that explores the impact (or lack thereof) of scientific and technological progress on select aspects of the human society or human condition. The degree of science fiction "hardness/softness" depends on whether a particular work explores the "progress" or the "human" part in greater depth.
- Fantasy is a genre of fiction that explores human condition by making normally intangible aspects thereof (like "virtue", "soul", "evil", etc.) directly observable by fantastic means. The degree of its "highness/lowness" depends on how far a particular work chooses to go in this reification of the intangible.
In other words, fantasy explores the human condition directly, by externalizing its inner workings for the reader to see, while science fiction does so indirectly, by changing the environment humans exist in and observing how they do or do not change with it. This way, science fiction applies the scientific method to the human condition, while fantasy expresses it with symbols and cultural archetypes. By this definition, Star Wars is definitely fantasy, despite its lasers and starships, as its main fantastic plot device, the Force, externalizes and makes tangible the inner darkness in some characters and the goodness of heart in others. Meanwhile, Lyrical Nanoha, in spite of its magical girl genre roots, is easily science fiction, thanks to its exploration of the social and humanistic progress that accompanies scientific advancement.