Latest / DevQuestions with Tim Corey / 091 Why Shouldn't I Choose The Best Language For The Job?
Transcript
- 0:00SPEAKER_00: Welcome to the Dev Questions Podcast with Tim Corey.
- 0:03SPEAKER_00: Join us each episode as we tackle the questions you are asking about a career in software development, understanding the industry, and new technology.
- 0:12SPEAKER_00: If you're just starting out or you want to grow stronger as a developer, this is the place to get your questions answered.
- 0:19SPEAKER_00: Now, here's your host, expert developer and online educator, Tim Corey.
- 0:25SPEAKER_01: Why shouldn't I choose the best language for the job?
- 0:29SPEAKER_01: This is a question that comes up often when a new uh platform or a new uh project type comes out, especially for C sharp, since that's what I teach.
- 0:39SPEAKER_01: People ask me, well, but this other language already does something similar.
- 0:42SPEAKER_01: So why would I ever choose C sharp when I can do it in a better language?
- 0:49SPEAKER_01: So why would other languages even try to build things that other languages already do?
- 0:55SPEAKER_01: For example, why would you build Maui or Uno when we have Flutter?
- 1:00SPEAKER_01: Why Blazor when we have Angular or React or View?
- 1:04SPEAKER_01: And for that matter, why do we have Angular and React if we have View, or why do we have Angular or View if we have React or whichever one of your favorite is?
- 1:13SPEAKER_01: Those are the kind of questions that that often come up.
- 1:16SPEAKER_01: So let's talk about that.
- 1:18SPEAKER_01: I'm gonna talk about this first from an example that hopefully will illustrate the reasoning behind this, and then we'll talk through why it's so important.
- 1:28SPEAKER_01: So let's talk first about um my woodworking habit.
- 1:33SPEAKER_01: I like to work with wood because when I'm building something with wood, I am not thinking about software development, I'm not thinking about computers, I'm not thinking about technology at all, really.
- 1:43SPEAKER_01: I'm thinking about how to make this wood into what I want it to be.
- 1:49SPEAKER_01: And so when I first started this hobby, I didn't have a lot of money.
- 1:53SPEAKER_01: And so I went with the cheaper brand of power tools, especially cordless power tools.
- 2:02SPEAKER_01: So I use Ryobi, and Ryobi is a great brand, it actually works really well.
- 2:09SPEAKER_01: So just because it's cheap doesn't mean it doesn't work well.
- 2:11SPEAKER_01: So I would say definitely use it if that's what you can get your hands on.
- 2:16SPEAKER_01: But what I did was when I'd get a battery-operated drill, I'd get a battery with it and a charger.
- 2:23SPEAKER_01: And then I'd get another battery-operated device, maybe another type of drill and impact driver.
- 2:28SPEAKER_01: And I would get a battery and a charger with it.
- 2:31SPEAKER_01: Now I have two chargers and two batteries.
- 2:34SPEAKER_01: That means if I'm working my impact driver a lot, I can swap batteries and be charging one battery while the other one's in use.
- 2:43SPEAKER_01: And then I bought a six-battery charger.
- 2:47SPEAKER_01: So I have a whole charging station for a number of batteries, and I got more batteries and batteries with larger capacities.
- 2:54SPEAKER_01: So I had an infrastructure around my Ryobi tools, and then I add in a circular saw, a sawzall, a and the tools go on.
- 3:05SPEAKER_01: I love my tools.
- 3:07SPEAKER_01: So with that, why did I choose Ryobi cordless tools?
- 3:14SPEAKER_01: So when I decided to get a circular saw, I already had an impact driver and a drill and a couple other things.
- 3:22SPEAKER_01: So I bought a cordless circular saw.
- 3:25SPEAKER_01: Why did I not look at Milwaukee or Rigid or DeWalt or any of the other lines of circular saws?
- 3:34SPEAKER_01: Well, because I had an investment in Ryobi.
- 3:39SPEAKER_01: That investment meant that I already had infrastructure to support that circular saw.
- 3:46SPEAKER_01: I bought the circular saw without a battery.
- 3:48SPEAKER_01: It was cheaper that way.
- 3:50SPEAKER_01: I already had batteries to support it.
- 3:53SPEAKER_01: I already had chargers to support it.
- 3:56SPEAKER_01: I already had the system in place so that I could take my circular saw and my impact driver with even one battery and go somewhere and then take the battery out of my impact driver, put it in my circular saw, get some work done, swap it back, and keep going.
- 4:14SPEAKER_01: I had a flashlight.
- 4:15SPEAKER_01: I could put my battery in from Rigid or I mean from Ryobi.
- 4:20SPEAKER_01: So that changed the equation for me in how I looked at what I was going to buy next.
- 4:27SPEAKER_01: Now, when I was able to invest more in my woodworking, I decided to upgrade to DeWalt.
- 4:38SPEAKER_01: And I chose DeWalt because I did all the research and said, yes, this is the tool line for me for cordless tools.
- 4:46SPEAKER_01: Well, when I bought my first DeWalt tool, I had to buy the battery and the charger too.
- 4:54SPEAKER_01: And in fact, I bought a couple of chargers and a few batteries, and then I bought the bigger batteries, and I had to start reinvesting in the infrastructure to build that back up so that I could swap batteries out so I could keep going.
- 5:11SPEAKER_01: When one battery died or two batteries died, I could keep going and at the same time keep those charging so I'm ready for the next round.
- 5:20SPEAKER_01: So that took a lot of time and effort to build that infrastructure back.
- 5:25SPEAKER_01: Even figure out where to lay out the tools and where the charging station was and redoing the charging station.
- 5:31SPEAKER_01: That all took time.
- 5:34SPEAKER_01: So now when I go to the store and I need a new cordless tool, I don't look at rigid, I don't look at Milwaukee, I don't look at Ryobi even.
- 5:45SPEAKER_01: What I look at is the the uh the DeWalt tool and the DeWalt tool section because I have an investment, even if the Milwaukee Impact Driver is five percent better than the DeWalt tool, even if the rigid circular saw is got a new cool feature that the the uh DeWalt tool does not, even if those are true, I will still buy a DeWalt Impact Driver, I will still buy a DeWalt circular saw because I have the investment in the infrastructure, and it's just too costly to have a different system for every different tool.
- 6:33SPEAKER_01: I it's just not feasible for me.
- 6:36SPEAKER_01: So that's the same way languages work, all right?
- 6:41SPEAKER_01: So when it comes to that investment, we need to say, hey, let's take a step back here and think about the investment we've already made in our language.
- 6:56SPEAKER_01: So let's talk through what that investment is, what it's like to support a language.
- 7:04SPEAKER_01: We have developer tools, things like let's talk, take C sharp, for example.
- 7:09SPEAKER_01: We have Visual Studio, understanding how Visual Studio works, having it installed, understanding how to configure it, tweak it to our liking, and so on.
- 7:18SPEAKER_01: We have build tools, the infrastructure for actually taking our software and building it and deploying it and putting it on servers and all the rest, those tools.
- 7:30SPEAKER_01: We have to have a deep understanding of the syntax of a given language.
- 7:36SPEAKER_01: So knowing the quirks, knowing how it works, knowing um how to construct an if statement, knowing if you need semicolons or not, all that kind of stuff, you need to know for a language.
- 7:48SPEAKER_01: And then knowing can versus should, because languages can do a lot of things, but maybe you shouldn't.
- 7:57SPEAKER_01: So um there's a famous example of this with JavaScript, where there was the um JavaScript in-depth book, I believe it was, and it was a very thick book, it was uh three inches thick or so, and then there was JavaScript the good parts, basically the parts you should use.
- 8:13SPEAKER_01: And that book was, I don't know, maybe half an inch thick.
- 8:17SPEAKER_01: It was a lot smaller than the full JavaScript book, because there was things you could do in JavaScript, but maybe you shouldn't.
- 8:27SPEAKER_01: And so there was a difference there.
- 8:29SPEAKER_01: So knowing all that stuff is important, that's an investment in the language.
- 8:35SPEAKER_01: So the other part of this, too, is as you work in a language, as you do work, as you build software, that's going to make everyone better at that language.
- 8:48SPEAKER_01: The more experience you have in a language, the deeper, hopefully, you are going in that language, the better you're understanding it.
- 8:55SPEAKER_01: That practice is going to make you faster at the language, make you better at the language.
- 9:00SPEAKER_01: Now, what happens when you decide instead of using the same language to add a second language to your development stack?
- 9:10SPEAKER_01: Well, you might have to add new developers, that's expensive.
- 9:15SPEAKER_01: But even if you don't, you probably have to have new development tools or at least new configuration.
- 9:22SPEAKER_01: For example, if you're using VS Code, maybe you can build both HTML sites and C sharp.
- 9:28SPEAKER_01: You can probably do both, but you have to reconfigure the tool to do both and make a lot of changes.
- 9:35SPEAKER_01: You have to have new build tools, you have to learn new syntax, you have to know again that can versus should for the second language.
- 9:45SPEAKER_01: And now when you're doing work, you're diluting your skills because you're putting some skills over here and some skills over here, and you're not going as deep in either one.
- 9:57SPEAKER_01: And then also, there is a cost to context switching.
- 10:02SPEAKER_01: The idea that if you switch from C sharp to JavaScript, you have to think through oh, wait, how do I do this again?
- 10:10SPEAKER_01: Oh, I need semicolons over here, they're kind of optional over here.
- 10:14SPEAKER_01: You know, things like that, you have to think through, and that context switching has a cost to it.
- 10:20SPEAKER_01: It slows you down.
- 10:22SPEAKER_01: So the more you can focus on one language, the better your return will be.
- 10:28SPEAKER_01: The more you focus in on doing one language and one way of doing things, the deeper you'll go, the better you'll understand it, the more skilled you will be in that topic.
- 10:42SPEAKER_01: Now, this is true for businesses in the fact that a business, if they invest heavily in one language, that will allow them to have a much more efficient team.
- 10:54SPEAKER_01: But it's also true for individuals as well.
- 10:57SPEAKER_01: Because I see a lot of developers who when they give me their resume, they've got lots of skills on there.
- 11:05SPEAKER_01: And I know that they don't have depth because maybe you have, you know, six months' experience in 18 languages.
- 11:15SPEAKER_01: Guess what that means?
- 11:17SPEAKER_01: You really don't have a whole lot of experience at all.
- 11:19SPEAKER_01: In fact, I'm barely gonna treat you as having six months experience total because if you hop around like that, you've just started to scratch the surface and then you restarted and you kind of lost a lot of that just because you you can't retain it at all.
- 11:37SPEAKER_01: So it's diluted your skills that that context switching has hurt you, it's just not made you, it's made you very shallow.
- 11:46SPEAKER_01: And that's not what we're looking for when we're hiring developers, we're looking for depth.
- 11:51SPEAKER_01: So the more you can focus on one language, the more you can go deeply into it, the better you'll be.
- 11:58SPEAKER_01: That's why when people go through my my uh training courses where they say, okay, I've gone through and I've learned all about C sharp.
- 12:08SPEAKER_01: Well, first of all, no, you haven't.
- 12:09SPEAKER_01: You need to practice that because that's really important.
- 12:12SPEAKER_01: But then they say, Well, now should I start JavaScript?
- 12:15SPEAKER_01: Now should I start in another language, Python?
- 12:18SPEAKER_01: Now should I start whoa whoa whoa, go deeper.
- 12:21SPEAKER_01: Okay, take one language and go to the core.
- 12:24SPEAKER_01: Try and get as much skill, as much experience in that one language.
- 12:30SPEAKER_01: And then as you get a lot of depth, you can add a second language, you can supplement, but still continue in your primary language to go deeper.
- 12:42SPEAKER_01: So don't neglect your primary language while you are adding another skill at a lighter level.
- 12:48SPEAKER_01: Make sure you're going deep in your primary skill or primary language.
- 12:54SPEAKER_01: So, to answer the question of why you shouldn't choose the best language for the job, the answer really is that you should.
- 13:03SPEAKER_01: You should choose the best language for the job.
- 13:05SPEAKER_01: You just need to change the criteria for how you evaluate what is the best.
- 13:11SPEAKER_01: Because there are times when you have to add a second language, there are times when you have to add a second system.
- 13:20SPEAKER_01: For example, if you're a C sharp web developer, yes, your primary language is C sharp, and yes, you need to go deep in that.
- 13:29SPEAKER_01: But you will still have to invest in HTML, CSS, and at least vanilla JavaScript.
- 13:37SPEAKER_01: Probably stop there for a little while, but go deep in C sharp.
- 13:41SPEAKER_01: And then maybe, maybe get into Angular Reactor View.
- 13:47SPEAKER_01: But I would recommend holding off until you spend a lot of time in HTML, CSS, vanilla JavaScript, and even more in C sharp.
- 13:58SPEAKER_01: Okay.
- 13:58SPEAKER_01: So those are the kind of things that will skip over.
- 14:01SPEAKER_01: So you're gonna have to potentially add other languages anyway.
- 14:06SPEAKER_01: But that doesn't mean that you should just choose the best language based upon some kind of criteria you think is the best.
- 14:15SPEAKER_01: All right.
- 14:16SPEAKER_01: You need to choose what's best for your situation or your company's situation, and that's often to try and stick as close as possible to your primary language.
- 14:27SPEAKER_01: So thanks for listening to this week's episode DevQuestions.
- 14:30SPEAKER_01: If you have a question about being a developer, check out the past episodes.
- 14:34SPEAKER_01: There's probably an answer in there that you're looking for.
- 14:37SPEAKER_01: But if not, then go to imtimcore.com, check out the podcast page, and ask your question there.
- 14:43SPEAKER_01: Have a great day.
- 14:44SPEAKER_01: And as always, I am Tim Corey.
- 14:46SPEAKER_00: Thank you for joining us for this episode of DevQuestions.
- 14:49SPEAKER_00: Tim is committed to making it easier for you to become a developer.
- 14:53SPEAKER_00: If you would like to help make more content like this possible, please like, subscribe, rate, and share Dev Questions.
- 15:00SPEAKER_00: You can also send your questions to questions at IamTimcorey.com.
- 15:05SPEAKER_00: Until next time, remember, you are too smart and your time too valuable to waste it making all the mistakes Tim did.
- 15:12SPEAKER_00: When you're ready to learn to think and code like a professional developer, head over to imtimcorey.com and enroll in the course.