[Brad runs to the stage!]
Heather (O’Reilly): Are you brad?
Brad Green (Google): Yes! Hi!
Heather: Thanks for getting this together O’Reilly.
Brad: I’d like to intro my team.
Gentlemen please come to the stage.
We brought a bunch of folks who build Angular and some friends like Marcy who now has a new title — I think it’s Web Overlord, right?
Brian Ford worked on Batarang and a bunch of things.
Alex Rickabaugh works on mobile.
Rob World is joining team this week.
Victor Savkin works on rendering and data model among many other things.
Brad: So let’s answer some questions live.
Heather: You guys are the experts but many times the audience contains experts too. So it might be helpful to find things out about. Is there anything you (audience) want to know?
Casper: Release date! When is it?
Brad: I don’t know. Nobody knows exactly.
We put up a milestone on GitHub to track progress. [link]
And there is actually a predictable algorithm that is predicting the release. We will see how well it does doing that. [link]
Mina: Currently using Cold Fusion and ExtJS. Why should we use Angular? What should we do to migrate to Angular?
Rob: You talked about platforms. Angular gives you scaffolding and tools to build a client side applications. Angular is a great place to start when using this SPA apps. NG2 will provide more hooks for server side rendering and be a little easier of a path for traditional server-based web applications. TypeScript is another thing. JS is a wild language to use. It is very flexible and if you aren’t used to working in loosely-typed languages it can be a hard thing to use. So TypeScript gives you a lot of static typed things that you might be used to from object oriented languages.
Peter: From my background, seeing Angular 2 be a component-based system is exciting. We have legacy systems like Java and .NET. What inspired the component driven model? There have been great component driven solutions in the past that had great success. What inspired NG2 to adopt components so strongly?
Victor: Angular 1 had components, but they were not as explicitly components. NG2 makes that more clear. Components in Angular 2 are a much nicer way to encapsulate small pieces of functionality. And NG2 knows how to handle components more clearly.
Casper: Have you ported any Angular 1 applications to Angular 2?
Brad: Angular is only part of my job. I manage another 100 developers at Google. We are migrating a very big application (called Green Tea) and are almost done.
There are a couple things to consider:
You could just say we are going to rewrite, but it will slow production down a bit.
Or you can slowly migrate. We have ngUpgrade so that you can slowly migrate to Angular 2. It allows you to use Angular 1 and 2 in the same application and migrate it in parts.
But before you start you should follow our guidelines for Angular 1. Make sure you aren’t doing DOM work in the controllers. Follow the style guide we worked with John Papa on. [link]
Do the service work first, then build components. It’s much easier to make forward progress when you have the service foundation to target.
Rob: Max Lynch has a really good blog post. He said Angular 2 is a design pattern. When using Angular 2 you will notice that you know how to use it, you just have to learn some new syntax. Anyone using Angular 1 should become immediately comfortable in Angular 2.
David: Did you work on the dojo framework?
Brad: I did not.
David: Someone mentioned earlier in the conference that dojo was ahead of its time. When I look at Angular I see a lot of dojo. Bindings, markup, decorators, etc. The first framework to do it was dojo. What are some differences and similarities?
Rob: I can’t speak accurately to that. But if you look at a lot of frameworks, you will see a lot of similarities.
Brad: Yeah, we happily steal good ideas [jokingly]. A lot of frameworks have great ideas and we like to adopt them.
Mina: Where is a good place to start researching Angular 2 since it’s still in the beta?
Brad: egghead.io also has a bunch of free content. [link]
Tim: Design manual seems influenced by Java, Dependency injections. TypeScript is another step in that direction. Is the intention to push Angular more towards Java?
Brad: It’s interesting, a lot of us have experience in Java. And originally we went in the opposite direction and avoided types. But then we realized we actually needed them. In TypeScript, you get these nice little types that light up your experience when developing and provide more helpful types. Things like error checking, debugging and refactoring become much easier.
And yes, we are porting to Java… just kidding, no we aren’t.
We do like TypeScript and it gives us a lot of things that we have coming in ES6.
Ashley: We have been doing a lot with UI Router in Angular 1. We love UI Router. What happens with it in Angular 2? Will you keep that functionality?
Brad: They are building a version for NG2.
Brian: Yes, there will be a new UI Router for ng2 as well. I’ve seen a lot of people using routing systems and just adapting them to Angular 2. I think there will be a bunch of options for routing in Angular 2. What I’ve been working on takes what we’ve learned from past and applies them to Angular 2. It also embraces the component concept more tightly. You shouldn’t feel like you are missing anything when it comes to Angular 2.
Rob: We have also taken the core for UI Router and put it in hooks for it. The functionality should be available in Angular 2.
Attendee: I would like to know about the Angular 2 server-side feature. We were not able to use Angular 1 because of server-side rendering issues.
Alex: I’m on the ng mobile team and we are using server-side rendering. You have a window where you can send data before latency slows things down. So we want to push just the core markup to the client and then send the framework and the application after the initial markup. The promise is very fast initial load on all devices. It also has SEO benefits. If you are able to ship the entire page with the initial render it will help.
Rob: If you don’t mess with the DOM in services, you should be able to render any application easily. Make sure you do DOM manipulation in components and you should be fine.
Robert: TypeScript follow up. I like to not write typing systems in JS. What am I missing out in Angular 2 if I don’t use TypeScript.
Victor: There are bad feelings towards Java, but it should not be compared to TypeScript. It is a very different language. We shouldn’t feel so disgusted by TypeScript because of Java experience. Without TypeScript though, you will miss some of the sugar. If you remove types from the model, you will have to provide some extra information to the compiler but not much. TypeScript prevents that necessity and makes development easier.
Brad: We found a bunch of bugs in Angular when we moved to TypeScript. We are religious about testing and we still had bugs that were found. When you have a large app, you can also refactor much more easily in TypeScript.
Alex: Also, it is worth mentioning that you can use TypeScript without Angular.
Robert: Do you use VIM for editing TypeScript?
Brad: I don’t think we do. Vim needs and upgrade on its TypeScript plugin. We need to talk to them about getting that updated. Sublime, VS Code, etc all work well with TypeScript.
Matthew: Is the Upgrade Adapter something we can use with confidence?
Brad: It is being used by a lot of teams at Google, so yes.
Matt: Is it possible to wrap 3rd party packages with the Upgrade Adapter?
Brad: Things like UI Router will work in Angular 2. But when it comes time for release, you will want to replace it with something new.
James: How can I take advantage of TypeScript, when most of the models I works with are server side models in Java? How do I know that property names haven’t been changed or Types modified, etc?
Victor: Even if you have to replicate the object model in both places, it is worth it. You can also use things like a schema to generate one from the other. This will also give you Intellisense in editors that support it.
Brad: That’s what we do in Green Tea (Google’s migrated application). We generate models based on server-side model. There is a company called ADP and they are working on data driven forms in Angular 2. Look them up for collaboration.
Rashmi: Progressive Web Apps. Do you see it as the future? What support is NG team putting behind PWA?
Alex: We are building tooling into the CLI for generating mobile apps that put progressive bits in them. They include Service Workers and sync technology. So that users have that native mobile app experience.
Jeremy: What kind of things will be in the official release? What comes later?
Brad: We promised 5 things changing from beta to final
All instructions would be replaced with CLI.
We are working on a new simpler API on the Component Router.
We will ship with i18n and Animations.
We will be smaller and faster.
We are also going to ship with some of these features for PWA.
We will also have Material design support.
We are working on an Intellisense module that will understand templates.
More help in IDEs.
Andrew: Will Baterang support continue in Angular 2?
Brad: We’ve been working with another team at rangle.io. They’ve been doing great work on that. [link]
Brian: We want one tool to give people for when they are migrating and developing. For now, it will be two tools, but we plan to merge them all together in one super tool.
Brad: I also want to mention Wijmo. Wijmo has been working on some awesome Angular components like their data grid. We’ve been working directly with them on supporting Angular 2. They are worth checking out. [link]
Attendee: What is up with Polymer and Angular 2? Is there a connection?
Brad: Well, Polymer is built on Web Components. And we thought it would be a good idea at first. But we ran into some issues when trying to use Web Components in Angular 2. We couldn’t do things like dependency injection. The issue is that the browser was always in control. And the polyfill was also slow. We have made sure that Polymer Web Components will work with Angular 2 when using a browser with good Web Component support.
Matt: We support a lot of dev teams. They use different frameworks like React, Angular, etc. We need to provide common functionality for all frameworks. We plan on using pure js and DOM, then wrapping in Angular 2 components. What challenges will there be?
Victor: We have not done this yet. You should not have any problems with working like that. As long as you implement them in components.
Kyle: Do you see Ionic 2 as a good way to learn Angular 2?
Brad: They are specific for mobile. So they are a subset of Angular 2. But it is a great place to start looking at Angular 2, yes.
Attendee: Can we use it in production?
Brad: Yes, it should be fine.
Heather: OK, looks like are done and look forward to the release date next month. [jokingly]