Global Angular Meetup | "State of Angular"

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
and we are live welcome everyone thank you so much today for joining us for state of angular we're so excited to have you all uh we do this event every few months with the angular team to talk about upcoming releases milestones and all the amazing community initiatives that are happening um thank you so much to our sponsors today so thank you so much it's been amazing miko specifically uh coordinating with you and you know thank you so much for uh sponsoring this event today um do you have anything to say about angular are you guys hiring like um i think we might be hiring uh but i don't know jeremy do you want to talk about this uh we were hiring i think we might have some people in the pipeline but i'm not actually sure uh none of us here is the hiring manager so yeah something we could promote like we can promote right now well slide into jeremy or minko's dms and maybe they can hook you up with the right person if you're interested um this dot labs as well so we're about a 50 uh consultancy now and we love angular react uh all the things um so you know we're also hiring actually so if you're excited about working uh on just really cool projects like we're working with wikimedia twilio cloud and airy just like really fun people these days um definitely check us out okay so i wanted to talk a little bit about just the this thought media ecosystem really quickly we have a lot of really fun upcoming events that are happening so graphql contributor days if you guys care about graphql and you kind of want to hang out with graphql foundation folks and just you know talk about all things graphql and kind of like learn what enterprises are doing definitely come to that state of application monitoring as well is coming up very soon and then we have um monthly mentoring so this is a one-hour monthly mentoring that we do for women in tech uh really it's just come hang out and talk about what you need in tech and so that's a really fun one and then react contributor days also is hitting um very soon so definitely check that out if you care about react in the react ecosystem i'm one of your hosts today my name is tracy you can follow me on twitter at lady lee i'm the ceo of this dot labs and i'm joined by mikko you want to introduce yourself real quick sure yeah my name is minko i'm working on angular cool and um we have a lot of really amazing panelists as well i will have them introduce themselves um during the panel section but um you know start cueing up your questions uh drop them in the comments uh in youtube or drop them on twitter as well but we've been getting a lot of really great questions and we're really excited to have those conversations i'm going to go ahead and hand it off to minko now who will be giving us the state of angular so let me go ahead and add that there you go we go uh why not like do some like brief introductions of uh remy mark keane so i'm gonna call you out one by one the way the order i see you here in the stream jeremy you're hello uh i'm jeremy i'm an engineer who works on angular components a little bit on the framework and i've been around for a while mark you're next hey friends i'm mark thompson you can find me at mark texan online and i'm a developer relations engineer here on the angular team keen hey everyone i'm keen i work on mostly the angular cli and the language service emma hi everyone yeah i'm emma twersky and i'm also a developer relations engineer hi google cindy hi everybody i'm cindy i'm a program manager for the angular team and i actually work on everything and it's nice to be here awesome um well yeah so thank you very much for tuning in today i will share a brief presentation with you about the current state of feng you are pretty much what we have been up to where are we heading and what you should be expecting from the future major release and after that together with um the team we're going to answer your questions as you saw here there are experts and like pretty much everything across the board in our angular platform so looking forward to our discussion at the end so you probably already know that angular is a google technology something that you didn't know is that google pretty much runs on angular it doesn't matter what position you have in google you're probably going to want to open an issue that is going to be a multi-pro like half multiple multi-step resolution process and you're going to interact with a platform developed in angular in order to file this bug and track it if you're a software engineer and you want to look up some source code in our huge modern repo you're going to interact with the user interface is implementing a view to the small repo that is implemented in angular if you want to edit some source code well you'll be using the text editor implemented in angular and when you open this change list of changes to the modern repository your colleagues are going to review it in another angular system these are just four examples of applications in google that are developed with angular and there are thousands of others some of them are small applications for the cafeterias others are large public-facing apps such as let's say google cloud we have firebase google domain and google analytics on these applications we have like quite a few people working on them actually one of the powers of the modern repo is that we can very easily track who is interacting with individual technologies so we can see how many angular developers are there it is a really interesting infrastructure actually and there are thousands of developers googlers using angular within the small repo and about 1 000 people are taking our internal angular course every year so given how big is the investments and how like widely adopted angular is within google sometimes an interesting question is why are we building the technology open source why we're not building it just for google well there are quite a few like answers for this first of all we're providing value to everyone by open sourcing this technology and allowing us to grow but also well having an open source tech stack that is popular across the world it's also helping with hiring clearly right i'm actually a good example for this i joined the team by by uh just contributing to angular and the angular ecosystem and there are thousands of others engineers who are hired in google also thanks to angular being as part of their resume the ecosystem that the entire community is building is far above what an individual team of people can achieve we have tens of thousands of different libraries frameworks built on top of angular and tools for static analysis development tooling of any kind it's just fascinating to see what the community has been doing over the years also content and stack overflow answers it's just countless of different contributions from folks clearly we're getting a lot of feedback from a lot of external events talking to developers on online conferences or just whenever we were able to travel meeting them in person discussing different potential ways to improve the framework with enterprises and developers quality is another aspect there are quite a few people who have been contributing to the angular repository in different ways just helping us improve the documentation or moving forward with some bug fixes that were blockers for them and just generally making sure that everything fits very high quality standards from have been from a very high priority for us i want to spend some time talking a little bit about the ecosystem because i believe this is one of the most unique parts of angular and i have been very heavily involved in it for the past many years now before joining google as an external contributor so recently we noticed significant adoption increase in fact looking at we're looking at variety of different metrics and most of them are inaccurate because at the end angular just a javascript file that you put on a web page so it's hard to to see how many people are referencing this file in uh from different sources but one of the metrics that we track is the number of npm downloads so we saw that about over the past year the number of weekly npm downloads increased for from 1.4 million to uh 2.5 million and this doesn't include the thousands of enterprises who are using angular from behind the firewall or having a like private npm registry currently there are also 1.7 million open source projects on github using angular these projects vary from just example projects or even our hello world app to more advanced projects such as large components toolkits different web applications for let's say apache foundation they were using angular for some of their projects uh to large examples for example what trungvo built uh pretty much spotify client implemented entirely with angular and that is pretty much a drop-in replacement for the spotify app and i guess the coolest part here is that this is completely open source so you can look into the implementation and see how to build a non-trivial application just by opening github and following his work there other applications developed freely on github were in fact trying to fight covet during the global pandemic we had the privilege to collaborate with harvard on their research for finding an antiviral for covet where they built their visual visualizations using angular other developers on github are building tools on top of uh based on the framework so that they can fill gaps which are eventually outside of the scope of the team for example mantras there has been doing an extensive research in the space of micro frontends in order to help enter prices builds independent deployability and more scalable developments of their enterprise applications and we have you in collaborating with different folks including yamdung and leon from ants design and jizora in order to implement an image component that helps you improve your core web vital metrics talking about core web vitals there is this initiative to introduce them as part of the search ranking algorithm which means that performance and even user experience is going to be somewhat considered for the seo ranking of your page chrome they have the web sdk team that is helping across the board that different frameworks different open source technologies to reach certain performance standards by analyzing their applications and seeing how they can improve in different areas together with this team and the chrome metrics team we worked on the implementation on the definition of pretty much of largest contentful paint uh in order to make sure that more destructive hydration of the view once the clan side rendering takes over the server-side rendered content doesn't impact our largest contentful paint as it doesn't impact user experience we reiterate into the on this metric uh in order to like allow pretty much the entire ecosystem to benefit out of the final result chrome also identified that a few potential improvements in angular and other frameworks right now are in terms of font inlining and extraction and inlining of critical css so these are two features that chrome identified and together we were able to implement as part of the official angular cli experience but talking about seo one of the partners that we have been working closely with is crunchbase they celebrated their success with angular and specifically how angular helped them have like good ceo and fast serve time in their blog post on why they made a transition to the framework so currently they have one million week users and 70 of them are coming from organic traffic by switching to angular they were able to reduce their serve time from 20 seconds from some of their heaviest pages to about 150 milliseconds so it was pretty exciting to read about their journey if if you're interested in following it up as well you can check the url here in the slides so you know probably that we have these regular releases every six months and major releases every six months version 12 we're planning for me and there are two major efforts that are going to happen as part of version 12. first we're going to enable ourselves to use take advantage of some modern standards that we weren't able to and also we're going to invest into simplifying angular in two different ways first make it simpler for developers and also make it simpler for ourselves so that we can maintain we can decrease the maintenance costs for some obsolete modules and the second is our regular set of feature drops we want to let you use some new features and we have been doing this not only major releases but frequently in minors as well enabling different features as an opt-in on enabling modern standards and simplification something that we have been looking at looking at is deprecation of ie 11 support so we're going to decide on the right way to move forward with this in an inclusive way we're going to open on rfc where we're going to discuss what will be the right steps to move forward but this is going to enable us to take advantage of new standards such as let's say css variables the next step is deprecation of view engine so the chances are that you're not depending on view engine already if we look at our statistics but uh view engine is this rendering and compilation pipeline that we're using prior to version 9 prior to ivy as part of our telemetry we are collecting some information for people who have opt-in into it on whether folks are creating iv or view engine applications and looking at the version 11 statistics it looks like pretty much nobody's opting opting into a view engine at this point so this made us feel confident that we can take steps forward to remove the creation of view engine applications by default and transition away from it so that we can make angular simpler removing some ng factory apis that are no longer relevant with ivy and also make it simpler for maintenance by removing an entire new angular like rendering engine will be able to move start moving faster in evolving id itself so the first step of the process is going to be to just remove the enable iv flag from the cli all the applications are going to be iv anyway and this would still not prevent you from using any view engine libraries in your iv applications because we have the angular compatibility compiler this is the tool that you have been seeing running right after you run your npm install script and in version 13 currently we're planning to enable the stable iv library distribution strategy we were originally applying this for version 12 but we wanted to give the ecosystem a little bit more time so that we can prepare and uh finalize the partial compilation format so this means that there are going to be fewer and fewer cases in which you're going to need ngcc and generally you're going to have faster development experience over time now let me spend some time talking about the future drops these feature drops we started as early on as version 11 in fact for example we enabled opt-in preview of our webpack version 5 support that is going to be enabled by default in version 12. as part of the improvements browse by webpack we're expecting to have better tree shaking and from there a little bit smaller bundles and also enable module federation through community plugins we have been working heavily on the angular iv language service which is based on the angular compiler so this is going to be the default experience in version 12. it has been available as an opt-in for over the past i believe two minor releases uh but in version 12 you'll be able to use it by default and get better type checking and type inference in templates a project that was like aiming to simplify angular which was part of version 11 uh points one i believe was the effort on improving the error messages so now when you get any of the most common angular error messages you're also going to get the url when you click on this url you're going to go directly go to a page that explains what this error is all about and how it can fix it and resource inlining so the google fonting lining is already enabled by default in version 11 but in version 12 we're going to enable by default our critical css inlining for client-side rendered applications app shell pre-rendering and server side rendering all right so these are all features that we started in version 11 and we enabled them as an opt-in and now we're going to enable them by default in version 12. let's talk about what's coming directly in version 12. and this is a little bit of a rough list because a lot of the a lot of other features we're going to ship in minor releases after that inline set support as has been a very highly requested feature from folks just having the opportunity to use sas in inline styles faster tests uh we're planning some changing changes in testbets although this may not land in version 12 by itself we're planning to enable it as an opt-in in the subsequent minor releases this is going to lead to significant improvements of your unit tests to better align with the ecosystem we have been working towards like higher consistency and better interoperability with other tools for example with hosting services such as versailles and microsoft static sites where they're expecting npm run builds to produce production assets by default so to ensure this consistency with the ecosystem we are also planning to enable production builds by default for everyone rather than having to explicitly specify production environment and strict mode i just wanted to make our type checking stricter and enable better development experience with our language service this is going to be excuse me the default experience for developers in version 12 from which you can eventually like even opt out of if you prefer to have less strict type checking for rapid prototyping something that we have been particularly excited about actually was the fact that well i was looking at the angular monorepo the other day and i noticed we have over 18 000 pull requests open to the hmong repo which was pretty impressive number currently uh based on the efforts as part of our operation bylock where we're trying to track as many issues as possible we managed to have fewer than 256 open prs everything else is merged or like maybe a certain percentage of these pr's were just not relevant already and we closed them it might be a little bit confusing if you're looking at our modern repo because we have slightly unconventional way of cherry-picking prs and merging them so a lot of these 18 000 they look close but in fact they were emerged in the modern repo uh so it was it was just like interesting to see how active our community has been because a large percentage of these prs were actually not from the team and you can see that as part of the version 12 release as well in fact some of the highly requested features from the community were implemented by community members for instance we have http requests metadata available in interceptors that was implemented by dumas min and max validators in forms implemented by sono we have at uh event emit event option to abstract control classes implemented by mike and app initializer with observables by yadong so all these features were implemented thanks to community contributions that folks opened and were able to move forward and merge i think that's one of the biggest strengths of open source in general being able to collaborate together it doesn't matter whether you're geographically located you you just have a common like shared passion and you work together for better technology well that was everything i had for you today uh i would really appreciate your feedback about this presentation on mgi of the flash talk and uh yeah we would love to answer your questions now awesome thank you and so now goes to our panel discussions and there's been a lot of uh really amazing conversation in the youtube comments so i can read a few of those off and maybe we can get started um did you guys see any that you want to answer like any burning ones that you guys want to answer first or should i just pick one and go uh i say go for it okay um [Laughter] this one's funny a lot of people are saying what gods thank god how about this slow builds which gods do we need to pray to get es build support maybe yeah so we have actually done a lot to improve incremental build performance there are some features that have already landed and some are going to land in version 12. so we expect incremental build to be a lot faster es build is tricky because es build is technically still experimental we do use it in some of our internal repos and we find that it is actually super fast and really good but when we make a decision especially for a bundler we need to take into account all the different use cases out there the bundle size that it produces and how well minification works and all that so we are evaluating it but it's going to take a while next one this one is any new updates and or upcoming features coming to angular elements and then also when will angular flex layout library see a version one release let's see so on the angular elements front i don't think we have anything on our short term roadmap um i did some work within the last year of looking at a bunch of custom elements related issues and areas for improvement and so that's something that's kind of sitting in our backlog that hasn't really percolated up near the top yet versus other priorities as for flex layout minko have we have we put out our plans for that yet uh not yet we are we're um that's still in uh in progress okay we're still deciding uh some things about flex layout and don't have anything to share about that yet yeah but maybe maybe ngconf no maybe maybe after we'll see we're thinking of the right way to move forward so the the standard has pretty much evolved a lot since for example um like since the experimental version of flex layout was released and we're thinking about the west the best way to move forward with like using the modern standards but at the same time without causing much trouble for developers so it has been really tricky a lot of the things there are not actually emma can talk about this she has been looking in the space a lot but it's just hard to statically analyze and automatically migrate cool um okay this is a random one uh have you heard any complaints about eslimp performance versus ts lin particularly with parser i can talk maybe can do you do you want to take this or you can take it yeah uh we were looking into into this original actually that was one of the reasons why it took us a while to uh move forward with removing these tents and uh working with james on um eslint path forward it depends on the size of the application generally eslint is doing more work and it is slower and consumes more memory uh but for it depends how how big your application is for not too large applications the difference shouldn't matter too much if just like 10 to 15 to even 20 it would not make huge of a difference maybe your ci may time out or get out of memory but that's mostly for the larger larger applications another question is any plans for snowpack integration i think the answer for es bill also applies here we are evaluating different options out there um but at least for now in the near future there is no plan for integration this one is a hot one i keep seeing this this was also our house on twitter um angulardev tools when yeah probably soon [Laughter] um do you want to talk a little bit about angular devtools and kind of what people might expect or is there any other information that they can find online to learn about it a little bit more sure there is no information about it online yet it has been yeah it has been i don't know how to express that exciting to to work on different features and we have been slowly expanding the group of people who were able to test devtools and experiment with it so we're hoping to reach a public beta anytime like soon but can't commit to a particular day just yet dev tools is a chrome devtools extension that allows you to debug your and your apps understand their change detection and also preview their component structure and it is based it is only um built for support of iv applications because it relies on some debugging apis that io provides and it will not have support for view engine apps for view engine i'll recommend you just use augury which i love angular algorithm yeah it provides a let's say different set of functionalities you have definitely the component explorer there and a bunch of other utilities for debugging let's say your injector tree or understanding your router tree and so on so was angular devtools one of those things where like you told a group of people and you're like don't tell anybody and then like for so so everybody told everyone and now it's like wait where is it [Music] um okay here is another question what about optional ng module and lazy loading components can we see it sooner in the next angular versions so this is another thing that this is relatively high up on our backlog i don't know that it is like so basically our roadmap is just like the top slice of our backlog and i believe the optional ng models it's it's close to being near the top of uh that like it's close to getting to the point where it's in that slice um although it's worth saying that you know priorities can change and so it something else may come in ahead of it before it gets a chance to move into that slice uh but it is something that we very much want to do and uh all like lazy loading components that is something that like you can do today um we have something in our backlog similarly positioned that is oriented around making lazy loading of like individual components or directives easier or more ergonomic but again like similar position where it's it's not very far down in our backlog but it also hasn't gotten up to the point where we're working on it yet will v12 produce a smaller build size it depends [Laughter] i think the only thing i can add to this is we are constantly tracking build size so regression is not acceptable any regression is always being investigated yeah so um like we track the payload sides of angular pretty aggressively uh basically any time the size of the framework um or its constituent components changes by more than 500 bytes it requires a special approval which uh gets kind of annoying uh during development but uh we monitor it very closely and uh one nice thing uh that is coming in v12 is that there are some apis that have been maybe a bit more tree shakable uh which effectively means that if you're not using those apis they're no longer end up in your bundle but if you're using those apis then they will end up in your bundle uh still so in some cases maybe you'll see some small increases but i don't think there's anything major changing for v12 in particular any plans in supporting observables in component input i think observable is not observances yeah not right now uh this is something we it's kind of a through line in all of our conversations around future future enhancements our options for um mingo can also talk about this but we like basically hear an equal amount of feedback of i want less reactive stuff and i want more reactive stuff and it's about the same volume on both sides so it's something we think about pretty often in terms of like well do we make it so that it's easier to use like observables and strains and whatnot or do we kind of make it so that you don't have to use some of that stuff we don't have anything concrete decided at this point um but that that particular feature of having like observable inputs is something we've heard a number of times yeah yeah we are thinking how to make it in a way that we don't necessarily couple the framework more with rx but enable it so it's interesting one there are discussions on how this is doable but no timeline for it yet as jeremy said so if you want it create a bot to open github issues on the angular repo i'm just kidding um okay so next question is any plans for typed angular forms uh this is for context this is like the number one highest voted github issue and it's it's extremely close to uh um the like the top of our backlog um the like really the reason we haven't uh done it yet is that inside of google it's actually a really large amount of work to do this um because the way uh google source code works is all of google is in one repository like monorepo um and you have one version of everything and so when we change make a change to angular we have to make sure that doesn't break any of the thousands of applications in google and so just adding those pipings that's really easy but then not breaking the build for those thousands of google applications is really hard and so it actually is a decently large effort to go and do this and make sure we don't break anyone at google and bring them all along to the strictly typed place and so um once our like the current set of projects we're working on is wrapped up that is one of the projects that is like very close to getting worked on yeah and just yet if we break projects at google this means that we're going to break anyone who is moving to the next version of forms and there is no trivial way to automatically migrate people with the ng update experience so yeah we're going to break a lot of people and we don't want to do that we may be able to provide some some help with ng update but it's unclear yet how much it will be able to do automatically next question do you think protractor is still the best tool for angular end to end and any thoughts about dropping it for the future this question came at the perfect timing because we are going to publish the rfc tomorrow on protractor we are going to lay out what we think the past long-term plan is and we will be asking the community to please provide feedback look for the rfc tomorrow it will be published on the protractor repository on github yeah for anybody that doesn't know rfc is request for comments yeah nice um well i guess this is kind of related which probably is you know you should look out um for the rfc but um with any protractor changes like is there plans potentially to go to cyprus is like one of the options that you guys are considering the tldr is it really depends on the requirements of the project whether cross browser support is important whether it's like stability um web is web driver like conformance to web driver specifications factor so all that will eventually help you decide you know which platform is better uh next question any word on zone three angular in public yeah so like zone free angular is something that like this is probably the thing we are talking about the most um like i just spent an hour talking about this with mishko yesterday figuring out what our plan is going to be um it is a very difficult problem because zone is so baked into angular and so much of angular's identity as the framework depends on zone for that just automatic magical your application just stays up to date yes but at the same time that magic comes with trade-offs so we're talking about it a lot we haven't decided exactly what we're going to do yet but we're still we're we're still figuring it out cool we can take a break and say mark your youtube videos are greatly appreciated thank you for that thank you for watching and continue to watch let us know what you want to see because we're cooking up so much stuff and alexander shout out to you know what put your hand up where you are alexander see this high five for me to you thank you for watching and make sure to like and subscribe smash that like button thank you media's channel make sure to like and subscribe if you like this content all right so uh next up is there any plans for a simpler animation api uh no we don't have any plans to really do anything with the animations module in the near future um kind of long term as css evolves you know will you know the web ecosystem changes very quickly um and so similarly to how people have asked about like es build and snowpack right we're always looking at stuff as it comes out and saying like hey like is what we're doing still does it still make sense uh should we still be doing this and um we'll we'll be doing that for animations as more css stuff evolves and in the short term i don't foresee us making any substantive changes to the animations module in 2021 someone heard a little rumor that the angular material team is rolling out internally google the experimental components yes uh it's not a rumor it's just from comments i make on github yes uh so the context here is the angular components team we are working on a relatively large refactor of angular material that takes the mdc web primitives produced by the material design team and incorporates those into angular material this is not a rewrite of angular material it is more of a larger refactoring i say it's not a rewrite because uh a lot of the code for for the components is exactly the same between the two versions all of the unit tests are pretty much exactly the same we just like copied the unit test directly over their feature parity they have api parity uh the main thing that changes is the dom structure and the styles which granted is a relatively large change right it's going to change the way your application looks um but in terms of a compatibility standpoint um they're mostly dropping replacements with some very small api changes here and there they are currently in our npm package called material experimental which is where we have our non-stable mark and we are in fact actively rolling out these new versions of the components inside of google and we are doing that because we have more control over that rollout inside of google and we have more control over how people use things and we have a more direct line of communication into the developers on those applications we can see their application source code because again monorepo um and so it's easier for us to start this rollback process in google so we can get feedback and iterate on the component apis and fix any bugs before we lock them into stable on npm where once we make them stable on npm we have at least a year before we can make breaking changes to that api and we're not at a phase yet where they're stable enough to go that whole gear without making very changes and so the the question of like when can we expect them to be stable on npm i don't have an answer for that yet um because it really depends on the type of feedback we get and the things we run into as we're rolling them out in google if we get to a point where we're not getting many new bugs and we're not really making any api changes anymore and people are continuing to adopt everything seems to be going well then we'll probably go to stabilize them at that point um i don't have a specific version though um to really point to right now um i will say though that like you can use those components from the experimental package uh they just are subject to breaking changes really at any time those don't uh our experimental packages don't follow semper right any change can be a breaking change another fun question was is angular supporting jsx and v13 [Laughter] fundamentally doesn't work with angular's like architecture idioms um here's a fun request any chance we can have your router type feature like includes um i don't know what that is okay let me see here we go what is the status of the iv iv library distribution uh i can answer that one uh so as of version 12 the ib library distribution format should be stable however also in version 12 we will not yet be publishing angular's own first party packages with the iv distribution format and we're doing this to just make kind of keep a through line of stability so that going from 12 to 13 uh we will like basically we're turning off view engine builds for um for for version 12 application builds um there will be more about this in our like communications around v12 but um starting with version 12 applications will be pushed to build more with ivy and so by the time we get to 13 we hope to switch all of angular's uh packages over to the iv distribution format and encourage all of the uh third-party ecosystem um which with which we have a number of partners to also switch over to that distribution format and from that point forward i think um ngcc will stick around for a little bit longer so that it will still work with packages before that um but you know there there is a event horizon for for ngcc at this point uh minko and kane did everything i say there was that correct yeah sounds correct uh i have a question i saw gosh time i don't know when i saw this but the tailwind support in angular so what led to that decision what are your guys's hopes for that emma and kim probably are the right people to talk about it how about you give it a go emma uh yeah i assume this is probably more of a keen question on the support but yeah uh that decision came from an rfc again another request for comments on um css post-processing and like what the community wanted and the overwhelming response was like i think it was 95 percent tailwind um so the cli team i integrated support so basically the cli now will detect if there is tailwind configurations in your application and install as part of the post processor so that you don't have to have a custom web pack um there's some other ones in there like purge css is the big one requested i know tail when css users really like post or purge css because tailwind is so large um but right now it's just tailwind so yeah does that answer keem do you want to take anything else yeah i think you pretty much covered it yeah historical context is that it was like a long-standing issue that was open back in 2017 i believe wow it's been there for a while i'm surprised our effort to kind of like clean up the issue on github we are going through all these old issues and we really are trying our best to address them or resolve them in a reasonable manner yeah and there's a really great third-party library that also does some of that and i know they have adapted really well to this change with the cli team so that um if they basically look at if you're in a version that already has cli support for tailwind and we'll go and add the purge part for you um so it's been cool to see the community respond very positively to it but yeah that's basically it exciting uh so this this one's fun uh vote from the panel observables versus async weight i want to give their vote yeah i got a vote on this so i'm going to tell you something that you probably don't want to hear actually i think the vote is for both you really should see them both as tools in your tool belt sometimes when you have unpredictable things observables really work well for you but when you know what's about to happen and you have a short communication a secret weight works better so you shouldn't really choose don't don't make them fight they're really siblings that have different purposes yeah that's my vote my answer was going to also be it depends on what you're doing there are some situations in which async await is really really nice so for example in angular 2k we have this component test harness infrastructure and we use async await really extensively there because it's a nice concise api for waiting like atomic asynchronous operations that are like complete once well and it wouldn't really make sense to use the rules for that it would be really ergonomic but at the same time we have a number of like services and what not in the cdk and any other material that are more streams of events right so we have like a service for when media query breakpoints change and so you can set up a stream of that and filter on that to you know change your ui layout based on those and they're really entirely different use cases that call for different programming models anyone that's on the panel want to weigh in my vote is for acing the weight um but with some caveat because basic weight is mostly a cool mechanism where the caller asks for information what is missing is the push model so if we couple async away with say function generators then we get both push and pull cool so we're kind of out of questions i do still have a few i want to talk about um you know education and angular but i was just wondering from the panel if you guys want to talk about any anything else like initiatives or make any comments that weren't uh asked here uh yeah i feel that we can expand a little bit more on the prioritization part of things looks like a lot of the questions were somehow related and this may bring extra clarity and cindy would be the expert here to tell us uh like just to share our prioritization process and like how how you guys prioritize uh features in angular yeah pretty much yeah so um the angular leads we meet on a weekly basis um everyone puts their projects uh you know in upper in and we discuss uh those particular items they're prioritized or stacked ranked against all of the the queue of projects that are to be developed they're resourced and they move through the various project stages of uh in progress you know work in progress and through completion and through execution nice um let me see okay i love this one uh are you looking for are you looking for help from the community how can we get involved and there are are there any specific tags people can look for yeah so on both the angular repo and the angular components repo and i'm not sure about tool linking would know on there we have we use github standard help wanted label and then additionally we have another label that is good first issue a lot of them are documentation issues which if you are new to github are a good way of just learning the contribution flow and should be relatively simple to actually make the change we use the same label on the cli reboot too uh and dave recently shared a bunch of guidelines on how to help make the anger documentation awesome i will share them in the chat thank you so can i touch on one thing before we go to another question i know you asked about like angular education so part of the vision for our youtube channel is to be one of those portals for education and we have series going from things like new to angular how do you get started what type of things do you use there we have series around updates about new features that drop but then we also have series about things like working with like design and other advanced features with angular so we're doing we have quite a bit planned we're working really hard on creating that content and then it also enabling other people in the community to be able to create content as well because yeah we have an amazing community of people who have really great insights and so we're working on all those fronts to do a lot around education nice and uh emma you went tick-tock i forget if does angular have an official tick-tock or no okay but it's coming in v12 right i feel like we need an angular dance on the tick tock channel just like something like an a you know and like an in okay i'm gonna stop i don't know ngconf is musical themed right yeah okay well there's your viral songs just ready let's go if someone creates a dance make a trend emma that's all you you got that in spades we'll see that's the next youtube video so dance tutorial look out i love it okay so the next question is um graphql or arrest it depends there's really like there's no one answer to that right yeah yeah gonna depend on your application and your back end and everything uh okay this one observables for life cycle hooks oh maybe i think this is similar to the the question we answered earlier uh like what about observable inputs this kind of falls into the same category of like do we want to do more reactive stuff or less reactive stuff or somewhere in between or both um something that you know if if we were to try to move towards supporting more reactive models i think this is something that would be a good candidate but we don't have any plans to do anything just yet cool anything that we should like be looking for at ng conflict are you guys going to be doing any big announcements should we be freaking out preemptively on ngconf we're going to share our efforts on reaching higher level of consistency with the ecosystem and also a lot of backgrounds on some of the questions that were actually asked during this panel about observable inputs about option omg modules we'll be talking about cypress yeah a lot of such stuff we're also going to have we're going to have a few sessions we will be discussing that harnesses mobile apps with pwa and performance with core web vitals so yeah exciting things are coming up and also just in general it wouldn't be an announcement if we told you ahead of time but you could say there's gonna be an announcement sounds like there is so i'm looking forward to ngconf it's coming up so soon um i can give one little hint about something though that can be really fun keep your eye out for a cool event with the community to hang out with us i'm not gonna say anything more but we have some really dope stuff planned coming up for that so just keep your eye out that's all i'm saying pay attention follow the twitter you know just pay attention to what we're doing because we have some magic on the way i really love this one um is there any education or can you add education about anti-patterns you can't read my writing but i did when i saw your question i wrote it down because that's a good idea so yes we can add it to our list don't know when it'll get done but we can add to our list for sure i can see that youtube like never do this in angular you know it's like so clickbaity but like perfect at the same time yeah i love it and see mark if you want help coming up with those anti-anti-patterns just uh talk to me because i've done all of them [Laughter] i think we're all so guilty of that so it's like yeah you know just have like a panel so what have you done wrong with angular well everybody's hand goes up and starts sharing their stories sounds good i don't know if there's a really good answer to this one um i don't really know strong is you know a good word but like do you have suggestions for a strong structure in large scale angular projects you want to make sure you get a lot of rebar in there to hold things up so it's very weight bearing [Laughter] um and generally we're trying to incorporate all the best practices we discover in our tooling so just following the guidance following the style guides this should be generally bring you close to a scalable solution there are some tricky things for example around consistent state management that might not be obvious immediately but um i guess this would be the only thing that needs to be put like more thought into oh i mean there are other things along the way for sure but um just following our official recommendation and tooling this should be a good step forward this is one that i am super passionate about and and you know this gets at asks a lot um architectural best practices what are the resources that you all recommend do you guys have any official resources uh so i think one piece of advice i would give here and maybe that's uh a catch-all piece of advice is uh don't think about things as trying to find the angular way of doing it right angular is a tool that solves a certain set of problems but at the end of the day software is software and so any best practices for software architecture are also best practices for angular applications and there's probably some angular specific stuff uh but like at the end of the day it boils down to like right good software uh there was one that was a bit further up about ng-deep that i can talk a bit about okay let me put that up on the screen yeah so the context here is we have this thing called ng-deep that lets you bypass view encapsulation and style stuff and it has been deprecated and there is no replacement for it and why is that it's because when angular was first written back in 2015 times uh the shadow dom v0 spec was the thing and that spec included the deep selector for css which would be piercing for native shadow dom and because angular was attempting to emulate that native shadow dom it also supported the deep energy deep in this case to bypass view encapsulation after angular shift shadow dom evolved to the next shadow dom version uh and they dropped the deep because the standards body didn't like it various parties i think apple um wasn't a fan of it because it's basically like what it made moot having encapsulation in the first place if you could just drop deep in and ignore it um and so it was removed from the shadow dom specification but because angular had already shipped with it it was already there and people started depending on it so we're really in a situation now where we don't think people should use it since it based it breaks css uh encapsulation uh but also we can't just remove it because that would break a bunch of people who are depending on it and ultimately like in the long term there's a couple of things that are going to uh end up being the thing replacing this it is going to be a combination of css variables uh constructable style sheets particularly with the way that you can adopt style sheets into shadow dom shadow dot itself and the css standards body is working on a way to do style scoping without shadow dom because it was uh depending on how you look at it you could say it was a mistake to tie shadow dom and style encapsulation together in one spec and so there is a group looking at doing encapsulated styles decoupled from shadow dom and that may also play a part in this but for the short term uh ng that's gonna stay around but the recommendation is still not to use it and to use some other approach um to to do styling cool thanks for answering that and i think i think that's it for most of the questions unless you guys have any others that you saw in the chat that you want to answer there is one in there it says shadow dom yes or no uh the answer on that one is again it depends shadow dom it comes with trade-offs um [Music] there are some things that are just straight up easier with global styles um you also end up using shadow dom content projection i think they call it node distribution instead of ng content which is also a different api and may not be as nice um i put like shadow down you're using named slots instead of the selector based content projection in angular which again comes from the shadow dom v0 specification and then changed later um there's also some accessibility challenges with shadow dom the kind of conventional way you do query selectors or kind of any kind of walking of your application tree changes um so overall like it there's a lot of like pros and cons of using it um we're still not using it for any angular stuff ourselves and i don't necessarily see that changing in 2021 but it's something that comes up and me we just talk about it again from time to time well we have a lot more questions uh now that i said we were out of questions so uh any updates on tale1 jrit get support until win as far as i know is currently still under development it is an experimental feature so we will continue to evaluate it and once it is stable we will see how what kind of changes we need to make an angular cli to support that but overall i think with jit it's gonna i think like in one of the comments someone mentioned it's gonna make purge um unnecessary so it is moving in a good direction any plans for a lightweight version of angular uh i don't think we would ever move into a model where we had two different variants or flavors of angular um in general you always want to avoid situations in which you're fragmenting an ecosystem right like the canonical example of this is look at like python 2 and python 3. and just the the the mess you get into of incompatibility between versions and having to to know like which runtime you're using and things like that and so any approach that would be like oh well like there's angular and angular light and angular can do these things but not angular light and like this is the best practice over here but not over here you're eventually fragmenting the ecosystem in terms of like libraries and best practices and uh content between those two and it's really hard to maintain any kind of uh reasonableness and so i don't see us doing anything like that um however we're we're always thinking about how to make angular more lightweight in terms of either performance or payload size or simplicity and that is always something we're keeping in mind as we decide what to work on so uh i wouldn't expect to see like a lightweight version of angular but you can see angular maybe getting more lightweight over time yeah on with the tree shaking model we're trying to give you what you need so you can start incrementally adopting concepts and features and in your bundle you're going to get what you're using that we're trying to make it and your uh progressive let's say in this way any plans for expanding uh the cdk in the short term uh depends on what you mean by short term we have some stuff that is kind of baking in cdk experimental so there's um cdk dialog menu list box and combo box all are in cdk and experimental and are pretty usable um i'm holding off on moving those into stable because there's a couple of features that i want to get in the framework before i make them stable that will make them much more useful um those features are not uh in our our slice of road map yet but um basically this is maybe a little nuance but the ability to augment the injector for embedded views or ng templates when you render them out um and also the ability to add directives to host elements i think would make that stuff a lot more useful and so i'm kind of holding off on moving or graduating that stuff into stable until we get stuff like that in the framework um i also am uh trying to figure out how we can get more cdk like stuff worked on in partnership with other teams inside of google um it's challenging to convince other teams that this is in their best interest so uh it's something that i'm i'm kind of pushing on but i don't have anything to like anything that's gonna happen in the short term i think in like the next four to six months i know this was we've already talked about this but maybe if you guys just kind of want to reiterate or if you have any specific comments about well jeff will just ever be a default for unit tests do you want to take this mikko okay wow uh i don't see it being the default for unit tests you have options for using it right now it's just a testing framework you can add to your project so if you prefer it go ahead and do that it's may i see a future when we may have different options for unit testing but there are no concrete plans for this just yet um here's one question yeah so um dynamic height virtual scrolling in the cdks it's been an experimental for quite some time we do want to move that into stable uh one thing that may help in getting that moved into stable is uh when we do deprecate ie 11 and eventually remove it we'll be able to fully depend on intersection observer for this which is part of our implementation for this um i think we're doing some like really strange stuff to try to make it work in ie11 or maybe it just doesn't even work in ie11 i don't quite remember off the top of my head but getting rid of that 11 support would make it a lot more viable for us to do this any questions that i miss in the chat that you guys saw that we want to answer i think i got most of them cool well i think another thing is um what are other ways that you'd want the community to get involved if it wasn't code contributions you guys have any wish lists for the community to do yeah so one thing that was mentioned earlier is we're planning on doing a an rfc for protractor tomorrow in general we try to do rfcs like this anytime we want community feedback and so responding to those even if uh you wouldn't like i know a lot of people would come into it and like ah they're not gonna care what i think it's like yeah we do actually care what everyone thinks we wanna hear about the kind of application you're working on and how it would impact you and so responding to those rfcs is really valuable yeah and building content generally people love content using angular with a particular technology so if you have expertise in i don't know.natural rails rust what they are yeah good examples for people people love to see real use cases for angular and learn from them cool um minka did you see that comment in the private chat i don't know if you want to answer that i think uh we are um yeah devtools we're we're thinking of expanding our private uh beta and probably this is going to happen in the next like months uh next couple of months so uh we are going to move forward with it eventually i said it's very likely that devtools is going to land soon but still hard to commit to a date all right well um any last comments before we say goodbye and thank from you all i'm going to go ahead and add the panelists somebody just asked and we see the list of names of people talking here so there you go um angular team you know one of the reasons why i joined the angular community is because they were so welcoming and so inviting and back in 2017 somehow too many people asked me to come to ng kong and i you know after jules asked i was like okay i can't keep saying no and then i just fell in love with it because the angular community is just so welcoming and just so awesome so willing to pitch in and everything like that so these folks on the angular team are also super amazing um and there is you know i mean feel free to chat with them on twitter find them on twitter everyone's on twitter um or on github and you know i know a lot of people kind of get shy and they're like oh why would they care about what i have to say kind of what jeremy said right but you know uh just get involved and see right like there's so many opportunities out there to to to do amazing things yeah and i'll like plus one that uh i'm happy to answer questions on twitter anytime the only two questions i won't answer uh are uh please help me debug my app and when is feature x coming out but aside from that like any just kind of general questions about angular uh always happy to to answer yeah um well very cool let me go ahead and share so jeremy your gel born oh my gosh i can't remember all of them i think i'm just going to add the tweet where i tagged all of you and i'll add that in the comments right before we leave otherwise uh here we go i found it there we go all right see if that worked yes okay there is everybody's twitter handles so again watch for emma's tick tock emma i really do hope it happens [Laughter] um check out mark's amazing youtube videos and definitely just hang out with everybody on twitter um thank you again everyone for joining uh this dot who is one of the sponsors is hiring so again if you get excited about angular i mean we have just such amazing angular people on our team and we're building a really cool app in angular right now and i can't wait to release it because it's so so so nice so preview soon and um make sure to like and subscribe and again follow uh angular youtube as well to check out some of mark's amazing uh youtube videos on angular thanks for joining us all
Info
Channel: This Dot Media
Views: 2,167
Rating: undefined out of 5
Keywords:
Id: zoXGGkdZoJ4
Channel Id: undefined
Length: 77min 2sec (4622 seconds)
Published: Thu Apr 01 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.