Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

The Cons of AngularJS

DZone's Guide to

The Cons of AngularJS

· Web Dev Zone
Free Resource

Should you build your own web experimentation solution? Download this whitepaper by Optimizely to find out.

In this article we continue looking at our recent infographic on the Pros and Cons of AngularJS Dev. While AngularJS brings a large number of advantages to the development of web apps, there are still a few deficiencies that need to be managed. Below we’ll explore some of the downsides of AngularJS development, and how they may impact your development process should you choose to use the framework in your web app. With the following information, you should be fully empowered to choose the framework that best fits your application’s needs.

AngularJS Cons


Ramp-up and Complexity

One unavoidable aspect of AngularJS is the sheer amount of knowledge that needs to be consumed in order to become fully effective in the framework. AngularJS gives you a lot of improvements to standard JavaScript development, between techniques such as Dependency Injection and declarative programming, but ultimately these concepts must first be understood before they can be properly leveraged in a web app. As a lot of the development practices introduced in AngularJS are relatively unknown to many web developers, the ramp-up on the more complex elements of the framework may prove to be a major blocker for your development team.

Feature Limitations

Many of the features that make AngularJS stand out for web development also carry peculiarities that can confound general development practices. The routing functionality, for example, is limited to one route per page, which can limit UI development. Scopes, by their nature, are both highly useful and hard to debug effectively. As a single-page application, search engine indexing can be particularly troublesome. For nearly every feature of AngularJS, there is some subset of functionality that is frustrated by following the design patterns provided by the framework. While some would argue that these arise due to misuse of the framework, getting around these limitations – or re-architecting your application to match the expected patterns – can be a significant time-sink.

Volatility and Lack of Documentation

The Angular development team is always looking for ways to innovate when it comes to web development practices. However, oftentimes this progress is achieved without a full effort being given to supporting the existing code. This has manifested with a lot of community discord over the progress of AngularJS 2.0. The developers have already stated that Angular 2.0 will approach some of the features in a significantly different manner, meaning that existing code bases will need to perform significant conversion-related efforts for the upgrade. Furthermore, the documentation on the framework can at times be lacking, making even 1.x development an occasional challenge. Thus, you should determine whether or not it makes sense to wait for AngularJS 2.0, though with the release date estimates stretching into late 2015 waiting may not be a timely or relevant option for your application.

Conclusion

Every web development framework choice is a series of trade-offs. With some you trade performance for readability. With others you trade code complexity for data fidelity. It is important to understand the positives and negatives of each web framework before selecting one to ultimately serve as your application’s underlying architecture. Above we’ve covered some of the downsides of AngularJS 2.0, but it should be noted that most of them relate directly to the complexity of the underlying concepts rather than severe deficiencies in functionality. Hopefully by weighing this article against the positive aspects of the framework that we’ve already covered, you’ll be able to make the right framework decision for your development team.

Implementing an Experimentation Solution: Choosing whether to build or buy?

Topics:
html5 ,angularjs

Published at DZone with permission of Itay Herskovits, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}