April 5-7th 2017 marks the 4th year of the Angular conference ng-conf. This year’s ng-conf marks my first year attending, w00t w00t to that. From the first day’s rapid-fire talks, the tone of the conference, and I think for Angular in general, is set for the year. Some of the major takeaways from the first day I’ve highlighted below.
Community
Before the keynote took place, Aaron Frost, one of the organizers took a moment to go over the code of conduct for the conference. The organizers wanted to stress the importance of creating a conducive environment for sharing and learning over the next few days. This point speaks to the overall message that the Angular community wants to convey, which is “Build with Us.” And, by providing an inviting and open ecosystem to current and new developers, they hope to grow the community.
With that theme in mind, a talk by Justin Searls focused on getting the creative juices flowing. He discussed his personal philosophy around what sparks his creativity. Justin then provided some insight into what could help others be more creative, which translates into building apps. The key takeaway from his talk was that it is okay to build software that interests individuals, reflect on one’s feelings, and finally find your outlet, whatever it may be.
The angular community also has the future in mind, and not just the evolution of the software but the future of children. The talk Ng-STEAM by Joe Skeen and his daughter Gwen Skeen dove into the topic of STEM education. More accurately they talked about STEAM which focuses on Sciences, Technology, Engineering, Art, and Mathematics. The addition of Art to STEM takes into account developing creativity and critical thinking. Angular comes into play to help facilitate the Art portion by providing an outlet for creativity; as well as a tool to help execute solutions to problems. Joe and Gwen then pointed the audience to the site: Studio.Code.org, which has a collection of courses to help get people of all ages developing code.
The Current State of Angular
Another takeaway from the keynote was the current state of the Angular platform both 1.x and 2+. With the release of Angular 4.0, the Angular ecosystem seeks to firmly establish a new baseline around the terminology used for the framework. AngularJS version 1.x should now be referred to simply as AngularJS and Angular 2+ should now be called Angular. The importance of clearly and firmly establishing naming conventions is to denote the major divergence of the framework’s ideologies and help distinguish between the two going forward.
Statistics around the framework were provided to give some scope to the overall reach of Angular at this point. The table below shows the community’s growth based on the traffic to the documentation sites.
Sep 2015 | May 2016 | Sep 2016 | April 2017 | |
AngularJS | 1.2M | 1.3M | 1.3M | 1.3M |
Angular | 85K | 450K | 645K | 810K |
Stackoverflow’s Developer Survey for 2017, which had over 64,000 developers participate, revealed insights from another perspective. Under the Frameworks, Libraries, and Other Technologies category, 36,935 respondents included AngularJS as being something they develop with which resulted in AngularJS representing 44.3% of the software developers used. Currently, there are 727 Meetups for Angular across the globe. Also, hundreds of companies big and small use AngularJS and Angular. The state of AngularJS and Angular is both stable and growing.
Speaking of Angular v4, which was only released a few weeks ago, Google’s search index metrics have revealed that 17% of public facing Angular domains are already using Angular 4.x.
Another significant milestone for the Angular framework is the stable release of Angular CLI. The Angular CLI is a major stepping stone in streamlining the creation of applications, components, and services. The CLI provides best practices for structuring application as well as bundling them for deployment.
Usages
Ng-Conf not only serves as a checkpoint for the state of the Angular ecosystem, but it also acts as a showcase for the framework. The audience was treated to several audio and visual experiences thanks to combining Angular and many of the great JavaScript libraries and technologies currently available.
The audio experience was thanks to Lukas Ruebbelke and Roger Tipping presenting the Mischief Maker. By incorporating Web MIDI, D3, recorder.js and more; they were able to build a fun and powerful music creation Electron app.
In the realm of visual experiences, Austin McDaniel delivered a talk about Creating VR Experiences with Angular and WebGL. The talk focused on explaining VR basics and the challenges with utilizing the Web as a VR platform. Not only were problems discussed, but also tools to help cultivate the development of these new realities as Austin put it. The tool that Austin, aka the ngPanda, presented was ngx-webgl, a framework combining Angular and WebGL. The ngx-webgl provides the benefits of simplifying and speeding up the creation of WebGL artifacts using the familiarity of Angular like syntax. Both Mischief Maker and ngx-webGL display how Angular can be leveraged to produce highly engaging and creative pieces of software.
Tooling
To assist with the development of Angular application development many powerful tools and libraries are utilized. Some of these tools are baked right into Angular itself. One of the most important pieces of software to make Angular even possible is the Angular Compiler. It is so important it was mentioned numerous times by many of the speakers as well as having two dedicated talks on the first day alone! One of the talks was by Minko Gechev, entitled Mad Science with Angular Compiler, which discussed how compilers work in general as well as specifics on the Angular Compiler. He discussed how the Angular compiler creates views, instantiates providers as well as analyzes source code. And thanks to the processing of source code, other tools can be built such as the linting tool Codelyzer. Source code processing also allows for the creation of utilities to graphically represent Angular apps such as ngrev or the 3D ngworld.
What’s next?
Many of the talks ended with a common theme. That theme was that there is much much more to come in the coming months in regards to Angular. Areas that the Angular team mentioned they would be improving included the Angular release schedule and the Angular Compiler.
A predictable release schedule for Angular based on Semantic Versioning. Going forward these time-based releases will be as follows:
- Patch Version Every Week
- Minor Version Every Month
- Major Version Every 6 Months
The Angular Compiler will continue to evolve in significant ways. During Tobias Bosch‘s talk on The Angular Compiler, he outlined areas of improvement for the compiler. First, he mentioned the fact that Ahead Of Time (AOT) compilation would become the default compilation mode for the compiler. With AOT compilation as the default, there will be significant speed gains when running angular applications due to the small bundles that developers would deploy. Another major area of improvement would be around debugging and troubleshooting. There are plans to improve the overall error messages the compiler outputs as well as the ability to provide error messages in regards to type issues in templates.
Outie
Day one of ng-conf 2017 set the tone for the conference and created a synergy that would spill over into the other days of the conference. I only scratched the surface of the topics and talks covered on day 1; please take a look at the compiled list of all talks and materials: ng-conf 2017.
For another perspective on the conference, please check out Dave Baskin‘s blog; ever so appropriately titled NG-CONF 2017 Day One Highlights.