JOE: Oh, it’s so sad I have to cut off my Star Wars music.
CHUCK: Jamison Dance.
JAMISON: Hello, friends.
CHUCK: Dave Smith.
DAVE: May the force be with you.
CHUCK: Darth Vader. I mean, Joe Eames.
JOE: [Chuckles] Oh, man. Now I wish I had some [inaudible] response.
DAVE: That’s just how Darth Vader giggles in the movie.
JOE: It is. It is.
JOE: It’s the Darth Vader giggle. Hey, everybody.
CHUCK: I’m Charles Max Wood from DevChat.tv. This episode should come out right before JS Remote Conf. So, if you want a great online conference, check it out. We do have Aimee from this show and AJ from this show speaking. So, it should be great. We were talking a little bit before the show.
JOE: About Star Wars.
CHUCK: Of course.
CHUCK: And so, this week we’re going to be talking about Star Wars.
JOE: That was my show idea.
JOE: That was my show idea. I wanted it to be about Star Wars.
DAVE: And it’s all Joe had.
JOE: That’s all I had.
DAVE: That’s all he could come up with.
CHUCK: So, if you don’t want spoilers, then don’t listen to Joe’s outtakes.
JAMISON: It’s like the episode of The Simpsons where they show Homer’s brain and there’s that Mickey Mouse cartoon just going on.
JAMISON: That’s all he has in his brain. That’s like, it’s just lightsabers.
DAVE: For Joe?
JAMISON: There’s a little thought bubble above Joe’s head with lightsabers in it.
JOE: So much of my sample data for my courses for Pluralsight are Star Wars sample data.
CHUCK: I have to say my boys got lightsabers, that when you swing them they make noise and when you hit stuff it [makes lightsaber sounds].
JOE: Oh, that’s awesome.
DAVE: Oh good, [inaudible]. I love it. Awesome
CHUCK: I played with those for like an hour.
CHUCK: I was so amused by all the sounds. And you swing it [makes lightsaber sounds]. I’m just like…
DAVE: You were reverse-engineering it, weren’t you?
CHUCK: No, I was just swinging it to hear it make noise.
JAMISON: I actually heard that when Ewan McGregor was in the lightsaber battles, he kept making the noises with his mouth.
JAMISON: And they had to like, edit them out because he was ruining the scenes.
JAMISON: Yeah. That’s my Star Wars trivia.
CHUCK: [Chuckles] That’s awesome.
DAVE: So, what is our topic for today if it’s not Star Wars? Or is it actually Star Wars?
CHUCK: I don’t know. I’m kind of tired of the topic already.
JOE: No pun intended.
CHUCK: Oh, there we go.
JOE: Oh, yeah. The stars are fighting.
DAVE: Celebrity wars?
JAMISON: Oh. [Inaudible]
CHUCK: So, Jamison kind of brought this to our attention. I think he’s probably best versed to get us started with this and give us kind of an overview of what people are talking about.
JAMISON: Sure, I can attempt it. And this will be biased and leave things out, I’m sure. But it should get us started.
CHUCK: I’m also going to mention that the show notes are going to have lots of links to Twitter.
CHUCK: So, who’s right?
JOE: Right. And it’s not just about more tools that do more as well, but the tools themselves each have their own separate setup. So, they’ve added some complexity to the setup.
JAMISON: Yeah, yeah. That’s a good way to summarize it. There’s a lot of added complexity if you want all the cool new stuff.
DAVE: Is part of the problem also that we’ve seen a lot of tool churn over the last year or so where things have come into fashion and then gone out of fashion like, I don’t know, [what is it], is Grunt now out of fashion, Gulp is the new hotness?
JAMISON: Oh, no. You’re way behind.
JAMISON: [Inaudible] out of fashion now.
JOE: Just Babel’s churn is [inaudible], you know?
AIMEE: Yup. I think that’s definitely a part of it, Dave.
DAVE: Oh yeah.
JAMISON: There’s just a lot of setup. And the conflict is that the toolmakers are like, “Yeah, we did these things and they’re awesome. Why are you complaining about them?” [Chuckles] Like kind of, “Stop your whining. This makes your life better.” And then there are beginners that are trying to learn the language and then they’re just overwhelmed by an avalanche of stuff that isn’t getting your work done. It’s like, all these things that people tell you, you have to have, but they’re all added complexity. And then there are kind of some people in the middle that are maybe not beginners but also are just looking at it and saying, “Why does it take me a day to start a new project using all the best practices?”
JAMISON: So, there are all these people with different wants and perspectives. And they’re all kind of talking past each other I feel like at this point.
DAVE: Mm, maybe.
JAMISON: I think that’s a good point. Another good point is some of this is exacerbated by the kind of React style of building applications where you use React but you have to use other stuff, too. It’s not all bundled in together. And the fact that you have to use other stuff means you have to pick the other stuff, you have to learn the other stuff. And everyone picks a different subset of things. It’s kind of interesting.
CHUCK: So, are some of these technologies just popular kind of ahead of their public consumability then?
JAMISON: Ryan Florence had an interesting tweet talking about it. He said that there are different requirements in a project and different developers that are better at different things. So, some people are really good at the initial burst of ideas and prototyping things out. Some people are good at taking in lots of contributions from other people and running an open source project. And some people are really good at the user experience side. And those are all different skill sets that we kind of… I guess it’s unrealistic to expect one person running a project to have all those skill sets.
CHUCK: So, is that an experience gap? Or is that what you’re saying Joe?
JOE: Well, I don’t know that it’s necessarily just an experience gap. But I think we’re just seeing a lot of developers from a lot of walks of life that are all getting involved in this. On the other hand, was it Christopher Chedeau, right?
JAMISON: We got the hot takes from Twitter.
DAVE: Oh, sure. That still works.
CHUCK: And plug in jQuery. So, it’s… is it…
DAVE: But it’s…
JOE: So, here’s an interesting quote from Michael Jackson that directly relates to this. He says somebody was talking about how it’s too much cool stuff. I don’t have time to stay current with it. And Michael Jackson says, “Time is always a problem. If you can’t make time to learn this stuff, you’re free to build sites like you did two years ago.”
CHUCK: So, what’s the downside, then? I mean, it works, right?
DAVE: Well, yeah. So, you won’t get some of the cool productivity niftiness and you also won’t be able to take advantage of new features. But you know, you can keep going.
JOE: And you also got to look at the fact that it might be like, “Oh, it takes me an extra 10 or 20 or 30 hours to set up.” It could be a big payoff in the long run. It will save me more than 30 hours in the long run. But right now it’s a big pain. But that doesn’t change the fact that it’s a big pain right now and there are people that don’t like the fact that it’s a big pain right now.
DAVE: Yeah, totally true.
JAMISON: Oh, jeez.
CHUCK: You are welcome…
DAVE: I thought it was Star Wars Mecca.
CHUCK: You’re welcome to make a pilgrimage whenever you want.
AIMEE: [Chuckles] I wish. You know, my experience, on the east coast, in Baltimore, it’s smaller. The majority of people I talk to, it is like the churn has turned them off so much that they just do not want to hear about it. They just want to do their job and just… it’s, I don’t know. For me, because I’m newer I have this insatiable, like I’m thirsty and you know, want to do more and more and more. But it seems like people that have been around for a while are just kind of burned out from the churn.
JOE: Well, and you also might not have their perspective of, for 10 years I’ve been doing things…
JOE: That didn’t have a bunch of churn.
JOE: Now I’m getting… I need to do this stuff. And look at all this churn. This is crazy. You know, I didn’t have to live with this before? Why do I have to live with this now?
JOE: Yet on the other hand, I don’t want to miss out on really good features either.
AIMEE: Yeah. Like, there’s been… it’s like been slow to adopt ES6 and slow to want to look at Angular 2 or React. It’s just been very difficult to try to have conversations with people about that. Some people are definitely open and then others just, not so much.
DAVE: Oh, I’m not saying it’s a good thing.
JOE: Right. So, [inaudible]
CHUCK: Yeah, that’s another barrier.
JOE: That friction with your server-side could be painful.
DAVE: Oh, yeah.
JOE: Like in .NET, this NuGet package manager has become all the rage, right? And then everybody over here is saying, “Nope, you got to use npm.” In fact, Angular 2 which has just gone into beta has publicly said, “We deliver through npm. That’s how we’re going to deliver. That’s how things are done nowadays. That’s how we’re going to deliver. We’re not going to deliver through other means, through Bower and download off the web. We deliver through npm.” And that makes a lot of people upset.
AIMEE: I think it’s really, really important too to keep in mind that from the people that I’ve talked to going to conferences across the country and stuff, not everyone works a 40-hour work week. Some people work 25, 30 hours and get the rest of their time to do open source. And then other people are working 60 hours a week. So, be careful to call people lazy. They might just be putting their hours in differently.
CHUCK: Yeah, the other thing is that specifically with Rails, since we’re talking about these people, there is actually a React Rails gem that actually does set up a lot of the tool chain for you. And I mean, it’s not perfect, but it does handle a lot of the JSX, Babel. You know, there’s a lot of stuff there that it does for you. And so, you can get away from… or you can get away with hooking this up and adopting somebody else’s tool chain. The problem is, is that if there’s a problem with the tool chain or it doesn’t do exactly what you want, then you have to become an expert in that tool chain.
DAVE: Eh, problem solved.
JAMISON: Or just wait a couple of years and someone else will figure it out.
JOE: Well, but one thing that’s also important to realize here is developers also have to operate at the pace or cycle of their projects. So, you might have been doing a Backbone app for the last four years, right? And all of a sudden it’s time to go, you got a big new project. And so, what are you going to do? You’re going to do Backbone again because you know it? No. Or are you going to look and say, “Well, the current-day technology has some churn and it’s hard so I’m going to go and pick the two-year old technology on a project that’s going to be alive for six years.” That would be, now you’re talking at the end of its life cycle, it’s using a technology that’s eight years old. So, you might be looking at that saying, “We need to be using what’s current now so that five years down the road it’s not so… it’s less antiquated than it would be.”
JOE: So, now you feel like you’re forced to use what is hot today. And if what is hot today is difficult to work with and set up, then that could be a struggle for you.
DAVE: Yeah, but there’s one other thing you have to do in that case, which is ignore a ton of hype.
DAVE: And also a bunch of complaining, because two-year-old stuff tends to have people who have had problems with it and they speak vocally about it. And then you have to be willing to say, “I’m going to use this despite all the haters.”
JAMISON: Yeah, instead of using the thing that they haven’t discovered the problems in yet, because it’s new.
DAVE: [Chuckles] Yeah.
AIMEE: For me, I’ve been dealing with this a little bit. I think it’s like maybe a bit of a personal decision. I know at work that I have some ambitions that I would like to bring onto our team. And because we have certain deadlines that we need to meet, it is, if I want to do this, it’s going to be on my own time. So, it’s not something that work is going to provide me the time to research.
JAMISON: It kind of makes me sad. I guess that’s hard to get around.
CHUCK: Slacker works.
AIMEE: But I mean, I feel like that’s going to be the case for a lot of people.
CHUCK: Oh, totally.
DAVE: Yeah, it’s true. Tooling can be really hard to justify the investment in for sure.
CHUCK: Well, especially if they’re used to using another technology that was much easier to set up. “You spent a week figuring out how to get all this stuff to work? Why are we even using it?” And…
AIMEE: On the same token though, like some of the Twitter conversations have said, it is like, it’s a great learning experience and it’s rewarding. So…
CHUCK: Oh, totally.
AIMEE: If… like for me, I just set certain goals for each quarter and that’s how I fit it into my personal time.
CHUCK: Yeah, I could just see some manager coming in though and saying, “So, how’s it going with the new framework?” and…
CHUCK: Some developer having to justify the fact that they spent a whole lot longer than it took with the previous framework.
CHUCK: To just get it set up and going.
AIMEE: Well, and one other thing, too. So, just because you put in the time and you’re able to show a prototype to your manager that works and is efficient, then you also have to get everyone else on the team on board because there’s going to be a learning curve for them involved. So, just because you’re able to solve the problem doesn’t necessarily mean the whole team’s going to adopt it either.
JAMISON: Webpack or Browserify or things like that and do it iteratively instead of just saying, okay to start you need these 10 dot files. And then you need a bower.json and a package.json.
JAMISON: And you need Stylus and then you need Compass because Stylus doesn’t work well with [these two things].
JAMISON: And it’s just like 10 tools before you write a line of code.
AIMEE: Yeah. Like the downside to that is you’re learning all these tools without the knowledge of what they’re actually being used for. Because you don’t have that context yet to know what problem they’re solving.
JAMISON: You mean, if you just learn them all upfront because that’s what everybody else uses?
AIMEE: Yeah, yeah.
JAMISON: Yeah, yeah.
AIMEE: You don’t have the context to know. I know, when I started learning, I started off with Rails. And one thing that our instructor did at the bootcamp was they had us do a plain old Ruby project and then convert it to Rails so we had an appreciation for what Rails was doing.
DAVE: I like that a lot.
JOE: Well, that’s a great point. But there’s also a reason for abstraction. Like, we don’t start off by learning Assembly so that we can appreciate C so that we can then appreciate…
DAVE: I did.
DAVE: To be fair, I started off learning Visual Basic and then Assembly. But whatever.
JOE: But the great thing about Assembly for example is you really… it’s rare that you need to understand Assembly. Like, super, super, super rare.
DAVE: Totally, totally.
JOE: I don’t know Assembly. It hasn’t hurt me in my career so far as I know. Maybe I would be a better developer and more awesome if I did. But so far as I know…
JAMISON: I’ll just silently judge you a lot less.
JAMISON: [Inaudible] some raw EAX instructions.
JAMISON: Can we have confession time?
CHUCK: How does that go in the Star Wars movie? No!
CHUCK: [Inaudible] I’m shaking my fist.
JAMISON: I know what they are. I know how to use them when they’re there. But I just like, I tried for a couple of hours with the tools and I was like…
DAVE: Every time I’ve tried to get source maps going, they slow down my build so much that I’m not able to use them.
JAMISON: I just [inaudible] crashes in Webpack when I try and do source maps.
JOE: I thought the way that you do source maps is the flag in TypeScript and that’s it.
JAMISON: I don’t… whoa. I guess now I got to change my build process, add another tool.
JOE: Yes. [Laughs]
CHUCK: That’s right.
JOE: That’s the only way I’ve ever done source maps, is because TypeScript did them for me.
AIMEE: I have multiple confessions. [Chuckles] So, we still use Gulp for eight of our APIs. Or I’m sorry, we still use Grunt for eight of our APIs. We only have Gulp on the frontend. Our frontend still has dollar scope all over it. We’re slowly migrating away from that. And we have yet to put in a module loader.
DAVE: Do you concatenate or minify?
AIMEE: Yeah. We just all have it in like a Gulp workflow. We don’t have the modules though. We’re just using like [inaudible].
DAVE: Oh, oh, oh, yeah. Everything’s global, effectively.
AIMEE: Yes, yes, yeah. Well, we have everything around in if/e’s.
DAVE: Mmhmm. But there are no modules.
AIMEE: Just, well Angular 1.
DAVE: Just Angular modules? [Chuckles]
AIMEE: Yeah, yeah, yeah.
JAMISON: But you still make money at your [inaudible].
AIMEE: Yeah, I mean we’re productive.
DAVE: You get paid to do this?
DAVE: I thought we just crucified people who did that. [Chuckles]
JAMISON: I just want to make one more point about what Aimee and I were talking about, about iteratively arriving at the newest solutions in response to problems. And not being cool enough doesn’t feel like a real problem. Like you’re not cool if you use Gulp so you use Webpack. That doesn’t seem like a solution to an actual problem. If there’s something you can’t do in Gulp, then maybe that’s a better solution.
DAVE: I think you’re saying that my feelings aren’t real.
JAMISON: I mean, isn’t that what I’m supposed to say as a computer programmer?
DAVE: [Laughs] True.
JAMISON: No, well, what do you mean by that? Because there could be something good there.
DAVE: I mean, I feel cooler when I use Webpack.
JAMISON: That comes down to a maturity thing, I think and being able to identify…
DAVE: Oh, oh, man.
JAMISON: Oh no, that’s not what I mean.
DAVE: I feel like I’m talking to my therapist.
JAMISON: Well Dave, if you were mature like me, you would recognize…
JAMISON: I think part of being a mature developer is identifying when you want to use something because it’s cool and when you want to use it because it solves a problem. And I struggle with that. We use Elm at work because it’s cool, right?
DAVE: Yeah, because it’s cool.
JAMISON: It has other reasons, too. But…
DAVE: But that’s the main one, right? [Laughs]
JAMISON: Yeah, so I can brag about it on this podcast.
JAMISON: And then the money just flows in after that. All those [inaudible]
CHUCK: So, I have to ask. Do systems like Elm have this issue as much? And you know, does Ember CLI completely eliminate it for Ember?
JAMISON: I have not actually used Ember CLI since their 1.0 came out. So, I’m not a good person to talk to about it. But it would be really interesting to hear from somebody on the Ember CLI team.
DAVE: Yeah, I’d love [to hear about it].
JAMISON: Elm avoids this issue by not having as mature a tooling basically. They haven’t reached the state where they’re working this much on developer experience. They work a ton on it in compiler messages and things like that. But there’s… I think they still have some other problems to tackle before they’re going to work on loaders and, I don’t know. They just use Gulp or Grunt or Webpack or whatever for all their stuff now.
JAMISON: What’s the solution to that?
DAVE: The solution is had it all over to Microsoft and let them tell us how to do it.
DAVE: Oh yeah, that’s the other thing. You say start over and that’s I think one of the causes of the things we’re experiencing today, which is in a crowd-sourced ecosystem of tools, nobody cares to maintain the old tools. If someone has an idea, they can just build a new one and then it takes over. And so, there’s no incentive to go back and maintain say backward-compatibility with the old tool or provide an easy migration path to the new tool, because it’s completely different people building these things. Whereas when you have a, I’ll just say a cathedral style framework that’s handed down from a company or an organization, they have this incentive to keep people engaged and make it easy for them to switch between versions of their stuff, whether it’s a framework or whatever.
JAMISON: So, I just want to… oh, go ahead, Chuck.
CHUCK: Is that a solution then? Everything just becomes centralized?
JAMISON: It means…
DAVE: You know, I agree.
CHUCK: So, somebody building more cohesive tools? I mean, what is the solution that you’re aiming at, then?
DAVE: Totally agree. Totally agree
JAMISON: One other, I wanted to talk… oh, go ahead.
DAVE: Before we jump on there. I don’t think we’ll ever get consensus. I think that this kind of struggle is inherent in the system. So, I don’t think there’s a solution. And I don’t think we should be shooting for a solution either. But I [inaudible].
DAVE: Yeah, yeah. And if… honestly, if you’re not going to be able to get comfortable with that, then you have two options. You can either stay a couple of years behind and take all the lessons learned and be a wise person about it, or you can change to using an ecosystem, joining an ecosystem that has this kind of handed down from on high mentality. And I think those are two perfectly fine options for people. Everyone doesn’t have to be in the hothouse.
JAMISON: I also want to talk a little bit about the kind of human interactions that are happening here. Because I think when people are complaining about how hard it feels or how fatiguing it is, I think a lot of the people that make tools can feel personally attacked sometimes. Because if you make Webpack and then you hear people complain like, “Webpack is so hard to set up,” it’s hard not to take that as people are attacking my work.
JOE: An attack on your work.
CHUCK: As opposed to, yeah and we’re seeing people come out and basically say, “Well, it was a lot worse before I made Webpack.”
JAMISON: Yeah, yeah. So, I think some of the toolmakers are getting defensive because they feel attacked. And maybe some people are attacking them and say like, “Hey, you suck because you made Webpack and I hate you,” and stuff like that. But I think it’s important to recognize that, to me, it doesn’t feel like a personal thing. I guess it could seem ungrateful like, “You whippersnappers. Back in my day we had script tags and that’s all we had.”
JAMISON: But I don’t think it means you’re ungrateful if you’re complaining about the developer experience. I think it means that something could be better. And maybe you want to bring up the problem so someone creates a solution. You’re kind of bringing to light a problem instead of complaining mindlessly, I guess. Does that make sense?
JOE: Yeah. And a lot of it goes about how you go about doing that. That really depends on how things are received. But imagine if people were more critical of new, innovative solutions that didn’t integrate well with existing solutions, right? Somebody came out and said, “Webpack really sucks because it really doesn’t work well with all these other, the rest of this tool chain. It takes a whole lot of energy and effort to set it up and it should have been done this way.” Well now, you’re adding all this overhead for anybody that wants to build a new, innovative solution. So, that’s not a good thing either.
But on the other hand, if the new hotness, whatever that is, integrated super well with everything else such that you didn’t have to know a whole bunch, you just added one small little bit flipped right here and all of a sudden this thing was now working… imagine if you wanted linting all you had to do, it was as easy as adding source maps to TypeScript, a little flag in your command line, nobody would be complaining about linting, right? Yet, is it the… is it the responsibility of the people who are making linting tools to make sure it integrates well with whatever solution is out there?
JAMISON: I think if you say that, then they won’t make them.
JOE: Yeah, exactly.
JAMISON: Because it’s too much of a pain to do that when you’re just trying to make a cool tool.
JOE: You want those innovative solutions. But also, people want to have… the more that you can bundle things together and make it easy for people without having to understand everything and spend hours setting it up, the better it is.
JOE: Right. Now, let’s be fair. Karma was built by guys at the Angular team who their job was to build this tool. They weren’t doing it on the site. They had a lot of resources available and time. And they had a lot of really, really, really high standards as well before putting the tool out. And they innovated a lot. And the infamous, their first [inaudible] name which I think…
DAVE: [Chuckles] Yeah.
JOE: Ryan Florence single-handedly got changed was…
DAVE: [Laughs] Yeah.
JOE: An example of the fact that they didn’t do everything perfectly. But they had a lot of momentum to get it done. So, we do need more tools like that.
DAVE: It’s hard, right? It’s hard for individuals to do that [inaudible].
JOE: WE do need more tools like that, but we don’t want people to have one innovative idea and one solution to not do it just because they don’t have the time to make it perfect like the Angular team could have made Karma.
DAVE: Which is why we all need to be really nice to the Babel author.
JAMISON: It shouldn’t feel like the open source thing where someone makes an issue that’s just so entitled and like, “Why doesn’t this work for my exact use case, you moron?”
JOE: [Laughs] Right.
CHUCK: [Chuckles ]
JAMISON: And then the classic response is…
CHUCK: Mandrake Linux.
JAMISON: Like, “I’m doing this for free. Pull requests accepted.”
JOE: And of course we want the people with the problems to go out there and say, “Hey, I’ve got a problem with this working. I’m going to work on the original tool to make it work better with a bigger ecosystem.” But on the other hand, we also should be understanding of people who don’t have time for that, or the capability, whether it’s experience or just understanding of the ecosystem. I mean, it could be scary, right? I want to contribute to some open source project so I go in there and try to make it work, to think that I might submit a PR and have that come back rejected because, “You didn’t think about this, this, this, this, and this.”
JOE: And it comes off making me feel like I’m an idiot for trying.
DAVE: It can be really painful.
JAMISON: But yeah, to be clear, the tools that exist today are awesome. And if I complain about them, having… let’s see, how do I say this? If I complain that they could have better user experience it’s because I want to use them so much because they’re so awesome.
JAMISON: And I want them to be easier to use for everybody, not because I’m like entitled or I think they suck or anything.
CHUCK: Constructive complaints, huh?
AIMEE: That’s very well said.
JOE: Well, they’re not just…
JAMISON: Yeah. I wish I said it that well all the time.
JOE: They’re not just awesome. They’re necessary and important, these things. We’re building important thing with these. I thought of a personal experience, a very personal experience that I think it kind of relates the fact that those who are complaining, it’s okay for the tool authors to stop and step outside of themselves and realize these people are feeling pain and to be able to empathize with that. And it would be great if the people who were complaining could stop, get outside of themselves and look at the tool authors and realize that their complaints might cause them problems. But for either side, there’s pain going on and empathy will fix that.
As an example, when my 13-year-old daughter was just barely born she had some real medical problems. She ended up in the hospital for a long time. And the doctors had zero clue what was going on, what was the issue. And she was losing weight and they were afraid that she was going… you know, an infant, a six-week-old infant losing weight is going to die. That was where she was headed. And she was in and out of the hospital. And we were frustrated because the doctors had no idea. They tested and tested and tested. Nothing came back with any information as to what the problem was. And yet she still continued to lose weight.
Finally one day, my wife started feeding her solid food before she should have, before they tell you to, the rice cereal. And that fixed the issue and then she was fine. The entire time I was very frustrated by the medical profession. But that doesn’t mean that there’s anything wrong with the medical profession or that the things that they have done and all the lives that they save is a bad thing. Just at that moment, I was feeling a lot of personal pain and I was venting it in a way that if I had said some of the things that I said in private to a doctor he would have been very upset.
DAVE: [Chuckles] Yeah, yeah.
JOE: Like I was attacking him and his work. And at the moment I had that pain. I wanted to attack him. It was very frustrating to me, right? And so, it’s possible to see both sides of the story but yet at the moment be in so much frustration that it’s hard to look at the other side.
JAMISON: So, your daughter almost died. I upgraded from Babel 5 to Babel 6.
JAMISON: That was my analogous experience.
DAVE: That’s basically the same thing, right?
JOE: Basically the same thing.
JAMISON: I feel like we understand each other.
DAVE: Except there’s a big difference because your doctor won’t accept a pull request.
JAMISON: Yeah, that’s true.
CHUCK: Damn doctors.
JAMISON: Listen, I thought about this. I read some stuff on Wikipedia and I created this serum myself.
JAMISON: No, that’s alternative medicine though. So, you can…
DAVE: Okay, so it’s there. That’s open source. It applies to medicine.
JAMISON: Yeah, you just say that I founded an elixir of health. It’s in beets. Cures everything.
CHUCK: Yeah, that’s right.
JOE: Beets are awesome.
AIMEE: I think in defense to the tool authors, we’re the kind of people in this community that pour a lot of ourselves into our work. So, it’s easy to take things personal.
JAMISON: Oh yeah, yeah. I’m not blaming tool authors for getting upset at being criticized.
AIMEE: Oh, yeah, yeah.
JAMISON: Because I would feel criticized too, if people said the things that I said about Babel 6 about my work.
AIMEE: Yeah, yeah. [Inaudible] yeah.
AIMEE: It’s easy to feel that way.
JAMISON: Yeah, yeah.
AIMEE: And maybe rightfully so. You pour a lot of yourself into it.
JAMISON: We just all got to hug it out.
DAVE: Well, I think it’s great that people tie their personal identities to their work. Not because that’s necessarily healthy but because it means they’re really passionate about it.
DAVE: And I love that about this ecosystem.
JAMISON: [Chuckles] I thought you were going to say it’s because it means they work really hard and just do all this work for you for free.
DAVE: Yeah, they do all this work for me.
DAVE: They’re basically my employees.
CHUCK: I pay them nothing. They are slaves. So, Dave recommended in the chat that we take a few minutes and specifically list the tools that are being talked about. And we’ve talked about a few of them like Webpack and Babel. But other tools or other libraries that we’re talking about in particular here?
JAMISON: I think some of it is just all the stuff that comes with React, whether you use Flux or Redux or Relay or there’s a bunch of decisions you have to make.
JAMISON: Yeah, about how to do all the rest of your project that React doesn’t do for you. So, I guess I don’t have a list of specific libraries. It’s just…
DAVE: Some of the ones that come to mind that you have to figure out how to integrate into your system, there’s like CSS modules that are super popular right now.
JAMISON: PostCSS is kind of…
JAMISON: Related to that stuff.
JOE: ES 6, ES 7, linting.
DAVE: Yeah, linting.
JOE: It’s not specifically tools, but I mean TypeScript is getting super popular now.
DAVE: Yeah, and [inaudible] type…
CHUCK: Which adds another layer of tools, right?
JAMISON: And then lots of these will end up having editor integrations, too. So, if you have linting and typing then you need to set up the editor integration and…
DAVE: Mmhmm. Not to mention the browser reloading integration like for hot reloading or even just straight up page refreshing.
JAMISON: [Chuckles] Hot reloading is amazing. But making it work makes me want to go…
JAMISON: Switch careers.
DAVE: I just heard…
JAMISON: It deflates me.
DAVE: Prediction. I think the mobile world is about to have this whole stuff land on them, too. Because I just say a bunch of React Native hot reloading examples being touted.
DAVE: So, it’s only a matter of time.
CHUCK: Oh wow.
JOE: And this doesn’t even begin to get into…
JAMISON: Which is awesome.
JOE: Functional programming, functional reactive programming and reactive programming.
JAMISON: Oh yeah, yeah. There’s a whole bunch of RxJS stuff that… I just saw an article today that was about…
JOE: It’s not really a tool chain, but…
JAMISON: That was about debugging RxJS and talking about new tools and techniques to learn, because the regular Chrome debugger or whatever debugger used doesn’t help you that much in a different paradigm.
JAMISON: Well, I spent like four hours today messing with my editor config. So…
JAMISON: I might not be the right person to talk to about efficiently using your time where it’s most effective.
CHUCK: Yeah, you didn’t even get into the two days setting up your project.
DAVE: Yeah. [Laughs]
JAMISON: It’s easier to switch editors and find new packages and all that stuff than it is to face what do I actually build.
CHUCK: I do want to point out one thing and that is that part of the problem that we’re talking about here is the fact that each of these tools are designed to run independently at least to a certain degree. And so, there’s no reason why you have to go through the pain of setting up the entire pipeline. You can go figure out one tool at a time. And so, if you want to pick up TypeScript you can just write some simple script in TypeScript and then run the build tool and see what you get. And then once you understand that tooling then you can move into, “Okay, now I want to hook this into this web tool or this build tool or Webpack or Grunt or Gulp or whatever.” And you can kind of figure it out a bit at a time. So, I don’t want people to go and try and pick up the whole thing at once because I think you’re going to get into a world of pain that even experienced people are going to struggle with.
AIMEE: Yeah, I guess my question is, if I have let’s say for me the first year I tried to set aside an hour to two hours a night on top of work and then 10 hours on the weekend. So, if I’m a newer developer am I better off spending my time learning about Webpack and ES 6? Well, maybe take away ES 6. I think that’s important. But Webpack and Gulp. Or am I… like, observables… or am I better off taking time to go through coding challenges or learn design patterns?
DAVE: So, my perspective on that topic is that for new people, I think fundamentals are always more important than specific tooling. I would say that tools come and go but fundamentals are here to stay. And the better, the stronger you are with programming language fundamentals, design patterns I think are a great thing to study, that stuff is classic and timeless. But Webpack will likely not be around in five years. Whereas…
DAVE: Programming language fundamentals will. And so, learning that I think is absolutely a great way to focus your time. Now having said that, I do think that there’s still value in learning some of these tools and understanding how they work, especially… and a lot of that value can be a more immediate feeling value. Like, you can benefit from a tooling change really quickly but fundamentals sometimes will take time to get benefit. So, I would say a little bit of both. Maybe like 80%, 20%, something like that.
AIMEE: That’s perfect.
DAVE: Here, here. I love that. That was a great answer.
AIMEE: I love those answers, yeah. I think that’s awesome.
DAVE: Oh, there is one exception. I think everybody should master Git.
DAVE: Like, no matter what. [Chuckles]
JAMISON: I don’t know, dude. I have feels about Git.
JAMISON: I think I… yeah.
CHUCK: Jamison’s a CVS fan.
JAMISON: No. I’m not a CVS fan. I’m like a nothing fan. I don’t know anything about another version control system that I’d rather use. But…
DAVE: Yeah, exactly. Like given [inaudible]
JOE: Visual Source Safe?
JAMISON: But I’m sad that Git is the most popular thing, because it is a nightmare under the hood. And then when people wax lyrically about the purity of its object graph model and things like that, I don’t care. That doesn’t change the fact that there are 400 different conflicting commands to do the same thing.
JAMISON: Except if it’s like Tuesday in the eastern hemisphere and you use this other flag. I don’t know. Git isn’t…
JOE: Well, regardless of its problems you should still use it because it’s… I think it’s here to stay for a while.
DAVE: I hope we have something better soon. But I got to tell you, people who don’t know how to use Git and use Git on their project can make so much work for themselves.
CHUCK: Oh, yeah.
DAVE: And it’s one of those things you really have to understand it deeper than you think in order to not screw it up.
JAMISON: If you are a Git master then you can never complain about any UX of anything you ever use in your whole life, ever again. Because it’s all better.
CHUCK: Alright. And on that tangent, why don’t we get to picks?
DAVE: Well, we didn’t talk about Star Wars. Can we do another hour?
JOE: [Laughs] I’m down.
CHUCK: Has everyone seen it?
JAMISON: I haven’t seen it but I was watching Twitch.tv and people were donating so that they could post messages on the stream that would spoil it. So, I know what happens in it.
CHUCK: Oh, I didn’t want to spoil it for anyone.
JAMISON: Because someone donated three dollars to tell me.
CHUCK: Alright. Let’s do the picks.
Before we get to the picks I want to take some time to thank our silver sponsors.
[This episode is sponsored by Thinkful.com. Thinkful.com is the largest community of students and mentors. They offer one-on-one mentoring, live workshops, and expert career advice. If you’re looking to build a career in frontend, backend, or full-stack development, then go check them out at Thinkful.com.]
CHUCK: Jamison, what are your picks?
JAMISON: I have, let’s see how many picks. One, two, three… I have four picks. My first pick is this article by a developer named Julie Evans. I love her blog. She has a lot of great stuff on there. But this is an article specifically about ‘How I Got Better at Debugging’. That’s been a thing I’ve been into lately, is trying to get better at debugging, at raising the difficulty level of bugs I can fix and getting faster at fixing bugs. And it’s a really good overview. She talks about some cool system-level tools that help if you do a lot of server-side stuff like tcpdump and strace. Then some general techniques as well. So, that’s a good read.
My next pick is a thing I had no idea. It’s a video about the Chrome Dev Tools promises debugger. So, apparently Chrome has this specific tab that will just show all your promises and show them resolved and show the chains and let you inspect them, kind of like the network tab. And it’s pretty sweet. I didn’t know it was there. So, this was just a little short video about it.
My next pick is the Netflix series Making a Murderer. If you listen to the Serial podcast and you liked that then this is just as good. Folks [inaudible] very different kind of case. But the same type of thing where it takes this event that happened and gives you all the backstory and all the nitty-gritty details. And kind of asks a lot of questions and doesn’t really give you a lot of answers. But I’m in the middle of it and it’s amazing.
And my last pick is this article called the ‘I Can Tolerate Anything Except the Outgroup’. I talked about this a little bit before the show but it’s about how we often form these social filters around who our friends are and who we interact with. This is by a psychologist that, he talked about how he has maybe 150 people he closely associates with. And how not a single one of them is a young earth creationist, even though 46% of the United States believes in that and how the odds of that happening randomly are like a quintillion to one or something like that. So, he very clearly without necessarily meaning to has filtered his group so that he’s excluding this large proportion of the United States and how… it’s not about a specific political or religious viewpoint. It’s just how it happens to everybody. And how we kind of leave out conflicting viewpoints in some ways based on the way we interact with people. So, that kind of just made me sit and think.
Those are my picks.
DAVE: Oh, for what it’s worth I really enjoyed that article as well. And I took out a completely different lesson.
DAVE: Which I won’t share right now.
JAMISON: Okay. [Chuckles]
CHUCK: Dave is the outgroup.
DAVE: But I also took that lesson. [Chuckles]
CHUCK: Dave is the outgroup. Now he knows why he doesn’t fit in for certain people.
DAVE: I am the one in quintillion.
CHUCK: Yeah. Dave, what are your picks?
DAVE: Okay, I just have one pick for you today. This is a Twitter account that I’ve been following for about a year. And I really enjoy it. The name of the account is a little bit unusual. But it’s called science porn. And it has nothing to do with pornography which I am staunchly against. But it does have a lot to do with science. And it’s really cool. And every day they post something interesting that makes me go, “Huh. That’s really cool.” And a lot of stuff makes me laugh. So, if you are into geeky science-y humor and math humor and stuff you might enjoy following science porn.
CHUCK: Alright. Aimee, what are your picks?
The second one is an article I saw on Twitter this week. And it’s called ‘The Illogical Allure of Extremes’. And so, this is like perfect balance to what we were talking about with tools and everything. But not… I guess it’s a guy who’s a Pluralsight author and he just talks about the rewards and the risks that he’s experienced from working really, really hard for five years as a developer.
And then my last pick because I like to always pick some of these health nut things, I’ve picked Kombucha in the past. So, the new thing that I want to pick is Kerrygold Butter. So, you might think, “Butter. That doesn’t seem healthy.” But this butter is grass-fed. So, I’ve been putting it on my vegetables and stuff like that. I don’t know. It makes me feel pretty good. So, that is my third pick. And that’s it.
JAMISON: Wait. Butter eats grass?
AIMEE: [Chuckles] That sounds confusing. But the cows who you get the butter from are grass-fed.
AIMEE: So, it’s really, really, really… they say it’s really, really good for you. And as far as for me, the way that I kind of gauge a lot of these things is how, because I’m really, really careful about what I eat, I can tell if something really sticks with me. So, I could have a small amount of vegetables but by putting this butter on top of it, it’s really, really filling. So, that’s how I gauge everything.
AIMEE: It’s a good excuse to put extra butter. My husband does, like there’s this craze going on where people put butter in their coffee. And they put this butter in their coffee and that’s what my husband does. I put it on vegetables. He puts it in his coffee.
CHUCK: [Laughs] Alright. Sounds like he’s got his priorities in line.
CHUCK: Alright, Obi Wan. What are your picks?
JOE: So, I have five picks. Star Wars, Star Wars, Star Wars, Star Wars, Star Wars. [Laughs]
CHUCK: Alright. Glad we got that covered.
DAVE: Was that [inaudible] five of the seven episodes? [Laughs]
JAMISON: Which ones didn’t you pick?
JOE: One and two.
JOE: That just so happened to work out. And it was only half of a pick for three. I would also like to pick a Twitter account that I’ve followed for a long time that is very relevant to the discussion we had here. And that is the Twitter account of Merrick Christensen, a personal friend of mine. I find that when he does get involved in conversations online like this, he always has the most measured and introspective responses. And I’m always enlightened as I read the things that he says about interesting stuff.
JAMISON: I so agree. I feel like he just tweets from on top of a mountaintop somewhere.
JOE: Yeah, like…
JAMISON: Gazing into the sky.
JOE: He’s got to be up there…
JOE: All of a sudden he opens up his [Twitter].
JAMISON: He just rises above all the petty nonsense and is like…
JAMISON: What if we just loved each other more?
CHUCK: Carved into stone tablets, right?
JOE: [Inaudible] So, my other, my third pick is going to be something that he tweeted about really recently and that is this great talk called ‘What We Actually Know About Software Development and Why We Believe It’s True’ talking about the difference between the scientific rigor of knowing things and then all of the stuff that in software development we think is true but we don’t actually know, just because there’s a common consensus that something is true and anecdotes seem to prove something. But yet without scientific rigor, it’s… it’s just, it’s a great talk. Very fantastic talk.
JAMISON: I loved his point about TDD and Agile development in that, too.
JAMISON: It’s really interesting.
JAMISON: That’s my tease. I’m not going to say what it is. You got to go listen to it.
JOE: Yeah. Definitely go listen. One of those talks that everybody should absolutely see regardless of what kind of a software, where you are in your career and what kind of a developer you are. It’s one of those things that is universal in its applicability and enlightening regardless of any viewpoints he might have.
My final pick is going to be the US Military and specifically the people that serve for it,
AIMEE: Aww. [Chuckles]
JOE: I think that there’s not enough respect for the danger that people put themselves into. Regardless of how you believe our politicians run our military or how much money we should spend, the people that are there putting their jobs on the line for less than what most teachers make deserve our respect. And that’s my [final] pick.
AIMEE: Can I, I want to, can I add a quick pick in there? [Chuckles]
AIMEE: So, as we were talking before the show, [inaudible] his brother and he’s an Iraq and Afghanistan war veteran. So, I really appreciate that.
And the other pick I’m going to have that I wanted to add on top of that, I am a board member for an organization called Operation Code. And they are working to take the GI bill, which is what you get when you serve because right now the GI bull can only use, more like an accredited degree. And they’re working with some of the coding bootcamps so that you can hopefully view that GI bill towards that.
CHUCK: Awesome. So Joe, your last pick or your second to last pick, coincidence of all coincidences, there is an episode of Ruby Rogues that has that exact same title where we had a two hour discussion with those exact same two people that give that talk.
JOE: Ooh, awesome. You’ll have to give me the link to that.
CHUCK: Yeah. I put a link in the show notes. If you like this format of a discussion and you want to hear it, we have really smart people that we had a discussion with them about this. So yeah, definitely check that out. It was kind of mind-blowing. Like yeah, I guess there really isn’t any hard evidence other than my anecdotal, it felt like it made it better. [Laughs] And how they measure things. So, terrific, terrific talk.
I’m going to piggy back on Jamison’s pick real quick. He talked about Serial. Serial is actually back for its second season. And it is really, really interesting. They’re highlighting Bowe Bergdahl who is the soldier who was captured in Afghanistan. And there was all the hullabaloo about him being a deserter. And the president trading terrorists for him and all that crap. It doesn’t go too much into the politics of the situation. But it does explain his experiences there, which is just really, really interesting. So, if you’re interested in finding more information about that then go check that out. But really, it’s mostly done from interviews and phone calls that were done with Bowe Bergdahl. So anyway, fascinating stuff. And I’m not going to pontificate on the politics of the situation. And they really don’t either. So anyway, super good.
And let’s see. I had another pick and I don’t remember what it was. So, I will just bow out with my picks. Go check out JS Remote Conf. And thank you everyone for this awesome discussion.
[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.]