Nitpick: does the term "isomorphic JavaScript" to describe JS that runs on both the client and server annoy anyone? Where's the isomorphism?
When I think of isomorphism I think of two things that look different but have the same structure. If you had a set of functions that are synchronous and a set that are async, then maybe you can call the sets isomorphic. Or if you have a Python library that mimics a command line tool, then they could be isomorphic.
Iso = Equal. Morph = Shape. Isomorph = Same shape.
Isomorphic JavaScript = JavaScript that takes the same shape [in multiple environments].
You're thinking isomorphism as math terminology but it isn't. It's just borrowed from Greek. From a quick search it means "same shape" in regular English too!
Your nitpick would be akin to being annoyed by the use of "group" to mean "a number of people or things considered or classed together" because it has a specific meaning in math.
Math and CS are close enough that I think they should be nice neighbors and respect one another's terminology. I use the mathematical term "isomorphism" daily almost hourly while programming.
While this is sort of a silly argument to continue, I'll suggest that "function" is probably the closest example you've given in terms of how "isomorphic" is a technical word over a common use word.
And the use of "function" in computer science for things which are hardly at all functions is a source of massive confusion and pain in the interface between the two fields. I believe personally that it leads to an enormous amount of improper education and broken intuition.
Let me provide another example—variable. This one is far worse than "function" in the confusion caused by its poor appropriation into computer science. The concept of variable is extremely well-designed in mathematics crafted over hundreds of years of philosophical and mathematical debate... and then it also become a mutable slot in Algol and stuck to every mathematician's chagrin.
It's not a good idea to copy technical words and abuse them in similar fields. It'd be as though people in the airplane industry started calling propellers "rockets" all over. Rocket comes from Italian "rocchetto" meaning bobbin/cylinder and so the shape of a propeller engine fits that definition and words are just words right?
Certainly, but that's just unnecessarily confusing. The person who popularized that terminology would be rightfully considered a fool.
> While this is sort of a silly argument to continue
So you love silly arguments too! :P
Perhaps our "disagreement" stems from how used we are to isomorphic as a common word. My mother language is full of greek and latin loanwords/particles in common speech. If I had to guess it's not as pervasive in yours. Or maybe you've been exposed to a lot more math than me! Who knows.
I still can't help but read iso+morph separately (as equal+shape) in "isomorphic javascript".
New words are not a common occurrence, especially when existing words fit the concept (such as isomorphic = same shape; variable = its value can vary; etc.) or parallels can be drawn (function = takes arguments and computes a value; chord = probably because there is a _circle_ of fifths in music where you can draw literal chords).
I see how it can be confusing on tech fields though, but that's just how language works. You could argue there are better alternatives to "isomorphic JavaScript", but to date it's been the only proposal.
That said, I'll try to keep my linguistic creativity to a minimum in tech ;)
I think there's a lot of room for creativity in technical fields (étale morphism comes to mind) but typically once a word has a technical definition it is made off-limits within relevant fields. Terminological blurriness is nice sometimes, but often technical terms are incredibly concrete.
To me "isomorphism" means exactly "a pair of arrows, called witnesses, (f, g) in a category such that fg = id and gf = id" and it confers many properties. If you find a category where {Server Javascript} and {Client Javascript} are two objects and exhibit an isomorphism then I will gladly let you call that object "isomorphic javascript" all day long. Frankly I'm already feeling "isomorphism" fails to capture the nature of this relationship, though.
That annoys the hell out of me. It's a cool word, sure, but it also has an incredibly tight technical meaning of which "runs of server and client" seems to have next to no relation.
I was a bit turned off by the term 'isomorphic javascript' when I first read it mostly because of how it is so fundamental to mathematics and we can say the term isomorphic definitely earned its keep there. In programming I'm not so sure. The term does fit but it's a mouthful, almost as bad as XMLHttpRequest. Is there a cool word like AJAX to take the place of Isomorphic Javascript? Airbnb has a certain coolest factor and they've been using the term so it's most likely here to stay.
When I think of isomorphism I think of two things that look different but have the same structure. If you had a set of functions that are synchronous and a set that are async, then maybe you can call the sets isomorphic. Or if you have a Python library that mimics a command line tool, then they could be isomorphic.