Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Technology selection #1

Closed
rickmanelius opened this issue Aug 10, 2017 · 21 comments
Closed

Technology selection #1

rickmanelius opened this issue Aug 10, 2017 · 21 comments

Comments

@rickmanelius
Copy link
Contributor

rickmanelius commented Aug 10, 2017

Ultimately, we need to select our implementation strategy for a native app. This needs to consider OS compatibility, flexibility, long term support from the community, license compatibility, development speed gains, etc.

@andrew-c-tran
Copy link
Contributor

After some initial investigation, I've come to the conclusion that Electron, as initially suggested by @rickmanelius, will suit our needs fine. My only concern, however, is that the base bundle size is 136MB. The code on top will be 5-10 megs, but in a worse case scenario we could potentially have a UI alone that weighs in at 200 megs!

@rickmanelius
Copy link
Contributor Author

As per a conversation with me and @andrew-c-tran yesterday, we're looking at Electron for the packaging as described above with React as the framework to build. We've had some concerns about this because of some previous legal issues, but it appears the modified license is less onerous and Apple + Microsoft now allow their teams to use React. Still, we will want one final pass through by legal. I'll assign this to me to take that on.

@andrew-c-tran
Copy link
Contributor

After more investigation, it appears using Electrino, we can reduce the payload size for Windows and OSX platforms to under a meg or two before image assets are added to the UI. the Linux binaries, however, are still going to weigh a few hundred megs.

@rickmanelius
Copy link
Contributor Author

@andrew-c-tran Here's the draft I've queued up for legal. Can you sanity check for any inaccuracies at a tech level? I fully understand that you're not a lawyer and not necessarily the person to review this with that level of scrutiny. https://docs.google.com/document/d/1PxmGOp71qRG34539itWu3uLPpcKSIloT9DRYDEISl8I/edit

@rickmanelius
Copy link
Contributor Author

Got a thumbs up from @andrew-c-tran in a direct 1x1 Slack. Just need approval from @sgrandchamp now and I'll send to Donyelle.

@sgrandchamp
Copy link

@rickmanelius requested access to the doc

@rickmanelius
Copy link
Contributor Author

@sgrandchamp Sorry about that. I just gave you permission!

@rickmanelius
Copy link
Contributor Author

Got the thumbs up to follow-up from Steve. Emailing Donyelle now!

@rickmanelius
Copy link
Contributor Author

Email sent!

@rickmanelius
Copy link
Contributor Author

A few articles/discussions have popped up that are worth referencing (thanks, @cyberswat, for surfacing them).

Summarizing without having read ALL the gory details:

  • This is still actively being discussed/debated.
  • The Apache Software Foundation decision was recent and there has been active attempts to reach out and start an open dialogue.

@rickmanelius
Copy link
Contributor Author

@andrew-c-tran
Copy link
Contributor

andrew-c-tran commented Aug 21, 2017

When do we expect to hear back from Donyelle? My thought process is that the moment facebook actually enforces their license stipulation and revokes someone's license, it'll be front page on every tech blog and people will abandon React worldwide overnight. They've got one shot to use it, unless they're very clearly fighting a patent troll in which case it makes their stance even stronger. The chances of us being the one shot ever that FB gets to bully is virtually zero i'd think.

@rickmanelius
Copy link
Contributor Author

Hi @andrew-c-tran:

  1. Agreed that it's a nuclear option and probably not going to be used, lest it begins a mutually-assured-destruction like scenario.
  2. I was hoping to hear back by last Friday. I have a call w/@sgrandchamp and @cyberswat to discuss this morning and we'll follow-up with Donyelle again knowing that this is becoming a blocker.

@rickmanelius
Copy link
Contributor Author

@andrew-c-tran FYI. In the convo with @sgrandchamp and @cyberswat, our preference is to stick with React. We have a call w/Donyelle in 5 minutes as a final sanity check and (hopefully) we can then proceed.

@rickmanelius
Copy link
Contributor Author

After much deliberation and a discussion with legal, we've concluded that the gains in using React (larger community, faster time to market, etc) outweigh the risks, which are largely edge case and are not without ways around it (e.g. fork react, replace with preact/angular, etc) should it ever become an actual problem for the business.

@andrew-c-tran
Copy link
Contributor

andrew-c-tran commented Aug 21, 2017 via email

@rickmanelius
Copy link
Contributor Author

@andrew-c-tran It looks like we're good to go unless you have any follow-up questions re:Electron and React as the two major underlying technologies that we'll use for our UIs.

@rickmanelius
Copy link
Contributor Author

Just noting that an open item on this might be a conversation between @andrew-c-tran and @beeradb to review any implications on the connection with Golang on the backend. Then let's get this closed out.

@andrew-c-tran
Copy link
Contributor

Upon further investigation today, I don't see how we can pull this wrapper off without electron, and it's by far the most elegant solution. A huge impediment I found is that the file system is sandboxed via browser safety protocol (which makes sense, javascript in the wild should be able to see your filesystem). This makes things like 'ddev config' require the end user to have to type in the path into a box, which is absolutely not ideal. Electron exposes the filesystem, overriding this issue. Secondly, electron having a bundled chrome engine means that cross platform testing should be virtually identical.

@rickmanelius
Copy link
Contributor Author

At this stage, there isn't anything else actionable for this ticket. We will continue to test/benchmark memory/CPU footprints, but short of anything major coming up, it will not influence our selection in the short term.

@rickmanelius
Copy link
Contributor Author

Found this article and thought it was very helpful in deliniating the differences in the copyright/usage and patent grants. https://blog.fossa.io/dont-over-react-to-the-facebook-patents-license-629f708f2221

andrew-c-tran added a commit that referenced this issue Oct 18, 2017
…mework

Issue 32 initial testing framework

Former-commit-id: 402e3ae
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants