Copyright ©2008-2021 SoftTeco
Smart Agriculture: Bringing IoT to the Farming Industry

Smart Agriculture: Bringing IoT to the Farming Industry

Smart agriculture is a concept of farming that places emphasis on using IoT in agricultural processes for better management of processes and their automation.

How to Develop a Freelance Marketplace

How to Develop a Freelance Marketplace

A freelance marketplace solution is an efficient way to connect freelance service providers and buyers in one place and is in high demand today.

Tech Review Series: Swift

Tech Review Series: Swift

Swift is a programming language used to create iOS applications but it is also suitable for backend development and creation of Android apps.

Top Causes of Poor App Performance and Tips for Fixing a Slow App

Top Causes of Poor App Performance and Tips for Fixing a Slow App

There are numerous ways how you can optimize a slow app and increase its responsiveness and efficiency, hence, improving user experience.

Tech Review Series: Kotlin

Tech Review Series: Kotlin

Kotlin is a programming language used to create native Android applications. Its clear syntax and rich functionality make it the top pick among many developers.

Medical Apps for Doctors: the Biggest Benefits and Use Cases

Medical Apps for Doctors: the Biggest Benefits and Use Cases

Medical apps for doctors are valuable assets that can be used for multiple purposes, including time management, diagnostics, and clinical decision-making.

Tech Review Series: Flutter

Tech Review Series: Flutter

Flutter is a cross-platform development tool that allows building rich and beautiful UIs and deliver the apps quickly and easily.

Machine Learning for Business

Machine Learning for Business

Machine Learning is a highly valuable asset for a company from any industry, be it finances or healthcare, due to its ability to work with Big Data.

SoftTeco Opens Machine Learning and Data Science Department

SoftTeco Opens Machine Learning and Data Science Department

SoftTeco opens a new Machine Learning and Data Science department and aims to help our clients resolve critical data-related issues and create unique solutions.

Tech Review Series: Xamarin

Tech Review Series: Xamarin

Xamarin is a popular cross-platform development tool, built around .NET. and used to create robust and feature-rich mobile and desktop applications.

Web development
Tech Review Series: Ember.js

Tech Review Series: Ember.js

Ember is one of the most controversial frontend development tools out there. While some claim that Ember already bit the dust, its evangelists claim that it’s one of the best frameworks to work with. So where do things really stand?

Ember indeed has quite a few major flaws but it also has a number of significant advantages that make developers select Ember as a framework of choice. In this article, we’ll review what makes Ember a good fit for your project and what drags it down in competition with its rivals.

Ember.js: a brief history and the current state

Ember.js did not just pop out of nowhere - it developed from the SproutCore 2.0 framework. SproutCore 2.0, in turn, was an attempt to improve the initial SproutCore framework that was created in 2007. 

When SproutCore 1.0 was created, it was not sufficient enough for Web 2.0 so the development team opted for a fresh start and began working on the SproutCore 2.0. The project was led by Yehuda Katz and Tom Dale and the original SproutCore creator, Charles Jolley, was responsible for the core Run Loop and key-value observer code.

Strobe, the company that was formed by Jolley, did not deliver the expected results and had to be acquired by Facebook. Dale and Katz, however, decided to form their own company called Tilde and its main focus was further development of SproutCore 2.0 which was soon renamed Ember.js. 

The official launch of Ember.js happened in 2011. The main difference between SproutCore and Ember.js is that the latter focuses on the HTML/CSS use cases and data binding. 

Today, Ember.js is not very popular, especially compared to other frameworks. According to the Web Technology Surveys, it is used by less than 0.1% of all websites - React, for example, scores 0.8%. However, Ember.js remains in demand and is used by such companies as Twitch, Netflix, Accenture, and LinkedIn. The reason for that is that Ember is capable of sufficient performance - but the number of issues that come along with it may be a little too much for companies. Let’s have a more detailed look at it.

Ember.js: technology type

Ember.js is an open-source JavaScript framework that follows the component-service pattern and is used to develop web applications. 

