ohanhi / elm-native-ui

[CLOSED] Experiment: mobile apps in Elm using React Native.
BSD 3-Clause "New" or "Revised" License
1.54k stars 75 forks source link

Better name for the project #8

Closed ohanhi closed 8 years ago

ohanhi commented 8 years ago

Elm Native is not a very good name for the project, so feel free to submit your ideas on what would be better.

Why

The dual meaning of "Native" has caused us some trouble already. In short, Elm.Native refers to the JavaScript side of things, while React Native refers to the Objective C / Java on the mobile devices.

Ideally I think the project name would capture the word "Elm" and have a hint towards mobile apps, maybe even forgoing the "Native" concept altogether. It would be nice of course to give a nod to the React Native project, but I feel avoiding confusion is more important. We can always add a "Powered by RN" badge on the Readme. :)

How

Please submit your suggestions as a comment in this issue. Me and @staltz might then choose to select one of the suggested names or maybe we'll come up with something else on our own.

In case we choose one, the person who made the suggestion can submit a PR to get their name in the repo history and in the Readme if they so wish. :tada:

paulyoung commented 8 years ago

I’ve also noticed the ambiguity around the word “Native”.

I actually think that React should de-emphasize the word "Native" too, and the team seemed to agree: https://twitter.com/py/status/573521964934934528

Along those lines, I had begun to wonder how much of elm-native would “just work” with React on the web side, and if this project should support React in general, with "native" being an important aspect of that.

My first thought is that React + Elm = Realm although I recently came across https://github.com/acdlite/realm and am also aware that https://realm.io is quite popular.

staltz commented 8 years ago
paulyoung commented 8 years ago

I like elm-mobile. I've seen some proof of concepts for React on the desktop so it could be something to consider.

cem2ran commented 8 years ago

I would go with the unoriginal name of elm-react-native for clarity and discoverability.

paulyoung commented 8 years ago

Also along the "unoriginal" lines (and to expand on my earlier comment) I'd like to suggest elm-react if that's deemed to be correct.

paulyoung commented 8 years ago

On the opposite end of the spectrum I'd like to propose "Helm":

ohanhi commented 8 years ago

Some other out-there ideas:

staltz commented 8 years ago

elm-react-native is a good option, but I'd avoid elm-react unless we seriously consider supporting React DOM.

cem2ran commented 8 years ago

@staltz my exact thought. elm-native is inherently coupled to react-native for native mobile rendering.

paulyoung commented 8 years ago

How about "Element"?

There are some interesting definitions that could apply here and also has obvious connections to the atom which is associated with React.

sztobar commented 8 years ago

+1 for avoiding react in name. elm-mobile or ulmus sounds good to me.

ir4y commented 8 years ago

elm-mobile +1

paulyoung commented 8 years ago

Given the discussion so far, I still like elm-native.

mk commented 8 years ago

Since the project should enable you to write native apps with Elm I like the name elm-native. I also do like it better than elm-mobile which might as well be just plain Elm in the browser.

davidkpiano commented 8 years ago

Since you're propagating elm across different languages, why not elm-forest? :deciduous_tree:

evancz commented 8 years ago

I am pretty into "literal names" with all the Elm stuff I do. So the compiler is elm-compiler, and you've got stuff like elm-html, elm-http, elm-package, elm-markdown, etc. I hope the community follows this pattern. Just tell people what it is.

I have thought of all sorts of tree puns and I think they are all things that you'd regret later. I'm not into the Latin because no one knows Latin.

The name elm-webgl has WebGL in the name because that's the rendering API it targets. Same for elm-html and elm-svg and elm-markown. I'm not sure React Native is really a "rendering API". Wouldn't the target be whatever Apple calls their layout system? Like elm-uikit or something?

So, my question would be, what exactly are the supported platforms? Is it just iOS? Maybe elm-ui-kit or elm-ios? Is it OSX too? Will Android and Windows phones be supported by this project? Is that even a smart thing to do? If so, elm-mobile or elm-mobile-rendering seem reasonable too.

Note about "native": I think it is safe to expect that Elm will produce "native" code someday. That means "assembly" for a specific platform, so maybe Swift or ObjectiveC or assembly. This also means writing "native" code in Elm will mean writing code for the native language of the platform. I think it's a stretch to call "running JS on a phone" native. But "Just-In-Time Compilation" is a stretch too. It's more like "Eventual Compilation" or "After-the-100th-time-then-maybe Compilation". Point is, there's a history of over-selling how fast thing are and it often obscures things a bit ;)

staltz commented 8 years ago

@evancz both Android and iOS are supported platforms. From the perspective of Elm integration, the React Native API is the same for both platforms. So elm-mobile? (Because elm-html isn't elm-html-rendering). The complication with elm-mobile comes from the possibility that React Native might one day not be just about mobile platforms. It may target OSX for desktop apps, or Linux or Windows. And so forth.

evancz commented 8 years ago

If the root issue is that you cannot name modules Native.* then maybe the right thing is to call it elm-native-ui and the module namespace would be NativeUI.*. This name is kind of nice in that the thing that is actually "native" is the UI, not any of the other stuff. If more platforms are added, the point will still be that you are getting "native UI" on all those platforms. This also makes it clear that it's a rendering backend.

staltz commented 8 years ago

That sounds pretty Ok IMO.

ohanhi commented 8 years ago

Considering @evancz probably certainly knows what he's talking about, let's go with elm-native-ui.

Evan, we'd be honored if you opened a PR with this new name! I know you're busy, so just editing the Readme is fine. Once that's done, I'll create a GitHub organization with the same name and move the repo there.

Thanks everyone for the conversation! :heart: