<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Mar 13, 2018 at 2:16 AM, William Park via talk <span dir="ltr"><<a href="mailto:talk@gtalug.org" target="_blank">talk@gtalug.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi all, (If you're on KWLUG list, sorry for duplicate.)<br>
<br>
I have a general question about JavaScript.  I want to develop/propose<br>
"web app" hosted from embedded Linux board.  So,<br>
    - you go to its webpage,<br>
    - click "web app",<br>
    - it will serve out JavaScript to browser client, and<br>
    - the app will be running on the browser.<br>
<br>
Which Javascript should I learn?<br>
<br>
I mean, there are Meteor, Angular, React, Ember, Vue, etc.  Some are<br>
described as "framework", and others described as "library".  Then,<br>
there is Web Assembly I've been reading about recently.  It's difficult<br>
to figure out what's what.</blockquote><div><br></div><div>If you don't know JavaScript already, don't start by attempting to learn one of the frameworks or libraries. Learn plain JavaScript first. Unless you intend to use Rust, C, or C++ to write your code, you can ignore WebAssembly for now.</div><div><br></div><div>Meteor - I've ignored it because at the time I was looking, they used their own packaging mechanism instead of Node packages and the only database they supported was MongoDB. MongoDB is not likely a good fit for an embedded Linux board.</div><div><br></div><div>Angular - which one? AngularJS, which is pre version 2x of Angular, is a completely different beast than Angular 2x and on. We use AngularJS on a project and it works well for us but the decision to use it was made in 2013/2014. I would not make the same decision today. AngularJS and Angular are popular in the "enterprise" space.</div><div><br></div><div>Ember - if you like the rigid way it does things, it might be OK. I didn't like it and it seemed like it didn't really solve problems I couldn't solve with much more popular frameworks in better languages, like Django.</div><div><br></div><div>Vue - it's popular with the Laravel PHP crowd. It reminds me of Angular in some ways. Meh...</div><div><br></div><div>React - I'd pick this for the front end today if I wanted to stick with JavaScript because it's tremendously popular and there are a wealth of resources available. That you can write once and deploy to the web, natively to iOS and Android using ReactXP <<a href="https://microsoft.github.io/reactxp/">https://microsoft.github.io/reactxp/</a>> is a big win. The React license was problematic but Facebook saw the error of its ways and changed the license to an MIT license.</div><div><br></div><div>You'll still need some sort of server, which doesn't necessarily have to be written in JavaScript. If you want to use the same language both on the frontend and backend, I really like Feathers <<a href="https://feathersjs.com/">https://feathersjs.com/</a>> with React.</div><div><br></div><div>Of course what you want to accomplish can be done with languages that transpile to JavaScript, too. See: <<a href="https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js">https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js</a>></div><div><br></div><div>I've mentioned Dart and Flutter before. I've been playing with it and like it.</div><div><br></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><div class="gmail_signature"><div dir="ltr">Regards,<div><br></div><div>Clifford Ilkay</div><div><br></div><div>+1 647-778-8696</div></div></div></div></div></div></div></div><img src="https://my-email-signature.link/signature.gif?u=206693&e=19549974&v=6efc9b98f2abf1f19cbc27583e42ee9c0bac2e3c5f76adfeabcd78f286bc3cbb" style="width:0;max-height:0;overflow:hidden">