Why enterprises welcome Angular

This year I already ran about ten Angular workshops and made several presentations at various conferences (e.g. DevoxxUS, DevNexus, BuzzJS, JEEConf). Over the last 20 years, I’ve been running workshops on different software but I don’t recall seeing such a positive reception of any new software as I see with the latest Angular framework in the enterprise world.

I was thinking of why enterprise developers like it so much, and here what I came up with:

– Getting started with a new project is a breeze thanks to Angular CLI code generator

– TypeScript is an optionally-typed object-oriented language with many constructs that Java and C# developers already know (classes, inheritance, interfaces, generics, annotations)

– A typical enterprise Java developer hates JavaScript, but from what I’ve seen so far, they like TypeScript. No wonder that a recent survey on StackOverflow lists TypeScript as a third most loved language.

– Even though you write code in TypeScript, you can still use thousands of existing JS libraries in your app. With 3K+ type definition files your IDE will offer auto-complete and will show compile-time errors if you try to use the API of these libraries incorrectly

– Most popular IDEs offer great support for TypeScript

– Angular offers a clean separation of the UI (templates) and business logic (TypeScript)

– Angular is not an MVC, but a component-based framework with a clean way of arranging loosely-coupled communication with components

– The Angular rendering engine allows to replace HTML with a third-party markup, and there are already products that offer another markup for developing the UI for mobile apps.

– Angular supports modularization and lazy loading, which allows to substantially decrease the size of the landing page of the app (think perceived performance and module re-usability)

– The size of the landing page of literally any app can be as low as two-tree hundred kilobytes (not counting the app images and third-party JavaScript libraries).

– Angular Universal supports server-side rendering

– There is already a large community of Angular developers, and the questions on StackOverflow are answered pretty fast

– Bundling and optimizing the app code for deployment is simple and doesn’t require you to write complex scripts and manually configure the tools

– From a project manager’s perspective, adopting Angular is a safe bet. If you need to replace or bring a new Angular developer to the team, he/she already knows the set of all required modules and how they operate. This would not be the case with other libraries or frameworks (e.g. React) that would require someone to pick multiple building blocks from third-party vendors, which may be different for each enterprise app.

This is all good, but what has to be done to increase the adoption of Angular in the enterprises?

– The Angular team should substantially increase the speed of developing new UI components in the Angular Material 2 library. They release hight quality components, but there are only 26 of them at the time of this writing, which is not enough for the enterprise apps. Currently, we have to use third-party UI libraries in addition to Angular Material to fill the gaps.

– I’d change the priorities in Angular Material 2 component developments. The lack of a data table component (similar to angular-ui-grid for AngularJS) is a serious obstacle in adopting Angular. I realize that the data table is probably the most complex UI component, but it’s crucial for the most enterprise apps. You can find data table components elsewhere, but in the ideal platform, all batteries are included.

– Implement the responsive layout in Angular Material 2. Currently, you can use either Bootstrap or the flex-layout library, but again, it would be nice to have everything as a part of the Angular package.

Finally, I’d like to mention some specific use cases. Currently, I’m working on a project to migrate a large codebase written in Adobe Flex framework. Moving the code from Flex to Angular is smooth. Within the next couple of weeks, I’ll blog providing more details.

I’d also like to bring the attention of Java developers to a very interesting project called JHipster. It’s a code generator that allows you to generate a complete Angular/Spring Boot app with configured controllers, services, and entities. With JHipster you can either generate a monolith or microservices app with generated config files for deployment on popular cloud platforms.

If you’re not familiar with Angular yet, listen to my conversation with the folks at Software Engineering Radio podcast where I answered multiple questions about Angular. If you’re a Java developer, watch my presentation at the DevoxxUS conference.

While typically I run private Angular workshops by requests, in about a month I’ll be running a public online workshop with my colleague and the co-author of our Angular book.

Update. The initial version of Angular Material DataTable has been released on July 6, 2017.

Advertisements

6 thoughts on “Why enterprises welcome Angular

  1. Hello Yakov. You praise the Angular all the time. I know what it very cool framework and so on. But I also know that there is nothing perfect in the programs. I remember your opinion about protected access level in Java. Maybe you talk about dark side of Angular, if it has it one.

  2. It’s entirely possible that when we look back in a few years, the arrival of the present Angular will be most remembered for the role it played in getting a critical mass behind TypeScript, thereby bringing JS years of life beyond what might have otherwise been expected. It’s equally possible the RX model of programming will become ubiquitous, and that Angular will be credited with most facilitating this important evolution — which I believe to be the only workable solution to the seamless merger of sync and async programming.

  3. Hello,
    I found another open-source UI library (Teradata) which is implementing material 2 layout & spec. Teradata offers 4 Material Design layouts for developers. They are updating component library with every material 2 releases.

    https://teradata.github.io/covalent/#/

    They have data grid, file upload & few other components top of material 2 libraries. So you can seamlessly integrate both material 2 + Teradata components in your app. I found this as big plus compared to primeNG or any other open source library. We found primeNG somewhat buggy during the prototyping period.

    Now dark side of angular, which Yakov never mentioned apart from UI library issue. I found following article very true during our prototyping phase (agree 90%). You can add pros from Yakov article and cons from following article to summarize angular 4 experience.

    https://www.codementor.io/artemgolovin/why-angular-2-4-5-6-sucks-5r57bh3w7

    Hopefully Yakov can share the cons on angular 4 since they migrated from adobe flex.

    Thanks,
    Kavin

    1. Here are my brief comments on the 4 points from that article:

      1. Writing in TypeScript makes you more productive, and it’s easy to learn. Besides, there are different flavors of JavaScript. It’s not a one thing. There are ES3, ES5, ES6, ES7, and ES8 versions of JavaScript. I assume that the author just wants to write in ES5 and didn’t care about learning any new syntax.

      2. Angular uses HTML elements and allows you to create your own custom elements that are also placed in angle brackets and handle standard DOM events. I guess the author is against the Web Components spec and wants to use only standard HTML tag.

      3. When you start the app with ng serve, the bundles are built in memory, and initially this process may take 10 sec. But after you make a change in a file and save it, the rebuilding bundles take 1 or 2 sec, so you see the results right away. Angular CLI spares you from writing Webpack configuration file so the comment on 200 lines of code has no substance.

      4. The size of the Hello World app created with the “ng serve -prod” command is under 100KB. The author seems to be a beginner in Angular.

      The only thing that comes to mind when I think of drawbacks of Angular, is the documentation. Their Hero tutorial has too many words so a newcomer can’t see the forest for the trees. But you already know what to do, right? Read my blogs and books and attend my workshops. Peace.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s