The web development community has been in love forever with the idea of writing code that can be shared across the server and the client. Or maybe that’s just me? Nope, not just me.
Which means we’re up to the second Hard Problem In Computer Science: naming things.
Remember Progressive Enhancement?
Accessibility loved it! Good semantic markup makes screen readers happy.
Google loved it! Quality HTML is King for ranking in search results.
Users loved it! Apps were faster, and more interactive.
Web Developers loved it! … well … sort of.
Yes, it was great we could launch an MVP and progressively enhance it with fancy client-side coolness. And oh, all those plugins!
Actually… that’s a lot of work.
The name works for me on a number of levels.
Firstly, it’s the best description I’ve heard of what’s going on.
Here’s the Wikipedia definition of Isomorphism:
Isomorphism is a very general concept that appears in several areas of mathematics. The word derives from the Greek iso, meaning “equal,” and morphosis, meaning “to form” or “to shape.”
Here’s a definition of Progressive:
Progressive; adj. happening or developing gradually or in stages.
Sounds pretty spot on to me.
Secondly, this whole concept seems like the natural evolution of what we were solving with Progressive Enhancement.
The Web Platform has come a long way. Chances are we’re supporting IE9 and wishing it was just IE10+. We’ve got grids for responsive resizing, and flex-box will soon help us forget we ever used tables for layout.
There are still important reasons for server-side rendering. Deep links. Accessibility. Faster page loading. And, of course, SEO.
We can stop designing two user experiences. We can stop writing everything twice. And since we have less to worry about, we can be more productive. This will literally help us progress faster.
Love it? Hate it? Have a better idea? Let me know on Twitter: @JedWatson