Need advice about which tool to choose?Ask the StackShare community!
AngularJS vs Durandal vs Ember.js: What are the differences?
Architecture: AngularJS follows the MVVM (Model-View-ViewModel) architecture, Durandal uses the MVP (Model-View-Presenter) pattern, while Ember.js uses the MVC (Model-View-Controller) pattern. This difference influences how data is managed and how components interact with each other in the application structure.
Data Binding: AngularJS provides two-way data binding, meaning changes in the model get automatically reflected in the view and vice versa. Durandal and Ember.js primarily offer one-way data binding, where changes in the model do not automatically reflect in the view unless explicitly programmed to do so.
Routing: AngularJS has powerful in-built routing capabilities, allowing developers to define routes and control navigation seamlessly within the application. Durandal and Ember.js also provide routing features, but they may require additional configurations or plugins to achieve the same level of functionality as AngularJS.
Community Support: AngularJS has a larger and more active community compared to Durandal and Ember.js. This community support results in more extensive documentation, plugins, and resources available for developers using AngularJS, making it easier to find solutions to common problems and receive assistance when needed.
Flexibility: AngularJS offers flexibility in terms of choosing different libraries and tools within the Angular ecosystem to build applications. Durandal, although flexible, may be more opinionated in its approach to application development. Ember.js, on the other hand, provides a more structured and opinionated framework, making it easier for developers to follow best practices but limiting flexibility in some cases.
Learning Curve: AngularJS has a steeper learning curve compared to Durandal and Ember.js due to its complex concepts such as directives, scopes, and services. Durandal is relatively more straightforward to learn for developers familiar with the MVVM pattern, while Ember.js strikes a balance between complexity and ease of use, providing a comfortable learning curve for most developers.
In Summary, AngularJS, Durandal, and Ember.js differ in architecture, data binding, routing, community support, flexibility, and learning curve, influencing how developers approach and build web applications in each framework.
What is the best MVC stack to build mobile-friendly, light-weight, and fast single-page application with Spring Boot as back-end (Java)? Is Bootstrap still required to front-end layer these days?
The idea is to host on-premise initially with the potential to move to the cloud. Which combo would have minimal developer ramp-up time and low long-term maintenance costs (BAU support)?
React might be a good option if you're considering a mobile app for the future, because of react native. Although, Vue.js has the easiest learning curve and offers a better developer ramp-up time. Vue.js is great to build SPAs, very clean and organized and you won't have a lot of long-term maintenance problems (like AngularJS, for example). Bootstrap can still be used, but with flexbox there's no need anymore.
I recommend React because of less memory occupant compare to Angular, but this will depend on your organisation flexibility. When you use React you need to import different libraries as per your need. On the other side angular is a complete framework.
Performance-wise I vote for react js as it loads up quickly and lighter on the mobile. You can make good PWA with SSR as well.
If you are new to all three react will be a good choice considering, react-native will be useful if you want to build cross platform mobile application today or tomorrow. If you are talking about bootstrap styling framework than it's a choice you can style ur components by ur self or use bootstrap 4.0 framework. The complete stack mentioned above is platform agnostic u can run it anywhere you want be it cloud or on-premise.
We choose React for our client-side implementation because of React's virtual DOM implementation and component rendering optimization. It can help our app to be more stable and easier to debug. Also, react has strong support from the dev community. There is an enormous amount of reacting libraries we could use, which will speed up our development process.
Have you ever stuck with the question that which one is the best front-end framework for you?
With continuous web development progress, the trends of the latest front-end technologies are also continuously changing with more and more sophisticated web features. These top front-end frameworks and libraries have made your complex web tasks more flexible and efficient.
Check out top front end frameworks and their features at https://www.nmtechedge.com/2020/09/24/top-4-trending-front-end-frameworks-2020/
I honestly think the best choice for which framework you use should come down to your team's skills. If you have one Senior Dev that is great at React, but like 3-4 mid-level devs, and a handful of junior devs that know Vue.js ... maybe look at using Vue.js a little more seriously.
Yes, there are pros and cons to framework decisions, but I honestly see a LOT of teams not even consider whether a specific framework is a good fit.
I honestly think the best choice for which framework you use should come down to your team's skills. If you have one Senior Dev that is great at React, but like 3-4 mid-level devs, and a handful of junior devs that know Angular ... maybe look at using Angular a little more seriously.
Yes, there are pros and cons to framework decisions, but I honestly see a LOT of teams not even consider whether a specific framework is a good fit.
It was easier to find people who've worked on React than Vue. Angular did not have this problem, but seemed way too bloated compared to React. Angular also brings in restrictions working within their MVC framework. React on the other hand only handles the view/rendering part and rest of the control is left to the developers. React has a very active community, support and has lots of ready-to-use plugins/libraries available.
It is a very versatile library that provides great development speed. Although, with a bad organization, maintaining projects can be a disaster. With a good architecture, this does not happen.
Angular is obviously powerful and robust. I do not rule it out for any future application, in fact with the arrival of micro frontends and cross-functional teams I think it could be useful. However, if I have to build a stack from scratch again, I'm left with react.
I used React not just because it is more popular than Angular. But the declarative and composition it gives out of the box is fascinating and React.js is just a very small UI library and you can build anything on top of it.
Composing components is the strongest asset of React for me as it can breakdown your application into smaller pieces which makes it easy to reuse and scale.
I was first sceptical about using Angular over AngularJS. That's because AngularJS was so easy to integrate in existing websites. But building apps from scratch with Angular is so much easier. Of course, you have to build and boilerplate them first, but after that - you save a ton of time. Also it's very cozy to write code in TypeScript.
Our whole Vue.js frontend stack (incl. SSR) consists of the following tools:
- Nuxt.js consisting of Vue CLI, Vue Router, vuex, Webpack and Sass (Bundler for HTML5, CSS 3), Babel (Transpiler for JavaScript),
- Vue Styleguidist as our style guide and pool of developed Vue.js components
- Vuetify as Material Component Framework (for fast app development)
- TypeScript as programming language
- Apollo / GraphQL (incl. GraphiQL) for data access layer (https://apollo.vuejs.org/)
- ESLint, TSLint and Prettier for coding style and code analyzes
- Jest as testing framework
- Google Fonts and Font Awesome for typography and icon toolkit
- NativeScript-Vue for mobile development
The main reason we have chosen Vue.js over React and AngularJS is related to the following artifacts:
- Empowered HTML. Vue.js has many similar approaches with Angular. This helps to optimize HTML blocks handling with the use of different components.
- Detailed documentation. Vue.js has very good documentation which can fasten learning curve for developers.
- Adaptability. It provides a rapid switching period from other frameworks. It has similarities with Angular and React in terms of design and architecture.
- Awesome integration. Vue.js can be used for both building single-page applications and more difficult web interfaces of apps. Smaller interactive parts can be easily integrated into the existing infrastructure with no negative effect on the entire system.
- Large scaling. Vue.js can help to develop pretty large reusable templates.
- Tiny size. Vue.js weights around 20KB keeping its speed and flexibility. It allows reaching much better performance in comparison to other frameworks.
It is a complete waste of time and life to learn a different framework to solve the same problem (Both AngularJS and Angular build A+ UI's, but both require a lot of time to learn). It's dumb to spend 200 hours learning AngularJS, then 200 hours learning Angular when you could spend 200 hours learning AngularJS and 200 hours learning how to solve a different problem (like AI/ML, Data Science, AR/VR, Digital Marketing, etc.)
Pros of Durandal
- UI components3
- Easy to learn3
- Javascript2
- Free2
- Works IE8 >2
- Customizable2
- Quick to develop2
- Easy to start2
- Open source2
Pros of Ember.js
- Elegant126
- Quick to develop97
- Great mvc83
- Great community82
- Great router73
- Values conventions, there is one-true way to organize52
- Open source50
- Components44
- Mvc framework34
- Handlebars.js28
- Htmlbars13
- Yehuda katz11
- Tom dale10
- Great logo10
- It's NOT Google or Facebook6
- manages large data sets on the front end easily5
- Convention over Configuration5
- Glimmer: react-like rendering engine5
- Organized4
- Fast4
- Enterprise4
- Intelligent4
- It rocks4
- Good docs3
- Fastest spinning circles3
- IE8 support3
- Easy and Quick to develop2
- Documentation is finally active and updated2
- Flexibility1
- Business wins1
- Comprehensive1
- Great for big apps/many devs because its organized1
- Growing community1
- For building ambitious Web apps1
- Dependency Injection1
- Stability without stagnation1
Cons of Durandal
Cons of Ember.js
- Very little flexibility2
- Too much convention, too little configuration2
- Hard to integrate with Non Ruby apps1
- Hard to use if your API isn't RESTful1