The main principle that Ember follows is Convention over Configuration. It is a development approach that implies development according to typical programming conventions, meaning the number of decisions that a developer has to make is decreased. This approach decreases the amount of code to write and contributes to better productivity. 

There are five key concepts that Ember is centered around:

  1. Routes: each URL is assigned with a route object that controls what is displayed to a user;

  2. Models: every route, in turn, has an associated model which has the data about the current state of the app;

  3. Components: custom HTML tags;

  4. Templates: help create the app’s HTML and are written in HTMLBars;

  5. Services: singleton objects for holding long-lived data.

One more thing that Ember focuses on stability without stagnation. This concept means that while the framework is evolving, the changes applied will not break the apps running on older Ember versions (nobody is “left behind”). While this approach is beneficial for the app owners, some developers feel like it contributes to Ember’s stagnation, not its development. 

Now let’s quickly have a look at the key Ember features:

  • The use of HTMLBars for a new binding syntax;

  • Glimmer rendering engine;

  • The CLI utility for integration of Ember patterns into the dev process;

  • Support for data binding;

  • Ember Inspector tool for debugging;

  • Routes for URL management.

Ember CLI

Ember CLI (Command Line Interface) is one of the most talked-about things among Ember developers. This CLI is an official way to build, test, and serve the files that an Ember app is made of. With the help of Ember CLI, developers can easily generate an entire app and perform multiple functions within it.

Ember CLI is built around Broccoli.js - a JavaScript build tool. What makes Ember CLI great is that it combines lots of features: it serves as a dependency packager, test runner, and optimizer all in one. And obviously, this CLI is backward compatible and keeps up with a 6-week release schedule.

The use of Ember.js: most common cases

We already stated that Ember is quite a controversial framework so its use cases are rather controversial as well. Below are the two most popular - let’s have a look.

Large and complex web apps

Some developers believe that Ember.js may not be very suitable for small and medium-sized teams since it has performance issues, a steep learning curve, and quite a lot of missing features. Hence, the most common use case for Ember is the development of large web applications where developers can dedicate a certain amount of time to debugging and fixes.

Ember has good routing solutions, a feature-rich data access library, quite fast rendering, a lot of built-in useful features, and built-in best practices. As well, Ember does not offer much flexibility compared to other frameworks but it may actually be an advantage if your team needs clear rules to be followed.

Full-stack development

Another use case for Ember.js is (surprisingly) full-stack development. The reason for that is simple: due to Ember’s complexity, it will be much more efficient for one person to handle it. Since a developer knows Ember inside out and understands its principles of work, it will be easier for this person to create the backend part correspondingly. 

Ember.js Pros and Cons

Even though Ember.js has several flaws, it’s still being used by companies around the world. Let’s see what makes Ember the first pick among developers and what makes them question the use of Ember in favor of other tools.

avatar

Expert Opinion

Ember.js first appeared about 10 years ago and continues growing and developing which is an indicator of its relevance. If there is good coherence between developing the frontend and the backend part of the application, the overall development time can be significantly lower with Ember than with other frameworks. Ember will also take care of processing queries and replies but you will have to define the models. In my opinion, Ember can be a really good option for a full-stack developer. However, due to the weak community and peculiarities of this framework, chances are high you’ll face many strange errors that you will have to fix yourself, without addressing Stack Overflow and by reading documentation and using built-in debugging methods.

Mikhail, Frontend Engineer

Conclusion

Ember.js is a challenging framework that has many issues to pay attention to. At the same time, if you set up your development process correctly, it will reward you with rich functionality, stable architecture, and short development time. We don’t use Ember much at SoftTeco but there are a few projects where we deploy Ember and for now, we’ve been satisfied with this framework. Hence, you can also try it and see whether it will be a good fit for your project though you will need to spend quite a while getting acquainted with it.

With this article, we wrap up our frontend series and switch to cross-platform development with React Native being the first tool on the agenda. Sign up for our newsletter to get updates on our blog and leave a comment if you have any questions or if you want to share your opinion with us.

Comments

ozehome

very informative articles thanks for sharing with us.