For a developer focused on delivering solutions for their customers today, Lightning can seem like a lot of change and hassle for little reason. 

Salesforce are dedicated to making Lightning the future, but why did they have to change everything? Why do you suddenly need 8 source files to do something that used to just need a Visualforce page and an Apex controller?

This video is the best, most technical explanation that I have seen of where Salesforce are coming from with Lightning. It sets the scene with Lightning's origins in Aura and comparison to other web application frameworks. 

I came to the video to find out how Lightning components are actually taken from your source code to being displayed to the user. The surprising answer is that it is not a templated web-page with substitutions (like Visualforce), rather the Lightning component source is compiled from XML to Java on the server, then serialised to JSON, sent to the client, and rendered onto the DOM from there.

Lightning provides a much better object-oriented approach than Visualforce page, templates, and components ever did. Inheritance and composition act much more like they do in a proper OO language, and this video really helps a developer to make sure that they're working with Lightning rather than against it.