Choosing a JavaScript Framework – Rob Eisenberg




In the last couple of years there has been an explosion in JavaScript frameworks. How is a developer or business to make a wise choice? What are the advantages, trade-offs and differences? In this talk we’ll compare and contrast six popular front-end frameworks: Angular 1, Angular 2, Polymer, React, Ember and Aurelia. We’ll look at the same “Hello World” example in each framework so we can see, side-by-side, the differences in development strategy and philosophy.
We’ll also discuss how these frameworks stack up against a set of both technical and non-technical key evaluators so that you can get beyond the hype and finally make a solid technical and business decision.

Original source


38 responses to “Choosing a JavaScript Framework – Rob Eisenberg”

  1. "What are my recommendation at the end of this highly biased talk?" (57:20), says Rob Eisenberg, author of Aurelia. Well, Aurelia and Ember are the frameworks you should choose concludes Rob: "Obviously, as I said, I am biased. I include Ember in this because you see a lot of the same values on the Ember team as we have on the Aurelia team." (57:40) "I am the worst person to give this presentation, clearly". (1:00:55) No shit.

  2. Ok. Forget about the first 28 or so minutes. This is just hello world in different frameworks, which might be interesting by itself, but thats not how you choose a framework. Directly skip ahead to the comparison. And he really conviced me to give ember and aurelia a try (and if you directly compare those, you really might get sold on aurelia). Good presentation!

  3. The example shown for React is more advanced than "Hello World", whereas the example shown for Aurelia is deceivingly simple. Remember — the speaker is biased (which he admitted).

    One-way data binding is an assumption, but it's the right assumption. Markup's structure logically implies one-way data binding — after all, it's a tree, not a cyclic graph. Keep things simple — ditch directives and half-assed template languages. A good framework is one that I can forget is there.

    React provides a simpler (better) way of thinking about dynamic markup, which is why React apps scale so well with complexity. Even huge React apps are easy to think about because of the way React separates concerns with different component spaces.

  4. I still remember by professor Mr. Sanjay Chitte @uwindsor said "what's wrong with you fellows, why you computer science students always like to re-invent the wheel?" I didn't understand much that time but now I know what he means. In Every couple of months I see a new javascript framework. It would be better if we only spend time 1… 2 or 3 javascript open source framework and keep make library for that for better computing.

  5. If you're looking for an objective evaluation of different JavaScript frameworks, this is NOT the video for you. The presenter is obviously biased in favor of Aurelia. There are a number of factual errors and misrepresentations about the other frameworks, all of it designed to make Aurelia look better than the others. That being said, Aurelia may or may not be the framework for you. Just do additional research and don't rely on this video to make your decision.

  6. I agree with many things said during this presentation. But I also think, that this comparison was not really focussed on the developer experience but more on the numbers and facts about the frameworks itself. But the really important stuff to a developer like me is not just how easy it is to use, but more how configurable and plugable it is. So in this part there is something, I don't really like about Aurelia: It's kinda magic. By using conventions it is not really clear from a code perspective which view and which viewmodel is connected and which files are executed in what order. I think there Angular 2 does a really great job by letting the developer configure this stuff via metadata. I, as a developer don't really care if it is pure ES2016 I am writing. Decorators are cool to declare exactly that metadata, like a component css selector or a template url. By using conventions, I need to know the convention. I don't see the convention in the application code. So to me, the comparison about the obstrusiveness is not really fair. As long as you use Aurelia in the predefined way, with the predefined or custom conventions, you won't have any problem. But when you want to do something different, than what the convetion allows, it starts to get really obstrusive. I don't like some magic stuff that gets hidden away inside of a framework. I, as a developer, want to be able to change the behaviour when needed and to be very flexible. With Angular 2 you don't have this problem, because you can configure it for each and every component. Another thing I like about Angular 2, that was not mentioned in the presentation, is the way how RxJS is integrated with Angular. It's really great to have 2-way databinding deeply integrated with RxJS, To have HTTP deeply integrated with RxJS, To have validation deeply integrated with RxJS. RxJS is in my opinion a much better approach than old school promises or callbacks. So besides this talk was highly biased, I also think, the arguments pointed out are more background facts about the frameworks and are not really important to a developer. So I think in our business, we will evaulate Angular 2 as well as React for our future UI Frameworks. Aurelia is way too magic, in my opinion.

  7. I gave a presentation on Aurelia recently to a JS user group where I work, sort of "I looked into Aurelia so you don't have to". I would like some response to one bit of feedback that I got, to the effect that Aurelia uses two-way data binding which the leading edge technical experts have abandoned as a dead end, i.e. everybody is going with the React/Redux one-way binding approach these days. When I tried to research the issue, I got the impression that data binding in Aurelia is not quite so simple as was suggested. Can somebody shed more light on this possible controversy?

  8. it should be worth mentioning that the repaint benchmark is not entirely applicable to React since React is trying to avoid full repaints and that makes React very performant for a lot of use cases. Thanks for your effort on presenting all this information. And the Patent clause rework changed a lot of things nowadays, with Microsoft, Google, Apple not prohibiting the usage of React any more

  9. Aurelia is now a Microsoft trojan horse… with Visual Studio Code and Microsoft .NET support by default on their CLI…. stay away from it. Oh btw, Eisenberg is now a Microsoft employee as of last week.

  10. I very much enjoyed your video and hearing your opinions though I disagree with some. Of all the frameworks and libraries that I've used, and that includes all you covered here (except for your own, which I will examine when time permits) in this video, React has been and continues to be the easiest point of entry for me and many others. This is because it makes applications more predictable and easier to reason about. It is remarkably simple, both in its minimalist API and in one's ability to reason about as projects become large and increasingly complex. It's single source of truth data model via Redux or similar data stores along with one way data binding contribute greatly to that end. Another advantage of React is that it is singularly focused on the presentational domain, and thus encourages the mix and match approach to crafting a tech stack that is tightly coupled with the business/problem domain. Sadly for some, and here is my own bias boiling to the surface, React's success might spell a trend of declining popularity of all encompassing frameworks which, for me at least, in the fast changing landscape of JavaScript, might not be a bad thing. Thanks again for a very interesting and opinionated take on the subject.

  11. How do Aurelia and Ember mesh with non SPAs? My issue is we have a large enterprise application built with Laravel and Angular 1.x. The routing and rendering is done with Laravel and the data is retrieved/bound by Angular via $http to a 3rd party API. A single page app in my case would be painful to build, but our platform is aging and I'm to come up with a recommendation for future development efforts. Just wondering your thoughts on this angle.

  12. Although this talk might have been biased, there was an unignorable level of truth to it. I recently finished a 4 day Angular 2 course and at the end of it all, the whole thing just felt wrong. I don't think A2 is the best fit for my team even though I was crazy about Angular 1.

    I'm interested in giving Aurelia a try when I get back out from vacation. It's really clean and simple, but I hope capability was not sacrificed for the aforementioned. I'm not trying to go back to the dark ages, here.

Leave a Reply