From the ExperiencedDevs subreddit, this developer wanted perspectives on whether or not programming languages even matter anymore.
📄 Auto-Generated Transcript ▾
Transcript is auto-generated and may contain errors.
All right, folks. Time to ruffle some feathers. We're going to the experienced dev subreddit. This developer asked, "How do you deal with the question regarding does the programming language even matter anymore?" or something like that. Um, so when we're building stuff with AI a lot more now, um, I guess this person's saying they're hearing people make the statement more that the programming language we use does not matter and sort of like this is a thing of the past now that everyone's building stuff with AI. And um, I wanted to talk about this cuz I think it's a little bit more nuanced than that. Um, does it does it change things? Yes. Do I think that it uh I don't know is black and white like that? I don't think so. So, I wanted to talk about this. Of course, uh, as I start this off, I'm inviting you as someone listening or watching.
Um, if you have thoughts on this, would love to hear in the comments. I'm sure there's lots of different opinions on this kind of thing. And if you're new to the channel, I like to talk about things if I can from different perspectives. So, like, of course, if you completely disagree with me, like that's totally cool. Um, because I'd like to hear, you know, your thoughts on it, but I do want to try challenging myself to when I talk about this to approach it from some different angles. Just a heads up, too, I'm hoping that um this mic receiver doesn't just die on me. Apparently, I left it on all day while I was at work. So, it's uh on zero battery plugged in while I'm doing this, but we'll see if it goes dead silent partway through. I'm so sorry. Uh cuz I'm not going to watch the whole thing before I upload it cuz that's how this channel works.
Okay. Uh so, what are the nuances here? Does it actually matter? Does AI development change whether or not the programming language matters? Now, I think that to me what this shifts is like historically there's a I would argue more more of a a concern or consideration. I think concern is too strong of a word consideration. You're going to go build something um and like what programming language are you going to use? I think one of the big considerations of the past or and not to say that it's uh completely gone I mean but one that we would weigh more heavily I would say is that you know if you have a team of developers and you know there is a preference or comfort for working in a particular language I think that plays a pretty significant role right it's not to say that that should
be the only thing but if you're thinking about something like we're a business we have to get something shipped and like, you know, maybe language X is the perfect language for this because it's the most performant or whatever whatever characteristic you're looking for. And you're like, that's nice, but you know, uh, one out of eight people on this team even knows that language. The other seven are like, you know, really good in this other language. And it's not like this other language is even bad. it might just make way more sense to go pick the language that is like still a pretty good fit that most people are comfortable with. And the reason is like the the sacrifice that you might be making historically is that you lose like a significant amount of developer agility just to be able to like maybe squeeze out performance or again some other characteristic that like that doesn't even matter if your company doesn't exist because you couldn't ship a product, right?
It's kind of like, oh well, we need to, just to exaggerate it with a different example, like we need to have Kubernetes and microervices for our our product. And it's like, yeah, but dude, like you don't even have one user. And like you might not even have 10 users in the first year. Like what? You might not even have a company that exists if you can't ship something. So maybe, just maybe, it's not worth like hyper optimizing um on that kind of stuff. And maybe there's a little bit more weight put into, you know, how effectively a team can build. So I think like I certainly would like way more heavily lean into this kind of argument historically. And the sun at this time of day is horrible. There's no no good spot. Um, and I think that like with AI, that argument is not gone.
Certainly not gone. But I do think that it alleviates some of the pain around it, right? Like, and I want to give you some some examples. And I'm going to use a slightly contrived example because I'm going to be talking about a situation where the team is one person and it's me. So, if you aren't familiar with my content because you're newer to the channel, like as a developer, um I I like building with C and .NET. Not because I think it's the best thing ever. It's just because that's what I've been accustomed to using. It's quite, you know, well suited for general purpose stuff and like gets the job done for me. Also, because I've been using it for so long, it's if it's my tool of choice because if I need to get done, I know that if I use C, I can probably get it done pretty effectively, right?
Just from a a get done perspective. Now, using AI, there's a a good handful of things now that I've built in languages that I don't know how to use. And I'm not saying that because I'm trying to make the point of like because I'm so good I don't even have to know the language. Not at all. I'm just saying like it's afforded me opportunities or I could go consider you know alternative tech stacks languages and things because I don't have to heavily rely on on knowing all the details. Now, there is some nuance here because what I'm talking about shipping is not necessarily stuff that is like I have tons of paying users and like it's missionritical. No, like a couple of things that I've done like our MCP servers. And in fact, when I've talked about this on some older videos, um I made a couple of MCP servers that werenet based and um on top of that, sorry, it's a really crappy spot to change lanes, especially with all this sun.
Um MCP servers and then at the same time, I had co-pilot just build them out in Go. Like I have I have never seen go code before like on purpose. Um I'm sure I've seen go code somewhere, but I've never like written Go code. I've never, you know, uh purposefully reviewed Go code. I don't really know what Go Code syntax looks like. And I'm telling you this again just to be very transparent, right? But I have shipped, you know, MCP servers that are open source. I use them. They seem to do just fine. They work great. And the reality is like if there was a bug, it's not going to bring down the entire world and I don't have paying customers that are going to complain and I would just fix it with Copilot.
The point being that that's not even a decision I could have made before without significant consequence, which is like if Go happened to be the better language choice over.NET, net, let's say, in this case, I probably would have been like, well, too bad, I guess, because I'm not going to go for me in these projects, I'm not going to go learn Go just to be able to make an MCP server. Like, I simply don't care enough to have to go do it. And please don't misunderstand what I'm saying. I'm not saying because I don't think Go is good or I hate learning. I just don't think that I need to go learn Go to ship an MCP server is my point. It's not worth um sort of the the time allocation for that purpose. So, as someone who traditionally would just lean into done, I don't have to, right?
Um, and I could extrapolate that to other examples where I have shipped things in Rust now as well. And like I made a video, I don't know, maybe like 2 years ago or something now where I was like, you know, I'm going to start learning Rust. I'm going to do it. And then I think I went to go write a hello world program. I refactored out like the literally just tried to assign the the constant value string into a variable and like it wouldn't compile and I'm like I'm already so I'm already so over this. Um and then I just never went back. But no, I'm I think Rust is a great great uh tool. I don't um I don't particularly like anything about the syntax or anything like that. And so I don't I I'm not super interested in going to learn it and force myself to do it.
Now with AI, I've still been able to go build things with it. So again, it's it's afforded me the opportunity to make such a a decision, right? And I think if we consider teams now, if I had a team of engineers and we had um I mean we could consider a couple things, right? we have an existing product or service or we have a new green field thing that we're going to spin up. Um I think depending and again so much nuance to this. I think if we had engineers that did not know the programming language like or they're familiar with it but they don't have like professional working experience using it. Um, it's not that we couldn't go adopt it before, but I would have to acknowledge that there's going to be some like probably pretty significant slowdown from a productivity perspective in the beginning, right?
Um legitimately I have lived through this with uh you know a new product in written in rust where the decision was to go to rust because of the the programming language characteristics. I think that's totally fair for what this uh for what this product is. Um, and so there was an engineering decision that was like, we accept that this is going to take the engineers longer to build simply because the engineers working on it have not had prior, you know, experience in Rust. And so we accept that learning curve. Um and because we we want this from a long-term perspective, we think this is the right move because we do want to squeeze out um you know different characteristics literally because of the language itself. Right? So I have lived through that and that's before like leaning heavy into AI and I think now that decision would be you know maybe easier to make or at least easier to rationalize instead of it being like oh man no one knows it.
It's like okay maybe maybe no one is super familiar but like you know can you leverage AI to help out significantly with that? Yeah. Right. And if you had an existing product like I don't know like is it a matter of like okay an existing product let's port it to a different language a different text stack again there's always going to be this conversation of like you know um how much cost are you willing to incur while doing like a rewrite kind of scenario but at least you know you can you have a bit morelex flexibility in saying if we believe that this tech stack is the right direction. Um there's less um I don't know less of a a strong push to say well I guess we can't purely because the uh you know the team is less familiar with something.
I just think that that argument would have been a lot stronger before and now we have a little bit more flexibility and I think maybe even arguably a lot more flexibility um depending on how you know comfortable people are with using AI tools to to write code right I think at the end of the day when we're talking about building things we have to think about who is building things and it's easy for people to sit back and say, "Oh, it's it's AI building it. It's AI building it." Yeah, sure. Okay. But who's responsible for it, right? You Yeah, sure. You can go ask AI to go generate however much code you want. That's fine. And like, yeah, models are getting better. That's also great news. Maybe it will write even better code. Excellent. But at the end of the day, it's not like when goes wrong, you can say, "Oh, not my problem.
It was just the agent's dumb code." Nah, your customers aren't going to want to hear that. Your boss isn't going to want to hear that. You still have to be accountable, right? So my point is that if you are uh an engineer working on something or you're a team of engineers that's building something, if you have an extremely high degree of confidence in using, you know, agentic tools to go build software, you very you may very well have a lot more flexibility in in in picking languages and text stacks that you're not familiar with. And I think I genuinely think that's cool. I think that that's super interesting that that we are getting unlocks like that, right? I'm not here to say that's right or wrong. I don't think that that's even uh part of the conversation. Like what does right or wrong mean in this case?
My point is that at the end of the day, if you have to be accountable for the software you ship, you you better be confident in how it's being built. like regardless of how it's being built, you better be confident in how it's built, right? And I think that would mean if you have a team of engineers, it's like we're not like for whatever we're building, we're not super confident in just having AI blast code out in a language or tech stack that we're not familiar with. Like we would feel very concerned about that. Then I would say, yeah, maybe like that's not the right move to go pick an unfamiliar tech stack. Maybe don't do that. um maybe for what's being done you need a quicker prototype something to ship like I think there's so many factors here and my point is that I think that that having a cap like better capabilities with AI affords you such an opportunity uh to be able to make decisions like that.
So, one thing I think is like an interesting thought experiment is like is sort of just continuing to extrapolate it, right? So, um you know, I gave you the example for some of the side projects and stuff I was doing like, yep, I've picked Go and I've never seen the code. Um I have a couple things now that I built in Rust. I've never seen the code. Um, but I I picked the languages in those particular cases not because I was like, "Ooh, like uh I'm going to have some software that's Rust or I'm going to have some software that's Go. That makes me cool, right? Like I'm moving away from C cuz people think C is, you know, Microsoft only like corporate overlord or I don't know. People seem to not like C# for some reason. So I'm going to do something cool in Rust.
and I have Rust code like no I I literally don't care because I I'm not even reading the code. Um but I picked Rust or I picked Go in those situations because I felt that the language was a better choice. Right? In the case for the MCP servers, I really liked that with Go I could have uh something that was built have no dependencies. You just run it, it's good to go. Right? That's one of the reasons I picked Go and I had a smaller package to use it with and I was like this feels like a good option for an MCP server. And can I do something similar withNET? Yeah. Yes, I can. Yes, I can make sure that all my dependencies are bundled in. I can do it. Now, my payload is smaller with Go, so that's cool. But like at the end of the day, does it really matter?
No. like it makes almost no difference. It's just a little MCP server. In this particular case with the uh with the Rust stuff, it was because I wanted performance. I wanted no dependencies. I wanted performance and I was like, I'm building this from scratch. If I if I have the opportunity to to lean into that kind of characteristic from the beginning, like why not? I can do that. Did it need to be rust? Absolutely not. Right. But but in in this context, I didn't have my myself like working against myself to say, "Oh, you better use .NET so you can move faster." Like, I'm not writing the code. I don't give a Right? I'm defining what I want my product to look like. I'm defining the overall architecture, how I want my systems to integrate. Do I think Rust in terms of a, you know, a tech stack, language choice and tech stack is a good offering here?
Yes, I think it would fit well. Do I think that other things could have worked well? Sure. But green field, I'm not the one writing it. Cool. There's also one more caveat just for a little bit of extra context is that um for some of my side projects, I am also forcing myself to go a little bit out of my comfort zone. So Go and Rust are part of this. And in my other videos when you've if you've heard me talking about like building up um common instructions for agents and having like a template sort of repository for scaffolding projects. Um having a broader selection of things has been helpful for that because I can learn different patterns and practices different tech stacks ecosystems and bring some common pieces back. Um so having the examples to work with of things that have worked well or have not worked well is very very beneficial to have that um shared knowledge.
So just for a little bit of a disclaimer. So, I like this idea if we can continue to go down this path of like, hey, look, like we can choose to build things and really not have to think about like the I don't know like the the penalty of like having to learn the programming language, right? I kind of hinted I don't like how Rust looks. I I don't like reading Rust code. Maybe it's because I'm stupid. I don't know. But like I don't like reading it. I don't think it's an obvious language to me. I know I'd have to spend some time with it, of course, like anything, but I just don't really like how it reads, and that's my personal opinion. So, I don't have to really worry about that, right? I don't have to sink time into it. So, I can start building things, leveraging it, you know?
Uh fortunately I've been programming for a couple of decades so I I understand like general programming concepts and I can apply that which is great but I don't have to know and learn the syntax. Okay. So if I don't have to learn the syntax, if we keep going down this thought experiment, do we reach a point where like, you know, back to this question on Reddit, does the language really matter? Right? Like I I I would hypothesize that in the future, I don't know how far in the future, but in the future, the the language that you write your software in matters less. That's not to say um you know some languages aren't better suited for different things, but I think it matters less in terms of like if you know it, if you know the language or not, cuz we're already seeing some of that.
I just given you a few examples of that. It's not if you know how to program or not, or if you understand software engineering or not. Does the specific language and knowing it make as much of a difference in your choice to use the language? And I think that over time that will matter less and less. And I think that if we continue to have different programming languages, I don't really see that going away personally, at least no time soon, that if we have these different programming languages, then we can pick the language and the tech stack based on what it's suited for. Right? To give you an example, uh I'm I'm going to generalize here, right? But just hear me out. Maybe um you're like, "I'm going to go build a web app. Can you use Rust to do that?" 100% yes. And you'd have people that would be screaming at me if I said, "Oh, Rust isn't a good choice for that." You'd have tons of people screaming at me.
They'd say, "Rust is so good for that." But at the same time, like I don't know. If I were to say, "How many, you know, TypeScript or JavaScript libraries are there for web development?" I don't have the numbers. But I think you might be a little bit outclassed in in saying, you know, that Rust is a is a a better ecosystem for web development. I just I I I think there's probably numbers that would suggest otherwise, at least at the time I'm recording this. So you might make a decision, again generalizing here, that I'm going to go build some web app and I'm going to use TypeScript or JavaScript because the the ecosystem is a better fit for it, right? There's there's tons of stuff off the shelf I can just use and it works and I don't have to worry about it and that's great.
And that's not to say that you can't use Rust or you can't use Go or you can't use C, but you might pick those languages like TypeScript or JavaScript just because they happen to be, you know, one might argue better suited at the time of recording this or have a better ecosystem for the exact same reason that it's like it's not that you can't build a web server in JavaScript. Like you can have a node server, right? you can do that. But if you were like, I'm I'm just giving you an example. I'm only making a node server because I know JavaScript and like yeah, it would have been cool to make it in C or go or Rust, but I don't know those things. Like now you could do that. You could do that and maybe pick something that you feel like the technology is better suited for the purpose, right?
So I think that like I I hypothesize we move in that direction. Um I'm really curious again continuing the thought experiment. Do do the ergonomics of programming languages change more um to be like agent friendly? Like we optimize for coding agents in the programming languages versus for humans, right? Like it that sounds kind of weird and I don't know enough about like um like LLM technology to be able to like have a a strong opinion about this. like my, you know, if I were to guess at this, if LLMs are trained on, you know, all sorts of data for for programming that's based on languages that are optimized for, you know, humans to be able to interact with. Maybe the models of today perform better on languages that are suited, you know, for for humans to work with just because that's how they've been trained. Maybe there is a more uh optimal way to do that, right?
Maybe if programming languages were structured in different ways, different syntax, there would be things that are more optimal for LLMs to use, if there was, you know, training data to support that. So, I'm curious if we'll start to see that evolve. Um, if we continue to move in this direction where if agents are the ones writing code, we should optimize for agent interactivity with that, right? But I'm talking about things that I think are much further out personally. Um it's the same argument or same sort of framing I would say that when we have people now going like oh like AI writes the code AI writes the code it's like yeah AI might be the one some places doing all of the code writing right AI being used in other places might be not that kind of thing at all and even within development teams you might have a mix it's not a black and white binary kind of thing.
Is there a direction I think we're heading? Yes. Is that, you know, does that go from being kind of gray now to black and white tomorrow? No. Um, but I do think we're moving in that direction. So, to to kind of summarize my long- winded uh thoughts on this, like does the programming language matter? I think it absolutely does. I think that AI is changing the story around that more. I don't think that it's negated it or, you know, made it completely one-sided or not. I think it's changing it. And then I think long term the argument for why you use a programming language is more around is it a good fit for the technology for the thing that you're building. Is it well suited for that for and based on whatever characteristics and you pick based on that and you pick less on you know how much do I like the syntax of this language or how comfortable am I with the syntax of this language.
Those are my thoughts on it. But like I said at the beginning of this video, I'd be curious to hear from you. Um especially if you listen to what I said and I mean this genuinely. I'm not being facitious. If you listen to what I said and you're like, I can't believe what this guy's saying. I can't agree with a single thing. Like, let me know. I'm I'm super interested to hear. I just ask that you're not an to me cuz I'm trying to encourage different thoughts and conversation. So, let me know in the comments. And of course, um like I say in my videos, right, if you have questions about software engineering or career development, you can leave a comment below asking. And uh if you're not comfortable leaving something in public, totally cool. Go to codeccommute.com. You can submit stuff anonymously that way. And uh the more detail you provide, the the more context I have to try and give you a a helpful answer.
So I appreciate you being here. Thanks for watching. And uh fun times ahead. Take care.
Frequently Asked Questions
These Q&A summaries are AI-generated from the video transcript and may not reflect my exact wording. Watch the video for the full context.
- How does AI development change the importance of programming languages?
- I think that with AI, that argument is not gone, but I think it alleviates some of the pain around it. I’ve seen examples where I could ship things in languages I don’t know well because AI helps. But at the end of the day, I still have to be accountable for the software I ship, regardless of how it's built.
- What factors should influence your choice of programming language for a project?
- I think the decision depends on the team and the context—whether it's a green-field project or an existing product. If engineers don't have prior experience in the language, there will likely be a slowdown at the start, and you have to acknowledge that. I’ve lived through that with Rust in the past and accepted the learning curve because it was the right move for the product.
- Can AI help you write code in languages you don't know, and what do you still have to consider?
- I think you can leverage AI to help write code in languages you don't know, which gives you more flexibility to pick unfamiliar tech stacks. But at the end of the day, you have to be confident in how it's built and you are accountable for the software you ship, regardless of whether AI wrote it.