AJ:
It’s Skype official now. We’re friends!
[This episode is sponsored by Frontend Masters. They have a terrific lineup of live courses you can attend either online or in person. Their upcoming course is JavaScript to Node, which covers some advanced JavaScript topics and real-time web development with Node.js. You can also get recordings of their previous courses like JavaScript the Good Parts, AngularJS, CSS3 In-Depth, and Responsive Web Design. Get it all at FrontEndMasters.com.] [This episode is sponsored by Component One, makers of Wijmo. If you need stunning UI elements or awesome graphs and charts, then go to Wijmo.com and check them out.]
CHUCK: Hey everybody and welcome to episode 101 of the JavaScript Jabber Show. This week on our panel, we have Aaron Frost.
AARON: Hello.
CHUCK: Joe Eames.
JOE: Hey there.
CHUCK: AJ O’Neal.
AJ: Yo, yo, yo, coming at you from the land of love: Provo, Utah.
CHUCK: Merrick Christensen.
MERRICK: Hey guys.
CHUCK: I’m Charles Max Wood from DevChat.TV. And we have a special guest and that is Brad Green.
BRAD: Hi folks. Thanks for having me.
CHUCK: Thanks for coming. Do you want to introduce yourself really quickly?
BRAD: Sure. So, I’m an engineering manager over here at Google. And I do several things. And amongst them I manage the Angular project. Been doing that for a couple of years.
CHUCK: You manage the Angular project?
BRAD: Yeah, I’m an engineering manager. And so, these folks need somebody to be their manager. And that’s what I do. Although maybe they’d be successful without me.
JOE: Would you say they desperately need?
BRAD: Some of them would say more than others, and some of them probably reject my presence when I enter the room. [Laughter]
JOE: Come on, Brad. We all know that Angular would be nowhere without you.
BRAD: [Chuckles]
MERRICK: I bet they get out of control sometimes, though.
BRAD: Oh, yeah. Boy, you should see it. You should just see it. Probably, it’s going on crazy right now, because I’m here and they’re, I can’t see them right now.
AARON: I bet. I bet. [Laughter]
AJ: I actually have the perfect meme for this. If I can find it, I’ll post it.
CHUCK: So, is managing an open source project like herding cats?
BRAD: No. It’s like baking a cake for about five years. [Laughter]
AARON: Oh, nice.
BRAD: Yeah, you never get to…
AARON: Tastes so good.
BRAD: No, I don’t think I have the right analogy. [Laughter]
MERRICK: I like that.
JOE: A five-year cake. I like that.
BRAD: We keep replacing the layers and frosting it differently.
AARON: Yeah.
CHUCK: You get to have your cake and slap it on the front of your web application.
MERRICK: I’m going to ask a question that maybe seems a little generic. But this is something I wonder sometimes. What exactly is open source software?
BRAD: That’s a good question. Are you asking me specifically? I don’t know if I’m an expert on what open source is. I have my definition. Would you want to hear that or does someone else want to go?
MERRICK: I would love to hear.
BRAD: Well, I think there are two flavors. Or maybe there are a couple of flavors. But I’ve seen a couple. One is where, “Hey, we’ve developed some software that we think other people would like to see the internals of, whether it’s for trust reasons or we just want to share our cool ideas so other people can use them.” And there’s another flavor that we try to be on Angular, which is not only do we try and share it, but we actually actively solicit contributors. And we really want the community to be a big part of what the framework is. So, I think there are valid reasons for doing both styles. And there’s probably some other styles other folks can list. But that’s how it falls out in my head.
MERRICK: So, a community-run project. JQuery eventually turned over, J. Resig turned his source over to the jQuery Foundation. This might be an inappropriate question, but do you think Angular or Google will ever turn over the source of Angular?
BRAD: [inaudible]. The future is long, as Steve Jobs liked to say. And [chuckles] I don’t know. There’s no foundation yet that wants to take it over, but I’m willing to be approached.
MERRICK: Very cool.
JOE: Would you say that the community involvement you’ve got to date is as much as you’d like, or would you like more?
BRAD: You know, I think we’re constantly at the point where we just, we don’t know how it will scale to talk to everybody who we want to talk to in the community. And I think we continually want more. And we’re always trying to scale it to use more and more folks. I think we learn a lot from folks like the Linux project and certainly, I think, the Firefox project. They do a great job, Mozilla, of making a big scalable system, where we have some core contributors that started it at Google and then we’re working to train and collaborate with folks who can be the next level of owners. It’s a pyramid scheme. It’s a Ponzi sort of thing.
CHUCK: [Laughs]
BRAD: And eventually, everybody in the world will be an Angular contributor. [Chuckles]
JOE: Nice. So, I have another question, going backwards just a little bit about all that you do. Are you at liberty to speak at the other projects that you manage and how big they are in terms of size, budget?
BRAD: Oh, sure, yeah, yeah, yeah. Yeah. Angular is a team of about eight developers here and then there are some external folks who, many external folks who work on Angular as well. I have other teams. And in total I manage about 75 folks. These other projects are in ads here at Google. And I manage some backend database systems of various sorts where we pull information from across Google’s backends and try to make them consumable. And then I build some CRM software for our internal sales forces. And that project is called Green Tea. So, a lot of stuff people never see. Angular is one thing I do that I get to chat about on the outside.
AARON: I saw it. I saw it.
BRAD: Actually, you did see it. You were here.
AARON: Yeah. I was there.
BRAD: We had a sandwich and talked about Green Tea.
AARON: Oh my gosh, guys, the sandwich was the best. And then I went to a different café. Brad, have you even been to Roots?
BRAD: Yeah, I’ve been to Roots.
AARON: Oh my gosh. There, the food was not good.
BRAD: [Laughs]
AARON: The food was bad.
BRAD: They have their days.
AARON: Okay. Well, I was on the bad day.
BRAD: [Laughs] We would not steer you wrong. When you come back, we will take care of you.
AARON: Their area’s actually really cool. They have this view out the side of the hill. It’s awesome. And then for whatever reason, they’ve installed a huge swing in the middle of the office.
MERRICK: Because it’s always okay to install a swing anywhere.
AARON: It is. No, I know.
BRAD: It’s Angular branded. It’s the ng-swing.
AARON: Ng-swing, cool.
CHUCK: [Laughs]
MERRICK: One of the questions I have for you is obviously Angular’s blown up in growth. How have you guys managed that as an open source project?
BRAD: There were many times where we had nothing but ulcers that we were not on top of the pull requests and the bugs and whatnot. And then we decided it was okay to not be on top of them. And then we decided it was not okay to be not on top of them. [Laughter]
BRAD: And I think that’s when we, let me back up. For a long time it was just Igor, Miško, and myself as their coach. And we hired Vojta and that’s about the time that it started to take off. And for a long time, it was just them trying to keep on top of everybody’s interest and love. And the love nearly killed us. And I think Igor did a really good job of explaining it at the ng-conf talk he gave, which folks can check out on the web if they want to. And we’ve hired a lot of folks externally to help with this. And there are people like Caitlin and Peter and Matias and a bunch of other folks who helped make sure that we’re actually maintaining some sanity and really address issues that people bring up.
MERRICK: Got it.
JOE: So, what’s different about managing an open source project like Angular versus managing the other projects you manage?
BRAD: Well, that’s really interesting. There’s certainly some pleasure in being able to talk with the community about things that they like and that we can collaborate on. We get to trade ideas with some of the coolest projects on the planet. There are some cool projects here at Google, for sure. But I think we would be limited if we were just working on a framework that was used for Google only. So, I really like that. I think the whole team really enjoys it. And because of that, we get an ability to come to conferences and speak and hear a lot of folks’ ideas all around the world. There’s another aspect too. We have some beautifully scalable, really robust systems that are just really hard to use. And so, I think Google hire super smart people that can tolerate a lot of this complexity, yes. And maybe we shouldn’t. Maybe we should be a little more intolerant of it. And actually, that’s been going on for a while at Google. And we haven’t really known what we’re going to do about it. But I think there’s finally a good plan. And really, what we want to do is match what everyone on the outside wants for their development environment inside of Google. You know, I don’t have any other details to share than that. But I think Angular’s been a nice bridge between outside and inside. Here’s something that folks internal to Google love to use and folks external love to use. And I think we can inform each other with what our needs are for a platform.
MERRICK: I want to know why do open source? What do you get out of it?
BRAD: Well, I think I talked about this a little bit already. But having the ability to learn from the world, I think that’s the primary benefit for us. We could have done this as a project that as I said, only supported Google properties. But we would be missing a huge swath of the world. Another part of it is I think it holds us to a different standard that we need to have documentation and code that can be understood by large groups of folks. And I think it’s helpful to force you into a space, if you’re really trying to be something that other folks can work on, that has all of the [hygiene], I’s and T’s dotted and crossed.
MERRICK: Got it.
JOE: Besides those reasons, Google’s paying a bunch of people money in order to produce a product that they’re not getting any money back from other than maybe some notoriety, right?
BRAD: It’s true. It’s true, yes. But mostly, we make money on ads. And the rest of Google, this is free stuff. And yes, you’re welcome. [Laughter]
JOE: Why do you think Google’s like that?
BRAD: Well, a lot of what Google does is actually there to support the ads ecosystem. If you use the web more and the web’s a nice place to be, then hopefully we can support the folks who actually need to make a living by selling stuff on the web. Some of it’s for [community good will]. But I think there is starting to be another benefit in that when folks on the outside use the same technology as we use on the inside, it’s actually easier for Google to recruit. For a long time, we used things like the Clojure library, which was open source. But it was primarily used by Google. And Angular’s this nice crossover where when we recruit people, we see Angular on their resume and they can go to town on projects here at Google.
JOE: Is managing an open source project, is that a new experience for you?
BRAD: Yes. I have never done that before, completely new. I had no idea what to expect. And it’s been fantastic.
JOE: Really? You wouldn’t give it up?
BRAD: Oh, I won’t say love of my life because my wife could listen. But… [Laughter]
BRAD: [inaudible] something to say about my children. Yeah. No, I think it’s super fun.
AARON: So, was it easy to get Google to agree to open source? Or did you have to fight some fights to say, “Let’s give this away rather than keep it in-house.”
BRAD: Okay. So, maybe this is new territory. So, I think we didn’t ask anybody. [Laughs] We open sourced this I think before we had a formal open source group. And we have one now. So, new projects have very clear guidelines on what they should do when they want to open source their software. We just did it without asking anyone.
AARON: And that was cool? Did you guys get any hands smacked?
BRAD: No. No one ever asked. So, I think most people are afraid of what might happen. Usually, it’s the right thing particularly to talk to your legal folks before you start an open source project. They will have some good advice that you will need to follow. But most of the things we figure in life never actually come about.
AARON: That’s awesome, man.
JOE: So, what have you thought of the popularity of Angular last year, year and a half?
BRAD: I think we try not to think about it. It’s so overwhelming. We thought we probably, our project would be canceled at any moment. And [laughs] now, you can’t hardly turn around without hearing some huge crazy cool project using Angular these days.
JOE: So, does that mean that amongst the other managers over there at google, you’re then one strutting all his feathers all day long?
BRAD: Oh, no. Absolutely not.
JOE: [Chuckles]
BRAD: There are so many awesome things going on here at Google. I’m a drop in the ocean.
AARON: It was cool. When I was there, Brad was talking about his team. And it was like, “I serve these guys. I’m a servant so they can do this.” I t was actually pretty cool to hear Brad’s philosophy about managing hits team. It’s pretty awesome.
JOE: On a note, have you ever talked to other open source project managers and compared notes about doing this?
BRAD: I honestly don’t know. I know a lot of engineers on open source projects. But I don’t know any other managers. And if there are any managers listening, I’d love to chat. And if we could all get together on our own Skype call someday and chat about these things.
CHUCK: Can you talk a little bit about the process that you guys use to build Angular? So, how do features get in, make the list that somebody’s going to work on, and how do you shepherd it through so that it actually gets puts in and tested and whatever else?
BRAD: Yeah. There are a couple of different ways. And the largest source, by number of features, is through pull requests from the community where somebody out there will have an idea for a bug fix or an actual feature and they’ll propose it. And sometimes, it’s just in a gist, but often it comes with code. And we have a weekly triage process where we’ll go through, a whole bunch of us that sit in a room and some of us on a video chat, and we will go through the list and decide whether we like some pull requests or we don’t like them. And if we like them, what do we need to do to mentor that piece of code into being integratable into some version of Angular? And so, we use GitHub’s tagging ability to put various labels on things to help us understand where they are in the process. We actually have an automated bot that we call Mary Poppins that helps us do the round one of this tagging for us. So, for signals that we can just automate and things we can do automatically like check have they signed the license agreement that allows them to be part of this Google release, that’s automated. So then, usually one of us on the core team, it doesn’t have to be someone at Google, will then be assigned to mentor this to make sure that it’s got all the right tests and it’s constructed properly and it works well with the rest of the framework. And then it eventually makes its way into release. Now for things with a longer term scope, it’s usually owned by somebody on the core team. And you could see this for the Angular 2.0 project where we’ve written fairly extensive design docs for all of the new core pieces for the new templating library and the new change detection and [inaudible] and routes and all these good things. And so, we’ll go through, solicit feedback from each other, and then from other folks that we know and love to give us early feedback. And then as they are right now, they’re open for everybody’s [inaudible] so that we can really make sure that we’ve thought through all the things we can think through before writing code. And then we start experimenting with the code.
AARON: One thing that you guys did at ng-conf that I thought was pretty cool, and maybe you can talk about it for a second, is you created a working group, which was from my understanding a way to let non-core people participate in some of, I don’t know how much, of the decision making, but in part of the process solving and decision making stuff. So, what’s the deal with you guys’ team and this working group that you’ve created?
BRAD: Yeah. So, yeah, at ng-conf we put out a request for folks who thought that they had something to contribute to the future of Angular. And we had a bunch of different categories like, I want to continue support for IE 8, or I want to work on some new performance features for 1.3, or I want to work on Angular Dart or the future of AngularJS. And then we went through and found owners or people here at Google who could help shepherd them and help make them productive in Angular’s ways of doing things. And so, right now we have a large group of about, I think [inaudible] folks who are contributing to the Angular 1.3 release. And most of the new features you’ll see in 1.3 are actually going to be done outside of the core team.
AARON: Most of the features for the next release are being done by non-core people?
BRAD: Yeah, yeah.
AARON: Wow.
BRAD: So, Igor and Caitlin and all the rest of us will help. We really want to build that next level of folks who can be productive on the Angular framework. So, it’s not just limited to us.
CHUCK: So, when you mean non-core team people, you’re talking about programmers out in the community?
BRAD: That’s right.
AARON: Well, not even that though. He means, because some of the people who are non-core also work at Google. He just means that people aren’t on, and maybe I’m wrong, correct me Brad.
BRAD: No, you’re right, Aaron. It just means that they’re not part of our formal Angular group. It means that Angular’s not their fulltime job.
AARON: But some of them work at Google, right?
BRAD: That’s right.
AARON: Alright. Cool, cool.
CHUCK: So, where are things going moving forward? What kinds of things are you excited to see come into Angular here in the future?
BRAD: Let me just talk a little bit about, we have four different release paths right now, which is a lot to manage. So, we have the 1.2 release, which is what everybody uses today. And this is where we will support folks who need IE 8. And right now, mostly we’re at the end of the feature roadmap for that, for 1.2. We’ll continue to make bug fixes there, things that are critical. The focus for the 1.x path is really on Angular 1.3 right now. And you can look in GitHub to see all of the features tagged to that milestone for things we’re going to plan pull in. But there are a lot of interesting things like bind-once and some other performance related bits. I think some real cool stuff will go in there. Part of the team is focused on our Angular Dart, the version of Angular that runs on top of the Dart language. And we kind of think of this as it was our latest and greatest thinking of the time of last year when we built it. And so, there are a lot of the pieces, the idioms that we’ll be using in what we’re calling Angular 2.0. And Angular 2.0 is the complete rethink of how we build all the pieces to make them simpler and faster, with the particular focus on making things work great on mobile devices. And so, we’ve spend a lot of time making change detection incredibly fast. And in the lab, we’re seeing about 20,000 observations per millisecond. So, for any kind of device, your application where you need a large dataset, you just spend five milliseconds on it. You can do 100,000 observations.
MERRICK: And what’s interesting about that is it’s not using objects observe.
BRAD: Not even using object observe yet. So, object observe is this native implementation of change detection. And we’ve architected the new change detection so we’ve got a slot for using object observe. And when it’s available, and it’s actually going to come very soon in Chrome’s m35 release.
AARON: Yeah, in m35 it’s out. That’s awesome.
AJ: So, question with that. Oftentimes when the native features are first implemented, they’re actually significantly slower than the shim. With Object.observe, do you think that the shim will initially be faster? Do you think that Object.observe will actually natively implemented be a real win?
BRAD: That’s a great question. And Igor or someone else on the team is building this right now. So, you can actually use Object.observe via a flag in Chrome today. And so, we’re going to test it out. We’ll have benchmarks. And so, you will know as soon as we slotted it.
AARON: You talked about an insane number of checks that you’re going to be able to do in a short amount of time. Can you, to contrast that so that we can be impressed, how fast is it today?
BRAD: That’s a good question. So actually, let me direct you to last week’s Mountain View meetup where we recorded Miško going through the implementation of our new change detection. And it’s pretty cool. He actually shows you a lot of insight into how VMs work. And part of the problem is it’s not exactly an apples-to-apples comparison. So, it’s hard to know except for a real application. We have recently implemented this in again the Angular Dart version. And the end result to the user, which is really what you care about, is quite a lot snappier. How many times faster? You know, I don’t know. So, one of the things to realize with this is that one observation would be if you check a variable like A. But if you say, if you’re checking A.B.C, that’s three observations that we have to check. We are doing fast path pruning though, so that if we’ve already checked something in the path that has not changed, we know we don’t have to check the rest of it.
AARON: Okay, cool. In that video you referenced us to, I’m going to put it here in the notes so it will be on the podcast, it says it’s about best practices. You’re saying Miško’s going to talk about it in here? Oh wait, I’m on the wrong one, sorry. Miško talks about it?
BRAD: Yes, yes. He’s at the, I think he’s not quite at the very end. It’s actually, so there’s one talk that talks about RESTful APIs with Angular. But then I think James from the team talks about our new benchmark tool called Benchpress. And then Miško talks about how we implemented this fast change detection.
AARON: Okay.
BRAD: I’m actually hemming and hawing around the fact that I actually don’t know the number. [Chuckles]
BRAD: But if you ping me afterwards, I’ll try and get something more specific.
AARON: Is that out in 2.0 or is that going to be out in maybe 1.3?
BRAD: So, the new change detection is in this library called Watchtower.js. And one of the things you’ll notice in Angular 2.0 is that we’re breaking up all of the parts of Angular to components that we hope can be used other places, even though they’re frameworks. And it’s possible we could use it in 1.3. I think the core team is not going to focus that way. If some community member wanted to try it, I think we would be supportive if we thought that you knew enough to be successful.
AARON: Okay.
MERRICK: So Brad, say somebody is out here listening and they’re working on an open source project. And they’re wondering if they really do want to get involved in running an open source project. There’s obviously an enormous amount of sacrifice involved, even outside of you guys’ day jobs. You can look at the commit history and you can see that the people on the core team and outside the core team are working all hours on this community-driven project. What advice can you give somebody who wants to explore making their own project?
BRAD: Yeah, you should have poor personal work/life boundaries.
CHUCK: [Laughs]
BRAD: And to be honest, I think you have to really enjoy interacting with other people. And you really have to have a burning desire to share your ideas with folks. And I think that’s what drives folks like Miško and Igor and Vojta on the team, Brian and the other guys. They really like to converse with other folks about these ideas about how you put web applications together, how the wiring works, and how templates work, and what’s our collective taste feel like? So, if you have that as your core and you like worrying about project hygiene and builds and documentation and all the pieces that go with it, and you feel like you want to invest in it more than just putting the code together, then this might be a thing for you. But I think it’s probably not for everyone.
MERRICK: Right.
AARON: So, I’m going to ask Merrick a question.
MERRICK: Uh-oh.
AARON: If you had to pick one, open or source? Go.
MERRICK: How can you pick? [Laughter]
MERRICK: I don’t even know what that means.
BRAD: Look, transparency is really important.
AARON: I’m just playing. [Laughter]
BRAD: So, it’s open. You’ve got to pick open.
AARON: Open. Okay.
JOE: Brad, what are your favorite parts about being the manager of an open source project, Angular in specific?
BRAD: Whoa, favorite parts. I liked that we got to create this cool logo. And I think that’s really why Angular’s pretty successful. We have this awesome logo. [Laughter]
AARON: So, we know that Vojta and Brian are your favorite parts. What are your second favorite parts? [Inaudible] want to know.
BRAD: Yes, yes. Well, let’s see. Second favorite. [Chuckles] Which of my kids do I love most? That’s a good question.
AARON: Yeah, yeah.
CHUCK: [Laughs]
BRAD: I do love speaking. I love going to conferences and I love talking with folks about the projects that they care about. So, although I don’t do a lot of code contributions to Angular itself, I love being in an open source project for the same reasons that the rest of the folks do.
MERRICK: You mentioned a lot about wanting to share ideas with the people and stuff like that. If I look at Angular, there’s no way a project with 20,000 people watching it, every issue that gets opened, that all those people’s ideas could be blended into a cohesive framework. So, how do engineers on your team strike a balance with listening to community ideas and keeping a cohesive project?
BRAD: Yeah, it’s really a sampling of people’s ideas. It’s not really a direct democracy. But I think in some ways, social media helps. The folks with the best ideas percolate up to the top [of that realm]. Some things happen directly. And there is some, we have friends on other projects and people that we understand through their reputation, through their work, that their ideas are similar to ours. Or sometimes they’re not similar to ours, and we like them for that reason too. It certainly happens through a variety of paths. But you’re right. It’s not like everyone has a say. But I think everyone who has something to contribute that there’s a pathway for them to get their idea out there.
MERRICK: If they want to.
BRAD: Yeah.
MERRICK: I just wonder how a project doesn’t prevent themselves from being overwhelmed with trying to address community needs and then never get anything done.
BRAD: Yeah. Honestly, that has happened to us at several places in Angular’s history. That’s a good question. If you’re running an open source project, you have to have a
strategy for growth. And I think there have been several places where we did not have a strategy for growth. And we got stuck doing nothing but monitoring the pull requests and the bug queue. And so, you saw this when we announced we were going to do Angular 1.2 and then a year or 18 months later, it finally came out. And a lot of this was just there weren’t enough of us to manage all of the people and the communications that we had to work on. I think if we had maybe not been dedicated to this being a fully open source project, if we were just doing heads down development, we would have gone a lot faster. And I think we really like the end result.
MERRICK: Right.
JOE: If there was one mistake that you made, or one thing that you could do over again, what would it be?
BRAD: I think announcing when we thought 1.2 would ship. That was… [Chuckles]
BRAD: That was the biggest thing. So, we’ve got a very different strategy for 2.0. You will never hear us tell you when we think it’s going to ship. But instead, we’re trying to make it even more transparent by talking about it, sharing the design docs, soliciting feedback before we even write code, and then highlighting where we are on each of the individual components of it. And we’ll be doing demos. And you’ll hear our progress reports all the way along. And I think we did this poorly for 1.2. But for 2.0, you should hear, we’ve got weekly meeting notes. And you can follow along. And even though you may not know exactly when we’re going to declare 2.0, you can see when it’s ready for you to jump in and start using it, because you’ll understand what the capabilities are.
MERRICK: Something I wanted to ask too is the monetization of open source. There are lots of people who like to work on open source, or who would like to work on open source. And they don’t have a Google to sponsor them. So, there’s just Gittip, et cetera. What do you think about people who want to work on open source fulltime? How are ways that they can monetize that? Is it even a good idea to try and monetize working on open source fulltime?
BRAD: I think I became aware that this was a possible model when Red Hat became a really viable offering. This was many, many years ago. It’s obviously a model that can work well. I am not an expert in it. So, I don’t know if I have much to say about it. I like it. I think there are folks in the Angular community who are making money off of Angular through books and videos and courses and even tools on top of Angular. So, that I love, that we’ve been able to create an ecosystem that people can make money on.
MERRICK: Right.
JOE: So, you guys have got a swing and you’ve got a conference. Is a theme park next?
CHUCK: [Laughs]
BRAD: I was thinking more like, not a theme park, but a park where you can camp and you bring your own tent.
JOE: [Laughs]
MERRICK: That sounds wonderful. [Chuckles]
CHUCK: Who gave you guys a conference?
MERRICK: Angular camp-a-thon?
BRAD: [Chuckles] Yeah.
MERRICK: [Inaudible] hack?
BRAD: There were some crazy guys who threw us a conference.
AARON: Crazy fetching guys, dude.
JOE: Totally crazy.
CHUCK: That’s a lot of work.
BRAD: It was the most beautiful thing.
MERRICK: [Laughs]
AARON: We heard that there’s something coming up in Paris. How’s that going?
BRAD: We are working with some folks on trying to replicate the magic of an Angular conference over in Europe. And I don’t have any announcements, but I’ll let those guys [nod it] when they’re ready about when that could happen.
AARON: Cool.
JOE: Was that all just because you wanted a free vacation to Europe?
BRAD: Yeah, my wife said that she’s not a fan of Salt Lake, but that Paris is a very nice place to go. And so, there we go.
CHUCK: [Laughs]
AARON: Wow.
JOE: [Laughs]
MERRICK: Only a little bit offended.
AARON: [Inaudible]
AJ: What’s the hate for?
BRAD: I will show up in Salt Lake any day of the week for you guys.
JOE: While we’re on that topic, why do you think it is that the analytics for state-bystate searches related to AngularJS are the way that they are? Have you looked at those?
BRAD: No. Tell me about it.
JOE: Utah is significantly higher than California.
MERRICK: One might argue there’s a community here pushing for you guys.
BRAD: One might. [Laughter]
JOE: You should drill into the regional analytics when you got a second, on Google Trends. It’s pretty interesting.
BRAD: Yes. The source of goodness, it turns out, for Angular is not in Mountain View but in Salt Lake. [Laughter]
BRAD: [Inaudible] here.
AARON: Well, I don’t know. I’ll take the compliment, but I don’t know if it’s true. [Laughter]
AARON: We enjoyed having you guys here. It’s still been a thing that’s been fun to talk about. And we’re excited that it was such a success. It even went viral. It was a viral conference. [Chuckles]
AARON: About a tenth of the people got virally ill. So, it was [awful]. [Laughter]
BRAD: There’s no proof that was a virus. That could have been amoeba or a cyst. Anything could have happened.
AARON: Yeah, well we imported four things. It could have been any of them. So, you never know.
BRAD: That’s awesome. So, when’s this happening next year?
AARON: Ng-conf 2015?
MERRICK: We can’t speak to it.
JOE: Good question. [Laughter]
JOE: Good question.
AARON: If you’re not going to break the box on the Paris thing, then we’re not breaking the box on ng-conf 2015.
CHUCK: [Laughs]
JOE: Forget Paris. I want to know 2.0.
MERRICK: It is going to happen. And we are working on it.
BRAD: I will show up any day of the week. Tell me when.
MERRICK: Oh, beautiful.
AARON: Yeah.
JOE: We’re going to do the same thing that you’re doing with 2.0. We’re just going to start letting people know how it’s coming along. And eventually, people will show up.
AARON: Yeah.
BRAD: Yup, yup. Good. [Chuckles]
AARON: So, one thing Brad I wanted to maybe get your take on, because I know that you’ve been instrumental in this part of Angular, but for me when I looked around and I’m like, “Hey,” so one thing that’s really drawn me toward Angular is the community and specifically, your team. When I started, it was Igor, Miško, and John Lindquist. That was it, right?
BRAD: Yeah.
AARON: And I was like, “Man, these guys are…”
BRAD: John doesn’t work here. John doesn’t work here, man. [Laughter]
AARON: But John was a community guy, right?
BRAD: Yeah. He’s a friend of the family, for sure.
AARON: Yeah. The community around it was just, I felt, always positive. And I didn’t always get that in other places. So, what are you guys, I know you guys proactively talk about being positive. And when you get a chance to focus on the negative of a different framework or something else where you could, I know you guys harness that and focus it back onto your own stuff. So, what’s the kind of direction you give your team? Or what are you guys’ goals around being a good community?
BRAD: Yeah. I think some of this is some Google in general. Google’s a really big company. And if we comment harshly on our competitors, I think it feels like a hundred pound gorilla’s wrecking around the room. And so, I think that there’s a lot of other good open source work that people might view as in competition in Angular. Actually, I think a lot of it’s very cool. But I really don’t want to talk badly about anybody else. And I think we all just want the web to win.
AARON: Yeah.
CHUCK: I think that’s an interesting sentiment. We want the web to win. It seems like Google’s expressed that in over the years, that they’re really in the business of the internet. And I’d like to hear a little bit about how you feel that A, this meets with that mission for Google, and how I guess they’re both the same question, how does Angular help the internet in general?
BRAD: Yeah. That’s a good question. So, I think for a long time, the web’s been popular for a lot of reasons. The accessibility and the ubiquity of it made it the ideal platform to bring everybody together in a lot of great ways in development. But we went through this interesting transition of if you’re old like me, you saw us go from we built software on individual non-connected machines and we thought we were cool. And then we connected them and we had these things like 3270 terminals with colors and we thought that was cool. We finally evolved to this client-server architecture where we had these rich clients that connected to databases and did things. And then the web came along. And for a while it felt like we were back to 3270 terminals, because all the source was being generated back on the server. And we lost a lot of the architectural goodness that we’d developed in the world of client-server in places like Sun and Microsoft and Apple. Or, I came from NeXT and we developed the NeXTSTEP operating system which eventually became OS X. So, a lot of us were used to a window manager and a very MVC like environment for the way we wire our applications together and think about having abstraction layers. I think we were trying to bring a little bit of this back into the web platform. And maybe to nobody’s fault, if we look back, I don’t think it really was possible before the IE 8 timeframe to build a framework like Angular. And so, just the time was right. And there are other things like Angular who bring this style of programming. I was just talking about this about Igor today. But Angular doesn’t really bring a lot of new things. We’ve stolen the best ideas from history and we’ve put them together in one nice place.
AARON: That was so poetic.
CHUCK: I still like playing in your bedroom, if you know what I mean.
MERRICK: No, I don’t. That was weird.
AARON: You lost all of us, bro. [Laughter]
CHUCK: You stole all the nice toys, or you copied all the nice toys. And now I get to use them.
JOE: That’s true.
AARON: Brad, I don’t recommend letting Chuck over for dinner, bro. [Laughter]
AARON: Not after that.
JOE: Hiring personal security now. [Laughter]
AARON: Chuck, you’ve been uninvited to ng-conf 2015.
AJ: I want to thank you Chuck, for making me feel less like an idiot. [Laughter]
CHUCK: I was due. What can I say?
AJ: Because for all the times I’ve said dumb stuff, I think you really just put a new whistle on that bell.
AARON: Yeah. It was his turn.
CHUCK: [Laughs] I’ve been saving up.
AARON: Yeah.
CHUCK: So, you guys have any other questions about Angular and project managing?
AJ: [Sings] Angular is awesome. Angular is awesome when you’re part of a team. [Chuckles]
MERRICK: I’m curious to see how the community and Google work together to create Angular 2. I’d love to have you guys back, maybe in a couple of months from now, to talk about that in particular.
BRAD: Sounds great, yeah. I’ll bring some people who actually write code along with me.
JOE: I want to know how you’re planning to top this, Angular, as a manager.
BRAD: I’m going to top Angular?
JOE: Yeah, how are you going to top this on your resume?
BRAD: You know, the way I’m thinking about it is I’m pretty much done. I’ll probably have a goat farm and make cheese and maybe do honey and stuff.
AARON: [Bassmasters] challenge, yeah. [Chuckles]
MERRICK: So far as I know, the cheese market is relatively unsaturated. That’s your option.
JOE: [Chuckles] Right.
BRAD: Yeah. There’ll be a little A logo on it. You’ll know what cheese you’re getting. [Laughter]
BRAD: No, I think Angular 2 re-envisioning is like you have to love it enough to leave Angular to go to Angular 2. We want to build a framework you want to leave Angular for.
JOE: Awesome.
AARON: So, when you guys do this 2.0 branch, is the 1.3 branch going to be end? It’s over? The only option after that is to go to 2.0? Or are you guys going to have a side-by-side like jQuery’s done a little bit with they still develop on the branch that doesn’t abandon IE while going forward with the new version that does? Are you guys going to do that?
BRAD: We haven’t decided. It’ll depend on how quickly people adopt the new browsers.
AARON: Okay.
BRAD: How quickly people get on IE 10, 11 and so on.
AARON: Okay. That’s good to know.
MERRICK: Very cool.
AARON: Should we do picks?
CHUCK: Yeah, let’s do some picks. Aaron, do you want to start us off with the picks?
AARON: I got some picks. When I was out in California for Fluent, I got a chance to go to Mountain View for a few days. And I got to see Brad and some guys on his team. And I got to hang out with a bunch of people that organized the Google Developer Groups around North America. And we just, it was a few days. We were going to brainstorm and talk about how we can better organize the Google Developer Groups. And I met this one group who is from an even smaller market of the country than where I’m at, which is Utah. It’s called GDG Southern Idaho. And these guys blew me away. It’s a school. It’s a GDG inside of a high school. And these kids that go to this group were amazing. The kind of stuff they’re doing, they’ve done so much they’ve gotten their school to fund a whole tech lab where they’ll have 3D printers and all sorts of Arduino and other kinds of robots for them to build on. And they took it even so far that they got the principal to make the Hour of Code that was back in December, they made Hour of Code a mandatory thing for their whole school. So, they got 1100 kids to participate in Hour of Code and they walked them through it. The GDG Southern Idaho, that’s one of my picks because I think that they’re an awesome Google Developer Group.
BRAD: Can’t wait to read about that. That’s awesome, man.
AARON: Yeah. They were amazing. If you guys, anyone in Southern Idaho needs to get involved with them. They’re really cool. My second pick is ThunderPlainsConf. It’s an Oklahoma conference that some of the people we met out at Fluent Conf are putting on. So, if you’re in the Oklahoma area, go ahead and check it out. It’s ThunderPlainsConf.com. So, those are my two picks.
CHUCK: Cool. Merrick, what are your picks?
MERRICK: So, I have one pick. It’s a new album that came out today. And it’s by an artist named Grieves. It’s hip hop. So, if you like beautiful words sung to a beat, it’s some good music.
CHUCK: Alright. Joe, what are your picks?
JOE: I have two picks. The first is I’m going to pick the Jawbone ICON, which is a Bluetooth headset for your phone. I’ve tried a ton of different Bluetooth headsets for my phone and this one is definitely the best as far as being loud and broadcasting my voice clearly. And I lost mine, so I went to go buy another. And I only considered buying another ICON because I just really liked it. So, that’s my first pick. And then my second pick is going to be the TV show Star Wars: Clone Wars which is now off the air. Disney has canceled it, which I hate them for. I’m still going to go give them all of my money whenever I visit Southern California. But the season 6 is out on Netflix. All the seasons are out on Netflix, which is really awesome. And the season 6 wraps up the whole entire series. And it’s a great show for adults as well as kids. I really enjoy watching it. I watch a lot with my son. So, that’s going to be my second and final pick.
CHUCK: Alright. I’ve been playing around a bit with some hardware. And so, I’m going to pick this big long list of hardware that I bought off of Amazon. Basically, there was a talk at MountainWest Ruby Conference where they talked about iBeacons. And I want an iBeacon but I don’t want to go pay $100 for one. So, I found one where you can build it with Raspberry Pi, a little Bluetooth dongle. And yeah, so I’m going to put that in for my picks. Also, there was another talk at MountainWest Ruby Conference and it was given by Ryan Davis. He talked about his users group up in Seattle. Whether you’re a Rubyist or not, what it really boils down to is something that I think is really cool. And so, I’m going to start organizing something like that here. And basically what it is, is they have two different meetups but they meet on the same night. One just meets right before the other. The first one’s a study group. And so, they read books like the SICP, which is the Structure and I forget. Anyway, for computer programs, it’s the book…
JOE: Structure and Interpretation of Computer Programs.
CHUCK: There you go. And it’s the book that they use at MIT or something. And anyway, so it’s a pretty awesome book. And then they’ve studied some other book. And anyway, that’s the thing that I want to do, is just have those discussions, more of a formal study group. And then the other thing that they do is they have a two-hour meetup which is basically a hack night. So, people just bring stuff to hack on and then they work on it. And I think that is just awesome. And so, I’ve organized one here. I sent email around to the Ruby group and I’m probably going to email the JavaScript group too and just say, “Hey, show up.”
MERRICK: Yeah, please do.
CHUCK: Because I think the details, or the structure works for anybody. And it’s a hack night. It doesn’t really matter what technology you want to use. But anyway, so I highly recommend over the next week or so when it comes out that you go watch that talk too and get some ideas from it. I actually went to lunch with Ryan before he gave his talk and asked him all kinds of questions. So yeah, we’re just going to be doing it at a Starbucks here. And I think eventually, it will probably move somewhere that’s open a little later and has a little bit more room depending on how many people show up. And so, yeah, I just picked the night that I could go every week, which is Monday night. And I organized it. So, I guess what I’m driving at is watch the talk and that’s my pick. But I’m also encouraging people to go out there. And if the users group isn’t exactly what you want or need, for example all the users groups that I have gone to previously, they periodically do coding exercises, and then most of the time it’s presentation, presentation, presentation, chat with people that you either met that night, or that you like to see every month, and then you go home. And for me, I just really wanted these other structures and to be able to get in and hack with people on cool stuff. So anyway, so that’s my pick. Brad, what are your picks?
BRAD: So, I was driving my son to swim class this weekend. And I was listening to NPR. And there was this cast on This American Life program that was talking about toast and how toast is the new hipster food craze here in San Francisco.
AARON: Toast?
BRAD: You betcha.
AARON: Okay.
BRAD: It’s super awesome. But the story turned a little differently at the end and they were tracing where this toast craze came from, back to its roots. And it’s not about hipsters at all. And I just found it super, has a good perspective for my own life. And I won’t reveal how it turns out, but I’ll put a link to it here. And I really recommend folks to take a listen.
AARON: Can I ask a question about your pick, Brad?
BRAD: Yeah.
AARON: What kind of toast? Is it just regular bread? And what are you putting on the toast?
BRAD: Yeah, imagine the most perfect Pullman loaf that somebody slices with care in front of you and toast to perfection and butters to its corners. And you know, it’s like they said in the thing. It’s like toast, but better. CHUCKLES: [Chuckles] I love This American Life.
MERRICK: Brad, there’s something about your personality that’s almost like talking to a hug. [Laughter]
MERRICK: Does anybody else get that vibe? [Chuckles]
MERRICK: He’s talking about custom cut bread from a caregiver. I’m like, I feel like he’s hugging me.
AARON: Yeah. [Laughter]
MERRICK: It’s a good personality trait, bro.
BRAD: It’s my intent. So, I’ll give you a hug in person when you get here.
MERRICK: Yes! Achievement unlocked. [Chuckles]
BRAD: If I get a chance for another one, there is an appropriately timed Huffington Post article on Angular about, the way I took away is Angular’s popularity is really due to its community. So, I’ll share that one as well.
AARON: I think one of the next releases of Angular needs to be something about hipster toast.
BRAD: Ah, okay. We’ve got a name. Fantastic.
AARON: Yeah, something about how hipster toast is a superpower. Anyway, just a thought. That’s so funny. Cool.
CHUCK: Alright, well thanks for coming, Brad.
BRAD: Thanks for having me. This is fun. I would love to do it again.
MERRICK: Thanks Brad.
AARON: Thanks Brad.
CHUCK: Cool.
JOE: Thanks Brad.
CHUCK: Alright, we’ll wrap it up and we’ll catch you all next week.
[Hosting and bandwidth provided by the Blue Box Group. Check them out at BlueBox.net.] [Bandwidth for this segment is provided by CacheFly, the world’s fastest CDN. Deliver your content fast with CacheFly. Visit CacheFly.com to learn more.] [Do you wish you could be part of the discussion on JavaScript Jabber? Do you have a burning question for one of our guests? Now, you can join the action at our membership forum. You can sign up at JavaScriptJabber.com/jabber and
there, you can join discussions with the regular panelists and our guests.]