Hacker News new | ask | show | jobs
by clhodapp 3663 days ago
It really is a very wrong use of "isomorphic", though:

First, "isomorphic" is a word that denotes a symmetric, relative relation between two separate things; Two things can be isomorphic to each other but one thing cannot be called "isomorphic" without specifying what other thing it is isomorphic to. That simply doesn't make sense.

Second, isomorphism is about those two things having the same conceptual structure, despite being different things. In math, this means that you can define a lossless two-way conversion between the things (you can start with an A, turn it into a B, and go back to an A, and you'll get the same A). In biology, the field the author took his definition from, isomorphic means that the things have a different ancestry but the same structure. This is literally the opposite of taking code and shimming or compiling it to allow it to run in multiple environments, as it would be taking a single common ancestor codebase and lossily changing its structure to allow it to run in multiple environments.

edit: Just realized you are the author. Now I feel silly for referring to you in the third person. In any case, I do want to say that despite any squabbling over terminology, you seem to be doing great work in putting out rill. Developing a full-blown application framework like this mostly on your own is no mean feat. My squabbling stands, though.

1 comments

> It really is a very wrong use of "isomorphic", though

It's really not.

> Two things can be isomorphic to each other but one thing cannot called "isomorphic" without specifying what other thing it is isomorphic to.

Good thing we're talking about the relationship of client and server code then so we're not doing that then isn't it?

> isomorphism is about those two things having the same conceptual structure, despite being different things.

Yup, still perfectly on topic here with Client vs Server...

> In math...

Ah well, there's your problem. It's nothing to do with the mathematical definition of the term.

_Technically_, it would be more accurate to say that your client is isomorphic to your server. In that regard, the term 'isomorphic javascript' doesn't really make sense as there's nothing to compare it to.

However, everyone knows what you're talking about when you say 'isomorphic javascript', so the pedantry doesn't really matter.

Well indeed, and "isomorphic javascript" is really just dropping the heavily implied "application" at the end.

At it’s core Isomorphic JavaScript describes the relationship between the application that runs on the server and the one it serves to the client to run.

It's perfectly correct - because it's not describing the code it's describing the application(s) and the approach they take.