First there was the native client era on desktops that involved twiddling around with swt, gtk, qt and windows programming.
Then came the advent of webapps with more uniform abstractions of client side js frameworks and css3 and dozens of toolkits and decorators around these.
Then came the mobile era with a new breed of native v/s web applications. Nowadays, the general opinion I hear is that no one really likes webapps on mobiles. But we as a community actively are trying to port over the abstractions of css/js frameworks to native mobile so that developers can continue being comfortable while programming devices that function at the whim of Apple and Google.
I wish there were a timeline of sorts of all the paradigm shifts that programming user experiences has undergone over the last decade.