Universal vs Isomorphic

Isomorphic is wrong. Universal is also wrong. I’ll tell you why.

Isomorphism is a one-to-one mapping between two sets that preserves relationships between the sets. For instance, if you add two numbers, say 2 and 4, then multiply the sum by 2, you get 12. If you multiply each number by two before adding (2 becomes 4, and 4 becomes 8), the result is the same. The sets are isomorphic for addition.

So that’s isomorphism. How does this relate to JavaScript development? It’s a good question. The term is made up by the Greek words “isos” for “equal” and “morph” for “shape”. The idea is that the word is a shoe-in for a term that describes code sharing between server and client.

I think you will agree that’s rather unreasonable.

Many developers in the community feel the same. What will replace it? The term Universal has gained popularity as a replacement for isomorphic. It’s a good first step, but it’s not quite ideal. For one, it’s easy to misunderstand. Universal, derived from Universe, has many meanings. The closest definition is “used or understood by all”. Remember, the goal is to describe code sharing.

But, Universal can be understood as a term describing a JavaScript app that can run anywhere. That includes not only the web, but also native devices and operating systems. This misunderstanding is actually prevalent. That’s okay, and I don’t mean to rag on the author. It’s simply a confusing term.

I urge the community to think of a better term than isomorphic and universal. I prefer server-rendered over both terms, but I realize that this is inaccurate as well.

How about United, as in a United JavaScript app? Let me know what you think.