Skip to content

s/isomorphic/universal/g - #4041

Closed
mjackson wants to merge 1 commit into
react:masterfrom
mjackson:universal
Closed

mjackson wants to merge 1 commit into
react:masterfrom
mjackson:universal

Conversation

@mjackson

@mjackson mjackson commented Jun 5, 2015

Copy link
Copy Markdown
Contributor

I'd like to propose that instead of using the term "isomorphic" to denote code that runs in servers, browsers, and mobile devices we use the word "universal". Just looking at the definitions of these two terms, seems like the latter fits much better.

screen shot 2015-06-05 at 11 09 52 am

screen shot 2015-06-05 at 11 10 36 am

I'd love to hear everyone's thoughts on this.

@facebook-github-bot

Copy link
Copy Markdown
Contributor

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. In order for us to review and merge your code, please sign up at https://code.facebook.com/cla - and if you have received this in error or have any questions, please drop us a line at cla@fb.com. Thanks!

@blainekasten

Copy link
Copy Markdown
Contributor

Well, server and browsers running javascript are similar, but not the same. So Isomorphic seems to make sense.

Also, this is a pretty much community standard way of speaking about running the same code on browser and server, why fight it and cause further confusion?

@facebook-github-bot

Copy link
Copy Markdown
Contributor

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Facebook open source project. Thanks!

@ryanflorence

Copy link
Copy Markdown
Contributor

this is a pretty much community standard way of speaking

While my experience is, of course, anecdotal, as we're out conducting training on React.js with hundreds of developers, the term is not standard outside of the group of people saying it right now.

When we get a funny look from somebody, and then say "sorry, a better name would be universal javascript" they go "ohh, like it runs everywhere".

@gaearon

gaearon commented Jun 5, 2015

Copy link
Copy Markdown
Contributor

I like Universal. Kinda like iPad/iPhone apps Universal. 👍

(Edit: not being sarcastic. Isomorphic is a weird word.)

@BerkeleyTrue

Copy link
Copy Markdown

Yes! Universal JavaScript!

@nickhudkins

Copy link
Copy Markdown

👍 because we don't mean
image

@Charca

Charca commented Jun 8, 2015

Copy link
Copy Markdown
Contributor

Great article on Medium, Michael. As a teacher, I know the pains of having to explain the crazy terms coined by the community in plain english (or spanish, in my case), and I always strive to make it easier for my students by using clear, simple language, and analogies that can be understood by anyone.

However, I think that changing terminology that is pretty much established in the community is not a very good idea. Imagine changing Responsive Web Design to Universal Web Design because it's easier for newcomers to understand the concept behind it. It would only confuse people who are already familiar with the term, thinking that is some sort of variation of the original concept. I can see people asking "what do you mean by Universal JavaScript? Is it like Isomorphic?".

Again, I completely understand your point and I'm 100% agree that we should keep it as simpler as possible; I'm only afraid that a change like this at this point in time, would do more harm than good.

@mcdonnelldean

Copy link
Copy Markdown

Love it, I think it's a great simplification of the intent of what is trying to be conveyed which is essentially Javascript almost everywhere.

@sophiebits

Copy link
Copy Markdown
Contributor

Thanks for the idea. We just talked about this in our meeting and decided that we'll leave the name as-is in our repo, but we don't plan to use either term in the public APIs or our documentation so hopefully this doesn't make much difference.

@sophiebits sophiebits closed this Jun 12, 2015
@lufzle

lufzle commented Jun 20, 2015

Copy link
Copy Markdown

+1 to this.

@gnapse

gnapse commented Jun 25, 2015

Copy link
Copy Markdown

+1 for this here too. I think it's not too late. And "isomorphic" is not only weird, it does not really convey the meaning by itself. I almost always end up having to explain what it means in the context of javascript, just as I had to look it up when I first stumbled upon it.

@sophiebits

Copy link
Copy Markdown
Contributor

I'll repeat myself:

We don't plan to use either term in the public APIs or our documentation.

@lexfrl

lexfrl commented Aug 4, 2015

Copy link
Copy Markdown
Contributor

Isomorphic code reads as "code which could run on client env. or server env. or both". It's great because it makes it possible to choose where we want to execute it for different cases/reasons. Such reasons as performance or security or connection stability etc..
@gaearon "Universal app" is not quite about the same thing. Apple says the app is compiled for Iphone and Ipad not more. It doesn't include that we can run the same code with the same session data both on client and the server (even during single request).
Also I think the term "Isomorphic Javascript" is not informative, we're saying "Isomorphic app".
And "Universal Javascript" makes me feel so Tautology

@manonthemat

Copy link
Copy Markdown

@nickhudkins you don't mean isometric?

@melv-n

melv-n commented Apr 17, 2016

Copy link
Copy Markdown

👍 on Universal Javascript!

@renolc

renolc commented Oct 12, 2016

Copy link
Copy Markdown

Universal seems too vague. I was lead to this issue after digging around the http://www.electrode.io/ site, specifically because they kept saying "universal" but I had no idea what they meant by that. Given how close the name is to the Electron project, I originally thought they meant "universal" in the sense that it would produce binaries for "all the desktop platforms." I was, honestly, a bit disappointed when I finally figured out they just meant isomorphic.

Things universal could imply (and have implied in the past):

  • works on all desktop platforms
  • works on all mobile platforms
  • works on all variants of a specific mobile platform
  • works internationally
  • (and now you want to introduce) works on client and server

Since we can't really differentiate between which of these definitions of "universal" is meant at any given time, it seems like a poor choice in description. Even if the actual definition of "isomorphic" doesn't fit where it is commonly used, it is a unique enough term so as not to get confused with something else.

@lacker

lacker commented Oct 12, 2016

Copy link
Copy Markdown
Contributor

Another problem with "universal" is that on iOS, "universal app" already has a meaning. It is an app designed to be used both at iPad and iPhone sizes. https://www.appcoda.com/ios-univeral-app-tutorial/

@cia48621793

Copy link
Copy Markdown

Universal, literally, means everywhere.
That means, one code base should be working on web client and server, IOT devices, desktops, tablets and mobiles, I.e. React DOM, React Native/Cordova, Electron, Node, ESP8266, Raspberry Pi, Arduino, etc.
So I think the term ' universal' could be replaced by something more specific, it just, man, looked like a great, lofty idea, but it can also induce to difficulties in maintenance, compatibility issues and such.
Maybe we should go for 'Universal webapp' or 'Universal mobile app'?

@juanecabellob

Copy link
Copy Markdown

+1 on Universal Javascript

@jaylinwang

Copy link
Copy Markdown

+1 on Universal Javascript

@UnnitMetaliya

Copy link
Copy Markdown

Based on your in-depth research on Medium, I'd agree with Universal JavaScript for sure.

@jamesfulford

Copy link
Copy Markdown

It seems like a good idea, but I think a fair argument can be made for the vagueness of the term 'Universal'. Keep it as 'Isomorphic', and when we teach it, explain that 'Universal' kinda works, but includes more platforms than expected.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.