 2015. This has been amazing, right? So the title of this talk, evidently, is coming soon. And I think that's an apropos because, you know, Tom and Yehuda shouldn't be the only ones who can announce software reports released. But I'll have a little bit more on that later. Again I just wanted to give a big thanks to Leah and Kate and all the volunteers. You guys are amazing and this conference has been really spectacular. Alright, so I wanted to just give you guys a few stories I have thought of while I've been here. The first is that in June 2008 I went to my first conference ever and it was at Rails Conf and it was right here at this convention center in Portland. I had two open source patches accepted at that point to a little tiny project called SAS that some Rails people used here and there. And that conference really inspired me and invigorated me and it left me with this desire to get more involved and more active in my community. And so about a year later after that, one time I was, Yehuda was ranting about something on Twitter. I asked him a question like, I'm not really doing what you said, but I feel like my use case makes sense. We went back and forth on Twitter for a while and he was like, this is stupid, Twitter sucks, let's chat. And so it was like 11.15 p.m. and we ended up chatting for about an hour. He helped me with my problem, explained to me his rationale, we sorted it all out. And then we just kept talking and I thought he was a pretty cool guy and that started this ability for us or this internet friendship that we've had for a number of years now. And when we finally said goodbye at about 12.15 p.m. or a.m. there, I went to bed and I shook my wife, oh my God. I just talked to Yehuda Cats and she said, that's nice, dear. That was probably good for you. We have very narrow fame here in the open source world. So then a couple years later, Yehuda sent me a message, she's like, hey, I've got this opportunity. It sounds interesting to me. There's this JavaScript framework. Have you heard of Sprout Core? This guy, Tom, he really wants me to join him on it. What do you think? Should I do it? I'm like, fuck man. I don't know. It's really risky. Like frameworks are hard. Hard to make successful. But you know, if anyone can pull it off, it's probably you. But it's going to be hard. It's going to be real hard. But I think I had the call. You guys seem to have pulled it off. All right. So when Yehuda asked me to come speak here, I was actually kind of surprised because I'm not an avid Ember user. That might be changing soon. And, you know, he talks a little bit about kind of I think why he wanted me to come and talk. But I totally get the value of Ember. Like my very first job is writing JavaScript application. It had about 50,000 lines of pure JavaScript. It was my first real job. So it was terrible. And so I definitely saw the value of JavaScript frameworks. Unfortunately, there was no such thing back then. So our app only worked in IE5. So then I started, so I made this thing called SAS. And I figured that they wanted me to come talk a little bit about that. So I have a few things I wanted to say. Just real quick show of hands. You use SAS. Awesome. Okay. So not completely invaluable. I have a great job. I work at LinkedIn. And at LinkedIn, they really do love open source software. We like to use it. We like to contribute to it. And we're hiring. They pay me to do open source development for a good portion of what I do. And it's pretty awesome. So actually one of the things I've been trying to do lately is get Ruby's SAS to work nicely in JavaScript applications of various sorts. And I have not had a good time with this. I think that the impedance mismatch between getting Ruby and its ecosystem to play nicely with JavaScript and its ecosystem has been really a pain in the ass. And so after trying and spending months and months to try to make it decent, decided to take a little bit different approach. In particular, one of the things that's really been troubling us is the performance of Ruby SAS. And we've worked on it. I've spent months chasing down performance issues there. Natalie is working on some interesting ideas. But I really feel like Lib SAS is where the future is for SAS development. And so I'm putting a lot of my weight behind making that successful right now. So if you go to the SAS organization on GitHub, you'll see Lib SAS there. You'll see Node SAS. These are SAS projects. And we are working really hard to make them successful. For those of you who don't know what Lib SAS is, it's a C++ implementation of the SAS compiler. And so we've made this new project called iGlass. And what it does is it leverages the capabilities of Node SAS and brings this basically NPM and the ecosystem, a lot like what Ember does where you're able to install add-ons and it automatically discovers them. It basically does this for SAS. It'll be able to integrate with a number of different build systems, including Ember CLI. And depending on your style sheets, you will see speed-ups of considerable time. My guess is that we've seen numbers on the order of 5x. We've seen people report numbers of 100x. So you're going to get a big speed-up if you're switching over to Lib SAS. So one of the reasons that I started focusing on iGlass right off the bat is the first thing is that iGlass is really, it's meant to bring community to the Lib SAS ecosystem, and especially to the JavaScript community for the SAS users. And so we've got, that's really the thing that Compass in my mind always was, was an ability to let people share their style sheets with each other. And so I'm not, you know, who is like, Chris is really great at maintaining things. So Compass is kind of end of life at this point. Like iGlass is going to be, iGlass is going to become what Compass was probably for the JavaScript community. I still have to maintain the Ruby side of things for a number of years. So it's not disappearing right away, but that's where the active development is going. What iGlass isn't is a CSS prefixer. It's not a bunch of SAS mix-ins to help you do CSS resets. Like that stuff is handled better by the community. Auto prefixer is awesome, like use that. And so with iGlass we're able to get the extensions in, let them play nicely with each other, and give you access to a community of people who are distributing their style sheets, just like code that you can get access to via nice systems like NPM. I hear some people don't like NPM. So we have a developer preview. We can't actually release it until Node SAS 3.0 comes out. That should be in the next couple of weeks. And if you're interested in helping develop or building extensions on top of it, we would love to have your help. So one of the reasons that I was focusing on this first in terms of bringing SAS to our JavaScript environment was that community is probably the number one factor in the success of frameworks, like Ember frameworks like SAS. You know, people come for the technology. They see the value of it. I think they stay for the love. But community is not an accident. It's something that has to be baked in from the beginning when you're designing your software. It's especially integral to frameworks. And community is how our software is built. It's how it's extended. It's how it's maintained. And it's how it succeeds. The community is people like yourselves. And the Ember core team, they know this. They have focused on community from day one. They develop in the open. They make sure that things like add-ons work great. And, you know, it's much harder to take something that was developed in a closed ecosystem and just like air drop it onto the internet and have it have a vibrant community than it is if you build it from the ground up like Ember has. So I'm going to let you in on a little secret about how to make a vibrant community just be excellent to each other. Honestly, how fucking hard is it to just be nice? Actually, it's kind of hard. It's super easy to be nice to nice people. It's a little bit harder. If they're naysayers, it's harder. They walk in. There's some entitled jerk posting on your issue tracker. If you've had a bad day, they've had a bad day. Things get out of hand pretty fast. And on the internet, our words are cashed indefinitely. It's pretty easy if you were a jerk for someone to be able to pull that up for all time and say, see, they're a jerk. Moms are great. But this is real. If you're sitting around, you're thinking about saying something maybe not super nice. In the SaaS community, we have had a problem with this and it comes from a place of love. We want to share about SaaS. It's so much better than what you do. Whatever it is you do, it's so much better than that. We want to tell you about it. And so I was the first SaaS hole. I would walk around telling everybody how they were doing it wrong. They were using CSS. And if they had just used SaaS, it would have been better. Right. So JavaScript community, something I've noticed. Y'all are kind of jerks to each other sometimes. Open source community, actually, abroad, I would say that we could all be a lot nicer to each other. I'm pretty sure that every conference has at least one of these. So unsurprisingly, there were some replies. And, you know, I get it. I'm guilty of this, too. Marcellus Wallace actually said it best. So, yeah, we get invested in our open source contributions. We're not getting paid to develop this stuff. We're doing it because we love it. We probably had some really awesome idea. We invested our nights in it and our weekends. But when people attack it, they're not attacking you. They're attacking that idea or whatever it is, and you have to find a way to separate yourself from it. I had a really hard time with this. And at one point in time in my career, I actually got therapy so that I could learn how to not get angry. Not a bad thing to try. So if you're sitting around, and especially if you have Twitter on, and you have some feels, you know, that feeling in your head, maybe your eyes wobble a little bit, you're like, oh, this is clever. I'm going to get them. Step away from the keyboard for a minute. Right, so I had a few things to say as well. And I think it's important to know that if you stop and you think about these things for a little bit, maybe it's not a competition. Maybe we can just all win. And you know, Jeremy's a pretty cool guy, I guess. He backpedaled a bit. Said nice things. And I agreed. I actually had said this at around the same time. You know, this isn't good UX. This is a benchmark. People would do it to stress test the way our things work. But I think there is a conundrum here, right? Because we're competing with each other. How do we do that without being negative? It's pretty natural. We have to form comparisons. And they're natural, and they're necessary. And it's really easy for them to be harmful to the tone of the conversation. It's super easy to attack their weaknesses and ignore their strengths. I think this was from IE8. Yeah, they have security. But they all have the web standards down. Right, so let's be honest. We're all software engineers here. Your software is making trade-offs. Your job is to make the trade-offs between any number of countless things. You have to make those decisions at an architectural level, at a code level. And if you only attack somebody's weaknesses and you don't recognize their strengths, you're not being fair to your competitor. And you're not going to be respected as a fair evaluator of things. And so I would just encourage everybody, if you're comparing things on the internet, the goal isn't to make your thing better, but to say what your thing is better at. And the other thing is probably good at something else. And everybody's working at their hardest on it to make something great. And to respect our competitors. All right. So I love this quote, because if you have learned to disagree without being disagreeable, then you have discovered the secret of getting along. Whether it be business, family relations, or life itself. And for me, this has really been true. Really been true. So I had an idea. What if Jeremy had said this? I was curious how Backbone would perform using the same performance benchmark as Ember and React. Pretty happy with the results. And just threw that out there. Like how much different of a conversation would that have been? Would people on this side of the equation have responded as adversarial as they did if he had come out with a more diplomatic way of publishing his results? I think it's important to respect our audience enough to let them draw their own conclusions. Furthermore, I think confidence is a lot about knowing that sometimes you don't have to engage. So there was this time when I was younger, I had a sports car. It wasn't out of ETT. It wasn't like the greatest sports car in the world. I was stopped at a stoplight and this guy drove up. I don't even know what he was. It was like a souped-up something or another. And he, like, revved his engine at me. Oh, he wants to race. Interesting. And I revved my engine back at him. But I knew I could beat him. I wasn't interested in racing him. So the light turns green. That guy tears off as fast as he can. And I just kind of took off. Went on my merry way. Why take the risk of me getting a ticket or whatever else? Accident. There was no benefit for me in having that argument, that conversation, that race. But yet, when I was doing open-source software, people started criticizing what I had done or saying that some idea was done. Like, literally, people were like, CSS processors are stupid. And I'm like, no, they're not. And finally, a guy on the Internet, his name is Jeff Croft, he pulled me inside. He's like, dude, stop defending what you make so much. Like, it's good. Your work speaks for itself. Just let it go. And so I would just say, guys, like, Ember is really good. Let it go. And you know what? Sass didn't lose when I started ignoring the haters. In fact, we're doing fine. Right. So, hey, Tom. At the speaker dinner, you said something along the lines of, I feel like Ember is beleaguered, like similar to like Apple was in its early days. So I actually want to challenge that perception a little bit. I do think that this idea has actually served you guys really well because I know how motivating it can be. But I just want to ask you a question. Like, why is Ember going to win? There's 625 of you here. You're all betting on Ember. Why is it going to win? I hear it's because of us. Leadership, good leadership. Excellent, backwards compatibility and upgrading. That's super important. Tooling, good. So that was kind of a trick question. What does it mean to win? I don't even know. I don't even know what this means. Like, do you want to have the most users? Do you want to be the fastest? Do you want to have the most big brands adopting your software? The easiest to adopt? Like there are so many metrics upon which you could draw success and you probably can't win at all of them because the fucking trade-offs again. So my dad once said something to me that I thought was pretty cool. He's like, find a job you love and you'll never work a day in your life. I don't think he made that up. I think he heard it somewhere. I'm going to tell you that if you use a framework that you love, you'll never work a day in your life. And so the question I have for you guys is if you love Ember, raise your hand. For those of you who didn't raise your hand, come on, I know you've wanted to. So congratulations, you may have already won. If winning means being number one, I would just say like be really careful what you asked for because you just may get it. Number one means being the default choice. That means your support is going to be way harder. You're going to be picking up users who are less experienced. Community, good luck. Who here wants to enter a lottery to attend EmberConf 2020? No? You're lucky, huh? All right, not me. I always, I never get it. I would actually argue that being number two is the sweet spot. And this is actually born out in history time and time again. People are going to be picking you because you're a good fit. You're going to have to do less supports. You're going to be able to spend more time on making quality products, better features. And because you are having a better fit of users, you're going to have a much more awesome community. I wouldn't, I don't think that Apple has actually won now. I think Apple's won at this point. I don't think it was in spite of being beleaguered. I think it was because of it. They were able to take a different approach. They could focus on being good at their niche markets and being really great in quality. And many of you guys may not realize it, but SaaS was actually number two for most of its life. In the beginning there was CSS, and SaaS was just kind of this thing, and CSS was the competitor. Not long after SaaS, it started to break through. Less came along. Less was super easy to pick up. Its syntax was better, and they gained a ton of momentum. And that definitely inspired us to catch up. But actually less ended up growing too fast. They picked up so many users. People, they kind of just collapsed under the weight of their own community. I had heard from the maintainer that it was just so hard for him because he felt like all he ever did was user support and hardly had any time to work on making the quality that he wanted to make. So just like in racing where you let the guy in front do all the hard work, you let him cover all the hard stuff and then you're kind of just drafting behind and then right at the end, then maybe you can win. So I'm not telling you to stop learning from other people, but maybe you don't view it as a competition so much. Do what you do because you love it. Use what you use because you love it. And if you do that, you'll probably just end up being number one anyway. And by then you'll probably be ready for it. Thank you very much. I've loved hanging out with you guys this last couple of days. I hope you'll keep in touch with me on Twitter. I'm super excited to be making SAS easier for you guys to use. And I got to tell you I have some really exciting ideas for how SAS and Ember can work together to make some new innovations beyond where we're even at right now. Thank you.